标题:Linux的iptables常用配置范例(2) 出处:沧海一粟 时间:Sat, 02 Apr 2011 01:05:33 +0000 作者:jed 地址:http://www.dzhope.com/post/791/ 内容: iptables -F #清除所有规则 iptables -X #清除所有自定义规则 iptables -Z #各项计数归零 iptables -P INPUT DROP #将input链默认规则设置为丢弃 iptables -P OUTPUT DROP #将output链默认规则设置为丢弃 iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT #对运行在本机回环地址上的所有服务放行 iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT #把这条语句插在input链的最前面(第一条),并且对状态为ESTABLISHED,RELATED的连接放行。 iptables -A OUTPUT -p tcp –dport 80 -j ACCEPT #允许本机访问其他80服务 iptables -A OUTPUT -p udp –dport 53 -j ACCEPT #允许本机发送域名请求 iptables -A OUTPUT -p icmp -j ACCEPT #对本机出去的所有icmp协议放行,其实如果仅仅只是允许本机ping别的机器,更为严谨的做法是将此语句修改为: iptables -A OUTPUT -p icmp –icmp-type echo-request -j ACCEPT 对状态为ESTABLISHED和RELATED的包放行,简单的说,就是说对允许出去的包被对方主机收到后,对方主机回应进来的封包放行。这条语句很重 要,可以省去写很多iptables语句,尤其是在有ftp服务器的场合。你理解了这个意思,就应该知道,有了这条语句,第6条语句其实是可以省略的。 封网站: iptables -F iptables -X iptables -Z iptables -P OUTPUT DROP iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT iptables -A OUTPUT -p udp –dport 53 -j ACCEPT iptables -A OUTPUT -p tcp -s 192.168.1.10 -d www.qq.com -j DROP(禁止网站) iptables -A FORWARD -p tcp -s 192.168.1.11/24 -d www.qq.com -o eth0 -j DROP(禁止网段) iptables -A FORWARD -p tcp -s 192.168.1.12 -d 192.168.1.13 -o eth0 -j DROP(禁止IP) iptables -A OUTPUT -p tcp –dport 80 -j ACCEPT (这条写在禁止网站的下面) #安全规则类似windows防火墙 iptables -A INPUT -p tcp –dport 1:1024 -j DROP iptables -A INPUT -p udp –dport 1:1024 -j DROP 这两条可以防止nmap探测 iptables -A INPUT -p tcp –dport ** -j ACCEPT (要开放的端口) #允许的端口,相对协议改一下就可以了, (端口过虑) ============================================ iptables架设安全的vsftp服务器 在实际工作中,可用以下脚本架设一台很的内部FTP;当然也可以配合Wireshark理解 vsftpd的被动与主动的区别,以本机192.168.0.10为例,脚本如下: #!/bin/bash -F iptables -X iptables -Z iptables -t nat -F iptables -t nat -X iptables -t nat -Z #开启ip转发功能 echo “1″ > /proc/sys/net/ipv4/ip_forward #加载ftp需要的一些模块功能 modprobe ip_conntrack_ftp modprobe ip_conntrack-tftp modprobe ip_nat_ftp modprobe ip_nat_tftp #为了更安全,将OUTPUT默认策略定义为DROP iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD ACCEPT #开放本机的lo环回口,建议开放,不开放的会出现些莫名其妙的问题 iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT #下面的脚本是架设安全的vsftpd关健,后二句脚本是放行服务器向客户端作回应的和已建立连接的数据包,因被动FTP比较复杂,六次握手,所以这里采用状态来做 iptables -A INPUT -s 192.168.0.0/24 -p tcp –dport 21 -j ACCEPT iptables -A OUTPUT -d 192.168.0.0/24 -p tcp –sport 21 -j ACCEPT iptables -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT iptables -A OUTPUT -m state –state RELATED,ESTABLISHED -j ACCEPT ===================================== 内网web服务器 适用于中小型公司有内网服务器发布的IPT ===================================== [code] 防止攻击扫描 防止同步包洪水(Sync Flood) # iptables -A FORWARD -p tcp –syn -m limit –limit 1/s -j ACCEPT 也有人写作 #iptables -A INPUT -p tcp –syn -m limit –limit 1/s -j ACCEPT –limit 1/s 限制syn并发数每秒1次,可以根据自己的需要修改 防止各种端口扫描 # iptables -A FORWARD -p tcp –tcp-flags SYN,ACK,FIN,RST RST -m limit –limit 1/s -j ACCEPT Ping洪水攻击(Ping of Death) # iptables -A FORWARD -p icmp –icmp-type echo-request -m limit –limit 1/s -j ACCEPT # Null Scan(possibly)XiKc.om iptables -A INPUT -i eth0 -p tcp –tcp-flags ALL NONE -j DROP #ubuntu保存与开机加载 iptables-save > iptables.up.rules cp iptables.up.rules /etc/ vi /etc/network/interfaces iptables-save > iptables.up.rules cp iptables.up.rules /etc/ vi /etc/network/interfaces #在interfaces末尾加入 pre-up iptables-restore < /etc/iptables.up.rules pre-up iptables-restore < /etc/iptables.up.rules #也可以设置网卡断开的rules。 post-down iptables-restore < /etc/iptables.down.rules post-down iptables-restore < /etc/iptables.down.rules [code] #保存 service iptables save 强制所有的客户机访问192.168.1.100这个网站 iptables -t nat -I PREROUTING -i eth0 -p tcp –dport 80 -j DNAT –to-destination 192.168.1.100 (PREROUTING和DNAT一起使用,POSTROUTING和SNAT一起使用) 发布内网的web服务器192.168.1.10 iptables -t nat -I PREROUTING -p tcp –dport 80 -j DNAT –to-destination 192.168.1.10 端口映射到内网的3389 iptables -t nat -I PREROUTING -p tcp –dport 3389 -j DNAT –to-destination 192.168.1.10:3389 Generated by Bo-blog 2.1.1 Release