千家信息网

iptables入门及基本命令使用

发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,规则的功能:四个表filternatmangleraw五个内置链:PREROUTINGINPUTFORWARDOUTPUTPOSTROUTING规则的属性:1、网络层协议属性:ip2、传输层协议属性:
千家信息网最后更新 2025年01月22日iptables入门及基本命令使用

规则的功能:

四个表

filter

nat

mangle

raw

五个内置链:

PREROUTING

INPUT

FORWARD

OUTPUT

POSTROUTING

规则的属性:

1、网络层协议属性:

ip

2、传输层协议属性:

tcp

udp

icmp

iptables

大写字母选项:子命令

小写字母选项:用来匹配标准及其它;

-t {filter|nat|mangle|raw}

-L: list

-n: 数字格式显示IPPORT;

-v: 详细信息, -vv, -vvv其中后面的选项比前面的显示的更详细

--line-numbers: 显示链中规则的行号;

-x: 显示精确值,不要做单位换算;

规则和默认策略都有两个计数器:

packets:

bytes:

表和链的对应关系:

filter

INPUT, FORWARD, OUTPUT

nat

PREROUTING, POSTROUTING, OUTPUT

mangle

PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING

raw

PREROUTING, OUTPUT

每个链都有其默认策略:policy ACCEPT

通常只需要修改filter表的默认策略

其它子命令:

管理链:

-F: 清空链

iptables -F 表示清空所有链

-P: 设定默认策略

iptables -t filter -P INPUT {DROP|ACCEPT}

-N: 新建一条自定义链;

iptables -N FILTER_WEB

-X: 删除自定义的空链;

-Z: 计算器清零;

iptables -Z

-E: 重命名自定义链

管理规则:

-A: append 在链的最后追加一条规则

-I [n]: 插入为第n条规则

-D [n]: 删除第n条规则

-R [n]: 替换第n条规则

编写规则语法:

iptables [-t ] 大写选项子命令 [规则号] 链名 匹配标准 -j 目标

目标:

DROP: 丢弃

REJECT拒绝

ACCEPT允许

RETURN返回跳转

REDIRECT: 端口重定向

DNAT目标地址转换

SNAT源地址转换

LOG记录日志

MARK打标记

自定义链

匹配标准:

通用匹配

-s|--src|--source [!] IP/NETWORK

-d|--dst|--destination [!] IP/NETWORK

#iptables -t filter -A INPUT -s 172.16.0.0/16 -d 172.16.100.1 -j ACCEPT

-i incoming_interface: 指定数据报文流入接口; INPUT, PREROUTING, FORWARD

-o outing_interface: 指定数据报文流出接口;OUTPUT, POSTROUTING, FORWARD

-p {tcp|udp|icmp}

扩展匹配: 要使用"-m 扩展名称"来引用,而每个扩展模块一般都会有自己特有的专用选项; 这些选项中,有些是必备的;

隐含扩展

-p tcp

--sport 指定源端口

--dport 指定目标端口

--tcp-flags 要检查的标志 必须为1标记

--tcp-flags SYN,ACK,RST,FIN SYN 表示:tcp三次握手的第一次

ALL:所有标志位

NONE:没有标志位

--tcp-flags ALL SYN,FIN非法报文

--syn

练习:放行对web服务的访问:

#iptables -A INPUT -d 172.16.100.1 -p tcp --dport 80 -j ACCEPT

#iptables -A OUTPUT -s 172.16.100.1 -p tcp --sport 80 -j ACCEPT

因为报文在接收和发送时都要经过防火墙,所以我们需要设定INPUTOUTPUT两个方面的访问控制

--sport

--dport

例如:本机DNS服务器,要为本地客户端做递归查询;iptablesINPUT, OUTPUT默认为DROP;本机地址:172.16.100.1

# iptables -A INPUT -d 172.16.100.1 -p udp --dport 53 -j ACCEPT

# iptables -A OUTPUT -s 172.16.100.1 -p udp --sport 53 -j ACCEPT

# iptables -A OUTPUT -s 172.16.100.1 -p udp --dport 53 -j ACCEPT

# iptables -A INPUT -d 172.16.100.1 -p udp --sport 53 -j ACCEPT

-p icmp

--icmp-type

请求:8

响应:0

例子:本机172.16.100.1,能ping 172.16.0.0/16中的所有主机;

显式扩展:

-m state --state

NEW, ESTABLISHED, RELATED, INVALID

ftp服务需要装载:nf_conntrack_ftp模块, 可以使用modprobe命令,也可编辑/etc/sysconfig/iptables-config文件实现。

