ในบทความนี้จะเกี่ยวกับการตั้งค่า snmpd บน ubuntu รวมถึงการเปิด port firewall ด้วยโปรแกรม Shorewall ดังนี้
วิธีการติดตั้ง snmpd, shorewall บน ubuntu 14.04 LTS
1) ทำการติดตั้งโปรแกรม snmpd และ shorewall ดังนี้
sudo apt-get install -y snmp snmpd shorewall
2) ทำการติดตั้ง mib เพิ่มเติมดังนี้
sudo apt-get -y install snmp-mibs-downloader
3) วิธีการทดสอบการว่าการใช้งาน snmp สามารถใช้งานหรือยังดังนี้
sudo snmpwalk -Os -c public -v 2c localhost HOST-RESOURCES-MIB::hrSystemProcesses.0
4) ทำการตั้งค่า community เพิ่มเติม (ไม่ควรใช้ public) โดยการแก้ไฟล์ดังนี้
sudo nano /etc/snmp/snmpd.conf
– เพิ่มข้อความดังนี้
...
# Listen for connections from the local system only
#agentAddress udp:127.0.0.1:161
...
view systemonly included .1.3.6.1.2.1.1
view systemonly included .1.3.6.1.2.1.25.1
view systemonly included .1
# Full access from the local $
#rocommunity public localhost
# Default access to basic sys$
#rocommunity public default -V systemonly
rocommunity happy default -V systemonly
...
5) ทำการ restart snmpd
sudo service snmpd restart
6) ทดสอบ snmpwalk อีกครั้งจะพบ Error ดังนี้
sudo snmpwalk -Os -c public -v 2c localhost HOST-RESOURCES-MIB::hrSystemProcesses.0
Timeout: No Response from localhost
7) ลองทดสอบอีกครั้งโดยเปลี่ยน community จาก public เป็น happy ดังนี้
sudo snmpwalk -Os -c happy -v 2c localhost HOST-RESOURCES-MIB::hrSystemProcesses.0
hrSystemProcesses.0 = Gauge32: 34
8) เราสามารถดูค่า mib ทั้งหมดได้ดังนี้ (เรื่องจากเราเปิด view .1 ซึ่งหมายถึงเปิดทั้งหมด โดยปกติ default จะไม่แสดงทั้งหมด)
sudo snmpwalk -Os -c happy -v 2c localhost
9) สำหรับ snmpd จะใช้ port 161 UDP ซึ่งจะต้องตั้งค่า shorewall ให้เสร็จก่อน โดยมีขั้นตอนการติดตั้งแบบรวดเร็วดังนี้
– ทำการสร้าง default config
sudo cp /usr/share/doc/shorewall/examples/one-interface/zones /etc/shorewall
sudo cp /usr/share/doc/shorewall/examples/one-interface/interfaces /etc/shorewall
sudo cp /usr/share/doc/shorewall/examples/one-interface/policy /etc/shorewall
sudo cp /usr/share/doc/shorewall/examples/one-interface/rules /etc/shorewall
– ทำการตั้ง startup shorewall อัตโนมัติ
sudo nano /etc/default/shorewall
– ทำการแก้ไข startup จาก 0 เป็น 1
# prevent startup with default configuration
# set the following varible to 1 in order to allow Shorewall to start
startup=1
...
– จากนั้นทำการแก้ไข rule เพื่อเพิ่ม port 161 udp ดังนี้
sudo nano /etc/shorewall/rules
– เพิ่มข้อความในส่วนท้ายไฟล์ดังนี้
...
# Permit all ICMP traffic FROM the firewall TO the net zone
ACCEPT $FW net icmp
#SSH
ACCEPT net:192.168.99.0/24 fw tcp 22
#SNMP
ACCEPT net:192.168.99.0/24 fw udp 161
– ทำการ restart shorewall ดังนี้
sudo service shorewall restart
8) เราสามารถทดสอบ query snmp จากเครื่องอื่น ได้ดังนี้ (คำสั่งนี้สั่งบนเครื่องอื่นที่ต้องการดึงค่า)
sudo snmpwalk -Os -c happy -v 2c 192.168.99.10
สามารถอ่านรายละเอียดการติดตั้งและตั้งค่า shorewall เพิ่มเติมได้ที่
http://opensource.cc.psu.ac.th/%E0%B8%95%E0%B8%B4%E0%B8%94%E0%B8%95%E0%B8%B1%E0%B9%89%E0%B8%87_shorewall_%E0%B8%9A%E0%B8%99_ubuntu