หากพอร์ตด้านหลัง NAT ส่งแพ็กเก็ตไปยังโฮสต์ที่เป็นอันตรายโฮสต์นั้นสามารถส่งแพ็กเก็ตไปยังพอร์ตที่เปิดอยู่หรือเฉพาะพอร์ตที่ส่งแพ็คเก็ตเท่านั้น


0

ตัวอย่างเช่นคอมพิวเตอร์ที่อยู่หลังเราเตอร์ NAT ใช้ Skype Skype ใช้พอร์ต 4000 เพื่อส่งแพ็กเก็ตไปยังเซิร์ฟเวอร์เพื่อสร้างการเชื่อมต่อทางอ้อมกับไคลเอนต์ Skype อื่น ๆ

เนื่องจาก Skype ส่งแพคเก็ตไปยังเซิร์ฟเวอร์ก่อนเซิร์ฟเวอร์จึงสามารถส่งแพ็กเก็ตกลับไปที่เราเตอร์ที่ใช้ NAT ได้อย่างชัดเจน

คำถามของฉันคือเมื่อพิจารณาว่าเราเตอร์กำลังใช้ NAT เซิร์ฟเวอร์นั้นอนุญาตให้ส่งแพ็กเก็ตไปยังพอร์ตเปิด / ส่งต่อใด ๆ ที่ NAT มีหรือพอร์ต 4000 เท่านั้นหรือไม่

ฉันรู้ว่าเซิร์ฟเวอร์ Skype ไม่ได้เป็นอันตรายเลยมันเป็นเพียงตัวอย่างเท่านั้น


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

คำตอบ:


0

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

สำหรับทราฟฟิกขาออกที่โฮสต์ของคุณ: ไม่มีกฎใดที่พอร์ตต้นทางคุณต้องใช้เพื่อสื่อสารกับ Skype Relay Server นอกจากนี้บนโฮสต์ปลายทางของคุณ Skype อาจใช้ TCP 4000 แต่ NAT อาจใช้พอร์ตอื่นเพื่อส่งข้อความพูดพอร์ต A เซิร์ฟเวอร์ Skype จะเห็นเฉพาะพอร์ต A ไม่ใช่พอร์ต 4000 หากเซิร์ฟเวอร์ Skype ตอบสนองต่อพอร์ตอื่นที่ไม่ใช่ A ดังนั้นสถานการณ์ที่อธิบายไว้ใน "สำหรับการรับส่งข้อมูลขาเข้า" จะถูกนำไปใช้ หากเซิร์ฟเวอร์ Skype ตอบกลับไปที่พอร์ต A ดังนั้น NAT จะกำหนดเส้นทางนี้กลับไปที่โฮสต์ของคุณโดยส่งไปที่พอร์ต 4000

ในการชี้แจง: NAT (Network Address Translator) เป็นเราเตอร์ของคุณ และอย่าสับสนในส่วน "สำหรับการรับส่งข้อมูลขาเข้า" เนื่องจากเครือข่ายตอบสนองต่อโฮสต์ของคุณ หมายถึงเซิร์ฟเวอร์ภายนอกเป็นคนแรกที่พูดคุยกับโฮสต์ของคุณเพื่อสร้างการเชื่อมต่อ


ฉันไม่คิดว่านี่จะตอบคำถามได้เพราะไม่สนใจ / เกี่ยวข้อง!
davidgo

มันเป็นอย่างไร อย่างมากคุณอาจพูดว่าไม่ใช่คำตอบที่ครบถ้วนสมบูรณ์ OP ไม่ได้ขอฟังพอร์ตซึ่งคำตอบของคุณหมุนรอบตัวคุณเป็นส่วนใหญ่ แต่ฉันจะไม่บอกว่าคุณไม่ได้ตอบคำถามเพราะมันให้ข้อมูลเสริม
guest-vm

@guest ตาม Wikipedia (ไม่ใช่แหล่งที่เชื่อถือได้ แต่ก็น่าสนใจ) อ้างว่า "โฮสต์ภายนอก (hAddr: any) สามารถส่งแพ็กเก็ตไปยัง iAddr: iPort โดยส่งแพ็คเก็ตไปยัง eAddr: ePort เฉพาะเมื่อ iAddr: iPort ได้ส่ง แพ็คเก็ตเพื่อ hAddr: ใด ๆ "ใด ๆ " หมายถึงหมายเลขพอร์ตไม่สำคัญ " เหตุใดจึงไม่ใช่ "iAddr: any" แทนที่จะเป็น "iAddr: iPort"
Raffat

@Raffat ฉันหมายถึงเช่นเดียวกับ Wiki ฉันเขียน "พอร์ตใด ๆ ของเราเตอร์ของคุณ" นั่นคือ "eAddr" แต่ไม่ใช่โฮสต์ปลายทาง "iAddr"
guest-vm

0

คำตอบง่ายๆคือ "สามารถส่งแพ็กเก็ต (ไปยังไคลเอนต์ที่อยู่หลังเราเตอร์ NAT) ไปยังพอร์ตที่ส่งแพ็กเก็ต" นี่คือส่วนใหญ่ แต่ไม่ถูกต้องทั้งหมดแม้ว่า

คำตอบขึ้นอยู่กับวิธีการตั้งค่า IPTables พอร์ตที่เป็นปัญหาและโมดูลที่ใช้ อุปกรณ์ nat แบบง่ายจะอนุญาตการแมปทราฟฟิกไปยังพอร์ตเดียวกับที่มาจากอุปกรณ์ทั้งหมดไม่ได้ง่ายนัก ใน linux และระบบปฏิบัติการอื่นคุณจะได้รับ "Stateful firewalls" ซึ่งโดยทั่วไปจะใช้พอร์ต "ที่สร้างและเกี่ยวข้อง" พร้อมกับโมดูลต่างๆที่ดูสถานะการเชื่อมต่อ - ตัวอย่างเช่นหากมีการร้องขอ FTP ขาออก (พอร์ต 21) เราเตอร์อาจ ยังเปิดพอร์ต 20 สำหรับข้อมูลหากโหลดโมดูล FTP แล้ว อาจเป็นไปได้ที่ FTP จะเปิดพอร์ตอื่นและเซิร์ฟเวอร์ที่เป็นอันตรายอาจสามารถทำเช่นนี้เพื่อเข้าถึงพอร์ตที่มีหมายเลขสูงตามอำเภอใจ โมดูลการติดตามทั่วไปบางตัวที่อาจใช้ประโยชน์ได้ ได้แก่ FTP, SIP, Netbios, PPTP, gre, tftp, h323, irc

อาจเป็นเรื่องยากสำหรับเซิร์ฟเวอร์ที่ประสงค์ร้ายในการเปิดพอร์ตอื่น แต่อาจเป็นไปไม่ได้ แน่นอนว่าคุณจะต้องรับฟังสิ่งที่เสี่ยงต่อพอร์ตอื่น - และ (ภายใต้ Linux) คุณสามารถลดความเสี่ยงนี้ได้ด้วยการทำให้กฎการติดตามการเชื่อมต่อของคุณเกิดขึ้นหลังจากกฎปฏิเสธการเข้าถึงทั่วไปในพอร์ตเหล่านั้น

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