9. 도서관/__사. Network

Ubuntu + Squid를 이용한 프록시 구성하기

행복 금융 2008. 11. 27.

최근 DDOS 관련해서 여러가지 이슈들이 발생하고 있고, 그에 따라서 여러가지 방지책이 필요함에 따라서 DDOS 관련 테스트를 진행하기 위해서 프록시서버 2대의 구성이 필요했다.

평소에 프록시서버에 관심을 두지 않았던 터라 관련문서를 찾기 어려웠기에 어제 내가 구성에 성공한 방법을 공유해볼까 한다.

( 혹시 프록시서버에 대해서 잘 아시는분이 계시다면 트랙백으로 조언을 해주셨으면 합니다 ^^ )

squid 관련 패키지 확인하기
# dpkg -l squid*

squid               <none> Internet object cache (WWW proxy cache)
squid-cgi         <none>               (no description available)
squid-common  <none> Internet object cache (WWW proxy cache) - common files
squid-novm      <none>                      (no description available)
squidclient        <none>           command-line URL extractor for Squid

squid 와 프록시테스트 프로그램 설치하기
# apt-get install squid squidclient

The following extra packages will be installed:
  squid-common
Suggested packages:
  squid-cgi logcheck-database resolvconf smbclient winbind
The following NEW packages will be installed:
  squid squid-common squidclient

squid 설치결과 확인하기
# dpkg -l squid*

squid               2.6.14-1ubuntu2.1   Internet object cache (WWW proxy cache)
squid-cgi         <none>                 (no description available)
squid-common  2.6.14-1ubuntu2.1   Internet object cache (WWW ...) - common files
squid-novm      <none>                 (no description available)
squidclient        2.6.14-1ubuntu2.1   command-line URL extractor for Squid

squid 설정하기
# mkdir -p /var/cache/squid
# useradd -r -d /var/cache/squid/ -s /bin/false -c "squid server" -u 23 squid
# chown -R squid:squid /var/cache/squid
# vi /etc/squid/squid.conf
========================== squid.conf 내용 =================================
// 프록시 포트
http_port 3128
// 프록시를 보여줄 호스트명
visible_hostname ltproxy
// 캐쉬로 사용할 디렉토리와 용량설정
cache_dir ufs /var/cache/squid 1000 16 512
// squid 캐쉬 관련해서 작동할 유저권한
cache_effective_user squid
// squid 캐쉬 관련해서 작동할 그룹권한
cache_effective_group squid
// 이 부분은 잘 모르겠네여~
acl manager proto cache_object
// localhost 라는 호스트명에 IP대역을 부여
acl localhost src 127.0.0.1/255.255.255.255
// all 이라는 호스트명에 IP 대역을 부여
acl all src 0.0.0.0/0.0.0.0
// ltproxy라는 호스트명에 IP대역을 부여
acl ltproxy src 10.1.26.0/255.255.255.0
// all 호스트에 부여된 대역에 HTTP 액세스 거부
http_access deny manager all
// ltproxy 호스트에 부여된 대역에 HTTP 액세스 허용
http_access allow ltproxy
// localhost 호스트에 부여된 대역에 HTTP 액세스 허용
http_access allow localhost
// all 호스트에 부여된 대역에 HTTP 액세스 거부
http_access deny all
//  ltproxy 호스트에 부여된 대역에 ICP 액세스 허용
icp_access allow ltproxy
// localhost 호스트에 부여된 대역에 ICP 액세스 허용
icp_access allow localhost
// all 호스트에 부여된 대역에 ICP 액세스 거부
icp_access deny all

squid 실행하기
# squid -z ( 이렇게 하였을때 에러 메시지가 없어야 한다 )
# squid -NCd1 ( 실행과 함께 에러메시지를 볼 수 있다 )
# squid -N ( 백그라운드로 실행된다 )
# /etc/init.d/squid restart ( 서비스로 실행할 경우)

#squid 설정 확인하기
# squidclient http://rayx.in > test ( 프록시 설정을 이용해서 내 사이트 확인하기 )
# cat test ( 위 결과물을 확인하기 )

처음 구성해보는 프록시라 쉽지 않은 작업이었고, 따라서 조금 부족한 설명과 설정인 것 같다.

추후 테스트 및 연구를 통해서 더 좋은 설정과 설치방법이 있으면 지속적으로 작성을 해보려고 한다.

댓글

💲 추천 글