我正在尝试使用 SNMP 在本地和远程监控一台机器。这是 snmpd.conf(Ubuntu 8.04.1):
# sec.name source comunity
com2sec readonly 1.2.3.4 nicenandtight
com2sec readonly 5.6.7.8 reallysafe
group MyROGroup v1 readonly
group MyROGroup v2c readonly
group MyROGroup usm readonly
view all included .1
view system included .iso.org.dod.internet.mgmt.mib-2.system
access MyROGroup "" any noauth exact all none none
syslocation my house
syscontact me <[email protected]>
exec .1.3.6.1.4.1.2021.7890.1 distro /usr/bin/distro
smuxpeer .1.3.6.1.4.1.674.10892.1
includeAllDisks 95%
1.2.3.4 是本地机器的 IP,一切都在本地运行。5.6.7.8 是远程机器,最初我只是尝试从远程机器使用 snmpwalk 接触 SNMPD;
snmpwalk -v 2c -c reallysafe 1.2.3.4
Timeout: No Response from 1.2.3.4
我已将其添加到 iptables 作为第一条规则;
-A INPUT -p udp -m udp --dport 161 -j ACCEPT
有了如此宽松的 iptables 规则,我不明白为什么我甚至无法接触那台 Uubuntu 机器上的 SNMPD。表格下方有更具体的规则,但由于我无法连接,所以我添加了上述规则。TCPDump 显示传入的 UDP 数据包。这里可能出了什么问题?
答案1
早上好。您的 snmpd(不是防火墙)是否配置为允许传入连接?请尝试:
nestat -nlpu|grep snmp
它是否在监听 127.0.0.1 或 0.0.0.0 配置 snmpd:
/etc/snmp/snmpd.conf
我不确定 8.0.4 ubuntu 但在 10+ 中你必须添加
agentAddress udp:0.0.0.0:161
修订版2
防火墙也必须在输出中打开
iptables -A OUTPUT -p udp -m udp --sport 161 -j ACCEPT
您尝试通过互联网或同一网络访问系统
答案2
这对我来说是个新问题,SNMPD 已在 /etc/hosts.allow 和 iptables 中受到限制。我只需将远程主机的 IP 添加到其中的列表中,现在一切正常。
非常感谢大家的帮助。你们帮助我尝试了所有可能的途径,直到只剩下一条路。不过出于好奇,TCP 转储位于网络链的哪里,在 iptables 之前还是之后?大概是之后,那么在数据包到达 iptables 之前是否可以查看它们?
答案3
是否tcpdump
还显示返回主机的 UDP 流量?(尝试类似的操作tcpdump host other.host.address and udp
)
如果是这样,也许你的 OUTPUT 防火墙规则阻止了 UDP 流量返回到另一台主机?你能发布一下 的输出吗iptables -nL
?
答案4
我也在 ubuntu10.4 中遇到了这个问题这个帖子对我帮助很大:
- 如果您只想从本地主机轮询,那就完成了。但是,如果您想通过网络使用 SNMP... 您需要编辑 /etc/default/snmpd 并更改仅将其绑定到 127.0.0.1 的行。
SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1'
SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid'