linux防火墙iptables详细教程

2020-01-30 12:26:26王振洲

 -j ACCEPT
iptables -P FORWARD DROP
5.3 三大“纪律”五项“注意”
三大“纪律”——专表专用
 filter
 nat
 mangle

五项“注意”——注意数据包的走向
 PREROUTING
 INPUT
 FORWARD
 OUTPUT
 POSTROUTING
5.4 其他注意事项
养成好的习惯
 iptables -vnL
 iptables -t nat -vnL
 iptables-save

注意逻辑顺序
 iptables -A INPUT -p tcp --dport xxx -j ACCEPT
 iptables -I INPUT -p tcp --dport yyy -j ACCEPT

学会写简单的脚本
6. FAQ.1
Q:我设置了 iptables -A OUTPUT -d 202.xx.xx.xx -j DROP
 为何内网用户还是可以访问那个地址?
A:filter 表的 OUTPUT 链是本机访问外面的必经之路,内网数据不经过该链

Q:我添加了 iptables -A FORWARD -d 202.xx.xx.xx -j DROP
 为何内网用户还是可以访问那个地址?
A:检查整个规则是否存在逻辑错误,看是否在 DROP 前有 ACCEPT

Q:iptables -t nat -A POSTROUTING -i eth1 -o eth2 -j MASQUERADE
 这条语句为何报错?
A:POSTROUTING 链不支持“流入接口” -i 参数
 同理,PREROUTING 链不支持“流出接口” -o 参数
6. FAQ.2
Q:我应该怎么查看某个模块具体该如何使用?
A:ipitables -m 模块名 -h

Q:执行 iptables -A FORWARD -m xxx -j yyy
 提示 iptables: No chain/target/match by that name
A:/lib/modules/`uname -r`/kernel/net/ipv4/netfilter 目录中,
 缺少与 xxx 模块有关的文件,或缺少与 yyy 动作有关的文件
 名字为 ipt_xxx.o(2.4内核) 或 ipt_yyy.ko(2.6内核)

Q:脚本写好了,内网上网没问题,FTP 访问不正常,无法列出目录,为什么?
A:缺少 ip_nat_ftp 这个模块,modprobe ip_nat_ftp
6. FAQ.3