iptables_cacti_nagios

http://www.cnblogs.com/jerryxing/archive/2012/05/27/2520589.html

http://blog.c1gstudio.com/archives/1046

在第一条插入充许192.168.0.16(监控机)以udp协议访问snmpd默认161端口的规则

  1. /sbin/iptables -I INPUT -p udp -m udp -s 192.168.0.16 --dport 161 -j ACCEPT

保存一下,防止重启服务后失效

 

 http://dinglin.blogspot.com/2008/12/cacti-udp-pingiptables.html

 

在centos5.2使用cacti监控网络,默认防火墙开启的情况下,需要设置本机80端口的开放,udp161端口的开发以及icmp的相关链接的开发,否则cacti会收不到数据。

cacti使用udp ping,就是发送一个udp到对方的高端口,然后对方自动产生并返回一个icmp的包,cacti如果收到这个包,就会再次发送snmp的请求过去,对方收到后返回对应的数据。

用tcpdump看到的icmp的信息的,
tcpdump host 192.168.0.11 and 192.168.0.10

14:18:34.423454 IP demo2.1028 > demo.33439: UDP, length 27
14:18:34.424331 IP demo > demo2: ICMP demo udp port 33439 unreachable, length 63
14:18:36.985281 IP demo2.1028 > demo.33439: UDP, length 27
14:18:36.986240 IP demo > demo2: ICMP demo udp port 33439 unreachable, length 63
14:18:39.423301 arp who-has demo tell demo2
14:18:39.423324 arp reply demo is-at 00:0c:29:7b:19:84 (oui Unknown)

解决方法
命令行添加:
iptables -A INPUT -p udp -m udp --dport 161 -j ACCEPT
iptables -A INPUT -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dports 80 -j ACCEPT

或修改/etc/sysconfig/iptables
vi /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -p udp -m udp -m multiport --dports 631,161 -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -m multiport --dports 22,80 -j ACCEPT

具体情况请对号入座。
使用配置文件修改后重启iptables或restore
shell > service iptables restart

shell > iptables-restore

reference:http://linux.chinaunix.net/bbs/viewthread.php?tid=910326

 

 

http://yunwei.blog.51cto.com/381136/872162

 

 

通常我们在配置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命令参数表

 

 

本文出自 “继续奋斗” 博客,请务必保留此出处http://yunwei.blog.51cto.com/381136/872162

 

 

 

 

 

 

posted @ 2012-08-31 15:28  陳聽溪  阅读(294)  评论(0)    收藏  举报