■debian stretchにsquid3+blacklistを導入する。
Squid+squidGuard構成は沢山構築してきたけど、今はやり方が少し異なる様子。
個人で使うにはヒット率から考えても、個別のblacklistがあれば十分。
Squidもまた設定方法が変わっているのでSquidに限定して進める。
$ lsb_release -d
Description: Debian GNU/Linux 9.4 (stretch)
■「/etc/squid3/」ではなく「/etc/squid/」にインストールされる。
$ apt-cache show squid3 | grep -A 4 ^Description-ja
Description-ja: 移行用パッケージ
Squid は、FTP、gopher、ICY、HTTP データオブジェクトをサポートする、
ウェブクライアント用の高性能なキャッシュプロクシサーバです。
.
squid3 から squid へ移行するための遷移パッケージです。
$ sudo apt-get install -y squid3
■squidの設定変更
「squid -k parse」で確認すると「via off」に対して警告が出るので消している以外はいつもどおり。
$ sudo cp /etc/squid/squid.conf{,bak}
$ diff /etc/squid/squid.conf{.bak,} | awk '/^>/{gsub("> ","",$0);{print $0}}'
acl localnet src 172.16.0.0/12
http_access allow localnet
http_port 0.0.0.0:8080
logformat combined %>a %[ui %[un [%tl] "%rm %ru HTTP/%rv" %>Hs %<st "%{Referer}>h" "%{User-Agent}>h" %Ss:%Sh
access_log daemon:/var/log/squid/access.log combined
request_header_access User-Agent deny all
request_header_replace User-Agent Gozilla/5.0
visible_hostname unknown_internal
never_direct allow all
dns_nameservers XX.XX.XX.XX
forwarded_for off
$ sudo systemctl status squid | grep Active
Active: active (running) since Wed 2018-05-02 02:50:58 JST; 37min ago
$ sudo chown -R proxy:proxy /etc/squid; \
sudo -u proxy squid -k parse; \
sudo -u proxy squid -k reconfigure
■以下同様IPv6無効を行う。
下位プロキシサーバとして、Squid3+SquidGuardを導入する。
http://labunix.hateblo.jp/entry/20151114/1447511721
$ diff /etc/squid/squid.conf{.20180502,} | awk '!/^. #/&&/^> [a-z]/{gsub("> ","",$0);print $0}'
pinger_enable off
udp_incoming_address 0.0.0.0
udp_outgoing_address 0.0.0.0
■ブラックリストの設定
blacklistにはドメインを指定、「.」ではじめるとサブドメインを含める。
blacklist_regexにはドメインを正規表現で指定。
squidGuardの書式と変わらないので書き方については触れない。
「http_access allow localnet」等の評価の前となるように順序に気をつける。
$ sudo touch /etc/squid/blacklist{,_regex}
$ diff /etc/squid/squid.conf{.20180502,} | awk '!/^. #/&&/^> [a-z]/{gsub("> ","",$0);print $0}'
acl blacklist dstdomain "/etc/squid/blacklist"
acl blacklist_regex url_regex "/etc/squid/blacklist_regex"
http_access deny blacklist
http_access deny blacklist_regex
$ sudo systemctl reload squid.service
■ブラックリストドメインのテスト
「https://5ch.net/」にリダイレクトされる前に「403: Forbidden」となる。
$ grep 2ch /etc/squid/blacklist
.2ch.net
$ wget -O - http://www.2ch.net
--2018-05-02 03:37:31-- http://www.2ch.net/
172.XX.XX.XX:8080 に接続しています... 接続しました。
Proxy による接続要求を送信しました、応答を待っています... 403 Forbidden
2018-05-02 03:37:31 エラー 403: Forbidden。
■正常ドメインのテスト
「https://www.google.co.jp/」にリダイレクトされて、stdoutに出力。
--2018-05-02 03:46:30-- https://google.co.jp/
172.31.XX.XX:8080 に接続しています... 接続しました。
Proxy による接続要求を送信しました、応答を待っています... 301 Moved Permanently
場所: https://www.google.co.jp/ [続く]
--2018-05-02 03:46:30-- https://www.google.co.jp/
172.31.31.XX:8080 に接続しています... 接続しました。
Proxy による接続要求を送信しました、応答を待っています... 200 OK
長さ: 特定できません [text/html]
`STDOUT' に保存中
- [ <=> ] 10.37K --.-KB/s in 0.003s
2018-05-02 03:46:31 (3.03 MB/s) - stdout へ出力しました [10614]