ข้ามไปยังเนื้อหาหลัก

Squid

คู่มือนี้อธิบายวิธีกำหนดค่า Squid 6.x ให้ทำงานร่วมกับ Glasswall Halo ICAP server เพื่อเปิดใช้การป้องกันภัยคุกคามขั้นสูงผ่านเทคโนโลยี Content Disarm and Reconstruction (CDR) ขั้นสูงของเราผ่าน Glasswall Halo

หมายเหตุ: คำแนะนำอ้างอิงจาก Squid 6.x built with OpenSSL สำหรับรายการตัวเลือกการกำหนดค่าทั้งหมด โปรดดูที่ เอกสารประกอบของ Squid.

คู่มือการผสานรวม Squid

ขั้นตอนที่ 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