外部サーバにSquid3でプロキシを立てる
プロキシを設定したときの走り書きです。
環境は、Ubuntu14.04.3 LTSです。
インストール
# apt-get install -y squid3
設定ファイル
/etc/squid3/squid.confをコピーして使う。特定のACLからの80と443ポートへのアクセスをフォワードするように 最低限の設定をする。
acl localnet src ***.***.***.***/23 acl SSL_ports port 443 acl Safe_ports port 80 acl Safe_ports port 443 acl CONNECT method CONNECT http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localhost http_access allow localnet http_access deny all http_port 3128 cache_dir ufs /var/spool/squid3 600 16 256 coredump_dir /var/spool/squid3 refresh_pattern . 0 20% 4320 access_log /var/log/squid3/access.log common
再起動する。
# restart squid3
curlで、動作確認する。
ACLで許可したサーバからプロキシ経由でアクセスした場合
$ curl -I -x proxy.example.com:3128 -L blog.hatena.ne.jp HTTP/1.1 302 Moved Temporarily Cache-Control: private Content-Type: text/html; charset=utf-8 Date: Sun, 08 Jan 2017 04:25:05 GMT Location: https://www.hatena.ne.jp/login?location=http%3A%2F%2Fblog.hatena.ne.jp%2F P3P: CP="OTI CUR OUR BUS STA" Server: nginx Set-Cookie: b=$1$hgANMQcX$tV164HRhox4dVoyOz9eGh1; expires=Sat, 03-Jan-2037 04:25:05 GMT; domain=hatena.ne.jp; path=/ Set-Cookie: sk=99c1e798a67850410e453590e89a8cc9025ffb7f; path=/ Vary: Accept-Language, Cookie X-Content-Type-Options: nosniff X-Dispatch: Hatena::Epic::Admin::Index#default X-Frame-Options: DENY X-Revision: 81eb8b22d9cef6ded0b861732d7ed075 X-Runtime: 0.007440 X-XSS-Protection: 1 X-Cache: MISS from *********** X-Cache-Lookup: MISS from ***********:3128 Via: 1.1 **********(squid/3.3.8) Connection: keep-alive HTTP/1.1 200 Connection established HTTP/1.1 200 OK Server: nginx Date: Sun, 08 Jan 2017 04:25:06 GMT Content-Type: text/html; charset=utf-8 Content-Length: 8393 Connection: keep-alive Vary: Accept-Encoding Cache-Control: no-cache Pragma: no-cache Vary: Accept-Language,Accept-Encoding,User-Agent X-Frame-Options: SAMEORIGIN X-Framework: Ridge/0.11 Plack/0.9982 X-Ridge-Dispatch: Hatena::WWW::Engine::Login#default X-Runtime: 79ms X-View-Runtime: 54ms Set-Cookie: b=$1$nniOFGW0$4HjT61d1E1yqllw58ss1o/; path=/; expires=Sat, 03-Jan-37 04:25:05 GMT; domain=.hatena.ne.jp
ACLで許可しないサーバからプロキシ経由でアクセスした場合
$ curl -I -x proxy.example.com:3128 -L blog.hatena.ne.jp HTTP/1.1 403 Forbidden Server: squid/3.3.8 Mime-Version: 1.0 Date: Sun, 08 Jan 2017 04:31:45 GMT Content-Type: text/html Content-Length: 3186 X-Squid-Error: ERR_ACCESS_DENIED 0 Vary: Accept-Language Content-Language: en X-Cache: MISS from ****** X-Cache-Lookup: NONE from ******:3128 Via: 1.1 ****** (squid/3.3.8) Connection: keep-alive