ubuntu 에서 squid3 설정.

- 설정은 간단하다.

- curl 을 이용해 해당 proxy 서버를 사용할때 주의점.

 

# 설치

apt-get install squid3 
또는
apt install squid

끝. 쉽다.

 

# 설정

/etc/squid3/squid.conf 을 설정 (다른 위치 : /etc/squid/squid.conf )

(원래 파일은 복사하고, 새로 생성한다)
  => 원래 파일을 주석제거하고 복사하고 싶을때

mv squid.conf squid.conf.old     # backup
cat squid.conf.old | egrep -v '^[[:space:]]*(#.*)?$' > squid.conf

acl SSL_ports port 443
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl CONNECT method CONNECT

 

# digest

auth_param digest program /usr/lib/squid3/digest_file_auth /etc/squid3/squid3.digest.passwd

auth_param digest realm proxy

acl sq_digest proxy_auth REQUIRED

http_access allow sq_digest

 

# basic

auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid3/squid3.basic.passwd

auth_param basic realm proxy

acl sq_basic proxy_auth REQUIRED

http_access allow sq_basic

 

cache deny all

 

http_port 4128

 

#http_port 3128

coredump_dir /var/spool/squid3

 

refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern (Release|Packages(.gz)*)$      0       20%     2880
refresh_pattern .               0       20%     4320

 

진한 부분이 추가한 부분이다. 기본파일에는 http_access 관련 설정이 있는데 삭제했다.

 

# 포트 변경

그리고 추천하는 부분은 기본포트인 3128 을 다른 포트로 바꾸길 권장한다.
언제나 그렇듯이 공격 대상이 될 수 있다. (ssh 도 필수로 바꾸는 것이 좋다. 22 -> 다른 포트)

 

# 캐시 비활성화

cache deny all 

캐시를 비활성화 했는데, 필요하면 삭제 또는 주석처리한다.

 

# 인증 모드

인증 모드는 digest 와 basic 이 있는데 설정은 위와 같다. 동시에 써도 되는지는 모르겠다.

암호파일 생성은 htpasswd / htdigest 를 사용한다.

사용법은

htpasswd -c /etc/squid3/squid3.basic.passwd {username}

htdigest -c /etc/squid3/squid3.digest.passwd proxy {username}

암호화는 digest 방식을 추천한다.

 

모두 설정이 완료되었으면 재시작해서 바뀐 설정을 적용한다.

service squid3 restart

 

 

 

# curl 에서는 다음처럼 사용한다. ( php 기준 설명 )

php curl 은 아쉽게도 digest 모드를 아직 지원안하는 듯 하다.

$proxyserv = '123.123.123.123:4128' ;
$proxyauth = 'username:password';

 

curl_setopt($ch, CURLOPT_PROXY, $proxyserv );

curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyauth );
 

위와 같이 써준다.

curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_DIGEST ); 

위 옵션이 되면 좋겠는데, 아쉽게도 현재는 안된다.( 현재는 CURLAUTH_BASIC , CURLAUTH_NTLM 만 지원)

 

 

 

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,