
SNMP Monitoring: ใช้ SNMP v3 ดึงข้อมูล Switch Router อย่างปลอดภัย
SNMP (Simple Network Management Protocol) เป็น protocol มาตรฐานสำหรับ monitor และจัดการอุปกรณ์ network ทุกอุปกรณ์ที่มี managed (switches, routers, firewalls, servers, printers, UPS) รองรับ SNMP ให้ดึงข้อมูลเช่น CPU utilization, memory usage, interface traffic, interface errors, uptime และอีกมากมาย
ปัญหาคือหลายองค์กรยังใช้ SNMP v1/v2c ที่ส่ง community string เป็น plaintext ไม่มี encryption ใครก็ดักจับ community string ได้ แล้วเข้าถึงข้อมูลทั้งหมดของอุปกรณ์ หรือแม้แต่เปลี่ยนแปลง configuration ได้ SNMP v3 แก้ปัญหานี้ด้วย authentication และ encryption แต่ตั้งค่ายากกว่า v2c มาก บทความนี้จะสอนวิธีตั้งค่า SNMP v3 อย่างปลอดภัย
SNMP Versions เปรียบเทียบ
| คุณสมบัติ | SNMP v1 | SNMP v2c | SNMP v3 |
|---|---|---|---|
| Authentication | Community String (plaintext) | Community String (plaintext) | Username + Password (hashed) |
| Encryption | ไม่มี | ไม่มี | AES-128/256, DES |
| Access Control | Community-based | Community-based | User-based (USM) + View-based (VACM) |
| Security Level | ต่ำมาก | ต่ำ | สูง |
| Get Bulk | ไม่มี | มี | มี |
| แนะนำใช้ | ไม่ (deprecated) | Lab เท่านั้น | Production ทุกกรณี |
SNMP v3 Security Levels
noAuthNoPriv
ใช้ username อย่างเดียว ไม่มี authentication hash ไม่มี encryption ปลอดภัยกว่า v2c เล็กน้อย (ไม่มี community string ที่ใช้ร่วมกัน) แต่ไม่แนะนำสำหรับ production
authNoPriv
ใช้ username + authentication (MD5 หรือ SHA) ยืนยันตัวตนของ manager ว่าเป็นผู้ที่ได้รับอนุญาต แต่ข้อมูลไม่ถูก encrypt ใครก็ดักดูข้อมูลได้ เหมาะเมื่อ network เป็น trusted แต่ต้องการ authentication
authPriv (แนะนำ)
ใช้ username + authentication + encryption ทั้ง authenticate ตัวตนและ encrypt ข้อมูล แนะนำ SHA สำหรับ authentication และ AES-128/256 สำหรับ encryption เป็น security level ที่แนะนำสำหรับ production ทุกกรณี
ตั้งค่า SNMP v3 บน Cisco Switch/Router
สร้าง SNMP v3 Group และ User
สร้าง SNMP view กำหนดว่าจะให้เข้าถึง OID ไหนบ้าง (snmp-server view MONVIEW iso included) สร้าง SNMP group กำหนด security level (snmp-server group MONGROUP v3 priv read MONVIEW) สร้าง SNMP user กำหนด authentication และ encryption (snmp-server user monuser MONGROUP v3 auth sha AuthPass123 priv aes 128 PrivPass456)
ตั้ง SNMP Trap Receiver
กำหนด trap receiver ให้ส่ง SNMP traps ไปยัง monitoring server (snmp-server host 10.10.10.100 version 3 priv monuser) เปิด traps ที่ต้องการ (snmp-server enable traps snmp linkdown linkup, snmp-server enable traps config)
ตั้งค่า SNMP v3 บน FortiGate Firewall
ผ่าน GUI
ไปที่ System → SNMP เปิด SNMP v3 สร้าง SNMPv3 user กำหนด security level (authPriv) เลือก authentication protocol (SHA) และ privacy protocol (AES) กำหนด notify hosts (SNMP trap receiver)
OIDs ที่ใช้บ่อย
| ข้อมูล | OID | MIB |
|---|---|---|
| System Uptime | 1.3.6.1.2.1.1.3.0 | SNMPv2-MIB::sysUpTime |
| System Name | 1.3.6.1.2.1.1.5.0 | SNMPv2-MIB::sysName |
| Interface Description | 1.3.6.1.2.1.2.2.1.2 | IF-MIB::ifDescr |
| Interface Status | 1.3.6.1.2.1.2.2.1.8 | IF-MIB::ifOperStatus |
| Interface In Octets | 1.3.6.1.2.1.2.2.1.10 | IF-MIB::ifInOctets |
| Interface Out Octets | 1.3.6.1.2.1.2.2.1.16 | IF-MIB::ifOutOctets |
| CPU Utilization (Cisco) | 1.3.6.1.4.1.9.9.109.1.1.1.1.6 | CISCO-PROCESS-MIB |
| Memory Used (Cisco) | 1.3.6.1.4.1.9.9.48.1.1.1.5 | CISCO-MEMORY-POOL-MIB |
ทดสอบ SNMP v3 ด้วย snmpwalk
Linux Command
ใช้ snmpwalk ทดสอบว่า SNMP v3 ทำงาน ติดตั้ง snmp tools บน Linux (apt install snmp) รัน snmpwalk -v3 -u monuser -l authPriv -a SHA -A AuthPass123 -x AES -X PrivPass456 10.10.10.1 system ถ้าได้ผลลัพธ์ sysDescr, sysUpTime, sysName แสดงว่า SNMP v3 ทำงานถูกต้อง
SNMP Best Practices
ใช้ SNMP v3 เท่านั้น
ปิด SNMP v1/v2c บนอุปกรณ์ทุกตัว ใช้ SNMP v3 authPriv เท่านั้น ใช้ SHA (ไม่ใช่ MD5) สำหรับ authentication ใช้ AES (ไม่ใช่ DES) สำหรับ encryption ใช้ password ที่แข็งแกร่ง (12+ characters, ผสมตัวเลข ตัวอักษร สัญลักษณ์)
จำกัด Access
ใช้ ACL จำกัดว่า IP ไหนที่สามารถ query SNMP ได้ อนุญาตเฉพาะ monitoring server IPs ปิด SNMP write access (ใช้แค่ read-only) ถ้าไม่จำเป็น กำหนด SNMP view ให้เข้าถึงเฉพาะ OIDs ที่ต้องการ
Monitor SNMP Traffic
Monitor SNMP traffic ว่ามี query จาก IP ที่ไม่ได้รับอนุญาตหรือไม่ ตรวจสอบ SNMP logs บน monitoring server ตั้ง alerts สำหรับ SNMP authentication failures
ทิ้งท้าย: SNMP v3 คือ Must-Have
SNMP เป็นเครื่องมือพื้นฐานที่ทุก network ต้องใช้ แต่ต้องใช้อย่างปลอดภัย ย้ายจาก v2c มา v3 ใช้ authPriv ตั้ง ACL จำกัด access ใช้ password ที่แข็งแกร่ง ปิด v1/v2c ทุกอุปกรณ์ แค่นี้ SNMP ก็ปลอดภัยและมีประโยชน์อย่างยิ่ง
อ่านเพิ่มเติมเกี่ยวกับ Network Monitoring Tools และ Log Management ที่ siamlancard.com หรือจาก icafeforex.com และ siam2r.com