สาธิตการเชื่อมต่อ

ฉันกำลังพยายามตั้งค่าเครือข่ายที่ผู้ใช้ภายนอกสามารถใช้ไฟล์ ovpn เพื่อเชื่อมต่อกับเครือข่ายภายใน "team1" ที่ฉันสร้างใน VirtualBox เป้าหมายคือการอนุญาตให้ผู้ใช้เหล่านี้เห็นเฉพาะอุปกรณ์ภายในเครือข่ายภายใน แต่ไม่มีที่อื่น อันที่จริง เป้าหมายสูงสุดคือการที่พวกเขาไม่เห็นแม้แต่เซิร์ฟเวอร์ OpenVPN แต่นั่นเป็นเรื่องรองในการสร้างการเชื่อมต่อที่เชื่อถือได้

จนถึงตอนนี้ ฉันใช้สคริปต์นี้เพื่อสร้างไฟล์ openvpn ของฉัน และฉันสามารถเชื่อมต่อกับเซิร์ฟเวอร์ได้ แต่ openvpn กำหนด 10.8.0.0/24 IP ให้กับไคลเอนต์ และไคลเอนต์ไม่สามารถเข้าถึงอุปกรณ์ใด ๆ บนเครือข่ายได้ อันที่จริง จะไม่เห็นอุปกรณ์เครือข่ายที่ด้านใดด้านหนึ่งของเซิร์ฟเวอร์ openvpn ตัวอย่างเช่น ฉันมีเซิร์ฟเวอร์สื่อภายในบ้านที่ 10.0.0.10 และการเชื่อมต่อ Ping/การเชื่อมต่อล้มเหลว รวมถึงการพยายามเชื่อมต่อกับ "Target Box" ที่ 10.10.10.101

เมื่อมองย้อนกลับไป ฉันไม่ควรใช้บล็อก IP ที่คล้ายกันนี้ แต่ฉันต้องการใช้ 10.10/16 สำหรับเครือข่ายภายใน เพื่อให้ผู้ใช้ที่เชื่อมต่อไม่จำเป็นต้องแยกความแตกต่างระหว่างพื้นที่ IP ของเครือข่ายในบ้านกับพื้นที่ IP ของสิ่งนี้ เครือข่ายเสมือน

ดังนั้นเป้าหมายสุดท้ายคือ:

  • ผู้ใช้ภายนอกได้รับไฟล์ ovpn จากฉัน ใช้เพื่อเชื่อมต่อกับ IP ของฉัน (67.3.2.111)
  • เราเตอร์ที่บ้านของฉันส่งต่อสิ่งนี้เพื่อเชื่อมต่อกับ IP ภายในสำหรับ OpenVPN Server VM (10.0.1.100)
  • เซิร์ฟเวอร์ OpenVPN ยอมรับความพยายามในการเชื่อมต่อและกำหนด IP ให้กับผู้ใช้ในพื้นที่เครือข่ายภายใน VBox (10.10.10.200-250)
  • ผู้ใช้สามารถเห็นอุปกรณ์ในพื้นที่เครือข่ายภายใน VBox เท่านั้น
answer

เซิร์ฟเวอร์ VPN ต้องได้รับการกำหนดค่าเป็นเราเตอร์ กล่าวคือ ในลักษณะที่ช่วยให้สามารถส่งต่อแพ็คเกจเครือข่ายได้ หากเซิร์ฟเวอร์เป็น Linux หากต้องการอนุญาตแพ็คเกจการส่งต่อชั่วคราว คุณควรดำเนินการ:

echo 1 > /proc/sys/net/ipv4/ip_forward

เพื่อทำการเปลี่ยนแปลงอย่างถาวร (แม่นยำยิ่งขึ้น ทำให้การกำหนดค่าใช้งานได้เมื่อกระบวนการ sysctl รีสตาร์ท) แก้ไข /etc/sysctl.conf และกำหนดค่า:

net.ipv4.ip_forward = 1

คุณควรตรวจสอบด้วยว่ากฎ iptables อนุญาตการส่งต่อแพ็กเก็ตเครือข่าย

iptables -L

หากมีกฎที่หลีกเลี่ยงการส่งต่อ คุณควรกำหนดค่า iptables ใหม่ด้วยคำสั่งดังนี้:

iptables -A FORWARD <you could restrict the inputs here with -i> -j ACCEPT