Squid
คู่มือนี้อธิบายวิธีกำหนดค่า Squid 6.x ให้ทำงานร่วมกับ Glasswall Halo ICAP server เพื่อเปิดใช้การป้องกันภัยคุกคามขั้นสูงผ่านเทคโนโลยี Content Disarm and Reconstruction (CDR) ขั้นสูงของเราผ่าน Glasswall Halo
หมายเหตุ: คำแนะนำอ้างอิงจาก Squid 6.x built with OpenSSL สำหรับรายการตัวเลือกการกำหนดค่าทั้งหมด โปรดดูที่ เอกสารประกอบของ Squid.
คู่มือการผสานรวม Squid
- ขั้นตอนที่ 1 - การกำหนดค่าพื้นฐาน
- ขั้นตอนที่ 2 - การเชื่อมต่อแบบคงอยู่
- ขั้นตอนที่ 3 - รีสตาร์ต squid
- ขั้นตอนที่ 4 - การแก้ไขปัญหา (ไม่บังคับ)
- ขั้นตอนที่ 5 - เปิดใช้งานการสแกน https
- ขั้นตอนที่ 6 - รีสตาร์ทครั้งสุดท้าย
ขั้นตอนที่ 1: การกำหนดค่าพื้นฐาน
ค้นหาและแก้ไขไฟล์การกำหนดค่า Squid ของคุณ ซึ่งโดยทั่วไปจะอยู่ที่:
/etc/squid/squid.conf/etc/squid5/squid.conf
1A - กำหนดรายการควบคุมการเข้าถึง
ยกเลิกการคอมเมนต์หรือเพิ่ม ACL ต่อไปนี้สำหรับเครือข่ายภายในและพอร์ตที่ปลอดภัย:
acl localnet src 10.0.0.0/8
acl localnet src 172.16.0.0/12
acl localnet src 192.168.0.0/16
acl localnet src fc00::/7
acl localnet src fe80::/10
acl SSL_ports port 443
acl Safe_ports port 80
acl Safe_ports port 21
acl Safe_ports port 443
acl Safe_ports port 70
acl Safe_ports port 210
acl Safe_ports port 1025-65535
acl Safe_ports port 280
acl Safe_ports port 488
acl Safe_ports port 591
acl Safe_ports port 777
acl CONNECT method CONNECT
1B - อนุญาตการเข้าถึงจากเครือข่ายภายใน
ภายใต้การกำหนดค่าสิทธิ์การเข้าถึงขั้นต่ำที่แนะนำ ให้เพิ่ม:
http_port 3128
http_access allow localnet
http_access allow localhost
http_access deny all
1C - เปิดใช้งาน ICAP
เพิ่มรายการต่อไปนี้เพื่อเปิดการรองรับ ICAP:
icap_enable on
icap_send_client_ip on
icap_preview_enable on
icap_preview_size 0
icap_service_failure_limit -1
1D - กำหนดค่าการแก้ไขคำขอ (การอัปโหลด)
icap_service glasswall_req reqmod_precache bypass=0 icap://<Halo ICAP Server>:1344/req-cdr-service
adaptation_access glasswall_req allow all
1E - กำหนดค่าการแก้ไขการตอบกลับ (การดาวน์โหลด)
icap_service glasswall_resp respmod_precache bypass=0 icap://<Halo ICAP Server>:1344/req-cdr-service
adaptation_access glasswall_resp allow all
ขั้นตอนที่ 2 - การเชื่อมต่อแบบคงอยู่
Squid 6.x รองรับการเชื่อมต่อ ICAP แบบคงอยู่โดยค่าเริ่มต้น หากต้องการบังคับใช้:
icap_persistent_connections on
เคล็ดลับ: ตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์ ICAP ได้รับการกำหนดค่าสำหรับการเชื่อมต่อแบบคงอยู่ด้วย มิฉะนั้น ให้ปิดใช้งาน (off) เพื่อป้องกันข้อผิดพลาด
ขั้นตอนที่ 3 - รีสตาร์ท squid
ใช้การเปลี่ยนแปลง:
sudo systemctl restart squid
ขั้นตอนที่ 4 - การแก้ไขปัญหา (ไม่บังคับ)
หากคุณพบข้อผิดพลาดเช่น:
essential ICAP service is down after an options fetch failure: icap://<Halo ICAP Server>:1344/req-cdr-service [down,!opt]
ตรวจสอบสิ่งต่อไปนี้:
- ยืนยันว่าคุณกำลังใช้งาน Squid 6.x รุ่นเสถียรล่าสุด
- หากการเชื่อมต่อแบบ persistent ทำให้เกิดปัญหา ให้ปิดใช้งาน:
icap_persistent_connections off
ขั้นตอนที่ 5 - การสแกนเนื้อหา HTTPs
ในการสแกนทราฟฟิก https ที่เข้ารหัส Squid ต้องถูกคอมไพล์ด้วย SSL และกำหนดค่าให้รองรับ SSL bumping
ข้อกำหนด
- Squid 6.x พร้อม openssl
- ใบรับรอง root สำหรับการดักจับ SSL
5A - อัปเดตพอร์ตที่รับฟัง
http_port 3128 ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=<SQUIDFOLDER>/etc/ssl/myc.pem
5B - กำหนดค่า SSL bump
sslcrtd_program <SQUIDFOLDER>/lib/squid/ssl_crtd -s <SQUIDFOLDER>/var/cache/squid_ssldb -M 4MB
sslcrtd_children 5
ssl_bump server-first all
acl step1 at_step SslBump1
ssl_bump peek step1
ssl_bump bump all
sslproxy_cert_error deny all
5C - สร้างและติดตั้งใบรับรอง root
openssl req -new -newkey rsa:2048 -days 1000 -nodes -x509 -keyout myc.pem -out myc.pem
เริ่มต้นที่เก็บใบรับรอง:
rm -rf <SQUIDFOLDER>/var/cache/squid_ssldb
<SQUIDFOLDER>/lib/squid/ssl_crtd -c -s <SQUIDFOLDER>/var/cache/squid_ssldb
สำคัญ: ติดตั้ง myc.pem เป็นใบรับรอง root ที่เชื่อถือได้ในเบราว์เซอร์ของคุณ
ขั้นตอนที่ 6 - รีสตาร์ทครั้งสุดท้าย
รีสตาร์ท Squid เพื่อให้การเปลี่ยนแปลงทั้งหมดมีผลสมบูรณ์:
sudo systemctl restart squid