linux中iptables防火墙的配置原则:
iptabls规则是从上往下应用,当找到能通过的规则,不管下面是否有规则冲突,也一样通过。
eth0 连接内部网络的网卡
eth1 连接外部网络的网卡
lo 本地环路
1,丢弃所有来自外网的ftp包,内网例外
复制代码 代码示例:
iptables -A -i lo -j ACCEPT(允许本机内部所有网络通信,必须的)
iptables -A -i eht0 -p tcp --dport 21 -j ACCEPT(在本机开放21端口,即ftp控制端口)
iptables -A -i eth0 -p tcp --dport 20 -j ACCEPT(在本机开放20端口,即ftp传输端口)
iptables -A -i eth1 -j DROP(禁止所有数据包通过){禁止外部ftp}
2,允许ssh禁止telnet
复制代码 代码示例:
iptables -A -i lo -j ACCEPT(允许本机内部所有网络通信,必须的)
iptables -A -i eth0 -p tcp --dport 22 -j ACCEPT
iptables -A -i eth1 -p tcp --dport 22 -j ACCEPT
(在本机开放22端口,即ssh服务端口)
iptables -A -i eth1 -p tcp --dport 23 -j DROP(在本机关闭23端口,即telnet服务端口)或者用iptables -A -i eth0 -j DROP
3,禁止使用ping命令,ping本机
复制代码 代码示例:
iptables -A -p icmp --icmp-type 8 -s 0/0 -j DROP(0/0所有网络)
iptables -A -p icmp --icmp-type 0 -s 0/0 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 0 -s 192.168.29.1(本机ip) -j DROP
iptables -A OUTPUT -p icmp --icmp-type 8 -s 192.168.29.1 -j ACCEPT
这样的配置是你能ping别人,别人不能ping自己的主机。
4,禁止访问21端口(ftp)和80端口(web)
复制代码 代码示例:
iptables -A -i eth1 -p tcp --dprot 21 -j DROP
iptables -A -i eth0 -p tcp --dprot 21 -j DROP
iptables -A -i eth1 -p tcp --dprot 80 -j DROP
iptables -A -i eth0 -p tcp --dprot 80 -j DROP
5,禁止所有udp端口
复制代码 代码示例:
iptables -A -i eth0 -p udp -j DROP
iptables -A -i eth1 -p udp -j DROP
6,禁止外部邮件通信,内部允许(禁止pop3,110和smtp,25)
复制代码 代码示例:
iptables -A -i eth0 -p tcp --dprot 25 -j ACCEPT
iptables -A -i eth0 -p tcp --dprot 110 -j ACCEPT
iptables -A OUTPUT -i eth1 -p tcp --sprot 25 -j DROP
iptables -A OUTPUT -i eth1 -p tcp --sprot 110 -j DROP
7,禁止2个特定网络访问本机
复制代码 代码示例:
iptables -A -i eth1 -s 192.168.1.0/24 -j DROP
iptables -A -i eth1 -s 172.16.0.0/16 -j DROP
8,允许从特的端口进入,但禁止对外
复制代码 代码示例:
iptables -A -i eht1 --dport [端口号] -j ACCEPT
iptables -A OUTPUT -i eht1 --dport [端口号] -j DROP
说明:
以上的iptables防火墙规则,大家在测试时,尽量选择本机,切不可直接就在生产环境的机器上运用,以免带来不必要的问题。