iptables内建表:
filter -- 管理本机数据进出
nat -- 管理防火墙内部的计算机
mangle -- 管理特殊标志
filter的内建链:
INPUT: 与进入主机的封包有关
OUTPUT: 与主机要发送出的封包有关
FORWARD: 将封包传递到防火墙后的主机
nat的内建链:
PREROUTING: 进行路由判断前的规则
POSTROUTING: 进行路由判断后的规则
OUTPUT: 与发出的包有关
查看本机防火墙规则:
iptables -t 表名 -L
-t 如果省略则显示filter表规则
-L 列出规则
-n 不进行IP与HOSTNAME的解析
清除规则:
iptables -t 表名
-F 清除所有的已定的规则
-X 清除所有自定链的规则
-Z 清除所有链的统计信息
设定默认策略:
iptables -t 表名 -P
-P 默认策略(ACCEPT/DROP)
添加与插入规则:
iptables -t 表名
-A 在规则链尾添加一条规则
-I 在规则链首插入一条规则
-i 数据报进入的网卡接口
-o 数据包流出的网卡接口
-p 协议(tcp udp icmp all)
-s 来源IP或网段
--sport 来源端口
-d 目标IP或网段
--dport 目的端口
-j 动作(ACCEPT DROP LOG REDIRECT MASQUERADE )REDIRECT仅用于nat表中的PREROUTING及OUTPUT链
例一: 接收回环接口的所有数据包
iptables -A INPUT -i lo -j ACCEPT
例二: 接收来自192.168.1.1的所有数据包
iptables -A INPUT -s 192.168.1.1 -i eth0 -j ACCEPT
例三: 接收192.168.1.0这个网段的数据包
iptables -A INPUT -i eth0 -s 192.168.1.0/24 -j ACCEPT
例四: 丢弃192.168.1.176的数据包
iptables -A INPUT -i eth0 -s 192.168.1.176 -j DROP
例五: 丢弃任何想进入21端口的数据包
iptables -A INPUT -i eth0 --dport 21 -j DROP
例六:允许192.168.1.12访问我的137 138 139端口
iptables -A INPUT -i eth0 -s 192.168.1.12 --dport 137:139 -j ACCEPT
例七:记录所有访问25端口的数据包
iptables -A INPUT -i eth0 -p tcp --dport 25 -j LOG
例八:禁止别的主机ping我的主机
iptables -A INPUT -i eth0 -p icmp --icmp-type 8 -j DROP
例九:将要求访问80端口的数据转发到8080端口
iptables -t nat -A PREROUTING -t tcp --dport 80 -j REDIRECT --to-ports 8080
例九:将192.168.1.0网段的IP伪装成本机ppp0接口的IP
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j MASQUERADE