การติดตั้ง firewall

จาก Wiki Opensource

บันทึกนี้ปรับปรุงล่าสุดเมื่อวันที่ 22-02-2555

ดูแลโดย WIPAT


  • เป็นคำแนะนำเทคนิคการติดตั้ง firewall สำหรับ server ไม่ได้เพื่อสำหรับเป็น gateway


  1. เทคนิคการป้องกันผู้บุกรุก server แบบพื้นฐานง่ายๆ คือให้ปิดทุก service ก่อน แล้วจึงเปิดเท่าที่จำเป็น
  2. ลินุกซ์มีโปรแกรม iptables จัดการด้าน firewall อยู่แล้ว แต่คำสั่งใช้งานอาจยุ่งยากซับซ้อน
  3. โปรแกรม shorewall เป็นเครื่องมือช่วยจัดการให้ใช้ iptables สะดวกขึ้น ด้วยการใช้วิธี config ที่อ่านเข้าใจง่ายกว่า iptables
  4. ติดตั้งโปรแกรม shorewall ด้วยคำสั่ง
    sudo apt-get install shorewall
  5. สร้างแฟ้ม /etc/shorewall/zones ด้วยคำสั่ง
    sudo cp /usr/share/doc/shorewall/examples/one-interface/zones  /etc/shorewall
  6. สร้างแฟ้ม /etc/shorewall/interfaces ด้วยคำสั่ง
    sudo cp /usr/share/doc/shorewall/examples/one-interface/interfaces /etc/shorewall
  7. สร้างแฟ้ม /etc/shorewall/policy ด้วยคำสั่ง
    sudo cp /usr/share/doc/shorewall/examples/one-interface/policy /etc/shorewall
  8. สร้างแฟ้ม /etc/shorewall/rules ด้วยคำสั่ง
    sudo cp /usr/share/doc/shorewall/examples/one-interface/rules /etc/shorewall
  9. แก้ไขแฟ้ม /etc/shorewall/shorewall.conf ว่าเปิดการทำงานแล้ว
    ดูที่บรรทัดตัวแปรมีว่า STARTUP_ENABLED=Yes
    แก้ไขแฟ้ม /etc/default/shorewall ว่าเปิดการทำงานแล้ว
    ดูที่บรรทัดตัวแปรมีว่า startup=1
    เสร็จแล้วก็สั่งทำงานด้วยคำสั่ง
    sudo /etc/init.d/shorewall start
  10. ตัวอย่างการปรับแต่งอนุญาติให้เข้าถึง server  แก้ไขแฟ้ม /etc/shorewall/rules ดังนี้
    # HTTP,HTTPS
    ACCEPT net:10.168.5.0/24 fw tcp 80,443
    # PING
    ACCEPT all fw icmp 8
    # ssh
    ACCEPT net:10.168.5.0/24 fw tcp 22
    # TRACEROUTE
    ACCEPT all fw udp 33434:33443
    แก้ไขเสร็จแล้ว สั่งให้ทำงานใหม่ด้วยคำสั่ง sudo /etc/init.d/shorewall force-reload
  11. หากต้องการให้ shorewall หยุดทำงาน ให้ใช้คำสั่งว่า
    sudo /etc/init.d/shorewall stop
    ลองดูว่า shorewall หยุดทำงานจริงๆด้วยคำสั่ง   sudo iptables -nL  จะได้ผลข้อความประมาณว่า
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination        
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination        
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination
    แสดงว่า  shorewll หยุดทำงานสมบูรณ์แล้ว
    แต่หากยังหยุดไม่สมบูรณ์ ให้อาจต้องสั่งทำงานเพิ่มด้วยคำสั่งว่า
    sudo shorewall clear