在Linux系統上安裝和配置Net-SNMP


Net-SNMP是一個開源軟體套件,它實現了簡單網路管理協議 (SNMP) 用於管理網路裝置。它提供了一系列工具,使網路管理員能夠更有效地監控和管理他們的系統。在本文中,我們將探討如何在Linux系統上安裝和配置Net-SNMP。

前提條件

在開始之前,請確保您可以訪問具有root許可權的Linux系統。此外,確保系統具有活動的網際網路連線以下載必要的軟體包。

安裝Net-SNMP

要在Linux系統上安裝Net-SNMP,您可以使用發行版的包管理器。例如,如果您使用的是Ubuntu,可以使用以下命令安裝Net-SNMP:

sudo apt-get update
sudo apt-get install snmpd snmp-mibs-downloader

上述命令將安裝SNMP守護程序 (snmpd) 和SNMP MIB下載器 (snmp-mibs-downloader) 包。守護程序負責監聽SNMP請求並提供必要的資訊。MIB下載器下載SNMP代理正常工作所需的管理資訊庫 (MIB) 檔案。

配置Net-SNMP

安裝Net-SNMP後,您需要根據您的需求對其進行配置。SNMP守護程序的配置檔案位於 /etc/snmp/snmpd.conf。

使用您喜歡的文字編輯器開啟配置檔案。這是一個您可以用作起點的示例配置檔案:

com2sec readonly default public
group MyROGroup v1 readonly
group MyROGroup v2c readonly
group MyROGroup usm readonly
view all included .1
access MyROGroup "" any noauth exact all none none
sysLocation Unknown (edit /etc/snmp/snmpd.conf)
sysContact Root <root@localhost> (configure /etc/snmp/snmp.local.conf)

上面的配置檔案包含多個指令,用於定義SNMP設定。讓我們逐一瞭解它們:

  • com2sec − 此指令定義SNMP請求使用的社群字串。在上面的示例中,社群字串設定為'public'。您可以將其更改為更安全的數值,以防止未經授權訪問您的系統。

  • group − 此指令定義不同SNMP組的訪問許可權。在上面的示例中,我們定義了一個名為MyROGroup的組,該組具有隻讀訪問許可權。

  • view − 此指令指定SNMP代理可以檢視的物件。在上面的示例中,我們允許訪問所有物件(.1)。

  • access − 此指令指定不同SNMP組的訪問控制。在上面的示例中,我們允許MyROGroup組只讀訪問。

儲存對配置檔案的更改,並使用以下命令重新啟動SNMP守護程序:

sudo systemctl restart snmpd

測試Net-SNMP

要測試Net-SNMP安裝,您可以使用SNMP命令列工具。SNMP工具隨Net-SNMP包一起安裝。

最常用的工具是snmpwalk命令,它可以用來檢索SNMP物件的數值。這是一個檢索系統描述的示例命令:

snmpwalk -v2c -c public localhost system

上述命令將使用SNMP版本2c和'public'社群字串檢索本地系統的系統描述。

您還可以使用snmpget命令來檢索特定SNMP物件的數值。這是一個檢索系統執行時間的示例命令:

snmpget -v2c -c public

以下是檢索系統執行時間的完整命令:

snmpget -v2c -c public localhost 1.3.6.1.2.1.1.3.0

上述命令將使用SNMP版本2c和'public'社群字串檢索本地系統的系統執行時間物件 (1.3.6.1.2.1.1.3.0) 的數值。

Net-SNMP故障排除

如果您遇到任何與Net-SNMP相關的問題,可以使用以下工具進行故障排除:

  • snmpd − 這是SNMP守護程序,可用於檢查守護程序是否正常執行。您可以使用以下命令檢查守護程序的狀態:

sudo systemctl status snmpd

如果守護程序未執行,可以使用以下命令啟動它:

sudo systemctl start snmpd
  • snmpwalk − 此命令可用於檢查SNMP代理是否正在響應請求。您可以使用以下命令檢索系統描述:

