Iptables 防火墙常用的策略
防火墙处理数据包的三种方式:
ACCEPT允许数据包通过
DROP直接丢弃数据包,不给任何回应信息
REJECT拒绝数据包通过,必要时会给数据发送端一个响应的信息。
Iptables防火墙规则的导入和导出:
Iptables-save   //导出(备份)
Iptables-restore //导入(还原)
Service iptables save //保存配置文件
Iptables防火墙常用的策略:
1. 拒绝进入防火墙的所有ICMP协议数据包
iptables -A INPUT -p icmp -j REJECT
2. 允许防火墙转发除ICMP协议以外的所有数据包
iptables -A FORWARD -p ! icmp -j ACCEPT
(“!”将条件取反)
3. 拒绝转发来自192.168.1.10主机的数据,允许转发来自192.168.0.0/24网段的数据
iptables -A FORWARD -s 192.168.1.11 -j REJECT
iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
4.  丢弃从外网接口(eth1)进入防火墙本机的源地址为私网地址的数据包
iptables -A INPUT -i eth1  -j DROP
5.  只允许管理员从192.168.1.114使用SSH远程登录防火墙主机。
iptables -A INPUT -p tcp --dport 22  -s 192.168.1.114 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
6. 允许本机开放从TCP端口20-1024提供的应用服务。
iptables -A INPUT -p tcp --dport 20:1024 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 20:1024 -j ACCEPT
7. 允许转发来自192.168.0.0/24局域网段的DNS解析请求数据包。
iptables -A FORWARD -s 192.168.0.0/24 -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -d 192.168.0.0/24 -p udp --sport 53 -j ACCEPT
8. 禁止其他主机ping防火墙主机,但是允许从防火墙上ping其他主机
iptables -A INPUT -p icmp --icmp-type Echo-Request -j DROP
iptables -A INPUT -p icmp --icmp-type Echo-Reply -j ACCEPT
iptables -A INPUT -p icmp --icmp-type destination-Unreachable -j ACCEPT
10.  禁止转发来自MAC地址为00:0C:29:27:55:3F的和主机的数据包
iptables -A FORWARD -m mac --mac-source 00:0c:29:27:55:3F -j DROP
11.  允许防火墙本机对外开放TCP端口20、21、25、110以及被动模式FTP端口1250-1280
iptables -A INPUT -p tcp -m multiport --dport 20,21,25,110,1250:1280 -j ACCEPT
(“-m multiport –dport”来指定目的端口及范围)
12.  禁止转发源IP地址为192.168.1.20-192.168.1.99的TCP数据包。
iptables -A FORWARD -p tcp -m iprange --src-range 192.168.1.20-192.168.1.99 -j DROP
(“-m –iprange –src-range”指定IP范围)
13. 开放web服务(80)、DNS服务(53)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 53 -j ACCEPT
iptables -A OUTPUT -p udp --sport 53 -j ACCEPT
14.开放FTP服务(20、21)
iptables -A INPUT -p tcp -m multiport --destination-port 20,21 -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --source-port 20,21 -j ACCEPT
( /etc/vsftpd/vsftpd.conf pasv_enable=NO)
15.开放***服务
iptables -A INPUT -p tcp -m multiport --destination-port 47,1723 -j ACCEPT
iptables -A INPUT -p gre -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --source-port 47,1723 -j ACCEPT
iptables -A OUTPUT -p gre -j ACCEPT
16. 开放DHCP服务
iptables -A INPUT -p udp -m multiport --destination-port 67,68 -j ACCEPT
iptables -A INPUT -p udp -m multiport --source-port 67,68 -j ACCEPT
17. 开放mail服务
iptables -A INPUT -p tcp -m multiport --destination-port 25,110,143 -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --source-port 25,110,143 -j ACCEPT
18. 开放smb服务
iptables -A INPUT -p tcp -m multiport --destination-port 139,445 -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --source-port 139,445 -j ACCEPT
19.squild 代理
iptables -t nat -A POSTROUTING -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3128
( squid.conf
visible_hostname proxy
http_port 3128
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
http_access allow all )