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
7.2
CentOS 서버에서 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 주소입니다. 나는 일반적으로 전체 /24에 대한 액세스 권한을 부여하는 것보다 단일 IP를 할당하는 것을 선호합니다. 따라서 이 구성은 SNMP 서비스가 2.2.2.2 주소의 요청에 응답한다는 것을 의미합니다.
보안상의 이유로 snmpd 데몬을 localhost로 제한하는 줄을 주석 처리해야 할 수도 있습니다.
# 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을 지정해야 합니다.
추신: 2.2.2.2는 모니터링 서버이고, 2.2.2.1은 모니터링할 snmpd 서버/호스트입니다.