วัตถุประสงค์ของ IP Masquerading คืออนุญาตให้เครื่องที่มีที่อยู่ IP แบบส่วนตัวที่ไม่สามารถใช้งานได้ในเครือข่ายของคุณเพื่อเข้าถึงอินเทอร์เน็ตผ่านเครื่องที่ทำเป็นเครื่องปลอมแปลง การเข้าชมจากเครือข่ายส่วนตัวของคุณที่กำหนดไว้สำหรับอินเทอร์เน็ตต้องได้รับการจัดการเพื่อตอบกลับเพื่อให้สามารถกำหนดเส้นทางกลับไปยังเครื่องที่ทำการร้องขอได้ เมื่อต้องการทำเช่นนี้เคอร์เนลต้องปรับเปลี่ยน แหล่ง ที่อยู่ IP ของแต่ละแพ็กเก็ตเพื่อให้การตอบกลับจะถูกส่งกลับไปยังที่อยู่แทนที่จะเป็นที่อยู่ IP ส่วนตัวที่ทำการร้องขอซึ่งเป็นไปไม่ได้ผ่านทางอินเทอร์เน็ต Linux ใช้ การติดตามการเชื่อมต่อ (conntrack) เพื่อติดตามว่าการเชื่อมต่ออยู่ในเครื่องใดและกำหนดเส้นทางใหม่ตามแต่ละแพ็คเก็ต การเข้าชมออกจากเครือข่ายส่วนตัวของคุณจึงเป็น "masqueraded" เนื่องจากเกิดจากเครื่องเกตเวย์ของ Ubuntu กระบวนการนี้เรียกตามเอกสาร Microsoft ว่าเป็น Internet Connection Sharing
คำแนะนำสำหรับการปลอมแปลง IP
นี้สามารถทำได้ด้วยกฎ iptables เดียวซึ่งอาจแตกต่างกันเล็กน้อยขึ้นอยู่กับการกำหนดค่าเครือข่ายของคุณ:
sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o ppp0 -j MASQUERADE
คำสั่งข้างต้นอนุมานว่าพื้นที่ที่อยู่ส่วนตัวของคุณคือ 192.168.0.0/16 และอุปกรณ์ที่ใช้อินเทอร์เน็ตเป็น ppp0 ไวยากรณ์แบ่งออกเป็นดังนี้:
- - NAT - กฎคือการเข้าไปในตาราง nat
- -A POSTROUTING - กฎจะถูกผนวก (-A) ไปที่โซ่ POSTROUTING
- -s 192.168.0.0/16 - กฎนี้ใช้กับการเข้าชมที่มาจากพื้นที่ที่อยู่ที่ระบุ
- -o ppp0 - กฎจะใช้กับการกำหนดเส้นทางที่จะกำหนดเส้นทางผ่านอุปกรณ์เครือข่ายที่ระบุ
- -J MASQUERADE - การเข้าชมที่ตรงกับกฎนี้คือการ "jump" (-j) ไปยังเป้าหมาย MASQUERADE เพื่อจัดการตามที่อธิบายข้างต้น
แต่ละห่วงในตารางตัวกรอง (ตารางเริ่มต้นและที่มากที่สุดหรือทั้งหมดกรองแพ็คเก็ตเกิดขึ้น) มีค่าเริ่มต้น นโยบาย ของ ACCEPT แต่ถ้าคุณสร้างไฟร์วอลล์นอกเหนือจากอุปกรณ์เกตเวย์คุณอาจกำหนดนโยบายให้ DROP หรือ REJECT ซึ่งในกรณีนี้ต้องได้รับอนุญาตให้เข้าชม masqueraded ผ่านห่วงโซ่ FORWARD เพื่อให้กฎข้างต้นทำงานได้:
sudo iptables -A FORWARD -s 192.168.0.0/16 -o ppp0 -j ยอมรับ sudo iptables -A FORWARD -d 192.168.0.0/16 -m รัฐ - สเตท ESTABLISHED, RELATED -i ppp0 -j ACCEPT
คำสั่งข้างต้นจะช่วยให้การเชื่อมต่อทั้งหมดจากเครือข่ายท้องถิ่นของคุณไปยังอินเทอร์เน็ตและการรับส่งข้อมูลทั้งหมดที่เกี่ยวข้องกับการเชื่อมต่อเหล่านั้นเพื่อกลับไปยังเครื่องที่เริ่มต้น
* การอนุญาต
* ดัชนีคู่มือ Ubuntu Server Guide