我试图让snmp陷阱发送到一个远程机器的仙人掌graphics。 这是我现在的,但它不工作:
链条input(政策DROP) ACCEPT udp - 0.0.0.0/0 xxxx udp dpt:161 ACCEPT udp - 0.0.0.0/0 xxxx udp dpt:162 ACCEPT udp - 0.0.0.0/0 xxxx udp spts:1023:2999
最后一行是某人的build议,但没有帮助。 我认为这会很简单,而且我做了大量的search引擎,但是我碰到了一堵墙。
感谢任何指针!
编辑:这是iptables -L -n -v的输出:
链INPUT(策略DROP 0包,0字节)
pkts字节目标人选退出源目的地
0 0 ACCEPT udp - * * 0.0.0.0/0 184.105.134.14 udp spts:1023:2999
0 0 ACCEPT udp - * * 0.0.0.0/0 184.105.135.57 udp spts:1023:2999
0 0 ACCEPT udp - * * 0.0.0.0/0 184.105.135.57 udp dpt:161
0 0 ACCEPT udp - * * 0.0.0.0/0 184.105.134.14 udp dpt:161
2678 195K fail2ban-SSH tcp - * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
2585 188K fail2ban-ssh tcp - * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
37790 5151K ACCEPT all - lo * 0.0.0.0/0 0.0.0.0/0
0 0全部拒绝 - * * 67.210.96.146 0.0.0.0/0 reject-with icmp-port-unreachable
2585 188K ACCEPT tcp - * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
27 8856 DROP udp - * * 0.0.0.0/0 0.0.0.0/0 udp dpt:67
0 0 DROP udp - * * 0.0.0.0/0 0.0.0.0/0 udp dpt:68
229K 77M ACCEPT all - * * 0.0.0.0/0 0.0.0.0/0状态RELATED,ESTABLISHED
0 0 ACCEPT tcp - * * 0.0.0.0/0 0.0.0.0/0 state new tcp dpt:20
0 0 ACCEPT tcp - * * 0.0.0.0/0 0.0.0.0/0 state new tcp dpt:21
5096 256K ACCEPT tcp - * * 0.0.0.0/0 0.0.0.0/0 state new tcp dpt:25
695 44360 ACCEPT tcp - * * 0.0.0.0/0 0.0.0.0/0 state new tcp dpt:53
125 6648 ACCEPT tcp - * * 0.0.0.0/0 0.0.0.0/0 state new tcp dpt:80
4 160 ACCEPT tcp - * * 0.0.0.0/0 0.0.0.0/0 state new tcp dpt:123
10 600 ACCEPT tcp - * * 0.0.0.0/0 0.0.0.0/0 state new tcp dpt:443
0 0 ACCEPT tcp - * * 0.0.0.0/0 0.0.0.0/0 state new tcp dpt:514
63 3780 ACCEPT tcp - * * 0.0.0.0/0 0.0.0.0/0 state new tcp dpt:110
0 0 ACCEPT tcp - * * 0.0.0.0/0 0.0.0.0/0 state new tcp dpt:143
0 0 ACCEPT tcp - * * 0.0.0.0/0 0.0.0.0/0 state new tcp dpt:220
0 0 ACCEPT tcp - * * 0.0.0.0/0 0.0.0.0/0 state new tcp dpt:993
0 0 ACCEPT udp - * * 0.0.0.0/0 0.0.0.0/0 state NEW udp dpt:143
0 0 ACCEPT udp - * * 0.0.0.0/0 0.0.0.0/0 state new udp dpt:220
0 0 ACCEPT udp - * * 0.0.0.0/0 0.0.0.0/0 state new udp dpt:993
3 144 ACCEPT tcp - * * 0.0.0.0/0 0.0.0.0/0 state new tcp dpt:995
50 3088 ACCEPT tcp - * * 0.0.0.0/0 0.0.0.0/0 state new tcp dpt:587
0 0 ACCEPT tcp - * * 0.0.0.0/0 0.0.0.0/0 state new tcp dpt:873
0 0 ACCEPT tcp - * * 0.0.0.0/0 0.0.0.0/0 state new tcp dpt:5038
1 40 ACCEPT tcp - * * 0.0.0.0/0 0.0.0.0/0 state new tcp dpts:32768:65535
0 0 ACCEPT udp - * * 0.0.0.0/0 0.0.0.0/0 state new udp dpt:20
0 0 ACCEPT udp - * * 0.0.0.0/0 0.0.0.0/0 state new udp dpt:21
20839 1442K ACCEPT udp - * * 0.0.0.0/0 0.0.0.0/0 state new udp dpt:53
86707 6588K ACCEPT udp - * * 0.0.0.0/0 0.0.0.0/0 state新udp dpt:123
1 48 ACCEPT tcp - * * 0.0.0.0/0 0.0.0.0/0 state new tcp dpt:10000
4244 619K ACCEPT icmp - * * 0.0.0.0/0 0.0.0.0/0状态新build
18386 1220K LOGDROP all - * * 0.0.0.0/0 0.0.0.0/0
链FORWARD(策略接受0包,0字节)
pkts字节目标人选退出源目的地
0 0全部接受 - * * 0.0.0.0/0 0.0.0.0/0状态RELATED,ESTABLISHED
链OUTPUT(策略ACCEPT 0包,0字节)
pkts字节目标人选退出源目的地
0 0 ACCEPT udp - * * 0.0.0.0/0 184.105.134.14 udp dpt:161
0 0 ACCEPT udp - * * 0.0.0.0/0 184.105.134.14 udp dpt:162
0 0 ACCEPT udp - * * 0.0.0.0/0 184.105.135.57 udp dpt:161
0 0 ACCEPT udp - * * 0.0.0.0/0 184.105.135.57 udp dpt:162
37790 5151K ACCEPT all - * lo 0.0.0.0/0 0.0.0.0/0
279K 82M ACCEPT all - * eth0 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
29306 2262K ACCEPT all - * eth0 0.0.0.0/0 0.0.0.0/0
链式LOGDROP(1参考)
pkts字节目标人选退出源目的地
18386 1220K全部login - * * 0.0.0.0/0 0.0.0.0/0 LOG标志0级别4前缀`\'* IPT * \'
18386 1220K DROP全部 - * * 0.0.0.0/0 0.0.0.0/0
链fail2ban-SSH(1引用)
pkts字节目标人选退出源目的地
2585 188K RETURN全部 - * * 0.0.0.0/0 0.0.0.0/0
链fail2ban-ssh(1引用)
pkts字节目标人选退出源目的地
2585 188K RETURN全部 - * * 0.0.0.0/0 0.0.0.0/0
据我了解你的问题,你想这台机器(我们与iptables斗争的那个)能够发送陷阱到远程服务器,对吧?
在这种情况下,有趣的部分是OUTPUT链,它是什么调节来自盒子的数据包的命运。
debugging第一步:closuresiptables并validation陷阱发送是否工作。 如果不是这个问题不是SNMP陷阱源的防火墙configuration。 不要继续执行第二步,直到你的iptables停止工作。
debugging第二步: grep -i /etc/services显示了各种与SNMP有关的东西的大量条目。 你可以阅读文档,找出你的软件在哪个端口上通信,或者是巧妙的。 假设后者在OUTPUT链configuration的末尾添加一行,将所有内容发送到LOGDROP链。 然后启动iptables,validation规则是否存在于OUTPUT链中,并发送一个陷阱。 然后看一下你的/ var / log / messages,你会看到LOGDROP生成的一个条目,它会告诉你,从本地机器到使用协议UDP的远程机器的目的地为XXX的数据包已经下降。 答对了!
debugging步骤三。 在debugging步骤三中确定的端口XXX(– --dport XXX )上,向OUTPUT链规则(在LOGDROP条目之上)添加一行,用于接受传出UDP数据包( -p udp )到远程服务器( -d <IP_ADDRESS> ) 。 validation( iptables -L -n -v ),规则在那里。 做一个陷阱被发送,并看到它安全到达目的地。 如果没有到达,您的软件可能会在多个端口上进行通信,但是随后会出现GOTO Debug步骤二。 在病态的情况下,您应该确定软件使用的大量(数十,数百个)端口,并且如果您的安全策略允许,您可以允许从该盒到远程的所有(或全部UDP)传出stream量机。
利润;)
我从INPUT规则中删除了特定的IP地址,并且向全世界打开了161和162个udp,现在就可以运行了。 所以这就告诉我,那个应该收到陷阱的人给了我他的机器的错误的IP地址。 D'哦! 谢谢大家,因为你试图用我没有考虑到的variables来解决问题。
丹尼尔