-m mulitport: 可以指定15个以内的离散端口;比如,21-23,80

--source-ports 源端口

--destination-ports 目标端口

--ports

-m iprange: 指定匹配的IP地址范围,如172.16.100.1-172.16.109.254

-m iprange

--src-rangeip地址

--dst-range 目标ip地址

-m limit

--limit 20/min 限制每分钟最多允许请求的次数

--limit-burst 2 搜集多少个令牌桶

-m string

--string "" 引号里面填写需要匹配的字符串

--algo {bm|kmp}

-m time

--datestart

--datestop

--timestart

--timestop

--weekdays

--monthdays

保存规则:

#service iptables save

保存至/etc/sysconfig/iptables

#iptables-save > /path/to/iptables.rules

生效规则文件中的规则:

#iptables-restore < /path/to/ipables.rules

子命令:

链:-N, -X, -Z, -F, -P, -E

规则:-A, -I, -D, -R

练习:INPUTOUTPUT默认策略为DROP

1、限制本地主机的web服务器在周一不允许访问;新请求的速率不能超过100个每秒;web服务器包含了admin字符串的页面不允许访问;web服务器仅允许响应报文离开本机;

# iptables -I INPUT 1 -m state --state ESTABLISHED -j ACCEPT

# iptables -A INPUT -d 172.16.100.1 -p tcp --dport 80 -m time --weekdays Tue,Wed,Thu,Fri,Sat,Sun

-m limit --limit 100/sec -m string --algo kmp ! --string "admim" -m state --state NEW -j ACCEPT

其中对于周一不允许访问还可以表达为 -m time --weekdays Mon

# iptables -I OUTPUT 1 -m state --state ESTABLISHED -j ACCEPT

2、在工作时间,即周一到周五的8:30-18:00,开放本机的ftp服务给172.16.0.0网络中的主机访问;数据下载请求的次数每分钟不得超过5个;

# iptables -A INPUT -s 172.16.0.0/16 -d 172.16.100.1 -p tcp --dport 21 -m time --weekdays Mon,Tue,Wed,Thu,Fri --timestart 08:30:00 --timestop 18:00:00 -j ACCEPT

# iptables -A INPUT -s 172.16.0.0/16 -d 172.16.100.1 -p tcp -m state --state RELATED -m limit --limit 5/min -j ACCEPT

3、开放本机的ssh服务给172.16.x.1-172.16.x.100中的主机,x为你的座位号,新请求建立的速率一分钟不得超过2个;仅允许响应报文通过其服务端口离开本机;

# iptables -A INPUT -m iprange --src-range 172.16.100.1-172.16.100.100 -m limit --limit 2/min -p tcp --dport 22 -d 172.16.100.1 -i eth0 -m state --state NEW -j ACCEPT

4、拒绝TCP标志位全部为1及全部为0的报文访问本机;

# iptables -N clean_in

# iptables -A clean_in -p tcp --tcp-flags ALL ALL -j DROP

# iptables -A clean_in -p tcp --tcp-flags ALL NONE -j DROP

# iptables -A clean_in -d 172.16.100.1 -j RETURN

# iptables -I INPUT 1 -d 172.16.100.1 -j clean_in

5、允许本机ping别的主机;但不开放别的主机ping本机;

# iptables -A OUTPUT -s 172.16.100.1 -p icmp --icmp-type 8 -j ACCEPT

# iptables -A INPUT -i lo -j ACCEPT

# iptables -A OUTPUT -o lo -j ACCEPT


规则 本机 服务 报文 主机 地址 目标 端口 命令 服务器 标志 策略 属性 数据 标准 开放 两个 大写 字母 字符 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 计算机网络安全检查检测整改 服务器托管服务不利因素 软件开发demo设计工具 深南电路的软件开发岗 互联网最先进科技 如何平衡网络安全和便利性 鑫茂科技 互联网金融 智慧医疗网络安全管理 合肥光学设计软件开发公司 窗口怎么登录数据库 计算机与网络技术对社会的影响 赣州技师学院软件开发 网络安全法是以几号主席令 机顶盒显示服务器暂时不可用 一念逍遥如何选择服务器 网络安全领导小组长 access数据库程序设计是什么 数据库实训目的态度方面的收获 数据库设置表的唯一性 面积在数据库中用什么字段 如何在数据库上存图片 用二维码来表示的数据库 黑龙江互联网科技公司 服务器维修是怎么样的 软件开发处理甲醛 优先使用ntp服务器1 非法提供信息网络技术支持罪 公安系统网络安全渗透工程师是网警吗 数据库技术与人工智能技术融合 新一代网络技术分类优势
0