SNMP(Simple Network Management Protocol)是一种用于网络设备管理的协议,允许管理员收集和操作网络设备信息。它主要由三部分组成: - SNMP管理器(管理端) - SNMP代理(被管理设备) - MIB(管理信息库)
sudo apt update
sudo apt install snmp snmpd snmp-mibs-downloader
sudo yum install net-snmp net-snmp-utils
# 或
sudo dnf install net-snmp net-snmp-utils
主配置文件通常位于:
- Debian/Ubuntu: /etc/snmp/snmpd.conf
- RHEL/CentOS: /etc/snmp/snmpd.conf
# 修改默认团体名(community string)
rocommunity your_ro_community 127.0.0.1
rocommunity your_ro_community 192.168.1.0/24
# 设置读写权限(谨慎使用)
rwcommunity your_rw_community 127.0.0.1
# 监听所有IPv4接口
agentAddress udp:161
# 只监听特定接口
# agentAddress udp:161,udp6:161
# agentAddress udp:161,udp6:[::1]:161
sysLocation "Your Server Room"
sysContact "admin@example.com"
sysName "server1.example.com"
# 创建SNMPv3用户
sudo net-snmp-create-v3-user -ro -A authpass123 -a SHA -X privpass123 -x AES snmpuser
配置文件中添加:
rouser snmpuser authPriv
# 添加自定义监控项
extend .1.3.6.1.4.1.2021.7890.1 disk /bin/df
# 只允许特定IP访问
rocommunity your_ro_community 192.168.1.10
# Debian/Ubuntu
sudo systemctl start snmpd
sudo systemctl stop snmpd
sudo systemctl restart snmpd
# RHEL/CentOS
sudo systemctl start snmpd
sudo systemctl stop snmpd
sudo systemctl restart snmpd
sudo systemctl enable snmpd
sudo systemctl status snmpd
snmpwalk -v 2c -c your_ro_community localhost system
snmpwalk -v 2c -c your_ro_community server_ip system
snmpwalk -v 3 -u snmpuser -a SHA -A authpass123 -x AES -X privpass123 -l authPriv localhost system
# UFW (Ubuntu)
sudo ufw allow 161/udp
# firewalld (RHEL/CentOS)
sudo firewall-cmd --permanent --add-port=161/udp
sudo firewall-cmd --reload
# iptables
sudo iptables -A INPUT -p udp --dport 161 -j ACCEPT
# Debian/Ubuntu
journalctl -u snmpd
# RHEL/CentOS
tail -f /var/log/messages
sudo snmpd -f -Le -Dusm,usmConf,dump_packet
snmpd
用户有足够权限访问所需信息通过以上配置和管理步骤,您可以在Linux系统上建立安全可靠的SNMP监控服务。