通常我们在配置iptables时,需要一条一条命令敲上去,其实我们可以所敲的命令会保存在/etc/sysconfig/iptables文件中,在系统启动时,/etc/init.d/iptable文件会自动调用/etc/sysconfig/iptables文件进行防火墙配置。

  1.  vi /etc/sysconfig/iptables    
  2. # Firewall configuration written by system-config-securitylevel    
  3. # Manual customization of this file is not recommended. *filter    
  4. :INPUT ACCEPT [0:0]    
  5. :FORWARD ACCEPT [0:0]    
  6. :OUTPUT ACCEPT [0:0]    
  7. :RH-Firewall-1-INPUT - [0:0]   
  8. //上面的内容定义了内建的INPUT、FORWARD、OUTPUT链,还创建了一个名为RH-Firewall
  9. //-1-INPUT 的新链。
  10. -A INPUT -j RH-Firewall-1-INPUT 
  11. //上面这一条规则将添加到INPUT链上,所有发往INPUT链上的数据包将跳转到RH-Firewall
  12. //-1-INPUT链上。
  13. -A FORWARD -j RH-Firewall-1-INPUT
  14. //上面这行功能与前行相同,,只是它将规则应用到FORWARD所有链,至此所有发往INPUT和
  15. //和FORWARD链的数据包都会转到RH-Firewall-1-INPUT上。
  16. -A RH-Firewall-1-INPUT -i lo -j ACCEPT
  17. //上面的规则将被添加到 RH-Firewall-1-INPUT链,它可以匹配所有的数据包,其中流入接口
  18. //是一个环回接口(lo),匹配这条规则的数据包将全部通过 。
  19. -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
  20. //上面的规则匹配所有的协议ICMP的数据包,该规则将允许icmp类型的数据包通过防火墙 。
  21. -A RH-Firewall-1-INPUT -p 50 -j ACCEPT
  22. //上面的规则允许协议类型为50的数据流通过,类型50的协议是一种加密的IPV6协议头。
  23. -A RH-Firewall-1-INPUT -p 51 -j ACCEPT 
  24. //上面的规则允许协议类型为51的数据流通过,类型51作为一种IPV6协议的验证头。
  25. -A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.12.13.14 -j drop
  26. //上面的规则拒绝目的地地址是224.12.13.14、目的端口是5353的UDP数据包通过。
  27. -A RH-Firewall-1-INPUT  -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
  28. //上面的规则允许目的地的端口是80的用于新建连接的TCP数据包通过,因为这条规则没有提到接口,所以,
  29. //它会允许所有新的外来连接到达端口80。
  30. -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
  31. //拒绝所有其他不能匹配上述任何一条规则的数据包,决绝数据包时,还会发出一条icmp-host-prohibited消息。
  32. COMMIT 

 记得每次修改都不要忘记执行service iptables reload!!!(否则修改不生效)

总结

IPtables有三张表,每个表都有内建的链

filter表:用于路由网络数据包,不会对数据包进行修改,是系统的默认表,如果没指定“-t”选项,iptables就是用该表。filter表有三个链。

●INPUT:网络数据包流向服务器

●OUTPUT:网络数据包从服务器流出

●FORWARD:网络数据包经服务器路由

nat表:用于地址转换的表,是一种将内部IP地址转换成外部IP地址的方法

mangle表:用于更改网络数据包的表,可以实现对数据包的修改,也可以给数据包附加一些外带数据

当数据包进入服务器时,Linux内核会查找对应表中的对应链,直到找到一条规则与数据包匹配。如果该规则的目标是ACCEPT,就会跳过其余的规则,而数据包会继续被发送。如果规则的目标是DROP数据包,该数据包会在其路径上被拦截,就不会再考虑其他规则,所以规则越详细的要写在靠前的位置

iptables命令参数表

iptables设置_iptables_03

iptables设置_iptables_04