squid 프록시 서버
● 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. 간지니