首页 > linux相关 > iptables在防火墙应用方面的简单教程(第2版)

iptables在防火墙应用方面的简单教程(第2版)

2009年4月13日 发表评论 阅读评论

#首先全部允许数据包通过,防止默认丢包的话下面删除规则造成数据包全部丢掉
#允许所有进来的包
iptables -P INPUT ACCEPT
#允许所有出去的包
iptables -P OUTPUT ACCEPT

#初始化iptables 清空所有规则和组
#删除所有规则
iptables -F
#删除所有组
iptables -X

#这里才是正式开始配置iptables
#创建新的定义firewall_in
iptables -N firewall_in

#指定firewall_in组应用到INPUT chain,类似于应用组
iptables -A INPUT -j firewall_in

#指定firewall_in组应用到FORWARD chain,类似于应用组。
iptables -A FORWARD -j firewall_in

#这里开始增加规则,这里例子里规则都是添加到firewall_in组
#localhost数据包全部允许通过
iptables -A firewall_in -i lo -j ACCEPT

#所有已经建立连接的数据包全部通过
iptables -A firewall_in -m state –state RELATED,ESTABLISHED -j ACCEPT

#所有地址开放tcp 80端口
iptables -A firewall_in -p tcp -m tcp –dport 80 -j ACCEPT

#ping数据包允许每秒通过1个
iptables -A firewall_in -p icmp -m limit –limit 1/s –limit-burst 10 -j ACCEPT

#向10.1.1.0/255.255.255.0网段开放eth0网卡上面并且目的ip地址为10.1.1.1的22端口(这是一个功能示例:网卡、协议类型、源地址组、目的地址、目的端口都有体现)
iptables -A firewall_in -i eth0 -p tcp -m tcp -s 10.1.1.0/255.255.255.0 -d 10.1.1.1 –dport 22 -j ACCEPT

#下面这2行是ftp server的pasv模式开放示例,因为ftp的pasv模式端口是随机打开的所以需要另外设置ftp server的pasv端口范围为60000-60004
iptables -A firewall_in -p tcp -m tcp -s 10.1.1.2 –dport 21 -j ACCEPT
iptables -A firewall_in -p tcp -m tcp -s 10.1.1.2 –dport 60000:60004 -j ACCEPT

#丢弃不符合规则的其它tcp和udp数据包,如果处于调试的最好先不要用这2行,万一规则错了就麻烦了
iptables -A firewall_in -p tcp -m tcp -j DROP
iptables -A firewall_in -p udp -m udp -j DROP

#清除规则匹配数据包计数信息
iptables -Z

#禁止所有进来的包,iptables是从上往下匹配的,如果有符合的话就结束匹配了,这里丢弃和上面规则里面的丢弃相比更加彻底。
#同样如果处于调试的最好先不要用这2行,万一规则错了就麻烦了
iptables -P INPUT DROP

#应许所有出去的包,这个防火墙只是简单的进行入站包的过滤,如果需要出站包也要过滤话可以给OUTPUT chain单独一个组然后把参考上面把出站规则写到对应的组里
iptables -P OUTPUT ACCEPT

#最后保存iptables,这样重启后也能应用
/etc/init.d/iptables save

虽然iptables可以通过命令进行修改插入和删除操作,但是这里极不推荐新手这样来修改iptables,我推荐大家是把我上面的这样的命令(去掉注释)保存下来,一方面是做好记录,另一方面在下次修改的时候可以很方便的修改文本,然后把命令全部粘贴进命令行就行。

另外查看目前iptables的内容指令:
iptables -L -vn





分类: linux相关 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.