การตั้งค่า 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

อุปกรณ์ที่ใช้

  1. Teltonika RUT955 จำนวน 3 ตัว ตั้งค่าเป็น VPN Server 1 ตัว และอีก 2 ตัวเป็น VPN Client

  2. Computer 3 เครื่อง เป็นอุปกรณ์ที่อยู่ในเครือข่ายส่วนตัว (LAN) ของ VPN ทั้ง 3 ฝั่ง

  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: