VirtualBox: การสร้างเว็บเซิร์ฟเวอร์แยกที่สามารถเข้าถึงได้จากอินเทอร์เน็ตด้วยการเข้าถึงที่ จำกัด บน LAN


0

ฉันแน่ใจว่าคำถามนี้ได้รับคำตอบก่อนหน้านี้ แต่ฉันไม่สามารถหาคำตอบที่ใช้การได้

ฉันมีเครื่องเสมือน CentOS 7 ทำงานอยู่ใน VirtualBox 5.2.20 โฮสต์บนคอมพิวเตอร์ Windows 10 Pro ฉันตั้งค่าเว็บเซิร์ฟเวอร์ Apache บนแขกและต้องการให้สามารถเข้าถึงได้ผ่านทางอินเทอร์เน็ต (เช่นเพื่อให้บริการหน้าเว็บแบบคงที่ผ่านพอร์ต 80) อย่างไรก็ตามฉันต้องการให้โฮสต์และอุปกรณ์อื่น ๆ ใน LAN ของฉันได้รับการปกป้องจากแขกในกรณีที่มันถูกบุกรุก

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

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

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


1
ฉันคิดว่ามันเป็นไปไม่ได้ในรูปแบบปัจจุบันเพื่อทำสิ่งที่คุณต้องการจะทำ ฉันรู้ว่าใน linux คุณสามารถใช้ NAT และด้วย IPTables คุณสามารถอนุญาตให้ NAT ส่งข้อมูลออกไปยังเน็ตและไม่ต้องใช้ที่อื่น แต่ก็ยังซับซ้อน
djsmiley2k

ยังค่อนข้างลังเลที่จะเปิดพอร์ตใด ๆ บนโฮสต์ของฉันฉันสงสัยว่าฉันสามารถใช้ VM ตัวที่สองเพื่อทำหน้าที่เป็นไฟร์วอลล์ (ด้านหลังเราเตอร์ของฉัน) เช่นใช้ pfSense สร้าง DMZ เสมือนกับเครือข่ายย่อยอื่นเพื่อแยกแขกออกจากฉัน แลน มีความคิดใดเกี่ยวกับวิธีการที่จะประสบความสำเร็จได้อย่างไร
silentsurfer

คำตอบ:


0

คุณต้องส่งต่อพอร์ตไปยังคอมพิวเตอร์ของคุณ แต่คุณสามารถสั่งให้พอร์ตนั้นเชื่อมต่อโดยตรงไปยังส่วนต่อประสานเครือข่ายที่ใช้โดย VM เพื่อให้ VM สามารถแยกตัวออกจากกันได้ สิ่งนี้อาจทำงานกับอินเตอร์เฟสแบบโฮสต์เท่านั้นดังนั้น VM จะไม่สามารถสื่อสารกับส่วนที่เหลือของเครือข่ายของคุณได้

คำสั่งที่ใช้จะมีลักษณะเช่นนี้ซึ่งทำงานใน Command Prompt ระดับสูงโดยสมมติว่าอินเตอร์เฟสเฉพาะโฮสต์ถูกกำหนดไว้ที่ 192.168.234.0/24:

netsh interface portproxy add v4tov4 listenport=80 listenaddress=127.0.0.1
 connectaddress=192.168.234.1 connectport=80 protocol=tcp

ฉันไม่มี VirtualBox ดังนั้นจึงไม่สามารถทดสอบได้ คุณจะต้องทำส่วนนั้น

สำหรับข้อมูลเพิ่มเติมโปรดดูที่บทความ ของ Windows Netsh อินเตอร์เฟส Portproxy


ขอบคุณแฮร์รี่ฉันจะลองดู คุณช่วยอธิบายได้ไหมว่าทำไมการพร็อกซี่พอร์ตจึงปลอดภัย (จากมุมมองของโฮสต์) มากกว่าพูดโดยใช้ฟังก์ชั่นการส่งต่อพอร์ตของ VB?
silentsurfer

ไม่จำเป็นต้องใช้ NAT หรือ Bridged และทำได้ในระดับ Windows
harrymc

นั่นเป็นจุดที่ดีอย่างน้อยก็มีสวิตช์เพื่อปิดการเข้าถึงอินเทอร์เน็ตผ่าน NAT ให้กับแขกเมื่อไม่ต้องการสำหรับการอัพเดท ฯลฯ แต่ในแง่ของความปลอดภัยเมื่อเปิดพอร์ตบนโฮสต์มีความแตกต่างระหว่างการส่งต่อและพอร์ตผ่านทางพร็อกซี่ VB และ NAT?
silentsurfer

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