이 설정은 Debian 13 패키지를 포함한 Squid 6.13용입니다. squid -v로 설치 버전을 확인하세요. Squid 지시문 설명서는 버전 8에서 http_access를 사용할 수 없다고 표시합니다.

먼저 주소를 선택하세요

리스너에는 서버에 할당된 주소가 필요합니다. 클라이언트 규칙에는 Squid가 관찰하는 출발지 주소가 필요합니다. 노트북의 사설 주소 대신 NAT 네트워크의 공인 출구 주소일 수 있습니다.

아래 문서용 주소를 바꾸세요. 클라이언트 제한은 /32로 표시한 주소 하나입니다.

http_port 192.0.2.10:3128
acl proxy_client src 198.51.100.27/32
acl Safe_ports port 80 443
acl SSL_ports port 443
acl CONNECT method CONNECT

http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny manager
http_access deny to_localhost
http_access deny to_linklocal
http_access allow proxy_client
http_access deny all

패키지 설정의 해당 리스너, ACL 정의, 접근 규칙을 바꾸되 로그와 파일 시스템 설정은 유지하세요. 기존 클라이언트 허용 규칙보다 아래에 추가하면 제한을 우회할 수 있습니다. 목록형 ACL을 반복 정의하면 값이 추가될 수도 있습니다.

요청이 규칙을 통과하는 방식

처음의 거부 규칙은 불필요한 목적지 포트, 관리 요청, 로컬 또는 링크 로컬 목적지를 거부합니다. 알려진 클라이언트는 이 검사 뒤에 허용되며 나머지는 최종 거부에 도달합니다. 출발지 허용 목록만으로는 목적지를 제한하지 못하므로 목적지 보호가 계속 필요합니다.

리스너를 노출하기 전에 호스트나 네트워크 방화벽을 의도한 출발지로 제한하세요. 바인딩은 Squid가 연결을 받는 위치를 정하고 접근 규칙은 허용할 요청을 정합니다.

sudo squid -k parse -f /etc/squid/squid.conf

관리되는 서비스를 다시 로드하기 전에 구문 분석 오류를 고치세요. 허용된 클라이언트와 거부돼야 하는 두 번째 관리 대상 출발지에서 테스트하세요. 목적지가 허가된 요청만 받는지 확인하세요. TCP 연결만으로는 전달 권한이 입증되지 않습니다.

관련 글