[웹서버] Squid Proxy Server 설치 및 사용하기

*** Proxy Server 개념

Proxy 서버란 방화벽시스템이 설치되어있는 호스트에서 동작하는 서버이며, 방화벽 내에 있는 사용자들에게 방화벽 밖에 있는 서버로의 자유로운 서비스 요구와 응답을 받기 위한 수단으로 만들어진 것이다.

해킹과 같이 외부로 부터의 불법적인 접속을 방어하기 위해 설치하는 시스템이 방화벽 인데 외부의 접속이 어려운 만큼 내부인의 외부접속도 제한될 수 밖에 없다. 이러한때 방화벽이 설치되어 있는 시스템에다 Proxy서버를 설치해두면 방확벽에서는 이 서버에 대한 동작을 허용하고 내부의 모든 사용자는 이 서버에게만 서비스 요구를 하도록 한다. 그러면 이 서버는 외부의 서버들에게 서비스 요청을하고 응답을 받으면 원래 요청했던 방화벽 내부의 사용자에게 전달해 준다. 즉, Proxy서버는 사용자 브라우저와 방화벽외부의 서버들 사이에서 방화벽을 통과하는 중계 역활을 해주는 것이다.

뿐만 아니라 Proxy는 Cache를 가지고 있기 때문에 여러사람들이 많이 들어가는 호스트는 이미 Cache에 데이타가 들어있기 때문에 Proxy에서 바로 가져다가 PC에 전달을하기 때문에 해외라인의 트래픽도 줄이고 속도도 빠른 이중의 효과를 얻게되는 것이다.

– 장 점

Caching된 페이지에 대한 요청의 지연시간이 1/4정도로 줄음.

전체망의 부하(load)와 Remote 서버의 부하가 줄어듬.

Remote 서버가 작동하지 않을때도 caching된 자료를 받아볼 수 있음

– 단 점

페이지의 old version을 Return할 수 있음.

Caching되지 않은 페이지에 대해선 지연 증가

Local 시스템 관리자가 신경써야 할 부분이 늘어남(디스크 및 프록시 서버 load)

*** Squid Proxy Server의 특징

Proxy Caching Server for web client

Suporting HTTP, FTP, Gopher

Support SSL, extensive access controls

* SSL : 쌍방향 보안 통신 규약으로 Netscape Communications Corporation이 인터 넷 상의 보안과 기밀을 보장하기 위해 개발한 규약이다.

Download : http://squid.nlanr.net/Squid/1.NOVM/

Squid Proxy Compile(Source내의 INSTALL 파일을 참조한다.)

gzip -dc squid.x.y.z-src.tar.gz | tar xvf-

cd squid-x.y.z

./configure –prefix=/some/other/directory/squid

./Configure (Version에 따라 해주지 않아도 되는경우가 있다)

make all

make install

*** Squid Proxy Configuration

   vi /some/other/directory/squid/etc/squid.conf

   http_port 8080 -> 8080포트를 이용하여 통신

   local_domain nuri.net -> 현재 소유도메인 기술

   neighbor_timeout 2 -> 외부 cache서버로 cache data 요청후부터 응답 대기시간(단위:초)

   cache_mem 40 -> 사용가능한 VirtureMemory (단위 : Mbyte)

   cache_swap 5000 -> cache 용으로 사용한 디스크량을 설정 (단위 Mbyte)

   cache_swap_low 80 -> 정해진 cache디스크가 최저 80% 이하 삭제하지 않음

   cache_swap_high 95 -> 정해진 cache 디스크가 95%가 넘으면 80%가지 삭제

   maximum_object_size 16384 -> cache데이타가 16384Kbyte 이상 되는것은 디스크에 저장되지 않음.

   cache_dir /usr/local/squid/cache – > cache 디렉토리 지정

   request_size 4096 -> 최고 허가 요구 사이즈 (단위 Kbyte)

   cache_mgr haesung@nuri.net -> cache 관리자 e-mail address

   cache_effective_user nobody nogroup -> 실행가능한 UID / GID

   visible_hostname proxy.nuri.net -> Proxy Server name 기술한다.

   append_domain .nuri.net -> 소유도메인을 추가하는 것으로 반드시 점을 먼저찍고 도메인을 기술한다.

   각 로그파일의 디렉토리를 지정하여 기술해준다

   cache_access_log /usr/local/squid/logs/access.log

   cache_log /usr/local/squid/logs/cache.log

   cache_store_log /usr/local/squid/logs/store.log

   cache_swap_log /usr/local/squid/logs/swap.log

*** Squid Run

/etc/group 에 nogroup 추가

mkdir /usr/local/squid/cache

chown -R logs cache

cd /usr/local/squid/cache

../bin squid -z (cache 디렉토리를 만든다)

su nobody ( root에서 실행하면 보안상 문제가 되어 실행이 되지 않는다)

/usr/local/squid/bin/RunCache &

——————————————————————————–

*** Proxy Server 활용

– Multiple Proxy Caching

Single Proxy Caching 의 문제점

   – Proxy 에 문서를 요구하는 client들의 수가 proxy 에 지나치게 많으면 병목

     현상으로 인해 속도저하 및 접속불가가 되기 쉬움

Single Proxy Caching 의 문제해결방안

   – 여러 개의 caching proxy를 연동시켜서 서로 가지고 있는 cache 등을 공유함

    예) Harvest cache, Squid cache

Multiple Proxy Caching 이란?

   – Client 의 요청에 따른 object 가 cache 에 없으면 local cache는 자신에게

     연결되어 있는 neighbor, parent cache, primary host에 동시에 요청 (request)을

     보냄

   – 그 중에서 가장 빨리 hit message를 보내주는 host로부터 객체를 가져옴

*** 게이트웨이 역활

비공인 IP address 를 사용하는 지역에서의 인터넷 이용

– 비공인 IP Address 를 사용하는 지역에서는 공인IP 를 사용하는 인터넷망으로 나올 수 가 없어 내부에서만 동작이 가능하다.이런 경우 Proxy를 이용하여 비공인 IP를 공인된 IP처럼 가상으로 변환하여 인터넷 을 이용할 수 있도록 게이트웨이 역할을 하는 방법이 있다.

보안용 장비로 이용

– 외부에서 접속을 하거나 DNS로 외부에 노출되는 것을 막고자 하는 경우Proxy 서버를 중간 게이트웨이로 이용을 하면 Proxy 뒤의 서버들은 외부에서 확인이나 접속이 불가능하다.

서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...

페이스북/트위트/구글 계정으로 댓글 가능합니다.