개념 사전 · 프로그램
Squid
스퀴드
는 클라이언트의 웹 요청을 대신 전달하고 접근 정책·로그·캐시를 적용하는 프록시 서버이다. 대표적인 구성에서는 사용자가 접속하려는 여러 외부 서버로 요청을 중계한다.
밑줄 용어에 마우스를 올리거나, 키보드로 선택하거나, 터치하면 설명을 볼 수 있습니다.
01무엇이고, 어떤 일을 하나
- 클라이언트와 외부 웹 서버 사이의 요청 전달 경로를 제공한다.
- 출발지·대상·메서드 등 조건에 따라 프록시 사용을 허용하거나 거부한다.
- 캐시 가능한 응답을 재사용하고 접근 로그로 요청 결과를 관찰한다.
02어떤 순서로 동작하나
- 프록시 요청 수신
클라이언트가 설정된 주소로 HTTP 프록시 요청을 보낸다. HTTPS 목적지에서는 일반적으로 로 대상 호스트와 포트까지의 터널을 요청한다.
- 접근 규칙 평가
조건과 규칙을 설정 순서대로 평가하여 첫 일치 규칙의 허용·거부를 적용한다. 특정 목적지 포트·내부 주소에 대한 제한도 함께 설계한다.
- 캐시 또는 외부 연결
일반 HTTP 요청에서 캐시 가능한 유효 응답이 있으면 재사용하고, 없으면 원격 서버에 연결한다. 터널의 암호화 본문은 별도 중간 처리 설정 없이 평문 HTTP처럼 읽지 않는다.
- 응답과 기록
응답 또는 터널 바이트를 클라이언트에 전달하고 접근 결과를 로그에 남긴다. 성공 코드·거부·외부 연결 실패·캐시 결과를 서로 다른 상태로 해석한다.
03먼저 알아둘 용어와 구성요소
- 클라이언트가 외부 서버에 접근할 때 클라이언트 쪽을 대신하는 중계 서버이다.
- 지정된 호스트·포트로 터널을 요청하는 HTTP 메서드이다. 성공 이후의 바이트가 자동으로 HTTP 평문이 되는 것은 아니다.
- 규칙에서 출발지·메서드·대상 등 일치 조건을 정의하는 구성요소이다.
- 정의한 조건을 조합해 프록시 요청의 허용·거부를 정하는 지시어이다.
- 저장된 응답을 원본 서버에 재검증하지 않고 재사용할 수 있는지 판단하는 조건이다.
- 접근 제한이 부족하여 의도하지 않은 사용자가 외부 연결을 중계할 수 있는 상태이다.
04예제로 따라가기
- 실습 클라이언트만 허용한 뒤에 deny all을 두면 허용 범위 밖의 요청을 거부하는 의도가 명확해진다. 앞의 넓은 allow 규칙이 먼저 일치하면 뒤의 deny는 그 요청에 적용되지 않는다.
- HTTPS 성공은 원격 사이트의 애플리케이션 로그인까지 성공했다는 뜻이 아니다.
- 같은 URL을 다시 요청해도 인증·캐시 정책·유효기간 때문에 항상 캐시 적중이 되는 것은 아니다. 접근 로그의 실제 결과를 읽어야 한다.
05혼동하기 쉬운 점과 확인 기준
- 와 의 일반적인 설정을 같은 구성 문법으로 취급하지 않는다.
- 프록시를 거쳤다는 사실만으로 HTTPS 암호화 내용을 검사했다고 주장하지 않는다. 터널 중계와 종료는 서로 다른 동작이다.
06상세 노트 · 실습 자료
헤더 구조, 설정 예시, 수치 계산과 수업 캡처는 아래 노트에서 이어집니다.
공식 문서 · 표준
기초 개념과 동작 설명을 대조한 자료입니다. 제품 버전과 실제 설정에 따른 차이는 본문 및 원문에서 확인하세요.