我snmp
在 CentOS 上安装7.2
,如下所示:
yum -y install net-snmp net-snmp-utils
snmpd.conf
我对我的文件进行了备份:
cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.orig
然后我清除了文本,如下:
echo "" > /etc/snmp/snmpd.conf
并添加snmpd.conf
以下内容:
rocommunity "#random$" monitoring_server_ip
是monitoring_server_ip
允许连接到该 snmpd 服务器的服务器。
重新启动 snmpd
/bin/systemctl restart snmpd
当我在 CentOS7.2
服务器上运行 snmpwalk 时
snmpwalk -v2c -c public localhost system
然后我得到:
超时:本地主机没有响应
这是准确的,因为只有一个 IP 地址可以做到这一点,正如我们之前所定义的。
ps
显示snmp
正在运行
/usr/sbin/snmpd -LS0-6d -f
这是我第一次玩snmp
,非常感谢任何帮助!
的输出iptables -L -n | grep udp
显示:
...
Chain IN_public_allow (1 references)
94 target prot opt source destination
95 ACCEPT udp -- XX.XXX.XXX.XXX 0.0.0.0/0 udp dpt:161 ctstate NEW
...
所有的目的地都太0.0.0.0/0
?
Netstat 显示以下端口:
netstat -ulnp | grep 161
udp 0 0 0.0.0.0:161 0.0.0.0:* 19062/snmpd
还有这个:
netstat -lu | grep snmp
udp 0 0 0.0.0.0:snmp 0.0.0.0:*
另外,在我的防火墙中,添加只有一个 IP 地址可以访问我的 snmp 服务器:
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="XX.XXX.XXX.XX" port protocol="udp" port="161" accept"
答案1
com2sec 安全模型不再是强制性的。
其中snmpd.conf
应该足够做:
rocommunity "#randomsometinh$" 2.2.2.2
其中2.2.2.2是允许连接的监控IP地址。我通常更喜欢分配单个 IP,而不是授予对整个 /24 的访问权限。因此,此配置意味着 SNMP 服务将应答来自 2.2.2.2 地址的请求。
出于安全原因,您可能还必须注释将 snmpd 守护程序限制为本地主机的行。
# agentAddress udp:127.0.0.1:161
更改配置文件后,执行以下操作:
service restart snmpd
确认是否在本地监听:
$ netstat -lu | grep snmp
udp 0 0 *:snmp *:*
并从允许的网络/IP 中遍历整个 MIB 树。假设2.2.2.1是被监控的机器:
snmpwalk -c "#randomsometinh$" -v2c 2.2.2.1
或要求系统运行时间 OID:
snmpwalk -c "#randomsometinh$" -v2c 2.2.2.1 1.3.6.1.2.1.1.3
snmpget -c #randomsometinh$ -v2c 2.2.2.1 1.3.6.1.2.1.1.3.0
snmpget 必须为特定对象实例/索引指定 0。
PS:2.2.2.2是监控服务器,2.2.2.1是要监控的snmpd服务器/主机。