設定 SNMP 連線的加密
2024年7月3日
ID 222536
第三方應用程式可以存取透過 SNMP 傳送的資料或將該資料替換為自己的資料。為確保透過 SNMP 安全傳輸資料,建議設定 SNMP 連線加密。
若要配置 SNMP 連線加密:
- 新增以下行到 /etc/snmp/snmpd.conf 檔案:
view systemview included .1
- 獲取一個 EngineID,這是處理 SNMP Trap 所必需的。為此,請在叢集中的每台伺服器上執行以下命令:
snmpget -v2c -c<community name> 127.0.0.1 SNMP-FRAMEWORK-MIB::snmpEngineID.0 2>/dev/null | sed -ne 's/ //g; s/.*:/0x/p'
指定您組織中使用的社群名稱。如有必要,建立一個新社群。出於資料傳輸安全的目的,不建議使用預設的“public”社群。
在執行命令之前,請確保 snmpd 服務正在執行。
- 在叢集中的每個伺服器上設定 snmpd 服務。若要執行此操作:
- 停止 snmpd 服務。為此,執行以下指令:
systemctl stop snmpd
- 建立一個新使用者。為此,執行以下指令:
net-snmp-create-v3-user -ro -a SHA -A <password> -x <password> -X AES <username>
- 將以下字串新增到 /etc/snmp/snmpd.conf 設定檔中:
# accept KSMG statistics over unix socket
master agentx
agentXSocket unix:/var/
run/agentx-master.socket
agentXPerms 770 770 kluser klusers
# accept incoming SNMP requests over UDP
agentAddress udp:127.0.0.1:161
rouser <username> priv .1.3.6.1
# comment the following line if you don't need to forward SNMP traps over an SNMPv3 connection
trapsess -e <EngineID> -v3 -l authPriv -u <username> -a SHA -A <password> -x AES -X <password> udp:<IP address>:162
對於
<IP address>
,指示將被 snmptrapd 服務用於接受網路連線的 IP 位址。如果要在伺服器本機儲存 SNMP Trap,請輸入127.0.0.1
。 - 將以下字串新增到設定檔 /etc/snmp/snmpn。conf:
mibdirs +/opt/kaspersky/ksmg/share/snmp-mibs/
mibs all
如果指定目錄中不存在 snmp.conf 設定檔,請建立該檔案。
- 啟動 snmpd 服務。為此,執行以下指令:
systemctl start snmpd
- 檢查 SNMP 連線。為此,請執行以下指令:
snmpwalk -mALL -v3 -l authPriv -u <username> -a SHA -A <password> -x AES -X <password> udp:127.0.0.1:161 .1.3.6.1.4.1.23668
snmpget -v3 -l authPriv -u <username> -a SHA -A <password> -x AES -X <password> udp:127.0.0.1:161 KSMG-PRODUCTINFO-STATISTICS::applicationName.0
- 停止 snmpd 服務。為此,執行以下指令:
- 在想要接收 SNMP Trap 的伺服器上設定 snmptrapd 服務。若要執行此操作:
- 使用以下命令停止 snmptrapd 服務:
systemctl stop snmptrapd
- 將以下行新增到 /var/lib/net-snmp/snmptrapd.conf 檔案:
createUser -e <EngineID> <username> SHA "<password>" AES "<password>"
如果指定目錄中不存在 snmptrapd.conf 設定檔,請建立該檔案。
snmpd 和 snmptrapd 服務的使用者帳戶憑證(
<username>
和<password>
)必須相同。 - 將以下字串新增到 /etc/snmp/snmptrapd.conf 設定檔:
snmpTrapdAddr udp:<IP address>:162
authUser log <username> priv
disableAuthorization no
如果指定目錄中不存在 snmptrapd.conf 設定檔,請建立該檔案。
- 啟動 snmptrapd 服務。為此,執行以下指令:
systemctl start snmptrapd
確保 /var/lib/net-snmp/snmptrapd.conf 檔案中以純文字形式顯示的密碼已替換為混淆的字元序列。為此,您可能需要多次使用
systemctl restart snmptrapd
命令重新啟動 snmptrapd 服務。 - 新增 snmptrapd 服務以自動啟動。為此,執行以下指令:
systemctl enable snmptrapd
- 執行以下指令檢查 SNMP 連線:
snmptrap -e <EngineID> -v3 -l authPriv -u <username> -a SHA -A <password> -x AES -X <password> udp:<IP address>:162 0 KSMG-EVENTS-MIB::restartedBinary
確保以下字串出現在 /var/log/messages 檔案中:
<date and time> <hostname> snmptrapd[7503]: <date and time> localhost [UDP: [127.0.0.1]:26325->[<IP address>]:162]:#012DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (0) 0:00:00.00#011SNMPv2-MIB::snmpTrapOID.0 = OID: KSMG-EVENTS-MIB::restartedBinary
對於
<IP address>
,指示將被 snmptrapd 服務用於接受網路連線的 IP 位址。如果要在伺服器本機儲存 SNMP Trap,請輸入127.0.0.1
。 - 使用以下命令停止 snmptrapd 服務:
SNMP 連線加密現已設定。