สมมุติฐาน
เครื่องเซิร์ฟเวอร์ที่จะใช้แชร์อินเตอร์เน็ตนี้มีเน็ตเวิร์กการ์ด 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