MASQUERADE คืออะไรในบริบทของ iptables


42

ในiptablesหลาย ๆ ครั้งที่ผมเห็นเป้าหมาย หลอกลวง นั่นคืออะไร? ฉันค้นหาและพบสิ่งต่างๆมากมาย แต่ฉันต้องการใครสักคนที่จะอธิบายให้ฉันฟังว่า MASQUERADEอยู่ในวิธีที่เข้าใจง่ายหรือไม่

ตัวอย่าง (นำมาจากคำตอบนี้ ) คือ:

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

คำตอบ:


33

มันเป็นอัลกอริทึมที่ขึ้นอยู่กับการใช้งาน iptables ที่ช่วยให้หนึ่งในการกำหนดเส้นทางการจราจรโดยไม่กระทบกับการรับส่งข้อมูลดั้งเดิม

ฉันใช้อัลกอริทึมมาสเคอเรดเมื่อฉันต้องการสร้างอแด็ปเตอร์ไร้สายเสมือนและแชร์ wifi ของฉัน

ฉันไม่ได้พูดถึงการแชร์การเชื่อมต่ออีเธอร์เน็ตผ่าน wifi ของคุณฉันกำลังพูดถึงการแชร์การเชื่อมต่อ wifi ผ่าน wifi ของคุณผ่านการปลอมแปลงไปยังอะแดปเตอร์เสมือนจริง ผลกระทบนี้ช่วยให้คุณแบ่งปันการเชื่อมต่อ wifi ของคุณผ่าน wifi

.

.

อ่านและเลื่อนลงไปที่ MASQUERADE: http://billauer.co.il/ipmasq-html.html

อ่านข้อมูลเชิงลึกเพิ่มเติมได้ที่: http://oreilly.com/openbook/linag2/book/ch11.html

คำถามทั้งหมดเกี่ยวกับ "Connectify for linux" สามารถแก้ไขได้โดยการใช้ MASQUERADE algo

สำหรับตัวอย่างโดยตรงไปที่หน้านี้: http://pritambaral.com/2012/05/connectify-for-linux-wireless-hotspot/

ฉันไม่ได้อ่านลิงค์สุดท้าย !!!! แต่ข้อความต่อไปนี้เป็นตัวอย่างที่ถูกต้อง / ตัวอย่าง

sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -A FORWARD -i wlan0 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

ฉันไม่ชอบวิธีที่เครื่องมือค้นหาสร้างอัลกอริทึมให้เป็นแฮ็คที่ชั่วร้ายฉันใช้มันเพื่อแบ่งปันอินเทอร์เน็ตกับโทรศัพท์ Android ของฉัน

แก้ไขครั้งสุดท้าย:ลิงค์นี้เป็นhttp://gsp.com/cgi-bin/man.cgi?section=3&topic=libalias ที่ดีที่สุด


เหมือนลิงค์แรกของคุณนั่นคือ - แน่นอน - สิ่งที่ฉันกำลังมองหา :)
Mohammad Reza Rezwani

ฉันได้ทดสอบMASUERADEกฎ (บรรทัดที่สามในรายการรหัสของคุณ) และลิงก์นั้นมีการใช้งานร่วมกันและมีอยู่ในส่วนต่อประสาน ดังนั้นฉันหงุดหงิดFORWARDกฎสำหรับสิ่งที่? (กฎของบรรทัดที่สองในรายการรหัสของคุณ)
千木郷

34

MASQUERADE เป็นเป้าหมาย iptables ที่สามารถใช้แทน SNAT target (source NAT) เมื่อไม่ทราบ ip ภายนอกของอินเทอร์เฟซ inet ในขณะที่เขียนกฎ (เมื่อเซิร์ฟเวอร์ได้รับ ip ภายนอกแบบไดนามิก)


สิ่งที่ควรใช้เมื่อทราบที่อยู่ IP
ลัค

4
@Luc เป้าหมาย SNAT (การแปลที่อยู่เครือข่ายแหล่งที่มา) ด้วยการกำหนดแหล่งที่มาของ IP ที่ควรจะวางแทน IP ต้นฉบับในแพ็คเก็ต IP จากโฮสต์เดิม เช่นนี้-j SNAT --to-source xx.xx.xx.xxโดยที่ xx.xx.xx.xx เป็น ip ภายนอกของอินเทอร์เฟซที่ต้องการ และฉันไม่สามารถพูดได้ว่ามันควรจะใช้เมื่อเป็นที่รู้จัก ip ภายนอก ฉันต้องการใช้ MASQUERADE แทน SNAT เพื่อให้กฎมีความยืดหยุ่นและไม่ผูกกับ IP ภายนอกที่เฉพาะเจาะจงที่ฉันมีในขณะนี้
Sergey P. หรือที่รู้จักสีฟ้า

