ubuntu 에서 proxy 서버를 설정해본다. squid3
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 만 지원)
'알아둘일' 카테고리의 다른 글
vmware 의 머신을 virtualbox 로 이전해본다. (windows xp) (0) | 2019.06.17 |
---|---|
Virtualbox 커널모듈 컴파일 이상 ( kernel 4.4.0-143 버전 ) (0) | 2019.03.19 |
mariadb 설치가 안된다. ubuntu 14.04.2 (0) | 2015.04.28 |
서버변경시 curl 에서 이전 서버 주소를 계속 접속하는 경우 CURLOPT_DNS_USE_GLOBAL_CACHE (0) | 2015.04.27 |
괜찮은 VPS호스팅 발견 - vultr.com (20$ 프로모션) (2) | 2015.02.17 |
WRITTEN BY
- 1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.