หลังจากพัฒนามาสามปีเวอร์ชันเสถียรใหม่ของพร็อกซีเซิร์ฟเวอร์ Squid เวอร์ชัน 5.1 ได้ถูกปล่อยออกมาแล้วและพร้อมใช้งานในระบบการผลิต (เวอร์ชัน 5.0.x เป็นเวอร์ชันเบต้า)
หลังจากเวอร์ชัน 5.x มีเสถียรภาพแล้วจากนี้ไปจะมีการแก้ไขเฉพาะช่องโหว่และปัญหาด้านเสถียรภาพรวมถึงการปรับปรุงประสิทธิภาพเล็กน้อยเท่านั้น การพัฒนาฟีเจอร์ใหม่จะเกิดขึ้นในเวอร์ชันทดลอง 6.0 ผู้ใช้เวอร์ชัน 4.x ที่เสถียรแล้วควรวางแผนการอัปเกรดเป็นเวอร์ชัน 5.x
Squid 5.1 คุณสมบัติใหม่หลัก
ในเวอร์ชันใหม่นี้ความเข้ากันได้กับรูปแบบ Berkeley DB ถูกยกเลิกเนื่องจากปัญหาด้านลิขสิทธิ์ Berkeley DB เวอร์ชัน 5.x ไม่ได้รับการดูแลรักษามาหลายปีแล้วและยังมีช่องโหว่ที่ยังไม่ได้แก้ไข และการอัปเกรดเป็นเวอร์ชันใหม่กว่าก็ไม่สามารถเปลี่ยนแปลงลิขสิทธิ์ AGPLv3 ได้ ซึ่งข้อกำหนดของลิขสิทธิ์นี้ยังใช้กับแอปพลิเคชันที่ใช้ Berkeley DB เป็นไลบรารีด้วย Squid เผยแพร่ภายใต้ลิขสิทธิ์ GPLv2 และ AGPL ไม่เข้ากันกับ GPLv2
แทนที่จะใช้ Berkeley DB โครงการได้เปลี่ยนไปใช้ TrivialDB DBMSซึ่งแตกต่างจาก Berkeley DB ตรงที่ได้รับการปรับแต่งให้เหมาะสมกับการเข้าถึงฐานข้อมูลแบบขนานพร้อมกัน การสนับสนุน Berkeley DB ยังคงมีอยู่ แต่ขอแนะนำให้ใช้ประเภทการจัดเก็บข้อมูล "libtdb" แทน "libdb" ในตัวจัดการ "ext_session_acl" และ "ext_time_quota_acl"
นอกจากนี้ยังมีการเพิ่มการสนับสนุนสำหรับส่วนหัว HTTP CDN-Loop ซึ่งกำหนดไว้ใน RFC 8586 ซึ่งช่วยให้ตรวจพบลูปเมื่อใช้เครือข่ายการจัดส่งเนื้อหา (ส่วนหัวมีการป้องกันสถานการณ์ที่คำขอ ระหว่างการเปลี่ยนเส้นทางระหว่าง CDN ด้วยเหตุผลบางประการ จะส่งกลับ ไปยัง CDN ดั้งเดิม เพื่อสร้างวงวนไม่สิ้นสุด)
นอกจากนี้กลไก SSL-Bumpซึ่งอนุญาตให้ดักจับเนื้อหาของเซสชัน HTTPS ที่เข้ารหัส ได้เพิ่มการสนับสนุนสำหรับการเปลี่ยนเส้นทางคำขอ HTTPS ปลอมผ่านพร็อกซีเซิร์ฟเวอร์อื่นที่ระบุไว้ใน cache_peer โดยใช้ท่อส่งข้อมูลปกติที่อิงตามวิธีการ HTTP CONNECT (การส่งผ่าน HTTPS ยังไม่ได้รับการสนับสนุน เนื่องจาก Squid ยังไม่สามารถส่ง TLS ภายใน TLS ได้)
เมื่อได้รับคำขอ HTTPS ที่ถูกดักจับครั้งแรก SSL-Bump จะสร้างการเชื่อมต่อ TLSกับเซิร์ฟเวอร์เป้าหมายและขอรับใบรับรอง จากนั้นSquid จะใช้ชื่อโฮสต์ของใบรับรองจริงที่ได้รับจากเซิร์ฟเวอร์เพื่อสร้างใบรับรองปลอมซึ่งจะใช้ในการปลอมตัวเป็นเซิร์ฟเวอร์ที่ร้องขอเมื่อโต้ตอบกับไคลเอ็นต์ในขณะเดียวกันก็ยังคงใช้การเชื่อมต่อ TLS ที่สร้างขึ้นกับเซิร์ฟเวอร์เป้าหมายเพื่อรับข้อมูลต่อไป
นอกจากนี้ ยังควรสังเกตว่า การใช้งานICAP (Internet Content Adaptation Protocol) ซึ่งใช้สำหรับการบูรณาการกับระบบตรวจสอบเนื้อหาภายนอกได้เพิ่มการสนับสนุนกลไกการแนบข้อมูลซึ่งอนุญาตให้แนบส่วนหัวเมตาเดตาเพิ่มเติมไปยังการตอบกลับ โดยวางไว้ต่อจากส่วนเนื้อหาของข้อความ
แทนที่จะคำนึงถึง "dns_v4_first»เพื่อกำหนดลำดับการใช้ตระกูลที่อยู่ IPv4 หรือ IPv6 ตอนนี้ลำดับของการตอบสนองใน DNS ถูกนำมาพิจารณา- หากการตอบสนอง AAAA จาก DNS ปรากฏขึ้นก่อนในขณะที่รอให้ที่อยู่ IP แก้ไข ระบบจะใช้ที่อยู่ IPv6 ที่เป็นผลลัพธ์ ดังนั้น การตั้งค่ากลุ่มที่อยู่ที่ต้องการจึงเสร็จสิ้นในไฟร์วอลล์, DNS หรือเมื่อเริ่มต้นด้วยตัวเลือก "–disable-ipv6"
การเปลี่ยนแปลงที่เสนอนี้จะช่วยเร่งเวลาในการกำหนดค่าการเชื่อมต่อ TCP และลดผลกระทบด้านประสิทธิภาพของความล่าช้าในการแก้ปัญหา DNS
เมื่อทำการเปลี่ยนเส้นทางการร้องขอ จะใช้อัลกอริทึม "Happy Eyeballs"ซึ่งจะใช้ที่อยู่ IP ที่ได้รับทันที โดยไม่ต้องรอให้มีการระบุที่อยู่ IPv4 และ IPv6 ปลายทางที่เป็นไปได้ทั้งหมด
สำหรับใช้ในคำสั่ง "external_acl" ได้มีการเพิ่มไดรเวอร์ "ext_kerberos_sid_group_acl" สำหรับการตรวจสอบสิทธิ์กับกลุ่มการตรวจสอบใน Active Directory โดยใช้ Kerberos ยูทิลิตี ldapsearch ที่จัดเตรียมโดยแพ็กเกจ OpenLDAP ใช้เพื่อเคียวรีชื่อกลุ่ม
เพิ่มคำสั่ง mark_client_connection และ mark_client_pack เพื่อผูกแท็ก Netfilter (CONNMARK) กับแต่ละแพ็กเก็ตหรือการเชื่อมต่อ TCP ของไคลเอ็นต์
สุดท้ายนี้ มีการกล่าวถึงว่า ตามขั้นตอนของเวอร์ชัน Squid 5.2 และ Squid 4.17 ที่เผยแพร่ไปแล้วนั้นช่องโหว่ด้านความปลอดภัยต่อไปนี้ได้รับการแก้ไขแล้ว:
- CVE-2021-28116 - ข้อมูลรั่วไหลเมื่อประมวลผลข้อความ WCCPv2 ที่สร้างขึ้นเป็นพิเศษ ช่องโหว่ดังกล่าวทำให้ผู้โจมตีสร้างความเสียหายให้กับรายการเราเตอร์ WCCP ที่รู้จักและเปลี่ยนเส้นทางการรับส่งข้อมูลจากพร็อกซีไคลเอ็นต์ไปยังโฮสต์ ปัญหาจะปรากฏเฉพาะในการกำหนดค่าที่เปิดใช้งานการสนับสนุน WCCPv2 และเมื่อเป็นไปได้ที่จะปลอมแปลงที่อยู่ IP ของเราเตอร์
- CVE-2021-41611: ข้อผิดพลาดในการตรวจสอบใบรับรอง TLS ที่อนุญาตให้เข้าถึงโดยใช้ใบรับรองที่ไม่น่าเชื่อถือ
สุดท้ายนี้ หากคุณต้องการทราบข้อมูลเพิ่มเติม คุณสามารถตรวจสอบรายละเอียดได้ที่ลิงก์ต่อไปนี้