debian: iptables

iptables บนเดเบียน มี 2 วิธี (จริง ๆ มีหลายวิธีมาก)

  1. แบบใช้ iptables-save + iptables-restore
    รันคำสั่งเพื่อสร้างกฎต่าง ๆ
    # iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
    # iptables -A FORWARD -s 192.168.0.0/16 -j ACCEPT
    # iptables -A FORWARD -d 192.168.0.0/16 -j ACCEPT
    # iptables -A FORWARD -s ! 192.168.0.0/16 -j DROP

    เก็บกฎไว้ที่ไฟล์ /etc/iptables/rules
    # mkdir -p /etc/iptables
    # iptables-save > /etc/iptables

    นำกฎมาใช้ตอนเปิดเครื่องใหม่ ผ่าน /etc/network/interfaces
    # vi /etc/network/interfaces

    ...
    auto eth1
    iface eth1 inet static
        address 192.168.5.3
        netmask 255.255.255.0
        network 192.168.5.0
        broadcast 192.168.5.255
        gateway 192.168.5.1
        post-up /sbin/iptables-restore < /etc/iptables/rules
        pre-down /sbin/iptables-save > /etc/iptables/rules
    ...
    
  2. แบบใช้สคริปต์
    สร้างสคริปต์เก็บไว้คือ /usr/local/bin/d.iptables
    # vi /usr/local/bin/d.iptables
    #!/bin/sh
    INTERFACE=eth1
    INT_NET=192.168.0.0/16
    /sbin/iptables -F > /dev/null
    /sbin/iptables -t nat -A POSTROUTING -o $PPP_INT -j MASQUERADE
    /sbin/iptables -A FORWARD -s $INT_NET -j ACCEPT
    /sbin/iptables -A FORWARD -d $INT_NET -j ACCEPT
    /sbin/iptables -A FORWARD -s ! $INT_NET -j DROP
    

    # chmod 755 /usr/local/bin/d.iptables

    นำกฎมาใช้ตอนเปิดเครื่องใหม่ ผ่าน /etc/network/interfaces
    # mkdir -p /etc/iptables/
    # vi /etc/network/interfaces

    ...
    auto eth1
    iface eth1 inet static
        address 192.168.5.3
        netmask 255.255.255.0
        network 192.168.5.0
        broadcast 192.168.5.255
        gateway 192.168.5.1
        post-up /usr/local/bin/d.iptables
        pre-down /sbin/iptables-save > /etc/iptables/rules
    

    (เวลาจะปรับปรุงสคริปต์ เอาเนื้อความจาก /etc/iptables/rules มาใช้ในการปรับปรุงได้)

อ้างอิง - http://debianclub.org/node/156