การตั้งค่า Multi-site VPN ให้ Local Device ในแต่ละ Site สามารถเชื่อมต่อกันได้ ด้วย OpenVPN
ในการสร้าง VPN Tunnel เรามักสร้างเพื่อต้องการสร้างการเชื่อมต่อให้ Client ใน OpenVPN ของคุณสามารถเข้าถึงอุปกรณ์ที่อยู่ในเครือข่ายส่วนตัว (LAN) ของอุปกรณ์ VPN Server (Client to Site) หรือต้องการให้อุปกรณ์ที่อยู่ในเครือข่ายส่วนตัว (LAN) ของ Client ใน OpenVPN สามารถเข้าถึงอุปกรณ์ที่อยู่ในเครือข่ายส่วนตัว (LAN) ของอุปกรณ์ VPN Server (Site-to-Site)
และอีกการเชื่อมต่อที่มีลูกค้าถามกันเข้ามามากเลยก็คือการเชื่อมต่อ VPN แบบ multi-site โดยที่ต้องให้อุปกรณ์ที่อยู่ในเครือข่ายส่วนตัว (LAN) ของ Client ใน OpenVPN แต่ละ Site สามารถเชื่อมต่อกันได้ด้วยสามารถทำได้ไหม ต้องทำอย่างไร วันนี้เรามาดูตัวอย่างการตั้งค่ากันค่ะ
Diagram
อุปกรณ์ที่ใช้
Teltonika RUT955 จำนวน 3 ตัว ตั้งค่าเป็น VPN Server 1 ตัว และอีก 2 ตัวเป็น VPN Client
Computer 3 เครื่อง เป็นอุปกรณ์ที่อยู่ในเครือข่ายส่วนตัว (LAN) ของ VPN ทั้ง 3 ฝั่ง
Public IP Address สำหรับ VPN Server เพื่อการเชื่อมต่อของ VPN Client ทั้ง 2 ฝั่ง
การตั้งค่า
1. Create TLS certificates สำหรับการเชื่อมต่อตามวิธีการนี้ การสร้าง Transport Layer Security (TLS) certificates/keys โดย run คำสั้ง Create Client Certificates & Key ตามจำนวน VPN client ที่ต้องการนำมาเชื่อมต่อ และแน่นอนถ้าจะทำ VPN แบบ Site-to-Site ก็ run คำสั้ง Create Client Certificates & Key เพียงครั้งเดียว ไฟล์ Certificates และ Keys ที่ใช้ในการตั้งค่าทั้งหมดในตัวอย่างนี้จะมีดังต่อไปนี้
2. ตั้งค่า Router ที่ทำหน้าที่เป็น VPN Server โดยไปที่แถบ Menu Service → VPN → OpenVPN (IP WAN ของ RUT Router ที่ทำหน้าที่เป็น VPN Server ต้องเป็น Public IP)
จากนั้นไปที่ Add New Instance ตั้งชื่อ VPN Server ใน New Configuration Name และเลือก Role เป็น Server จากนั้นกดปุ่ม Add
หลังจาก Add เข้ามาแล้ว VPN Server Configuration ที่เราสร้างขึ้นจะแสดงอยู่ด้านบนของส่วน Add New Instance ให้ Click ที่รูปดินสอ เพื่อเข้าสู่หน้า Setting ค่าฝั่ง VPN Server
ตั้งค่าต่างๆ ดังภาพ
Note:
เลือก Type ในการเชื่อมต่อเป็น TUN(Tunnel)
Client-to-Client เปิดให้ IP ฝั่ง client access ถึงกันได้
Push option เป็นการ add route ให้ใส่ route IP subnet ฝั่ง Lan Local ของ RUT ทุกตัว ทั้งที่ทำหน้าที่เป็น Server และ Client
แนบไฟล์ TSL Certification และ Key
TLS Client เป็นการระบุตัวตน ของ Client ด้วย Common Names (CN) ซึ่งอยู่ใน client certificate file ใช้ในการผูก VPN Address ที่ VPN client ได้รับจาก VPN Server เข้ากับ LAN addresses ของ Client ทำให้ VPN Server รู้จัก LAN IP address ของ Client
Virtual Local Endpoint เป็น Client’s local address ใน virtual network ที่ VPN Server แจกให้ VPN Client
Virtual Remote Endpoint เป็น Client’s remote address ใน virtual network ที่ VPN Server แจกให้ VPN Client เปรียบเสมือน IP ของ Gateway ในฝั่ง virtual network
ทั้ง Virtual Local Endpoint และ Virtual Remote Endpoint เราสามารถกำหนดให้กับ Client ไว้ได้เลย เมื่อ Client ตาม Common Name(CN) นั้น เชื่อมต่อเข้ามาก็จะได้รับ Virtual IP ดังกล่าว โดยแต่ละ Client virtual ห้ามซ้ำกัน และ IP ของ Virtual Gateway (Virtual Remote Endpoint) ต้องเป็นเลข IP ที่อยู่ก่อน Virtual Local Endpoint จึงแนะนำให้ใช้คู่เลข IP ที่อยู่ติดกันดังภาพตัวอย่างด้านบน
การตั้งค่าทั้งหมดเหล่านี้ เมื่อ VPN client เชื่อมต่อเข้ามาจะมีการ Add Route ไปด้วย ทำให้การเชื่อมต่อไปยัง เครือข่ายส่วนตัว (LAN) ภายใต้ Client จะเชื่อมต่อได้ในทันที ไม่ต้อง Add Route หรือตั้งค่า firewall เพิ่ม
OpenVPN Server multi-client backup configuration:
3. ตั้งค่า Router ที่เป็น Client ตัวที่ 1
OpenVPN Client1 multi-client backup configuration:
4. ตั้งค่า Router ที่เป็น Client ตัวที่ 2
OpenVPN Client2 multi-client backup configuration: