주요 콘텐츠로 건너뛰기

Squid

이 가이드는 Squid 6.xGlasswall Halo ICAP server와 함께 구성하는 방법을 설명하며, Glasswall Halo를 통해 고급 Content Disarm and Reconstruction (CDR) 기술로 향상된 위협 방어를 활성화합니다.

참고: 지침은 OpenSSL로 빌드된 Squid 6.x를 기준으로 합니다. 전체 구성 옵션 목록은 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를 실행 중인지 확인하세요
  • 지속 연결로 인해 문제가 발생하면 다음과 같이 비활성화합니다:
icap_persistent_connections off

5단계 - HTTPs 콘텐츠 스캔

암호화된 https 트래픽을 스캔하려면 Squid를 SSL로 컴파일하고 SSL bumping용으로 구성해야 합니다.

요구 사항

  • openssl이 포함된 Squid 6.x
  • 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 - 루트 인증서 생성 및 설치

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을 신뢰할 수 있는 루트 인증서로 설치하세요.

6단계 - 최종 재시작

모든 변경 사항을 최종 적용하려면 Squid를 다시 시작합니다:

sudo systemctl restart squid