OpenVPN: จำกัดการเข้าถึงไคลเอ็นต์เฉพาะไคลเอนต์ปลายทาง
ฉันมีไคลเอนต์ OpenVPN สองตัว (ovpn_dest1, ovpn_dest2) ซึ่งทำงานอย่างต่อเนื่องและมีเครือข่ายส่วนตัว (10.60.10.0/24 & 10.60.20.0/24) ซึ่งฉันต้องการเข้าถึงจากไคลเอนต์ Windows OpenVPN สองไคลเอนต์
อย่างไรก็ตาม ไคลเอ็นต์ Windows OpenVPN (ovpn_user1, ovpn_user2) ควรเข้าถึงได้เฉพาะเครือข่ายของตนเท่านั้น (10.60.10.0/24 หรือ 10.60.20.0/24)
เมื่อ ovpn_user1 เข้าถึง ovpn_dest1 (10.60.10.0/24) และ ovpn_user2 ควรเข้าถึงได้เฉพาะ ovpn_dest2 (10.60.20.0/24)
การตั้งค่าปัจจุบันใช้คำสั่งระหว่างไคลเอ็นต์กับไคลเอ็นต์ในไฟล์โฮสต์ OpenVPN server.conf ซึ่งจำเป็นเพื่อให้ไคลเอ็นต์ Windows พูดคุยกับ ovpn_dest1/2 และอุปกรณ์เครือข่าย (device1_1/device1_2/etc)
ขออภัย คำสั่งระหว่างไคลเอนต์กับไคลเอ็นต์หมายความว่าไคลเอนต์ Windows สามารถเข้าถึงไคลเอนต์ ovpn_dest1/2 ทั้งหมดซึ่งไม่ต้องการจากมุมมองด้านความปลอดภัย
การกำหนดเครือข่ายและ IP:
ovpn_dest1 - 10.60.10.2
อุปกรณ์ 1_1 - 10.60.10.3
อุปกรณ์ 1_2 - 10.60.10.4
ovpn_dest2 - 10.60.20.2
อุปกรณ์ 2_1 - 10.60.20.3
ovpn_user1 - 10.60.10.0/24
ovpn_user2 - 10.60.20.0/24
/etc/openvpn/server/server.conf:
ท้องถิ่น 188.166.226.159
พอร์ต 1194
โปรโตคอล udp
การพัฒนา tun0
แคลิฟอร์เนีย ca.crt
ใบรับรอง server.crt
คีย์เซิร์ฟเวอร์.คีย์
dh dh.pem
รับรองความถูกต้อง SHA512
tls-crypt tc.key
ซับเน็ตโทโพโลยี
เซิร์ฟเวอร์ 10.8.0.0 255.255.255.0
กด "เปลี่ยนเส้นทางเกตเวย์ def1 บายพาส-dhcp"
ifconfig-pool-persist ipp.txt
กด "dhcp-option DNS 67.207.67.3"
กด "dhcp-option DNS 67.207.67.2"
รักษาชีวิต 10 120
รหัส AES-256-CBC
ผู้ใช้ไม่มีใคร
กลุ่มโนกรุ๊ป
คีย์คงอยู่
คงอยู่-tun
กริยา 3
crl-ตรวจสอบ crl.pem
แจ้งออกอย่างชัดเจน
บันทึกต่อท้าย /var/log/openvpn.log
ลูกค้าต่อลูกค้า
ไคลเอ็นต์-config-dir ccd
/etc/openvpn/server/ccd/ovpn_dest1
เส้นทาง 10.60.10.0 255.255.255.0
เส้นทาง 10.60.10.0 255.255.255.0
กด "เส้นทาง 10.60.10.0 255.255.255.0"
/etc/openvpn/server/ccd/ovpn_dest2
เส้นทาง 10.60.20.0 255.255.255.0
เส้นทาง 10.60.20.0 255.255.255.0
กด "เส้นทาง 10.60.20.0 255.255.255.0"
ฉันยังสามารถเชื่อมต่อกับอุปกรณ์ต่อไปนี้ทั้งหมดจากไคลเอนต์ Windows OpenVPN (ovpn_user1/ovpn_user2):
http://10.8.0.2/ (ovpn_dest1)
http://10.8.0.3/ (ovpn_dest2)
http://10.60.10.2/ (ovpn_dest1)
http://10.60.20.2/ (ovpn_dest2)
10.60.10.3 (อุปกรณ์ 1_1)
อย่างไรก็ตาม ฉันต้องการจำกัดการเข้าถึงสำหรับไคลเอนต์ windows เพื่อให้ไคลเอ็นต์ที่กำหนดสามารถเข้าถึงเครือข่าย ovpn_destN เฉพาะของมันเท่านั้น
ฉันได้ลองใช้ iptables แต่ฉันไม่ใช่ผู้เชี่ยวชาญในเรื่องนี้ และดูเหมือนว่าคำสั่งไคลเอนต์ถึงไคลเอนต์ในไฟล์ server.conf จะแทนที่ทุกสิ่งที่พยายามใน iptables เพื่อบล็อกเส้นทางระหว่างต้นทางและปลายทางได้อย่างมีประสิทธิภาพ (คำสั่ง "ไคลเอนต์กับไคลเอนต์เครือข่ายจะทำภายใน OpenVPN โดยไม่ต้องไปถึงชั้นโฮสต์") ดูเหมือนว่าฉันอาจต้องลบ "client-to-client" ออกจาก server.conf เพื่อจำกัดการเชื่อมต่อ แต่ฉันไม่สามารถสื่อสารได้เมื่อบรรทัดนี้ถูกลบ
ฉันได้พิจารณาใช้อินสแตนซ์ OpenVPN หลายอินสแตนซ์ (หนึ่งอินสแตนซ์สำหรับแต่ละชุดของ ovpn_destN, ovpn_userN) อย่างไรก็ตาม ด้วยอินสแตนซ์หลายสิบนี้อาจไม่เหมาะ แม้ว่าจะไม่สามารถเข้าถึงเครือข่ายหลายเครือข่ายพร้อมกันได้บ่อยนัก
อะไร (และอย่างไร) เป็นวิธีที่ดีที่สุดในการจำกัดไคลเอ็นต์ Windows ให้อยู่ในเครือข่ายปลายทางเฉพาะ