squid で「BASIC 認証アリ / キャッシュしない」Proxy を作る
Proxy 用のソフトウェアとしては squid が有名です。今回は squid を使って以下のような Proxy を構築してみます。
- BASIC 認証させる
- キャッシュさせない(配下のコンテンツが頻繁に更新される想定)
squid の構築
yum で squid をインストールします。BASIC 認証の設定を行うので httpd-tools もインストールしておきます。
| yum -y install httpd-tools squid
|
squid 3.3.8 がインストールされました。
| # squid -v
Squid Cache: Version 3.3.8
|
squid.conf の設定ファイルは /etc/squid/squid.conf にあります。これを以下のように修正します。Listen するポートはデフォルトの 3128/TCP のままにしています。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 | 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
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/.htpasswd
auth_param basic children 5
auth_param basic realm Squid Basic Authentication
auth_param basic credentialsttl 5 hours
acl password proxy_auth REQUIRED
http_access allow password
no_cache deny all
http_port 3128
cache_store_log none
coredump_dir /var/spool/squid
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
ipcache_size 5120
|
htpasswd で BASIC 認証用のパスワードファイルを作成を作成しておきます。
| htpasswd -c /etc/squid/.htpasswd USERNAME
|
squid を再起動して完了です。
| systemctl restart squid.service
|
Web サーバの構築
Apache をインストールします。SSL/TLS も使うので mod_ssl もインストールしておきます。
| yum -y install httpd mod_ssl
|
Aapache を起動します。合わせて自動起動の設定も実施しておきます。
| systemctl start httpd.service
systemctl enable httpd.service
|
キャッシュさせない設定
Can I make Squid proxy only, without caching anything? に以下の記載がありました。squid のバージョンに応じて『キャッシュさせない設定』が変わっているので要注意です。
With Squid-2.7, Squid-3.1 and later you can also remove all 'cache_dir' options from your squid.conf to avoid having a cache directory.
デフォルトの squid 設定ファイル
デフォルトの設定ファイルは /etc/squid/squid.conf.default にありました。コメントを除外すると以下のようになっていました。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 | # grep -v -e '^\s*#' -e '^\s*$' /etc/squid/squid.conf.default
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl localnet src fc00::/7 # RFC 4193 local private network range
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines
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
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localnet
http_access allow localhost
http_access deny all
http_port 3128
coredump_dir /var/spool/squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
|
Proxy の切り替えツール
Chrome 上で手軽に Proxy を切り替えるには Proxy SwitchySharp が便利です。
参考