วิธีดำเนินการคือใช้คุณสมบัติ ssl peek ที่แนะนำใน Squid 3.5 ดู ที่นี่ สำหรับคำอธิบายโดยละเอียด โปรดทราบว่าคุณจะต้องคอมไพล์ด้วย --กับตะปุ่มตะป่ำ
หรือ --ด้วย-openssl
(ตรวจสอบ ปลาหมึก -v
). distros บางอย่างปล่อยให้พวกเขาออกไป
กล่าวโดยย่อ การกำหนดค่าปลาหมึกที่เกี่ยวข้องมีลักษณะดังนี้
acl cancellist_ssl ssl::server_name google.com # ไม่ใช่ dstdomain
acl step1 ที่_step SslBump1
ssl_bump ดูขั้นตอนที่ 1
ssl_bump splice !denylist_ssl # อนุญาตทุกอย่างที่ไม่อยู่ในรายการปฏิเสธ
ssl_bump ยุติ # บล็อกทุกอย่างที่เหลือ
https_port 3129 สกัดกั้น ssl-bump cert=/etc/squid/dummy.pem
(นอกเหนือ: ฉันไม่แน่ใจว่าทำไมเราต้องดูเฉพาะขั้นตอนที่ 1 ไม่ใช่ขั้นตอนที่ 2 เนื่องจากขั้นตอนที่ 2 เกี่ยวข้องกับการรับใบรับรองเซิร์ฟเวอร์เท่านั้น เอกสารไม่ได้ระบุอย่างชัดเจนเลย การใช้ ssl_bump ดูทั้งหมด
ตามที่พวกเขาแนะนำทำให้สิ่งนี้หยุดทำงานโดยสิ้นเชิง)
จากนั้นทำ redirect port 443 ถึง 3129 dance โดยใช้ iptables (หรือให้ Squid ฟังที่ 443 โดยตรงหากคุณต้องการ)
-A PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 3129
คุณสามารถใช้ใบรับรองใดก็ได้สำหรับหุ่นจำลอง เราไม่เคยใช้เลย (เพราะเราไม่ได้ถอดรหัสทราฟฟิก)
สิ่งนี้ได้ผล
opensl req -new -newkey rsa:4096 -sha256 -days 365 -nodes -x509 -keyout dummy.pem -out dummy.pem
แหล่งที่มา:
[1] https://unix.stackexchange.com/questions/613359/setting-up-squid-transparent-proxy-with-ssl-bumping-on-debian-10
[2] https://web.archive.org/web/20210128152111/https://www.cammckenzie.com/blog/index.php/2018/07/19/squid-https-interception-and-filtering-without-client- ใบรับรอง/
[3] https://wiki.squid-cache.org/Features/SslPeekAndSplice