WireGuard: นอกเหนือจากการตั้งค่าพื้นฐาน
(sloonz.github.io)-
การตั้งค่าพื้นฐาน
- แชร์ประสบการณ์จากความพยายามเปลี่ยนจาก OpenVPN มาใช้ WireGuard
- สรุปการตั้งค่าพื้นฐาน:
- สร้างคู่คีย์สำหรับทั้งฝั่งเซิร์ฟเวอร์และไคลเอนต์
- กำหนดเครือข่าย VPN และที่อยู่ IP
- เขียนและรันไฟล์คอนฟิกของเซิร์ฟเวอร์และไคลเอนต์
- สามารถใช้ network namespace เพื่อแยก VPN ออกจากการเชื่อมต่ออินเทอร์เน็ตได้
-
NAT
- แก้ปัญหาของบางแอปพลิเคชันที่ทำงานไม่ได้เมื่ออยู่หลัง NAT
- สามารถใช้ UPnP เพื่อแก้ปัญหา NAT ได้
- WireGuard ไม่รองรับ UPnP โดยค่าเริ่มต้น จึงต้องตั้งค่าด้วยตนเอง
- สามารถเพิ่มความสามารถ UPnP ได้ผ่านการติดตั้งและตั้งค่า
miniupnpd
-
IPv6
- วิธีที่ดีกว่าในการแก้ปัญหา NAT คือการไม่ใช้ NAT
- สามารถใช้ IPv6 เพื่อกำหนดที่อยู่ที่สามารถ route ได้สาธารณะโดยไม่ต้องใช้ NAT
- สามารถกำหนดที่อยู่ IPv6 ให้กับเซิร์ฟเวอร์และไคลเอนต์เพื่อสื่อสารกันได้โดยไม่ต้องใช้ NAT
- ด้วยการตั้งค่า IPv6 จึงสามารถเข้าถึงได้จากอินเทอร์เน็ตสาธารณะโดยไม่ต้องพึ่ง UPnP
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
กำลังตั้งค่าเซิร์ฟเวอร์ส่วนตัวและต้องการให้บริการที่เข้าถึงได้ผ่านเว็บ ใช้ Caddy เพื่อแมปซับโดเมนไปยังบริการได้สำเร็จแล้ว แต่ Tailscale Magic DNS ไม่รองรับซับโดเมน จึงอยากตั้งค่า pihole เพื่อสร้างเซิร์ฟเวอร์ DNS ส่วนตัว และสงสัยว่านี่เป็นข้อจำกัดของ Wireguard หรือไม่
พบเว็บไซต์ที่มีประโยชน์สำหรับการตั้งค่า Wireguard: Procustodibus Wireguard Topologies
หากตั้งค่าเรคคอร์ด Dynamic DNS เพื่อแมปชื่อโฮสต์ไปยัง IP แบบไดนามิกของเครือข่ายที่บ้าน ก็จะสามารถใช้ VPN ส่วนตัวได้ ซึ่งทำให้เข้าถึงบริการภายในจากระยะไกลได้โดยไม่ต้องเปิดเผยต่ออินเทอร์เน็ตภายนอก
มีความเข้าใจผิดว่าการใช้ Wireguard จำเป็นต้องมี NAT แต่จริง ๆ แล้วหากโฮสต์ปลายทางมองเห็นเซิร์ฟเวอร์ Wireguard เป็นเกตเวย์ การเราต์ซับเน็ตแบบปกติก็ทำงานได้ดี แค่ตั้งค่า static route บนเราเตอร์หลักก็เพียงพอ
สงสัยว่ามีหนังสือดี ๆ ที่อธิบายหลักการ การติดตั้งใช้งาน และการตั้งค่า Wireguard หรือไม่ หนังสือเกี่ยวกับ IPSEC มีมาก แต่ของ Wireguard หาได้ยาก
รู้สึกแปลกใจที่ใน Wireguard ไม่มีวิธีง่าย ๆ ในการทำให้ทราฟฟิกทั้งหมดวิ่งผ่าน tunnel ยกเว้นบาง IP จำเป็นต้องสร้างรายการ CIDR ทั้งหมดที่ยกเว้น IP นั้นแบบโปรแกรมmatically
เสียดายที่ไม่มีฟีเจอร์ RBAC แม้ Wireguard จะเร็วกว่า OpenVPN แต่เพราะต้องใช้ RBAC จึงยังต้องใช้ OpenVPN สำหรับพนักงานและผู้รับจ้าง
ใช้งาน Wireguard ร่วมกับ IPv6 อยู่ แต่ฟีเจอร์ IPv6 prefix delegation ไม่ทำงาน อยากให้แต่ละอุปกรณ์เลือกและเปลี่ยนที่อยู่ของตัวเองได้เหมือนในซับเน็ต Ethernet ปกติ
ไม่สามารถทำให้ port forwarding บน Wireguard ทำงานได้อย่างถูกต้องโดยไม่ใช้ masquerading หากต้องการคง source IP ไว้ ต้องเพิ่ม 0.0.0.0/0 ใน AllowedIPs แต่สิ่งนี้กลับขัดขวางไม่ให้การตอบกลับของแอปพลิเคชันย้อนกลับไปยังต้นทาง
กำลังสร้างโครงสร้างพื้นฐานบน IPv6 ต้องการใช้การเข้ารหัสสมัยใหม่และการออกแบบแบบ stateless ของ Wireguard ขณะเดียวกันก็ไม่อยากใช้ระบบที่อยู่ของ Wireguard แต่ต้องการคงระบบที่อยู่ IPv6 เดิมไว้