ตั้ง internet gateway อย่างง่าย ด้วย ipmasq
การ ตั้ง internet gateway ภายในบ้าน หรือในองค์กร เพื่อใช้หมายเลขไอพีหมายเลขเดียวที่ได้มาเป็นทางผ่านสู่อินเทอร์เน็ตให้กับ เครื่องลูกข่าย ทำได้ด้วยเทคนิคที่เรียกว่า IP Masquerade และสามารถเขียนกฎ firewall ในการกรองแพ็กเก็ตต่างๆ ได้ด้วย ทั้งหมดนี้ อาศัยกลไกในเคอร์เนลลินุกซ์ที่เรียกว่า netfilter (สำหรับเคอร์เนล 2.4 ขึ้นไป ถ้าเป็นรุ่นเก่ากว่านั้นจะเป็น ipchain และ ipfwadm) คำสั่งที่ใช้ตั้งกฎก็คือ iptables
ฟังดูยุ่งยาก แต่ในเดเบียนมีแพกเกจที่ช่วยให้ตั้งเกตเวย์ได้อย่างรวดเร็ว คือ ipmasq ซึ่งจะมีคำสั่งช่วยตรวจสอบ route table แยกแยะ interface ที่เป็น public IP และเครือข่ายภายใน แล้วสร้างกฎ iptables เพื่อให้ทำ IP masquerade จากภายในสู่ภายนอก พร้อมทั้งทำ firewall กันแพ็กเก็ตจากภายนอกโดยอัตโนมัติ
รู้หน้าที่คร่าวๆ แล้ว ก็ติดตั้งกันเลย
# aptitude install ipmasq
คำถามระหว่างติดตั้ง ก็มีนิดหน่อย คือถามว่าจะคำนวณ iptables ใหม่เมื่อเปิด PPP หรือไม่ ตรงนี้ก็มีประโยชน์ถ้าคุณเชื่อมต่ออินเทอร์เน็ตผ่านโมเด็ม 56k ด้วย PPP
จากนั้น ทำความรู้จักกับคำสั่งนิดหนึ่ง คือเมื่อใดก็ตาม ที่คุณต้องการคำนวณกฎ iptables ใหม่ ก็สั่งคำสั่ง ipmasq ได้เลย และถ้าจะทำให้เป็นอัตโนมัติ วิธีที่แนะนำก็คือ กำหนดให้คำนวณกฎใหม่ใน ifupdown โดยเพิ่มบรรทัด up, down ในแฟ้ม /etc/network/interfaces เช่น สมมุติว่า eth0 เป็นช่องที่ต่อออกสู่อินเทอร์เน็ต และ eth1 เป็นช่องที่ต่อกับเครือข่ายภายใน
iface eth0 inet static
address 192.168.1.1
gateway gateway-ip
up /usr/sbin/ipmasq
down /usr/sbin/ipmasq -r /etc/ipmasq/ipmasq-down
iface eth1 inet static
address 192.168.2.1
up /usr/sbin/ipmasq
down /usr/sbin/ipmasq -r /etc/ipmasq/ipmasq-downต่อไป เมื่อคุณสั่ง ifup, ifdown (หรือตอนบูตเครื่อง) ก็จะมีการคำนวณ IP masquerading โดยอัตโนมัติ จบแล้ว! แค่นั้นแหละ สำหรับการตั้งเกตเวย์อย่างง่าย ง่ายไหมล่ะ?
ทีนี้ สมมุติว่าคุณอยากปรับแต่งกฎ ก็สามารถเข้าไปดูกฎได้ที่ไดเรกทอรี /etc/ipmasq/rules/ ในนั้นชื่อกฎจะเรียงตามขั้นตอนต่างๆ คือ
- A = preinitialization (ตรวจสอบข้อมูลเบื้องต้น เช่น หา interface ภายใน-ภายนอก)
- F = forwarding rules
- I = input rules
- M = masquerading rules
- O = output rules
- Z = postinitalization
ชื่อกฎนั้น ค่าปกติจะลงท้ายด้วย .def แต่ถ้ามีกฎชื่อเดียวกันแต่ลงท้ายด้วย .rul ก็จะถูกใช้แทน (ใช้เวลาจะเขียนกฎเองทับค่าเดิม)
กฎของ ipmasq จะซอยย่อยเป็นเรื่องๆ เพื่อให้เพิ่ม-ลดได้ง่ายๆ
ค่าปกติที่ให้มานั้น จะทำ IP masquerade จากเครือข่ายภายในออกสู่ภายนอก
และกันแพ็กเก็ตภายนอกไม่ให้เข้ามาภายใน
ซึ่งถือว่าปลอดภัยสำหรับเครือข่ายทั่วๆ ไปอยู่แล้ว
แต่ถ้าคุณต้องการเพิ่มกฎเข้าไปอีก เช่น การทำ transparent proxy
ก็สามารถคัดลอกไปจาก /usr/share/doc/ipmasq/examples/ ได้ เดี๋ยวไว้พูดถึงการทำ transparent proxy ในตอนหน้าครับ









Recent comments
1 day 21 hours ago
2 days 13 hours ago
1 week 4 days ago
2 weeks 6 days ago
3 weeks 5 days ago
3 weeks 6 days ago
4 weeks 20 hours ago
4 weeks 22 hours ago
4 weeks 1 day ago
4 weeks 3 days ago