一、IPtables简介
IPtables的表,链结构
规则链
规则的作用:对数据包进行过滤处理
链的作用:容纳各种防火墙规则
链的分类依据:处理数据包的不同时机
默认包括5中规则链
INPUT:处理入站数据包
OUTPUT:处理出站数据包
FORWARD:处理转发数据包
POSTROUTING:在进行路由选择后处理数据包
PREROUTING:在进行路由选择前处理数据包
规则表
表的作用:容纳各种规则链
表的划分依据:防火墙规则的作用相似
默认的4个规则表
raw表:确定是否对数据包进行跟踪
mangle表:为数据包设置标记
nat表:修改数据包的源,目标IP地址或端口
filter表:确定是否放行该数据包(过滤)
二、参数详解
-F 清空规则链 iptables -F
-L 查看规则链 iptables -L
-A 追加规则 iptables -A INPUT
-D 删除规则 iptables -D INPUT 1
-R 修改规则 iptable -R INPUT 1 -s 192.168.120.0 -j DROP
-I 在头部插入规则 iptables -I INPUT 1 --dport 80 -j ACCEPT
-L 查看规则 iptables -L INPUT
-N 新的规则 iptables -N allowed
-V 查看iptables版本 iptables -V
-p 协议(tcp/udp/icmp) iptables -A INPUT -p tcp
-s 匹配原地址,加" ! "表示除这个IP外 iptables -A INPUT -s 192.168.1.1
-d 匹配目的地址 iptables -A INPUT -d 192.168.12.1
--sport 匹配源端口流入的数据 iptables -A INPUT -p tcp --sport 22
--dport 匹配目的端口流出的数据 iptables -A INPUT -p tcp --dport 22
-i 匹配入口网卡流入的数据 iptables -A INPUT -i eth0
-o 匹配出口网卡流出的数据 iptables -A FORWARD -o eth0
-j 要进行的处理动作:DROP(丢弃),REJECT(拒绝),ACCEPT(接受),SANT(基于原地址的转换) iptable -A INPUT 1 -s 192.168.120.0 -j DROP
--to-source 指定SANT转换后的地址 iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SANT --to-source 172.16.100.1
-t 表名(raw、mangle、nat、filter) iptables -t nat
-m 使用扩展模块来进行数据包的匹配(multiport/tcp/state/addrtype) iptables -m multiport
三、案例参考
在链的末尾追加一条规则
iptables -A INPUT -p tcp -j ACCEPT
在链的开头(或指定序号)插入一条规则
iptables -I INPUT 2 -p icmp -j ACCEPT
删除链内指定序号(或内容)的一条规则
iptables -D INPUT 3
清空所有规则
iptables -F
SNAT源地址转换
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 218.29.30.31
MASQUERADE 地址伪装
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
DNAT目标地址转换
iptables -t nat -A PREROUTING -i eth0 -d 218.29.30.31 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.6
修改端口转换
iptables -t nat -A PREROUTING -i eth0 -d 192.168.11.11 -p tcp --dport 2346 -j DNAT --to-destination 192.168.1.11:22