This is G o o g l e's cache of http://www.debianclub.com/node/46 as retrieved on 16 Feb 2007 00:51:22 GMT.
G o o g l e's cache is the snapshot that we took of the page as we crawled the web.
The page may have changed since that time. Click here for the current page without highlighting.
This cached page may reference images which are no longer available. Click here for the cached text only.
To link to or bookmark this page, use the following url: http://www.google.com/search?hl=en&q=cache%3Ahttp%3A%2F%2Fwww.debianclub.com%2Fnode%2F46&btnG=Search


Google is neither affiliated with the authors of this page nor responsible for its content.

User login

Links

debianclub.com
debian.org
ubuntuclub.com
blognone.com

Syndicate

Syndicate content

ตั้ง 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 ในตอนหน้าครับ