ฉันมีสิ่งที่ดูเหมือนการตั้งค่าตำราเรียนที่สวยงามด้วย OpenVPN ที่ฝั่งเซิร์ฟเวอร์ ฉันกำลังเปิดเผย LAN กับไคลเอนต์ระยะไกลและผลักดันเส้นทาง ฉันมีเส้นทางคงที่ของฉันในคำขอชี้เกตเวย์ฝั่งเซิร์ฟเวอร์ที่ผูกไว้สำหรับเครือข่ายย่อย VPN ไปยังเซิร์ฟเวอร์ OpenVPN เป็นต้น
ฉันยังคงมีพฤติกรรมที่ไม่สม่ำเสมอแม้ว่า ตัวอย่างเช่น หลายครั้งที่การเชื่อมต่อ ssh จากไคลเอนต์ VPN ไปยังเครื่องบน LAN ของเซิร์ฟเวอร์ OpenVPN หมดเวลา ฉันสามารถให้พวกเขาหมดเวลาได้ซ้ำๆ จนกว่าฉันจะส่งคำสั่ง ping ไปยังปลายทางหนึ่งครั้ง ทุกครั้งที่ฉันทำอย่างนั้น ping แรกหมดเวลา ping ต่อๆ ไปสำเร็จ จากนั้นฉันก็ ssh ได้
ฉันได้ลองใช้เซิร์ฟเวอร์ OpenVPN 2.4 ที่มาพร้อมกับ LinuxMint 20.1 (distro บนเซิร์ฟเวอร์) และฉันได้ลองใช้ OpenVPN 2.5.6 ที่คอมไพล์จากแหล่งที่มาแล้ว และดูเหมือนว่าจะได้ผลลัพธ์เดียวกัน
นี่คือการตั้งค่าของฉันสำหรับการอ้างอิง:
LAN ของเซิร์ฟเวอร์
เกตเวย์: 192.168.1.1 - มีเส้นทางคงที่ [ 10.8.0.0/24 ผ่าน 192.168.1.31 ]
เซิร์ฟเวอร์ OpenVPN: 192.168.1.31
- เปิดการส่งต่อ ipv4
- เปิดโหมด promisc สำหรับอินเตอร์เฟส LAN
- ufw กำหนดค่าให้ทั้งหมดไปยังพอร์ต 1194/udp, 22/tcp และการส่งต่อในทั้งสองทิศทางระหว่างอินเทอร์เฟซ tun0 และ LAN)
192.168.1.121 - ไดรเวอร์รายวันของฉัน (Linux) ที่เปิด SSH - ไม่มีการกำหนดกฎไฟร์วอลล์
192.168.1.16 - อีกกล่อง Linux ที่เปิด SSH - ไม่มีการกำหนดกฎไฟร์วอลล์
192.168.1.17 - กล่อง Windows 10 ที่เปิดใช้งานเดสก์ท็อประยะไกลและปิดไฟร์วอลล์ Windows
ไคลเอ็นต์ LAN
ที่อยู่เครือข่าย: 192.168.11.0/24
1 ไคลเอ็นต์ Linux บน DHCP
1 ไคลเอนต์ Windows บน DHCP
กล่องที่มี IP 192.168.1.16 และ 192.168.1.121 เป็นกล่องที่ฉันพยายามเชื่อมต่อจากไคลเอนต์ VPN และแสดงพฤติกรรมข้างต้น
ความแปลกประหลาดอีกอย่างคือเมื่อพยายามใช้ rdesktop เพื่อเชื่อมต่อกับ RDP บน 192.168.1.17 ไคลเอนต์ Linux VPN จะมีการหมดเวลา GnuTLS อย่างสม่ำเสมอและล้มเหลว ไคลเอนต์ Windows VPN ที่มีการกำหนดค่า VPN เดียวกันจะทำงานเพื่อเชื่อมต่อกับ RDP ในกล่องนั้นอย่างสม่ำเสมอ
ฉันยินดีที่จะโพสต์ไฟล์ปรับแต่งหรือเอาต์พุตคำสั่งที่เกี่ยวข้อง แต่ฉันไม่ต้องการทิ้งทั้งหมดไว้ที่นี่ในขั้นต้นเนื่องจากมีความยาวมากและฉันสงสัยว่ามีคนอื่นเคยประสบปัญหานี้มาก่อนหรือไม่ ไฟล์กำหนดค่า OpenVPN ของฉันส่วนใหญ่เป็นค่าเริ่มต้นโดยมีเพียงชุดข้อมูลปกติ เช่น ชื่อคีย์, IP ระยะไกลของเซิร์ฟเวอร์ VPN, คำสั่งพุช "เส้นทาง..." เป็นต้น