OSX 内建了 Net-SNMP 服务,不过默认是不启动的,服务定义档为:
/System/Library/LaunchDaemons/org.net-snmp.snmpd.plist
SNMP 服务会用到 UDP Port 161,因此启动这个服务需要 root 权限。
在实作之前,先确定好目标:
1. 使用 SNMP v3 方式存取
2. 不做进阶设定
首先要先创个 SNMP v3 的帐号
sudo net-snmp-create-v3-user -rw \
-a SHA -A abcd1234 \
-x AES -X 1234abcd \
user
应该会看到这个讯息
adding the following line to /var/db/net-snmp/snmpd.conf:
createUser user SHA abcd1234 AES 1234abcd
adding the following line to /usr/share/snmp/snmpd.conf:
rwuser user
这个指令的意思,是创一个名为 user 的可读写帐号,
密码为 abcd1234,检查密码时把密码用 SHA 摘要算法处理,
登入成功后使用 AES 加密资料再传输,密钥使用 1234abcd。
这个动作必须在 SNMP 服务没启动的状态才能做喔!
接着要启动 SNMP 服务
sudo launchctl load /System/Library/LaunchDaemons/org.net-snmp.snmpd.plist
然后测试一下存取 SNMP 的结果
snmpwalk -v 3 -l authPriv -u user \
-a SHA -A abcd1234 \
-x AES -X 1234abcd \
localhost system
应该会看到这个讯息
SNMPv2-MIB::sysDescr.0 = STRING: Darwin ... 14.5.0 Darwin Kernel Version 14.5.0: Thu Jun 16 19:58:21 PDT 2016; root:xnu-2782.50.4~1/RELEASE_X86_64 x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.255
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (4921) 0:00:49.21
SNMPv2-MIB::sysContact.0 = STRING: [email protected]/*