Squid 설치 및 설정에 대해 설명을 드리겠습니다.
먼저 Squid의 기능에 대해 말씀드리겠습니다.
방화벽 시스템이 설치되어 있는 호스트에서 동작하는 서버로, 방화벽 내에 있는 사용자들에게 방화벽 밖에있는 서버로의 자유로운 서비스 요구와 응답을 받기 위한 수단으로 만들어진 것입니다.
해킹과 같이 외부로의 불법적인 접속을 방어하기 위해 설치하는 시스템이 방화벽인데 외부의 접속이 어려운 만큼 내부에서 외부로의 접속도 제한될 수 밖에 없습니다.
이러할 때 방화벽이 설치되어 있는 시스템에 Proxy server를 설치해 두면 방화벽에서는 이서버에 대한 동작을 허용하고 내부의 모든 사용자는 이서버에게만 서비스 요구를 하도록 합니다.
그러면 이서버는 외부의 서버들에게 서비스 요청을 하고 응답을 받으면 원래 요청했던 방화벽 내부의 사용자에게 전달해주는 방식입니다.
또한 proxy는 cache를 가지고 있기 때문에 여러 사람들이 많이 들어가는 호스트는 이미 cache에 data가 저장되어 있기 때문에 proxy에서 바로 가져다가 PC에 전달을 하기 때문에 해외 라인의 트래픽도 줄이고 속도도 빠른 이중의 효과를 얻게 됩니다.
www.squid-cache.org 사이트에서 원하는 버전을 다운로드 받습니다.
저는 2.5 버전을 다운받았습니다.
# tar -zxvf squid-2.5.stable1.tar.gz –> 압축을 풀어줍니다.
# cd squid-2.5.stable1 –> 압축을 풀고나서 해당 디렉터리로 이동합니다.
Squid 같은 경우 특별히 컨피그 옵션을 주지 않아도 되며, 경로만 잡아줘도 큰 문제는 없습니다.
# ./configure –prefix=/usr/local/squid
# make
#make install
설치가 완료되면 squid.conf 파일을 수정해야 하는데 해당 파일은 /usr/local/squid/etc/squid.conf에 있습니다.
# vi /usr/local/squid/etc/squid.conf
# http_port 3128 –> 스퀴드 프록시서버의 서비스포트를 지정해주는 부분 입니다. 기본값은 3128로 되어있으며 주석을 해제해 줍니다.
# cache_mem 8 mb –> 스퀴드 프록시서버에서 사용하는 캐시 사이즈를 설정하는 부분 입니다. 주석을 해제해 줍니다.
# maximum_object_size 4096KB –> 캐시가 저장될 수 있는 객체 즉 파일의 크기를 제한해주는 옵션입니다. 주석을 해제해 줍니다.
# cache_access_log /usr/local/squid/var/logs/access.log –> 저장되는 로그를 기록하는 파일을 설정하는 부분 입니다. 주석을 해제해 줍니다.
# debug_options ALL,1 –> 스퀴드가 동작할 때 오류체크 기능을 사용하여 로그파일에 기록할 수 있도록 하는 옵션입니다. 주석을 해제해 줍니다.
act all src 0.0.0.0/0.0.0.0 –> acl은 access control 의 약자로 프록시 서버에 접근할 수 있는 범위를 설정하는 옵션으로 http_access와 함께 사용해야 합니다. all의 범위는 src 옵션으로 지정한 범위에 속하는 네트워크를 지정합니다. 현재처럼 0.0.0.0/0.0.0.0 으로 설정하면 모든 네트워크에 대해서 프록시 서버에 접근할수 있습니다. 자신의 프록시 서버에 제한없이 모든 네트워크들이 접근할 수 있도록 설정한 후 http_access로 프록시 서버사용권을 부여할 수 있습니다.
deny 또는 allow를 지정
사용예 )
모든 네트워크 들이 자신의 프록시 서버를 이용할 수 있도록 설정
acl all src 0.0.0.0/0.0.0.0
http_access allow all
모든 네트워크 들이 자신의 프록시 서버를 이용할 수 없도록 설정
acl all src 0.0.0.0/0.0.0.0
http_access deny all
192.168.9.0 네트워크 주소를 members범위로 규정하여 프록시 서버 접속을 허용하고 다른 네트워크에 대해서는 접속을 거부 하는 설정
acl members src 192.168.9.0/255.255.255.0
acl all src 0.0.0.0/0.0.0.0
http_access allow members
http_access deny all
Squid 트러블 슈팅 및 데몬실행
스왑디렉토리 초기화
/usr/local/squid/sbin/squid -z
위처럼 명령어 실행시 FATAL Could not determine fully qualified hostname. Please set ‘visible_hostname’ 이라는 에러 메시지가 발생됩니다.
squid.conf 파일에서 #TAG: visible_hostname 아래에 visible_hostname localhost 를 추가해 줌으로써 오류 해결
FATAL:Failed to make swap directory /usr/local/squid/var/cache: (13)Permission denied 라는 에러 메시지가 발생됩니다.
# mkdir /usr/local/squid/var/cache
# chmod 777 /usr/local/squid/var/cache
cache 디렉토리를 생성하여 권한을 줌으로써 해당 오류를 해결할 수 있습니다.
Squid 데몬 실행
/usr/local/squid/sbin/squid
위처럼 데몬을 실행하였을때 에러는 나지 않지만 데몬이 올라오지 않는 현상이 발생됩니다.
/usr/local/squid/var/logs의 권한을 777로 바꿔줌으로써 문제를 해결할 수 있습니다.
인터넷 옵션 -> 연결탭 -> LAN 설정 부분을 클릭합니다.
프록시 서버 체크박스 선택 후 IP 및 포트번호를 입력한 후에 고급버튼을 클릭합니다.
모든 프로토콜에 같은 프록시 서버 사용을 체크 합니다.
이로써 클라이언트에서 해당 프록시 서버 ( squid ) 를 사용할수 있게 되었습니다.
긴글 읽어주셔서 감사합니다.