이 글은 소스 설치 기준으로 작성되었으며 Squid 3.0-Stable 기준으로 설치를 진행하였습니다.

1. Squid 다운로드 및 설치 (./configure –help 해서 보시면 더 많은 옵션을 설정할수 있습니다.)

[root@yongbok ~]# cd /usr/local/src
[root@yongbok ~]# wget http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE17.tar.gz
[root@yongbok ~]# tar xzvf squid-3.0.STABLE17.tar.gz
[root@yongbok ~]# cd squid-3.0.STABLE17
[root@yongbok ~]# ./configure \
–prefix=/usr/local/squid \
–enable-default-err-language=Korean \
–enable-err-language=Korean
[root@yongbok ~]# make; make install

2. Squid 셋팅 및 실행
Squid.conf 파일을 사용자 환경에 맞게 설정을 합니다.

[root@yongbok ~]# ls -al /usr/local/squid
total 16
drwxr-xr-x   8 root  wheel  512  8  4 09:53 .
drwxr-xr-x  31 root  wheel  512  8  4 09:52 ..
drwxr-xr-x   2 root  wheel  512  8  4 09:53 bin
drwxr-xr-x   2 root  wheel  512  8  4 09:53 etc
drwxr-xr-x   2 root  wheel  512  8  4 09:53 libexec
drwxr-xr-x   2 root  wheel  512  8  4 09:53 sbin
drwxr-xr-x   5 root  wheel  512  8  4 09:53 share
drwxr-xr-x   3 root  wheel  512  8  4 09:53 var

[root@yongbok ~]# cd /usr/local/squid/etc
[root@yongbok ~]# vi squid.conf

# 프록시 포트 ( 기본 포트는 3128 )
http_port 3128

# 프록시 호스트명
visible_hostname ruo91

# 캐시에 사용될 메모리 지정
# 512 MB = 160 MB,  1024 MB = 320 MB
cache_mem 320 MB

# squid 관리자
cache_mgr ruo91@yongbok.net

# cache가 squid란 uid/gid로 작동,보안을 위해
cache_effective_user squid
cache_effective_group squid

# 캐쉬로 사용할 디렉토리와 용량설정
# 1000 => 최대 캐쉬디렉토리 크기, 20 =>1차 하위 디렉토리 개수, 512 => 2차 하위 디렉토리 개수
cache_dir ufs /var/cache/squid 1000 20 512

# 캐시 프로토콜을 지정하는듯..?
acl manager proto cache_object

# localhost 라는 호스트명에 IP대역을 부여
acl localhost src 127.0.0.1

# ruo91 라는 호스트명에 IP대역을 부여
# 192.168.0.0/24 대역에서만 사용가능
acl ruo91 src 192.168.0.0/255.255.255.0

# localhost 호스트에 부여된 대역에 HTTP 액세스 허용
http_access allow localhost

# localhost 호스트에 부여된 대역에 ICP 액세스 허용
icp_access allow localhost

# ruo91 호스트에 부여된 대역에 HTTP 액세스 허용
http_access allow ruo91

#  ruo91 호스트에 부여된 대역에 ICP 액세스 허용
icp_access allow ruo91

캐시로 사용할 디렉토리를 생성하고 squid 사용자를 추가후 /var/cache/squid 디렉토리에 squid의 권한을 위임합니다.

Linux 사용자

[root@yongbok ~]# mkdir -p /var/cache/squid
[root@yongbok ~]# useradd -r -d /var/cache/squid/ -s /bin/false -c “Squid Proxy Server” -u 23 squid
[root@yongbok ~]# chown -R squid:squid /var/cache/squid

FreeBSD 사용자

[root@yongbok ~]# mkdir -p /var/cache/squid
[root@yongbok ~]# pw useradd squid -d /usr/local/squid -s /usr/sbin/nologin
[root@yongbok ~]# chown -R squid:squid /var/cache/squid

로그가 기록 되도록 권한을 변경합니다.

[root@yongbok ~]# chmod 777 /usr/local/squid/var/logs

squid -z 로  캐시 디렉토리를 생성합니다.

[root@yongbok ~]# /usr/local/squid/sbin/squid -z
2009/08/04 11:20:21| Creating Swap Directories
2009/08/04 11:20:21| /var/cache/squid exists
2009/08/04 11:20:21| Making directories in /var/cache/squid/00
2009/08/04 11:20:21| Making directories in /var/cache/squid/01
2009/08/04 11:20:21| Making directories in /var/cache/squid/02
2009/08/04 11:20:21| Making directories in /var/cache/squid/03
2009/08/04 11:20:22| Making directories in /var/cache/squid/04
2009/08/04 11:20:22| Making directories in /var/cache/squid/05
2009/08/04 11:20:22| Making directories in /var/cache/squid/06
2009/08/04 11:20:23| Making directories in /var/cache/squid/07
2009/08/04 11:20:23| Making directories in /var/cache/squid/08
2009/08/04 11:20:23| Making directories in /var/cache/squid/09
2009/08/04 11:20:24| Making directories in /var/cache/squid/0A
2009/08/04 11:20:24| Making directories in /var/cache/squid/0B
2009/08/04 11:20:24| Making directories in /var/cache/squid/0C
2009/08/04 11:20:24| Making directories in /var/cache/squid/0D
2009/08/04 11:20:25| Making directories in /var/cache/squid/0E
2009/08/04 11:20:25| Making directories in /var/cache/squid/0F
2009/08/04 11:20:25| Making directories in /var/cache/squid/10
2009/08/04 11:20:26| Making directories in /var/cache/squid/11
2009/08/04 11:20:26| Making directories in /var/cache/squid/12
2009/08/04 11:20:26| Making directories in /var/cache/squid/13

squid 를 실행합니다.

[root@yongbok ~]# /usr/local/squid2/sbin/squid -N &
[1] 51712
[root@yongbok ~]# ps -aux | grep squid
squid  51712  6.9  1.0 16624 10600  p2  R    11:26AM   0:00.77 /usr/local/squid/sbin/squid -N
squid  51713  0.3  0.1  2488  1208  ??  Ss   11:26AM   0:00.02 (unlinkd) (unlinkd)

※ -N 옵션은 Squid를 백그라운드로 실행합니다.
※ -NCd1 옵션은 Squid를 백그라운드로 실행하고 에러메세지를 같이 볼수 있습니다.