snmpwalk -v2c -c public localhost system

如果您沒有收到任何輸出,則SNMP代理可能無法正常執行。

  • tcpdump − 此命令可用於捕獲SNMP流量並分析其是否存在任何問題。您可以使用以下命令在埠161上捕獲SNMP流量:

sudo tcpdump -i eth0 -s 0 -w snmp.pcap udp port 161

上述命令將捕獲eth0介面上的所有SNMP流量,並將其儲存到名為snmp.pcap的檔案中。然後,您可以使用Wireshark等工具分析捕獲的流量。

配置SNMP社群字串

社群字串用於驗證SNMP請求和響應。Net-SNMP的預設社群字串是'public',這是一個眾所周知的社群字串,應該更改以確保SNMP配置的安全性。

要配置SNMP社群字串,請開啟位於 /etc/snmp/snmpd.conf 的SNMP守護程序配置檔案,並新增以下幾行:

rocommunity <community_string> <IP_address>

將<community_string>替換為您希望使用的新的社群字串,並將<IP_address>替換為您想要授予只讀訪問許可權的主機的IP地址。您可以新增多行,其中包含不同的社群字串和IP地址,以向多個主機提供訪問許可權。

例如,要將社群字串設定為'mycommunity'並允許訪問IP地址為192.168.1.10的主機,請將以下行新增到配置檔案:

rocommunity mycommunity 192.168.1.10

更新配置檔案後,重新啟動SNMP守護程序以使更改生效:

sudo systemctl restart snmpd

配置SNMP陷阱

SNMP陷阱用於將網路裝置上發生的重要的事件或條件通知SNMP管理器。例如,當網路裝置上的磁碟幾乎已滿或硬體元件發生故障時,可以傳送陷阱。

要配置SNMP陷阱,請開啟SNMP守護程序配置檔案並新增以下幾行:

trap2sink <IP_address> <community_string>

將<IP_address>替換為將接收陷阱的SNMP管理器的IP地址,並將<community_string>替換為SNMP管理器的社群字串。

例如,要使用社群字串'mycommunity'將陷阱傳送到IP地址為192.168.1.100的SNMP管理器,請將以下行新增到配置檔案:

trap2sink 192.168.1.100 mycommunity

您可以新增多行,其中包含不同的IP地址和社群字串,以將陷阱傳送到多個SNMP管理器。

更新配置檔案後,重新啟動SNMP守護程序以使更改生效:

sudo systemctl restart snmpd

將SNMP與Nagios一起使用

Nagios是一個流行的開源監控工具,可用於監控網路裝置、伺服器和應用程式。Nagios可以使用SNMP來監控和管理支援SNMP的裝置。

要將SNMP與Nagios一起使用,您需要安裝Nagios SNMP外掛。您可以使用以下命令安裝外掛:

sudo apt-get install nagios-plugins-contrib

安裝外掛後,您可以使用check_snmp外掛監控網路裝置上的SNMP物件。例如,要監控IP地址為192.168.1.1的裝置的系統執行時間,並使用社群字串'mycommunity',您可以使用以下命令:

/usr/lib/nagios/plugins/check_snmp -H 192.168.1.1 -C mycommunity -o sysUpTime.0

上述命令將使用SNMP和社群字串'mycommunity'檢索IP地址為192.168.1.1的裝置的系統執行時間物件 (1.3.6.1.2.1.1.3.0)。

您可以使用check_snmp外掛監控網路裝置上的任何SNMP物件。只需將命令中的物件識別符號 (OID) 替換為您想要監控的物件的OID。

結論

總之,Net-SNMP是一個功能強大且靈活的SNMP管理工具,只需幾個步驟即可在Linux系統上安裝和配置。按照本文中概述的步驟,您可以開始使用Net-SNMP,並更有效地開始監控和管理您的網路裝置。請記住始終保護您的SNMP配置並使用強大的社群字串來防止未經授權訪問您的系統。

更新於:2023年3月3日

3K+ 次瀏覽

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告