Share Internet

การเซ็ตอัพ
สมมุติฐาน
เครื่องเซิร์ฟเวอร์ที่จะใช้แชร์อินเตอร์เน็ตนี้มีเน็ตเวิร์กการ์ด 2 ใบ ใบแรกคือ eth0 สมมุติว่ามีไอพี 172.16.0.1 และมี subnetmask 255.255.252.0 ต่อเข้ากับอุปกรณ์ network switch ส่วนเน็ตเวิร์กการ์ดใบที่ 2 คือ eth1 มีไอพี 192.168.1.100 สมมุติต่อเข้ากับอุปกรณ์ ADSL router หรืออุปกรณ์ที่จะออกอินเตอร์เน็ตอื่น เครื่องอื่นที่จะออกอินเตอร์เน็ตจะมีไอพีอยู่ในวง 172.16.0.0 และต่างต่อเข้ากับ network switch เช่นเดียวกับ eth0 และทำการกำหนด subnetmask เป็น 255.255.252.0 และกำหนด gateway เป็น 172.16.0.1 หรือจะกำหนดให้เครื่องเซิร์ฟเวอร์นี้ทำตัวเป็น DHCP Server เพื่อแจกไอพีให้เครื่องอื่นๆ ก็ได้ (แต่อย่าลืมแก้คอนฟิกไฟล์ /etc/dhcp3/dhcpd.conf ในส่วนของ gateway คือบรรทัด option routers 172.16.3.254; ให้เป็น option routers 172.16.0.1; ด้วย และอย่าลืมรันโปรแกรม dhcp server ใหม่ด้วย) เมื่อเป็นเช่นนี้แล้ว เราสามารถคอนฟิกการแชร์อินเตอร์เน็ตได้ตามขั้นตอนต่อไปนี้
    การแชร์อินเทอร์เน็ตที่จะทำต่อไปนี้จะใช้วิธี Masquerading ผ่านทางโปรแกรม ufw ดังนี้

    1. แก้ไขไฟล์ /etc/default/ufw โดยแก้ไขให้มีข้อความดังนี้

      DEFAULT_FORWARD_POLICY="ACCEPT"

      จากนั้นแก้ไขไฟล์ /etc/ufw/sysctl.conf โดยลบเครื่องหมาย # ออกที่ข้อความนี้

      net.ipv4.ip_forward=1

    
    2. แก้ไขไฟล์ /etc/ufw/before.rules โดยเพิ่มข้อมูลลงไปบนส่วนหัวของไฟล์ดังนี้

      # nat Table rules
      *nat
      :POSTROUTING ACCEPT [0:0]

      # Forward traffic from eth0 through eth0.
      -A POSTROUTING -s 172.16.0.0/22 ! -d 172.16.0.1/22 -o eth1 -j MASQUERADE

      # don't delete the 'COMMIT' line or these nat table rules won't be processed
      COMMIT

    3. สั่งให้ firewall ทำงานกับค่าที่กำหนดไปใหม่ดังนี้

      sudo ufw disable && sudo ufw enable