Wireguard คืออะไร ?
Wireguard เป็น Protocol ใหม่ของการทำ VPN ซึ่งเป็นแบบ open-source โดย Wireguard นั้นมีการเข้ารหัสเช่นเดียวกับ IPSec และ OpenVPN แต่ถูกพัฒนาให้ลดความซ้ำซ้อนของกระบวนการเข้ารหัส มีความเร็วและความเสถียรกว่า Protocol VPN แบบเก่าอย่าง IPSec และ OpenVPN
WireGuard เน้นประสิทธิภาพ ความเร็ว ความปลอดภัย และความเล็กของโค้ด WireGuard มีเพียงแค่ 4,000 กว่าบรรทัด (LoC) เมื่อเทียบกับโปรโตคอลคู่แข่งอย่าง OpenVPN ที่ใหญ่มากๆ 70,000++ LoC ที่ยังต้องใช้ไลบรารี่ OpenSSL อีก 500,000 กว่าๆ LoC! โค้ดเบสที่เล็ก ทำให้ WireGuard มี attack surface ที่เล็กกว่า VPN อื่นๆมากๆ และยังมีประโยชน์ทั้งด้านความเร็วของการรับส่งข้อมูลและความสะดวกในการ port ไปใช้บนแพลตฟอร์มที่ไม่ใช่ Linux และที่สำคัญ คือประหยัด system resource
นอกจากโค้ดที่เล็กมากแล้ว สิ่งที่ทำให้ WireGuard แตกต่างจาก VPN อื่นๆคือความง่าย (simplicity – KISS) และ strong cryptography โดย WireGuard ได้เลือก cryptographic cypher ไว้แล้วหลายตัว แต่ละตัวทำหน้าที่เฉพาะตัว และผู้ใช้ไม่สามารถเลือก cypher ได้เอง นอกจากนี้ การจัดการคีย์เช่นการลบหรือเปลี่ยนคีย์ต่างๆยังทำได้ง่าย เนื่องจาก WireGuard ไม่ใช้ trusted authority หรือเซิร์ฟเวอร์กลางในการรับรอง certificate เหมือน OpenVPN ซึ่งหมายความว่าการตั้งค่าต่างๆ เราสามารถทำได้ในไฟล์เดียว จากโฮสต์ไหนก็ได้
WireGuard ใช้หลักการ Crypto routing และ UDP เป็นรากฐาน ทำให้โปรโตคอลใหม่นี้สามารถทำงานได้อย่างปลอดภัยกว่า ประสิทธิภาพสูงกว่า และเสถียรกว่า traditional VPN อย่าง OpenVPN และ IPSec มากๆ เพราะ WireGuard ใช้ UDP (ผู้ใช้เลือก TCP ไม่ได้) และถูกเขียนมาอย่างฉลาด การเชื่อมต่อผ่าน WireGuard จึงสามารถ survive สภาวะที่ไม่เอื้ออำนวยได้ดีกว่าโปรโตคอลอื่นๆ
ตัวอย่างตั้งค่า Wireguard VPN
สำหรับอุปกรณ์ Teltonika ที่ยังไม่เคยใช้งาน Wireguard จำเป็นต้องทำการ Upgrade Firmware และติดตั้ง Package ก่อนจึงจะสามารถใช้งานได้
การตั้งค่า Wireguard สำหรับ Server
ขั้นตอนการตั้งค่า
1. ไปที่เมนู Service > VPN
2. เลือกหัวข้อ Wireguard
3. เพิ่ม Wireguard Interface โดยตั้งชื่อและกด Add
4. กดปุ่ม save เพื่อบันทึกข้อมูลและหลังจากบึนทึกสำเร็จให้ทำการกดปุ่ม edit เพื่อใส่รายละเอียดการตั้งค่า
เมื่อกดปุ่ม edit ให้ทำการใส่รายละเอียดการตั้งค่าดังนี้
- กด Generate เพื่อ สร้าง Private Key และ Public Key
- Listen port : กำหนด Port ค่า defualt คือ 51820
- IP Address : กำหนด Tunnel IP
- Metric : 0
- MTU : 1420
Add Peers คือการเพิ่มอุปกรณ์ปลายทางที่ต้องการเชื่อมต่อกับ Server มีขั้นตอนดังนี้
1. กดปุ่ม Add ที่แถบเมนู Peers
2. กดปุ่ม Edit และใส่รายละเอียดการตั้งค่าดังนี้
- ใส่คำอธิบายว่าจะเชื่อมต่อไปที่ไหน
- ใส่ Public Key ของ อุปกรณ์ปลายทางที่จะเชื่อมต่อไป (ไม่ใช้ของตัวเอง)
- Allowed IPs คือ การทำ Routes ไปหน้าอุปกรณ์ปลายทาง(ต้องใส่ทั้ง IP Tunnel และ Local IP)
- เลือก Routes Allowed IPs
- Endpoint host สำหรับServer ไม่ต้องใส่
- กำหนด Port ค่า defualt คือ 51820
- Keep alive คือการตรวจสอบการเชื่อมต่อ กำหนดเองว่าจะให้ตรวจสอบกี่วิ (ใส่หรือไม่ก็ได้ แนะนำให้ใส่ )
3. กด Save
การตั้งค่า Wireguard สำหรับ Client
ขั้นตอนการตั้งค่า
1. ไปที่เมนู Service > VPN
2. เลือกหัวข้อ Wireguard
3. เพิ่ม Wireguard Interface โดยตั้งชื่อและกด Add
4. กดปุ่ม save เพื่อบันทึกข้อมูลและหลังจากบึนทึกสำเร็จให้ทำการกดปุ่ม edit เพื่อใส่รายละเอียดการตั้งค่า
เมื่อกดปุ่ม edit ให้ทำการใส่รายละเอียดการตั้งค่าดังนี้
- กด Generate เพื่อ สร้าง Private Key และ Public Key
- Listen port : กำหนด Port ค่า defualt คือ 51820
- IP Address : กำหนด Tunnel IP
- Metric : 0
- MTU : 1420
Add Peers คือการเพิ่มอุปกรณ์ปลายทางที่ต้องการเชื่อมต่อกับ Server มีขั้นตอนดังนี้
1. กดปุ่ม Add ที่แถบเมนู Peers
2. กดปุ่ม Edit และใส่รายละเอียดการตั้งค่าดังนี้
- ใส่คำอธิบายว่าจะเชื่อมต่อไปที่ไหน
- ใส่ Public Key ของ อุปกรณ์ปลายทางที่จะเชื่อมต่อไป (ไม่ใช้ของตัวเอง)
- Allowed IPs คือ การทำ Routes ไปหน้าอุปกรณ์ปลายทาง(ต้องใส่ทั้ง IP Tunnel และ Local IP)
- เลือก Routes Allowed IPs
- Endpoint host สำหรับ Client ให้ใส่หมายเลข WAN IP Adress ของ Server
- กำหนด Port ค่า defualt คือ 51820
- Keep alive คือการตรวจสอบการเชื่อมต่อ กำหนดเองว่าจะให้ตรวจสอบกี่วิ (ใส่หรือไม่ก็ได้ แนะนำให้ใส่ )
3. กด Save