man iptables
man iptables
命令格式:
iptables [-t 表名] 命令 [链] [规则号] [条件] [规则]
说明:⑴ -t 表名 指定规则所在的表。表名可以是 filter ,nat ,mangle (小写)
⑵ 命令 (iptables的子命令)
-A 在指定链中添加规则
-D 在指定链中删除指定规则
-R 修改指定链中指定规则
-I 在指定规则前插入规则
-L 显示链中的规则
-N 建立用户链
-F 清空链中的规则
-X 删除用户自定义链
-P 设置链的默认规则
-C 用具体的规则链来检查在规则中的数据包
-h 显示帮助
⑶ 条件
–i 接口名 指定接收数据包接口
-o 接口名 指定发送数据包接口
-p [!]协议名 指定匹配的协议 (tcp , udp , icmp , all )
-s [!]ip地址 [/mask] 指定匹配的源地址
–sport [!]端口号 [:端口号] 指定匹配的源端口或范围
-d [!]ip地址 [/mask] 指定匹配的目标地址
–dport [!]端口号 [:端口号] 指定匹配的目标端口或范围
–icmp –type [!]类型号/类型名 指定icmp包的类型
注:8 表示request 0 表示relay (应答)
-m port --multiport 指定多个匹配端口
limit --limit 指定传输速度
mac --mac-source 指定匹配MAC地址
sate --state NEW,ESTABLISHED,RELATED,INVALID 指定包的状态
注:以上选项用于定义扩展规则
-j 规则 指定规则的处理方法
⑷ 规则
ACCEPT :接受匹配条件的数据包(应用于I NPUT ,OUTPUT ,FORWARD )
DROP :丢弃匹配的数据包(应用于INPUT ,OUTPUT ,FORWARD )
REJECT :丢弃匹配的数据包且返回确认的数据包
MASQUERADE :伪装数据包的源地址(应用于POSTROUTING且外网地址
为动态地址,作用于NAT )
REDIRECT :包重定向 (作用于NAT表中PREROUTING ,OUTPUT,使用要加上--to-port 端口号 )
TOS : 设置数据包的TOS字段(应用于MANGLE,要加上--set-tos 值)
SNAT : 伪装数据包的源地址(应用于NAT表中POSTROUTING链,要加上--to-source ip地址 [ip地址] )
DNAT : 伪装数据包的目标地址(应用于NAT表中PREROUTING链,要加上--to-destination ip地址 )
LOG :使用syslog记录的日志
RETURN :直接跳出当前规则链
3. iptables子命令的使用实例
⑴ 添加规则
#iptables –A INPUT –p icmp –-icmp-type 8 –s 192.168.0.3 –j DROP
(拒绝192.168.0.3主机发送icmp请求)
iptables –A INPUT –p icmp –-icmp-type 8 –s 192.168.0.0/24 –j DROP
(拒绝192.168.0.0网段ping 防火墙主机,但允许防火墙主机ping 其他主机)
iptables –A OUTPUT –p icmp –-icmp-type 0 –d 192.168.0.0/24 –j DROP
(拒绝防火墙主机向192.168.0.0网段发送icmp应答,等同于上一条指令)
iptables –A FORWARD –d -j DROP
(拒绝转发数据包到,前提是必须被解析)
iptables –t nat –A POSTROUTING –s 192.168.0.0/24 –j SNAT –-to-source 211.162.11.1
(NAT,伪装内网192.168.0.0网段的的主机地址为外网211.162.11.1,这个公有地址,使内网通过NAT上网,前提是启用了路由转发)
iptables –t nat –A PREROUTING –p tcp –dport 80 –d 211.162.11.1 –j DNAT -–to-destination 192.168.0.5
(把internet上通过80端口访问211.168.11.1的请求伪装到内网192.168.0.5这台WEB服务器,即在iptables中发布WEB服务器,前提是启用路由转发)
iptables –A FORWARD –s 192.168.0.4 –m mac –mac-source 00:E0:4C:45:3A:38 –j ACCEPT
(保留IP地址,绑定 IP地址与MAC地址)
⑵删除规则
iptables –D INPUT 3
iptables –t nat –D OUTPUT –d 192.168.0.3 –j ACCEPT
⑶插入规则
iptables –I FORWARD 3 –s 192.168.0.3 –j DROP
iptables –t nat –I POSTROUTING 2 –s 192.168.0.0/24 –j DROP
⑷修改规则
iptables –R INPUT 1 –s 192.168.0.2 –j DROP
⑸显示规则
iptables –L (默认表中的所有规则)
iptables –t nat –L POSTROUTING
⑹清空规则
iptables –F
iptables –t nat –F PREROUTING
⑺设置默认规则
iptables –P INPUT ACCEPT
iptables –t nat –P OUTPUT DROP
(注:默认规则可以设置为拒绝所有数据包通过,然后通过规则使允许的数据包通过,这种防火墙称为堡垒防火墙,它安全级别高,但不容易实现;也可以把默认规则设置为允许所有数据包通过,即鱼网防火墙,它的安全级别低,实用性较差。)
⑻建立自定义链
iptables –N wangkai
⑼删除自定义链
iptables –X wangkai
⑽应用自定义链
iptables –A wangkai –s 192.168.0.8 –j DROP
iptables –A INPUT –j wangkai
(注:要删除自定义链,必须要确保该链不被引用,而且该链必须为空,如要删除上例定义的自定义链方法为: