ผ่านไปเกือบสี่ปีนับตั้งแต่ตีพิมพ์สาขา 2.4 และเวอร์ชันรองใดถูกปล่อยออกมา (แก้ไขข้อบกพร่องและคุณสมบัติเพิ่มเติมบางอย่าง) มีการเตรียมรุ่น OpenVPN 2.5.0
รุ่นใหม่นี้ มาพร้อมกับการเปลี่ยนแปลงที่สำคัญมากมาย สิ่งที่น่าสนใจที่สุดที่เราสามารถพบได้นั้นเกี่ยวข้องกับการเปลี่ยนแปลงในการเข้ารหัสเช่นเดียวกับการเปลี่ยนไปใช้ IPv6 และการนำโปรโตคอลใหม่
เกี่ยวกับ OpenVPN
สำหรับผู้ที่ไม่คุ้นเคยกับ OpenVPN พวกเขาควรทราบ นี่คือเครื่องมือเชื่อมต่อที่ใช้ซอฟต์แวร์ฟรี SSL (Secure Sockets Layer), VPN Virtual Private Network
OpenVPN นำเสนอการเชื่อมต่อแบบจุดต่อจุดพร้อมการตรวจสอบความถูกต้องตามลำดับชั้นของผู้ใช้และโฮสต์ที่เชื่อมต่อ จากระยะไกล เป็นตัวเลือกที่ดีมากในเทคโนโลยี Wi-Fi (เครือข่ายไร้สาย IEEE 802.11) และรองรับการกำหนดค่าที่หลากหลายรวมถึงการจัดสรรภาระงาน
OpenVPN เป็นเครื่องมือหลายแพลตฟอร์มที่ทำให้การกำหนดค่า VPN ง่ายขึ้นเมื่อเทียบกับรุ่นเก่าและกำหนดค่าได้ยากกว่าเช่น IPsec และทำให้ผู้ที่ไม่มีประสบการณ์ในเทคโนโลยีประเภทนี้สามารถเข้าถึงได้มากขึ้น
คุณสมบัติใหม่หลักของ OpenVPN 2.5.0
จากการเปลี่ยนแปลงที่สำคัญที่สุดเราพบว่า OpenVPN 2.5.0 เวอร์ชันใหม่นี้คือ รองรับการเข้ารหัส ดาต้าลิงค์โดยใช้การเข้ารหัสสตรีม ChaCha20 และอัลกอริทึม การรับรองความถูกต้องของข้อความ (MAC) Poly1305 ที่อยู่ในตำแหน่งที่เร็วกว่าและปลอดภัยกว่าของ AES-256-CTR และ HMAC ซึ่งการใช้งานซอฟต์แวร์ช่วยให้บรรลุเวลาดำเนินการคงที่โดยไม่ต้องใช้การสนับสนุนฮาร์ดแวร์พิเศษ
La ความสามารถในการจัดหาคีย์ tls-crypt ให้กับลูกค้าแต่ละราย ซึ่งช่วยให้องค์กรขนาดใหญ่และผู้ให้บริการ VPN สามารถใช้การป้องกันสแต็ก TLS และเทคนิคการป้องกัน DoS ที่เคยมีมาก่อนในการกำหนดค่าขนาดเล็กโดยใช้ tls-auth หรือ tls-crypt
การเปลี่ยนแปลงที่สำคัญอีกประการหนึ่งคือ ปรับปรุงกลไกในการเจรจาการเข้ารหัส ใช้เพื่อป้องกันช่องทางการส่งข้อมูล เปลี่ยนชื่อ ncp-ciphers เป็น data-ciphers เพื่อหลีกเลี่ยงความคลุมเครือด้วยตัวเลือก tls-cipher และเพื่อเน้นว่า data-ciphers เป็นที่ต้องการสำหรับการกำหนดค่า data channel ciphers (ชื่อเดิมยังคงไว้สำหรับความเข้ากันได้)
ขณะนี้ไคลเอ็นต์ส่งรายการรหัสข้อมูลทั้งหมดที่สนับสนุนไปยังเซิร์ฟเวอร์โดยใช้ตัวแปร IV_CIPHERS ซึ่งช่วยให้เซิร์ฟเวอร์สามารถเลือกรหัสแรกที่เข้ากันได้กับทั้งสองฝ่าย
การสนับสนุนการเข้ารหัส BF-CBC ถูกลบออกจากการตั้งค่าเริ่มต้น. ตอนนี้ OpenVPN 2.5 รองรับเฉพาะ AES-256-GCM และ AES-128-GCM ตามค่าเริ่มต้น พฤติกรรมนี้สามารถเปลี่ยนแปลงได้โดยใช้ตัวเลือกการเข้ารหัสข้อมูล เมื่ออัปเกรดเป็น OpenVPN เวอร์ชันใหม่กว่าการกำหนดค่าของ การเข้ารหัส BF-CBC ในไฟล์คอนฟิกูเรชันเก่า จะถูกแปลงเพื่อเพิ่ม BF-CBC ลงในชุดการเข้ารหัสข้อมูล และเปิดใช้งานโหมดสำรองข้อมูลการเข้ารหัสข้อมูล
เพิ่มการสนับสนุนสำหรับการตรวจสอบสิทธิ์แบบอะซิงโครนัส (เลื่อนออกไป) ไปยังปลั๊กอิน auth-pam ในทำนองเดียวกันตัวเลือก "–client-connect" และ plugin connect API ได้เพิ่มความสามารถในการเลื่อนการส่งคืนไฟล์การกำหนดค่า
บน Linux มีการเพิ่มการรองรับอินเทอร์เฟซเครือข่าย การกำหนดเส้นทางและการส่งต่อเสมือน (VRF) ทางเลือก "–Bind-dev" มีไว้เพื่อวางขั้วต่อต่างประเทศใน VRF
รองรับการกำหนดค่าที่อยู่ IP และเส้นทางโดยใช้อินเทอร์เฟซ Netlink ที่จัดเตรียมโดยเคอร์เนล Linux Netlink ถูกใช้เมื่อสร้างขึ้นโดยไม่มีตัวเลือก "–enable-iproute2" และอนุญาตให้ OpenVPN ทำงานโดยไม่ต้องใช้สิทธิ์เพิ่มเติมเพื่อเรียกใช้ยูทิลิตี้ "ip"
โปรโตคอลเพิ่มความสามารถในการใช้การรับรองความถูกต้องแบบสองปัจจัยหรือการรับรองความถูกต้องเพิ่มเติมผ่านเว็บ (SAML) โดยไม่ขัดจังหวะเซสชันหลังจากการตรวจสอบครั้งแรก (หลังจากการตรวจสอบครั้งแรกเซสชันจะยังคงอยู่ในสถานะ "ไม่ได้รับการพิสูจน์ตัวตน" และรอการตรวจสอบสิทธิ์ครั้งที่สอง ขั้นตอนที่จะเสร็จสมบูรณ์)
ของคนอื่น การเปลี่ยนแปลงที่โดดเด่น:
- ตอนนี้คุณสามารถทำงานกับที่อยู่ IPv6 ภายในอุโมงค์ VPN เท่านั้น (ก่อนหน้านี้เป็นไปไม่ได้ที่จะทำสิ่งนี้โดยไม่ระบุที่อยู่ IPv4)
- ความสามารถในการผูกการเข้ารหัสข้อมูลและสำรองข้อมูลการตั้งค่าการเข้ารหัสไปยังไคลเอนต์จากสคริปต์การเชื่อมต่อไคลเอนต์
- ความสามารถในการระบุขนาด MTU สำหรับอินเทอร์เฟซ tun / tap ใน Windows
รองรับการเลือกเอ็นจิ้น OpenSSL เพื่อเข้าถึงคีย์ส่วนตัว (เช่น TPM)
ขณะนี้ตัวเลือก "–auth-gen-token" รองรับการสร้างโทเค็นที่ใช้ HMAC แล้ว - ความสามารถในการใช้ / 31 netmasks ในการตั้งค่า IPv4 (OpenVPN ไม่พยายามตั้งค่าที่อยู่ออกอากาศอีกต่อไป)
- เพิ่มตัวเลือก "–block-ipv6" เพื่อบล็อกแพ็กเก็ต IPv6
- ตัวเลือก "–ifconfig-ipv6" และ "–ifconfig-ipv6-push" ช่วยให้คุณระบุชื่อโฮสต์แทนที่อยู่ IP ได้ (ที่อยู่จะถูกกำหนดโดย DNS)
- รองรับ TLS 1.3 TLS 1.3 ต้องการ OpenSSL 1.1.1 เป็นอย่างน้อย เพิ่มตัวเลือก "–tls-ciphersuites" และ "–tls-groups" เพื่อปรับพารามิเตอร์ TLS