네트워크

squid 프록시 서버

강품바 2012. 10. 31. 11:38

● squid 프록시에 대한 설명

 

http://blog.naver.com/jeniday?Redirect=Log&logNo=10037704311

 

● 설정 옵션 설명 : 아래 주소와 파란색 박스안을 참고

 

 - http://blog.daum.net/k1447788/15715306 

 

http_port 3128

클라이언트 접속 요청에 대한 서비스할 포트 기본이 3128인가보다 80번으로 지정해도 됨

cache_mem 16 MB

서버에서 제공하는 메모리 양, 디폴트가 8MB (16메가면 적당하다는데 ㅋ)

maximum_object_size

캐시에 저장할수 있는 파일의 크기를 제한함 (캐시할 공간을 절약할때 사용) 기본이 4096KB 4메가 이상은 캐시에 저장하지 않음

cache_dir

변경된 정보(캐시)가 저장되는 디스크 경로와 그 크기 기정
cache_dir ufs /var/spool/squid 1000 16 256

 - squid 밑에 하위디렉토리 16개, 그 다음하위는 256개 디렉토리 크기 1기가까지

cache_access_log

클라이언트가 캐쉬에 접속했을때 로그정보를 기록해둘 파일 지정
- cache_access_log /var/log/squid/access.log ; 디폴트

cache_store_log

스퀴드의 캐시기능으로 저장된 임시 인터넷파일의 정보 기록해둔 로그파일 지정
- cache_store_log /var/log/squid/store.log

 

● 우분투에서 Squid 프록시 서버 설치 및 세팅

예전에 우분투에서 squid 프록시 설치할 때 정리해놓은 메뉴얼이다.

아래는 그냥 내가 설정했던 것들 위에는 인터넷에서 찾은 옵션 설명들

 

 

 

1. Squid proxy 서버 설치 및 Setting

1-1. 설치

 

apt-get install squid3를 입력하여 squid 패키지를 다운받는다.

# apt-get install squid3

 

1-2. 설정

 

vi /etc/squid3/squid.conf를 입력하여 squid.conf 설정파일을 열고 다음과 같이 수정한다.

# vi /etc/squid3/squid.conf

 

  이때 프록시 캐싱모드로 squid를 설정한다. 프록시 캐싱모드란 해당 네트워크의 모든 가입자가 squid를 통해야만 인터넷 및 다른 네트워크로 접근할 수 있는 것이다. 또한 별도의 설정으로 내부 사용자들의 사이트 방문지나 연결시간 등을 제어할 수 있다. 프록시 캐싱모드에서는 접근제어목록(ACL)을 사용한다. 이 옵션으로 원본주소, 목적지주소, 원본도메인, 목적지도메인, 시간 등을 제한 설정할 수 있다

 

18~21 : acl옵션으로 접근 리스트를 정의하고 http_access allow로 허용한다. 17~21째 줄에 다음과 같은 설정을 추가한다.

 

  이와 같이 프록시 캐싱모드로 squid를 활용한다면 적절한 설정으로 네트워크 및 포트 등을 통제할 수 있다. 따라서 부적절한 사이트에 대해 근본적으로 차단할 수 있다.

 

23 : 캐시저장 디렉터리에 7000MB까지 저장. 1차 디렉터리는 16개이고, 2차 하위 디렉터리는 256개이다.

 

 

1126 : 기본포트 3128을 다른 포트로 바꿔준다

 

 

3662 : squid 서버에 특정 호스트 이름을 주기 위해 visible_hostname을 변경한다. 이 호스트이름은 꼭 그 컴퓨터의 호스트 이름일 필요는 없다.

 

4772~4969 : ICAP OPTIONS을 설정한다. 다음과 같은 옵션을 추가한다.

 

icap_enable on

// icap 모듈을 사용하려고 할 때 on으로 설정한다.

 

icap_preview_enable on

// icap 서버가 HTTP 메시지 본문의 전체가 아닌 시작점을 보고 HTTP 메시지를 처리할 수 있도록 한다. icap 프로세싱의 속도를 높힌다.

 

icap_preivew_size -1

// icap 서버에서 받는 preview data의 사이즈이다. -1 값은 preview가 없다는 의미이다.

 

icap_send_client_ip on

//icap 요청에 X-Client-IP 헤더를 추가한다.

 

icap_send_client_username on

icap_client_username_header X-Authenticated-User

//icap_send_client_username 옵션은 icap_client_username_header옵션에 의해 지정된 헤더를 사용하여 username값을 받아 인증된 HTTP client username icap 서비스에 보낼 수 있도록 한다.

 

icap_service service_resp respmod_precache bypass=1 icap://127.0.0.1:1344/squidclamav

//icap_service 옵션으로 icap_service [id] [vectoring_point][uri][option]로 구성되어있다.

id : 특정 서비스에 트래픽이 전달될 때 사용되는 식별자이다.

vectoring_point: reqmod_precache, reqmod_postcache, respmod_precache, respmod_postcache 네가지의 설정이 있다. icap 서비스가 활성화 되어야 각 트랜잭션 처리할 위치를 지정한다. *_postcache 설정은 아직 지원되지 않는다. 이 설정들의 옵션으로 bypass =1을 지정하면 icap 서비스는 선택적 사항으로 여겨지고, 만약 서비스가 제대로 제공되지 못하여 에러메시지가 발생하여도 squid 서버는 이를 무시 할 것이다. bypass =0으로 지정한다면 icap서비스는 필수 사항으로 여겨지고 모든 icap 에러들은 HTTP 클라이언트에게 전송될 것이다.

uri : icap 서버와 서비스의 위치이다.

 

adaptation_access service_resp allow all

// serivce_resp(식별자 id)의 접근을 허가한다.

 

 

4772 : icap_enable on

 

 

4839, 4846 : icap_preview_enable on,  icap_preview_size -1

 

 

4859 : icap_send_client_ip on

 

 

4872 : icap_send_client_username on

 

 

4877 : icap_client_username_header X-Authenticated-User

 

 

4944~4945

icap_service service_resp respmod_precache bypass=1 icap://127.0.0.1:1344/squidclamav

adaptation_access service_resp allow all

 

 

 

by. 간지니