一、編譯安裝net-snmp
tar -xzvf net-snmp-5.4.1.tar.gz//解壓 cd /net-snmp-5.4.4 ./configure --prefix=/usr/local/net-snmp --with-default-snmp-version="2" --with-sys-contact="[email protected]" --with-sys-location="china" --with-logfile="/var/log/snmpd.log" --with-persistent-directory="/var/net-snmp" #prefix:net-snmp將要安裝的路徑#enable-mfd-rewrites:允許用新的MFD重寫可用的mid模塊#with-default-snmp-version:默認的SNMP版本#with-sys-contact:可以配置該設備的聯繫人#with-sys-location:該設備的位置#with-logfile:日誌文件路徑#with-persistent-directory:不變數據存儲目錄 make && make install
二、snmpd.conf配置文件說明
參考官方說明http://www.net-snmp.org/docs/man/snmpd.conf.html
snmpd.conf用來配置代理和管理端通信時的參數
該文件中用到了4條指令:com2sec, group, view, access
1. com2sec
命令格式一:com2sec [-Cn context] sec.name source community
功能: map an SNMPv1 or SNMPv2c community string to a security name,即將實體(community)字符串映射爲安全的
名字,v1 和v2版本都是明文密碼,也就無所謂安全性了。v3中增加了安全性。
參數說明:-Cn context:可選的,在v3版本中使用
sec.name: 內部映射的名字,字符串,後面用到
community:實體字符串,外部使用的名字
source:可以訪問的ip地址範圍,默認值"default”,即任何ip都可以訪問。
也可以限制ip範圍,有兩種方式:IP/MASK和IP/BITS
IP/MASK:10.10.10.0/255.255.255.0
IP/BITS :10.10.10.0/24:只有ip地址在10.10.10.0
mask爲24個1,即255.255.255.0
命令格式二:com2sec6 [-Cn context] sec.name source community
針對ipv6,其他和com2sec相同
命令格式三:com2secunix [-Cn context] sec.name sockpath community
只限本地socket可以訪問
2. group
命令格式:group groupName securityModel sec.name
功能:將sec.name映射到一個group中,組中具有相同的存取權限。組中至少有兩個
sec.name,如果只有一個sec.name,也會被解釋爲兩個。即有兩個相同的
參數說明:groupName:組名
securityModel:v1、v2c、usm、tsm、ksm其一
3. view
命令格式:view viewName type oid[mask]
功能:定義一個view,表示整個OID樹的子樹,同一個子樹可以定義多個view
參數說明:viewName:view名字
type:有兩個值:include 和 exclude
oid:可以訪問的oid
[mask]:對oid的mask
例如:view all include 1.3.6.1.2.1.4 0xf0
0xf0:1111 0000,即訪問的oid的前4位必須是1.3.6.1,否則不能訪問,即
可以訪問1.3.6.1下所有的子oid
4. access
命令格式:access groupName context model level prefx read write notify
功能:設置訪問某一個view的存取權限
參數說明:groupName:控制存取權限的組名
context:v1和v2c版本,context必須設置爲""
model:v1、v2c、usm、tsm、ksm
最後3中是v3版本的授權模式,usm(User-Based Security
Model)是默認授權模式,tsm用於SSH or DTLS,ksm用於支持
Kerberos
level:可以去3種值:noauth、auth、priv
noauth:允許無權限訪問(v1,v2c使用)
auth:必須有權限才能訪問
priv:強制加密訪問
prefx:exact or prefix
read、write、notify:指明某一個view的權限是否可以GET*, SET*、
TRAP/INFORM,如果該view不能read,則置none