CentOS/RHEL 7 上的 snmpd 配置
以 root 身份通过 ssh 登录 CentOS/RHEL 7 服务器。
如果尚未安装,请安装以下用于 snmpd 的软件包。
# yum install net-snmp-utils net-snmp-devel net-snmp
如果 snmpd 已配置并正在运行,请使用以下命令停止服务:
# systemctl stop snmpd.service
# net-snmp-create-v3-user -ro -A test123authPass -a SHA -X test123encPass -x AES user1 adding the following line to /var/lib/net-snmp/snmpd.conf: createUser user1 SHA "test123authPass" AES test123encPass adding the following line to /etc/snmp/snmpd.conf: rouser user1
注意:我们在这里有两个密码,身份验证密码和用于加密的私钥。
这应该添加一行 /etc/snmp/snmpd.conf 和 /var/lib/net-snmp/snmpd.conf 如控制台中所述。
因此,如果要进行任何更改,则需要删除这些行。
所以最好备份这两个conf文件。
# systemctl start snmpd.service
在本地使用 snmpwalk 进行测试:
# snmpwalk -u user1-A test123authPass -a SHA -X test123encPass -x AES -l authPriv 127.0.0.1 -v3
如果我们启用了防火墙;使用以下命令在 firewalld 级别添加启用 snmp 端口:
# firewall-cmd --zone=public --add-port=162/udp --permanent # firewall-cmd --zone=public --add-port=161/udp --permanent # firewall-cmd --reload
从远程机器使用 snmpwalk 进行测试:
# snmpwalk -u user1 -A test123authPass -a SHA -X test123encPass -x AES -l authPriv 192.168.22.21 -v3
对于 CentOS/RHEL 5 和 6
在 CentOS/RHEL 5 上没有 snmptrapd.conf 的配置文件。
根据手册页“Net-SNMP 通知接收器(陷阱守护程序)使用一个或者多个配置文件来控制其操作以及应如何处理传入的陷阱(和 INFORM 请求)。
此文件 (snmptrapd.conf) 可以位于一个多个位置,如 snmp_config(5) 手册页中所述.”
如果配置文件 /etc/snmp/snmptrapd.conf 不存在,可以手动创建。
在 CentOS/RHEL 6 上,这些配置文件存在。
snmp 在端口 161 上侦听, snmptrapd 在 162 上侦听。
snmp 配置:
要使 snmpd 侦听 localhost (127.0.0.1),请使用 echo 命令将以下行添加到 /etc/snmp/snmpd.conf,然后重新启动或者重新加载服务。
# echo "agentAddress 127.0.0.1" >> /etc/snmp/snmpd.conf
要使 snmpd 远程侦听,请使用 echo 命令将以下行添加到 /etc/snmp/snmpd.conf 和服务器的 IP 并重新启动服务。
# echo "agentAddress <IP-of -server>" >> /etc/snmp/snmpd.conf # /etc/init.d/snmpd restart
检查它是否在 localhost/IP 上侦听:
# netstat -ntulp | grep :161
snmptrapd 配置:
要使 snmptrapd 侦听 localhost (127.0.0.1),请使用 echo 命令将以下行添加到 /etc/snmp/snmptrapd.conf 并重新启动或者重新加载服务。
# echo "snmpTrapdAddr 127.0.0.1" >> /etc/snmp/snmptrapd.conf # /etc/init.d/snmptrapd restart
要使 snmptrapd 远程侦听,请使用 echo 命令将以下行添加到 /etc/snmp/snmptrapd.conf w 和服务器的 IP 并重新启动服务。
# echo "agentAddress <IP-of -server>" >> /etc/snmp/snmptrapd.conf
检查它是否正在侦听 locahost/IP。
# netstat -ntulp |grep :162
由于这些端口使用 UDP 进行连接,因此我们可以使用 nc 而不是使用 telnet 检查连接。
# nc -vz -u 127.0.0.1 161 Connection to 127.0.0.1 161 port [udp/snmp] succeeded!
# nc -vz -u 127.0.0.1 162 Connection to 127.0.0.1 162 port [udp/snmptrap] succeeded!