1. 程式人生 > >SNMP安全配置的兩種方法(也可同時兼顧配置兩種方法)

SNMP安全配置的兩種方法(也可同時兼顧配置兩種方法)

將SNMP代理程式暴露給網路上的所有主機是很危險的,為了防止其它主機訪問你的SNMP代理程式,我們需要在SNMP代理程式上加入身份驗證機制。SNMP支援不同的驗證機制,這取決於不同的SNMP協議版本,監控寶目前支援v2c和v3兩個版本,其中v2c版本的驗證機制比較簡單,它基於明文密碼和授權IP來進行身份驗證,而v3版本則通過使用者名稱和密碼的加密傳輸來實現身份驗證,我們建議使用v3,當然,只要按照以下的介紹進行配置,不論是v2c版本還是v3版本,都可以保證一定的安全性,你可以根據情況來選擇。

注意一點,SNMP協議版本和SNMP代理程式版本是兩回事,剛才說的v2c和v3是指SNMP協議的版本,而Net-SNMP是用來實現SNMP協議的程式套件,目前它的最新版本是剛才提到的5.4.2.1。

v2c

先來看如何配置v2c版本的SNMP代理,我們來建立snmpd的配置檔案,預設情況下它是不存在的,我們來建立它,如下:

suse10:~ # vi /usr/local/snmp/share/snmp/snmpd.conf

然後我們需要建立一個只讀帳號,也就是read-only community,在snmpd.conf中新增以下內容:

# rocommunity jiankongbao 60.195.249.83 自2012年2月21日起,此ip不再使用
rocommunity jiankongbao 60.195.252.107
rocommunity jiankongbao 60.195.252.110
# 如果您使用的是外掛 此處的ip 應該安裝採集器的機器的ip

注意:新增使用者時,請確保snmp服務沒有執行,否則無法新增。

注意,這裡的“rocommunity”表示這是一個只讀的訪問許可權,監控寶只可以從你的伺服器上獲取資訊,而不能對伺服器進行任何設定。

緊接著的“jiankongbao”相當於密碼,很多平臺喜歡使用“public”這個預設字串。這裡的“jiankongbao”只是一個例子,你可以設定其它字串作為密碼。

最右邊的“60.195.249.83,60.195.252.107,60.195.252.110”代表指定的監控點IP,這些IP地址是監控寶專用的監控點,這意味著只有監控寶有許可權來訪問你的SNMP代理程式。

所以,以上這段配置中,只有“jiankongbao”是需要你進行修改的,同時在監控寶上新增伺服器的時候,需要提供這個字串。

v3

當然,我們建議您使用v3版本來進行身份驗證。對於一些早期版本的Linux分發版,其內建的SNMP代理程式可能並不支援v3,所以我們建議您按照前邊介紹的方法,編譯和安裝最新的Net-Snmp。

v3支援另一種驗證方式,需要建立一個v3的帳號,我們同樣修改以下配置檔案:

suse10:~ # vi /usr/local/snmp/share/snmp/snmpd.conf

然後新增一個只讀帳號,如下:

rouser jiankongbao auth

注意:新增使用者時,請確保snmp服務沒有執行,否則無法新增。

可以看到,在v3中,“rouser”用於表示只讀帳號型別,隨後的“jiankongbao”是指定的使用者名稱,後邊的“auth”指明需要驗證。

接下來,我們還要新增“jiankongbao”這個使用者,這就是v3中的特殊機制,我們開啟以下配置檔案:

suse10:~ # vi /var/net-snmp/snmpd.conf

這個檔案會在snmpd啟動的時候被自動呼叫,我們需要在它裡邊新增建立使用者的指令,如下:

createUser jiankongbao MD5 mypassword

這行配置的意思是建立一個名為“jiankongbao”的使用者,密碼為“mypassword”,並且用MD5進行加密傳輸。這裡要提醒的是:

密碼至少要有8個位元組

這是SNMP協議的規定,如果小於8個位元組,通訊將無法進行。

值得注意的是,一旦snmpd啟動後,出於安全考慮,以上這行配置會被snmpd自動刪除,當然,snmpd會將這些配置以密文的形式記錄在其它檔案中,重新啟動snmpd是不需要再次新增這些配置的,除非你希望建立新的使用者。

以上配置中的使用者名稱、密碼和加密方式,在監控寶新增伺服器的時候需要新增。