在作業系統中設定 snmpd 服務
2024年5月23日
ID 222969
透過 SNMP 與 KSMG 進行互動是使用作業系統的“snmpd“服務來實現的。snmpd 服務充當主代理,透過 SNMP 接收和處理來自監控系統和其他外部使用者的請求。KSMG 透過 UNIX 套接字透過 AgentX 協定作為子代理連線到 snmpd 服務。
建立用於存取資料的使用者帳戶
在建立帳戶之前,請停止 snmpd 服務。
為了確保使用身分驗證和加密透過 SNMPv3 存取資料的安全性,您需要在 snmpd 服務端建立使用者帳戶,其中包含以下資訊:
- 使用者名稱(區分大小寫)
- 身分驗證演算法(MD5 或 SHA,推薦 SHA)
- 身分驗證密碼
- 加密演算法(DES 或 AES,推薦 AES)
加密密碼
出於安全考慮,我們建議在 KSMG 叢集的每個節點上使用獨立的使用者帳戶。
您可以使用 net-snmp-create-v3-user 公用程式建立使用者帳戶。
若要使用 net-snmp-create-v3-user 公用程式建立使用者帳戶:
- 透過 SSH 連線到叢集節點以存取技術支援模式。
- 執行以下指令:
net-snmp-create-v3-user -ro -a <snmp_auth_algo> -x <snmp_priv_algo> <snmp_username>
互動請求身分驗證和加密密碼。
範例:
|
建立用於接收 SNMP 陷阱的使用者帳戶
若要透過驗證和加密透過 SNMPv3 接收 SNMP 陷阱,您需要在對應服務(通常是 snmptrapd 服務)的上下文中在監控系統一側建立帳戶。
該帳戶必須包含以下資訊:
- 使用者名稱
- 身分驗證演算法
- 身分驗證密碼
- 加密演算法
- 加密密碼
出於安全目的,您必須使用單獨的使用者帳戶來存取資料並接收 SNMP 陷阱。
我們建議建立獨立的使用者帳戶,用於從 KSMG 叢集的每個節點接收 SNMP 陷阱。
有關建立用於接收 SNMP 陷阱的使用者帳戶的說明,請參閱監控系統的檔案。
配置 snmpd 服務
snmpd 服務的設定儲存在 /etc/snmp/snmpd.conf 檔案中。您必須建立一個新的設定檔並按給定順序新增以下行。
要設定 snmpd 服務:
- 透過 SSH 連線到叢集節點以存取技術支援模式。
- 建立一個新的設定檔並為其設定存取權限:
mv -f /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.backup
touch /etc/snmp/snmpd.conf
chown root:root /etc/snmp/snmpd.conf
chmod 600 /etc/snmp/snmpd.conf
- 指定 snmpd 服務必須偵聽傳入請求的協定、網路介面位址和連接埠號。
- 如果您要監聽所有網路介面上的請求,請將以下行新增至設定檔:
# 透過 UDP 偵聽傳入的 SNMP 請求
agentAddress udp:161
- 如果只想監聽本機網路介面上的請求,例如監控系統安裝在同一台機器上,則新增下列行:
# 透過 UDP 偵聽傳入的 SNMP 請求
agentAddress udp:127.0.0.1:161
- 如果您要監聽所有網路介面上的請求,請將以下行新增至設定檔:
- 指定 UNIX 套接字的路徑和權限,snmpd 服務必須在該套接字上偵聽透過 AgentX 協定的子代理程式連線。為此,請將以下行新增至設定檔:
# 透過 UNIX 套接字監聽子代理連線
master agentx
agentXSocket unix:/var/run/agentx-master.socket
agentXPerms 770 770 kluser klusers
- 如有必要,您可以提供系統描述、系統位置以及管理員的聯絡地址。為此,請將以下行新增至設定檔:
# 系統基本資訊
sysDescr <system_description>
sysLocation <system_location>
sysContact <contact_address>
sysServices 72
- 指定您希望透過 SNMP 協定供監控系統使用的OID 樹的範圍。若要存取 KSMG 資料,請將以下行新增至設定檔:
# Kaspersky Secure Mail Gateway SNMP statistics
view monitoring included .1.3.6.1.4.1.23668.1735
- 您也可以指定 OID 樹的範圍,其中包含 snmpd 服務儲存的有關作業系統的資訊。此範圍將可供您的監控系統使用。
有關作業系統的資訊包括例如有關 CPU 和 RAM 使用情況、磁碟分割區上的可用空間、網路介面負載的資訊;已安裝軟體的清單;已開啟的網路連線清單;以及正在執行的處理程序的清單。該資訊的一部分可能是機密的。
- 如果您只想允許存取一般系統資訊以及有關RAM、CPU 和磁碟裝置使用情況的資訊,請將以下行新增至設定檔:
# SNMPv2-MIB - 基本系統訊息
view monitoring included .1.3.6.1.2.1.1
# HOST-RESOURCES-MIB - CPU、記憶體、檔案系統
view monitoring included .1.3.6.1.2.1.25.1
view monitoring included .1.3.6.1.2.1.25.2
view monitoring included .1.3.6.1.2.1.25.3
view monitoring included .1.3.6.1.2.1.25.5
# UCD-SNMP-MIB - 記憶體和 CPU 使用情況
view monitoring included .1.3.6.1.4.1.2021.4
view monitoring included .1.3.6.1.4.1.2021.10
view monitoring included .1.3.6.1.4.1.2021.11
# UCD-SNMP-DISKIO-MIB - 區塊裝置 I/O 統計資訊
view monitoring included .1.3.6.1.4.1.2021.13
# IF-MIB - 網路介面 I/O 統計訊息
view monitoring included .1.3.6.1.2.1.2
view monitoring included .1.3.6.1.2.1.31
- 如果要允許存取所有系統資訊,請將以下行新增到設定檔中:
# 允許存取整個 OID 樹
view monitoring included .1
- 如果您只想允許存取一般系統資訊以及有關RAM、CPU 和磁碟裝置使用情況的資訊,請將以下行新增至設定檔:
- 指定建立的使用者帳戶的存取模式和資訊範圍。為此,請將以下行新增至設定檔:
# SNMPv3 監控系統使用者的存取控制
rouser <snmp_username> priv -V monitoring
- 若要傳送 SNMP 陷阱,請指定監控系統的 IP 位址和用於接收陷阱的使用者憑證。為此,請將以下行新增至設定檔:
# 向監控系統傳送 SNMPv3 陷阱
trapsess -Ci -v3 -t0.1 -r1 -l authPriv -u <trap_username> -a <trap_auth_algo> -A "<trap_auth_pass>" -x <trap_priv_algo> -X "<trap_priv_pass>" udp:<IP_address>:162
將設定 snmpd 服務。
若要與多個監控系統整合,請為每個系統建立一個單獨的使用者帳戶,指定每個使用者帳戶的可用資訊範圍(“view“和“rouser“指令)並配置SNMP 陷阱的傳送(“trapsess“指令)。
snmpd 服務設定檔範例: # 透過 UDP 偵聽傳入的 SNMP 請求 agentAddress udp:161
# 透過 UNIX 套接字監聽子代理連線 master agentx agentXSocket unix:/var/run/agentx-master.socket agentXPerms 770 770 kluser klusers
# 系統基本資訊 sysDescr Example Mail Gateway Server, Node 05 sysLocation Example Datacenter, Ground floor, B23-U45 sysContact Mail system administrator <admin@example.com> sysServices 72
# Kaspersky Secure Mail Gateway SNMP statistics view monitoring included .1.3.6.1.4.1.23668.1735
# SNMPv2-MIB - 基本系統訊息 view monitoring included .1.3.6.1.2.1.1 # HOST-RESOURCES-MIB - CPU、記憶體、檔案系統 view monitoring included .1.3.6.1.2.1.25.1 view monitoring included .1.3.6.1.2.1.25.2 view monitoring included .1.3.6.1.2.1.25.3 view monitoring included .1.3.6.1.2.1.25.5 # UCD-SNMP-MIB - 記憶體和 CPU 使用情況 view monitoring included .1.3.6.1.4.1.2021.4 view monitoring included .1.3.6.1.4.1.2021.10 view monitoring included .1.3.6.1.4.1.2021.11 # UCD-SNMP-DISKIO-MIB - 區塊裝置 I/O 統計資訊 view monitoring included .1.3.6.1.4.1.2021.13 # IF-MIB - 網路介面 I/O 統計訊息 view monitoring included .1.3.6.1.2.1.2 view monitoring included .1.3.6.1.2.1.31
# SNMPv3 監控系統使用者的存取控制 rouser MonitoringUser priv -V monitoring
# 向監控系統傳送 SNMPv3 陷阱 trapsess -Ci -v3 -t0.1 -r1 -l authPriv -u TrapUser -a SHA -A "TrapAuthSecret" -x AES -X "TrapPrivSecret" udp:10.16.32.64:162 |
使用新設定啟動 snmpd 服務
若要套用新配置:
- 重啟 snmpd 服務:
systemctl restart snmpd
- 檢查 snmpd 服務的狀態:
systemctl status snmpd
狀態必須是
running
。 - 允許該服務在作業系統啟動時自動啟動:
systemctl enable snmpd
- 如果您在作業系統或網路裝置中使用防火牆,請新增規則以允許 SNMP 封包通過。
snmpd 服務已設定。
檢查 snmpd 服務的運作狀況
若要測試 snmpd 服務,請在 KSMG Web 介面中設定 SNMP 的使用,並使用“snmpwalk“公用程式請求 SNMP 資料。
若要取得 KSMG 提供的 SNMP 資料的範圍:
snmpwalk -v3 -l authPriv -u <snmp_username> -a <snmp_auth_algo> -A "<snmp_auth_pass>" -x <snmp_priv_algo> -X "<snmp_priv_pass>" <IP address> .1.3.6.1.4.1.23668.1735
範例: snmpwalk -v3 -l authPriv -u MonitoringUser -a SHA -A "MonitoringAuthSecret" -x AES -X "MonitoringPrivSecret" 127.0.0.1 .1.3.6.1.4.1.23668.1735 |