7

IP Masqueradeเป็นที่รู้จักกันในชื่อ Network Address Translation (NAT) และ Network Connection Sharing ระบบปฏิบัติการยอดนิยมอื่น ๆ เป็นวิธีการอนุญาตให้คอมพิวเตอร์ที่ไม่มีที่อยู่ IP สาธารณะอินเทอร์เน็ตกว้างสื่อสารกับคอมพิวเตอร์เครื่องอื่นบนอินเทอร์เน็ตด้วยความช่วยเหลือของคอมพิวเตอร์เครื่องอื่นนั่งอยู่ระหว่างมันและอินเทอร์เน็ต

ดังที่คุณทราบว่ามีการใช้ที่อยู่ IP บนอินเทอร์เน็ตเพื่อระบุเครื่อง เมื่อได้รับแพ็คเก็ตที่มีที่อยู่ IP เราเตอร์ทุกตัวที่ทำขึ้นอินเทอร์เน็ตจะรู้ว่าจะส่งแพ็คเก็ตนั้นไปยังปลายทางได้อย่างไร ขณะนี้ยังมีที่อยู่ IP บางช่วงที่ถูกสงวนไว้สำหรับการใช้งานส่วนตัวภายในเครือข่ายท้องถิ่นและเครือข่ายอื่น ๆ ที่ไม่ได้เชื่อมต่อกับอินเทอร์เน็ตโดยตรง ที่อยู่ส่วนตัวเหล่านี้รับประกันว่าจะไม่ถูกใช้งานบนอินเทอร์เน็ตสาธารณะ

สิ่งนี้ทำให้เกิดปัญหาสำหรับเครื่องที่เชื่อมต่อกับเครือข่ายส่วนตัวใช้ที่อยู่ IP ส่วนตัวเนื่องจากไม่สามารถเชื่อมต่อกับอินเทอร์เน็ตโดยตรง พวกเขาไม่มีที่อยู่ IP ที่ได้รับอนุญาตให้ใช้บนอินเทอร์เน็ตสาธารณะ IP Masquerade แก้ปัญหานี้โดยอนุญาตให้เครื่องที่มีที่อยู่ IP ส่วนตัวสามารถสื่อสารกับอินเทอร์เน็ตได้ในขณะเดียวกันก็ทำการปรับเปลี่ยนแพ็คเก็ตของเครื่องให้ใช้ที่อยู่ IP สาธารณะที่ถูกต้องแทนที่อยู่ IP ส่วนตัวเดิม แพ็กเก็ตที่ส่งคืนจากอินเทอร์เน็ตจะถูกแก้ไขกลับไปใช้ที่อยู่ IP ดั้งเดิมก่อนที่จะเข้าถึงเครื่อง IP ส่วนตัว

โปรดทราบว่านี่ไม่ได้ จำกัด อยู่ที่เครือข่ายอินเทอร์เน็ต masquerade / NAT สามารถใช้เพื่อกำหนดเส้นทางการรับส่งข้อมูลจากเครือข่ายหนึ่งไปยังอีกเครือข่ายหนึ่งให้บอกว่า 10.0.0.0/24 และ 192.168.0.0/24

กฎ masquerade Iptables สามารถถูกแทนที่ด้วยกฎ SNAT

iptables -t nat -A POSTROUTING -o eth2 -s 10.0.0.0/24  -j MASQUERADE

=

iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth2 -j SNAT --to-source 192.168.1.2
# supposing eth2 assigned ip is 192.168.1.2

ทั้งสองสวมหน้ากากและ SNAT ต้องเปิดการใช้งาน ip_forward ในระดับเคอร์เนลกับก้องหรือถาวรโดยการแก้ไขนาโนไฟล์การตั้งค่า"1" > /proc/sys/net/ipv4/ip_forward/etc/sysctl.conf

IP Forwardทำให้เครื่องทำหน้าที่เหมือนเราเตอร์ดังนั้นจึงเปลี่ยนเส้นทาง / ส่งต่อแพ็คเก็ตจากอินเตอร์เฟสที่ใช้งานอยู่อย่างมีเหตุผลโดยเครือข่ายเป้าหมาย (โลคอล / เน็ต / อื่น ๆ / อื่น ๆ ) หรือตามตารางเส้นทาง โปรดทราบว่าการเปิดใช้งาน ip_forward อาจทำให้เกิดความเสี่ยงด้านความปลอดภัยที่สำคัญหากไม่สามารถหลีกเลี่ยง ip_forward ได้จะต้องมีการดูแล / รักษาความปลอดภัยโดยกฎ iptables / เส้นทางเพิ่มเติม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.