Tag: shorewall

  • การติดตั้ง snmpd และการตั้งค่า shorewall บน Ubuntu 14.04 LTS

    ในบทความนี้จะเกี่ยวกับการตั้งค่า 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

  • Shorewall Blacklist

    • ใช้ได้กับ Shorewall 4.4.12 ขึ้นมา
    • แก้แฟ้ม /etc/shorewall/interfaces โดยเพิ่มความว่า blacklist ต่อท้ายของเดิม เป็น

    net eth0 detect tcpflags,logmartians,nosmurfs,blacklist

    • เพิ่มลิสต์ที่ต้องการบล็อคลงไปในแฟ้ม /etc/shorewall/blacklist
    • ตัวอย่างค้นหาเครื่องที่ต้องการบล็อคการเข้าถึงพอร์ต 80 และ 443

    grep -R phpmyadmin/scripts/setup.php /var/log/apache2|cut -d: -f2|awk '{ print $1 }'|sort -t'.' -n -k1,1 -k2,2 -k3,3 -k4,4|uniq

    • จากตัวอย่างในเครื่องเราไม่มี phpmyadmin แต่มีคนพยายามเข้าถึงตัวติดตั้ง phpmyadmin ฉะนั้นบล็อค IP พวกนี้ไว้ก่อน (บล็อคถาวรกรั่กๆ…)
    • เอา IP จากข้อที่แล้วมาใส่ในแฟ้ม /etc/shorewall/blacklist รูปแบบ

    #ADDRESS/SUBNET PROTOCOL PORT

    • เช่น

    93.115.210.90 tcp 80,443
    93.174.93.153 tcp 80,443
    94.23.58.185 tcp 80,443
    94.102.51.155 tcp 80,443
    103.247.21.60 tcp 80,443
    107.6.88.155 tcp 80,443
    109.163.232.218 tcp 80,443
    110.170.34.220 tcp 80,443
    111.90.168.5 tcp 80,443
    115.84.101.78 tcp 80,443
    115.238.101.45 tcp 80,443
    115.239.253.11 tcp 80,443
    116.93.105.112 tcp 80,443
    117.35.96.146 tcp 80,443
    118.140.120.26 tcp 80,443
    119.52.254.20 tcp 80,443
    119.57.51.154 tcp 80,443
    122.49.0.220 tcp 80,443
    123.125.148.79 tcp 80,443
    125.210.204.242 tcp 80,443

    • restart shorewall

    sudo shorewall restart

    • IP ที่ถูกแบล็คลิสต์ อาจหายไปจากสารบบ ทำให้ shorewall start ไม่ขึ้น ต้องลบไอพีดังกล่าวออกไปก่อนจึงจะ start ได้

    Compiling /etc/shorewall/blacklist...
    ERROR: Unknown Host (93.x4.93.153) : /etc/shorewall/blacklist (line 23)

    • จบ… ขอให้สนุกครับ

    ที่มา http://shorewall.net/manpages/shorewall-blacklist.html

    • คีย์เวิร์ดสำหรับแบน
    • /CFIDE/administrator/enter.cfm
    • /MyAdmin/scripts/setup.php
    • /myadmin/scripts/setup.php
    • /phpMyAdmin/scripts/setup.php
    • /pma/scripts/setup.php
    • /w00tw00t.at.blackhats.romanian.anti-sec:)
    • เป็นต้น