개념 사전 · 프로그램

Squid

스퀴드

는 클라이언트의 웹 요청을 대신 전달하고 접근 정책·로그·캐시를 적용하는 프록시 서버이다. 대표적인 구성에서는 사용자가 접속하려는 여러 외부 서버로 요청을 중계한다.

밑줄 용어에 마우스를 올리거나, 키보드로 선택하거나, 터치하면 설명을 볼 수 있습니다.

01무엇이고, 어떤 일을 하나

  • 클라이언트와 외부 웹 서버 사이의 요청 전달 경로를 제공한다.
  • 출발지·대상·메서드 등 조건에 따라 프록시 사용을 허용하거나 거부한다.
  • 캐시 가능한 응답을 재사용하고 접근 로그로 요청 결과를 관찰한다.

02어떤 순서로 동작하나

  1. 프록시 요청 수신

    클라이언트가 설정된 주소로 HTTP 프록시 요청을 보낸다. HTTPS 목적지에서는 일반적으로 로 대상 호스트와 포트까지의 터널을 요청한다.

  2. 접근 규칙 평가

    조건과 규칙을 설정 순서대로 평가하여 첫 일치 규칙의 허용·거부를 적용한다. 특정 목적지 포트·내부 주소에 대한 제한도 함께 설계한다.

  3. 캐시 또는 외부 연결

    일반 HTTP 요청에서 캐시 가능한 유효 응답이 있으면 재사용하고, 없으면 원격 서버에 연결한다. 터널의 암호화 본문은 별도 중간 처리 설정 없이 평문 HTTP처럼 읽지 않는다.

  4. 응답과 기록

    응답 또는 터널 바이트를 클라이언트에 전달하고 접근 결과를 로그에 남긴다. 성공 코드·거부·외부 연결 실패·캐시 결과를 서로 다른 상태로 해석한다.

03먼저 알아둘 용어와 구성요소

클라이언트가 외부 서버에 접근할 때 클라이언트 쪽을 대신하는 중계 서버이다.
지정된 호스트·포트로 터널을 요청하는 HTTP 메서드이다. 성공 이후의 바이트가 자동으로 HTTP 평문이 되는 것은 아니다.
규칙에서 출발지·메서드·대상 등 일치 조건을 정의하는 구성요소이다.
정의한 조건을 조합해 프록시 요청의 허용·거부를 정하는 지시어이다.
저장된 응답을 원본 서버에 재검증하지 않고 재사용할 수 있는지 판단하는 조건이다.
접근 제한이 부족하여 의도하지 않은 사용자가 외부 연결을 중계할 수 있는 상태이다.

04예제로 따라가기

  • 실습 클라이언트만 허용한 뒤에 deny all을 두면 허용 범위 밖의 요청을 거부하는 의도가 명확해진다. 앞의 넓은 allow 규칙이 먼저 일치하면 뒤의 deny는 그 요청에 적용되지 않는다.
  • HTTPS 성공은 원격 사이트의 애플리케이션 로그인까지 성공했다는 뜻이 아니다.
  • 같은 URL을 다시 요청해도 인증·캐시 정책·유효기간 때문에 항상 캐시 적중이 되는 것은 아니다. 접근 로그의 실제 결과를 읽어야 한다.

05혼동하기 쉬운 점과 확인 기준

  • 와 의 일반적인 설정을 같은 구성 문법으로 취급하지 않는다.
  • 프록시를 거쳤다는 사실만으로 HTTPS 암호화 내용을 검사했다고 주장하지 않는다. 터널 중계와 종료는 서로 다른 동작이다.

06상세 노트 · 실습 자료

헤더 구조, 설정 예시, 수치 계산과 수업 캡처는 아래 노트에서 이어집니다.

공식 문서 · 표준

기초 개념과 동작 설명을 대조한 자료입니다. 제품 버전과 실제 설정에 따른 차이는 본문 및 원문에서 확인하세요.