CentOS 7.3 に Squid をインスト-ルする。
最寄の SUSHI BAR へ行かなくちゃ (使命感)。
手順は下記の通り。
- Squid をインスト-ル
- Squid をセットアップ
1.Squid をインスト-ル
下記コマンドを実行して、インスト-ル。
yum install squid httpd wget
*
httpd は、『proxy.pac』ファイル公開の為にインスト-ルする。
*
wget は、ブロックリスト作成スクリプトで使用する為にインスト-ルする。
2.Squid をセットアップ
1.ブロックリスト作成スクリプトの作成と、ク-ロン設定
『/usr/local/src/blocklist/make_blocklist.sh』を作成する。
#!/bin/bash PATH=/usr/local/sbin:/usr/bin:/bin # ルートディレクトリ ROOT_DIR="/usr/local/src/blocklist" # 作業ディレクトリ WORK_DIR="$ROOT_DIR/work" # ログファイル名 LOG_FILE="make_blocklist.log" # 作業ディレクトリ削除 rm -rf "$WORK_DIR" &> "$ROOT_DIR/$LOG_FILE" # 作業ディレクトリ作成 mkdir "$WORK_DIR" &>> "$ROOT_DIR/$LOG_FILE" # hosts.txt取得 wget "http://warui.intaa.net/adhosts/hosts.txt" -P "$WORK_DIR" &>> "$ROOT_DIR/$LOG_FILE" # blocklist作成 sed -e '1d' -e 's/0.0.0.0 //' $WORK_DIR/hosts.txt > "$ROOT_DIR/blocklist" 2>> "$ROOT_DIR/$LOG_FILE" # Squidサービスリロード systemctl reload squid.service
広告除去ブロックリスト作成には、『悪いインタ-ネット』さんが提供している HOSTS ファイルを使用させてもらった。
*
そのまま使用すると Amazon が表示できなくなるので注意 (めんどくさいので私は、後述する『proxy.pac』で直接アクセスさせるようにした)。
広告除去ブロックリストを正規表現で指定していた為の模様…。
作成したスクリプトを『/etc/crontab』に設定する。
2.設定ファイル修正。
『/etc/squid/squid.conf』を修正する。
13行目付近
# 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 localnet src ネットワークアドレス/サブネットマスク
27行目付近
acl CONNECT method CONNECT # for Ad acl blacklist dstdomain "/usr/local/src/blocklist/blocklist"
40行目付近
http_access deny CONNECT !SSL_ports # for Ad http_access deny blocklist
3.『proxy.pac』公開
『ドキュメントル-ト/proxy.pac』を作成する。
function FindProxyForURL(url, host){ var hostip = dnsResolve(host); if(isInNet(hostip, "ネットワ-クアドレス", "サブネットマスク") || shExpMatch(url, "プロキシを経由させず、直接アクセスさせたいURLの部分文字列")){ return "DIRECT"; }else{ return "PROXY プロキシサ-バの IPアドレス 又は ホスト名:プロキシサ-バのポ-ト; DIRECT"; } }
クライアントからは、自動構成スクリプトに『proxy.pac』を指定する。
プロキシサ-バを経由させず、直接アクセスさせたい場合は『proxy.pac』で設定する。
4.サ-ビスの起動設定
下記コマンドを実行してサ-ビス起動設定。
systemctl start squid.service systemctl start httpd.service systemctl enable squid.service systemctl enable httpd.service
5.パケットフィルタリング設定
下記コマンドを実行して Firewalld 設定。
firewall-cmd --add-port=3128/tcp --permanent firewall-cmd --add-service=http --permanent firewall-cmd --reload
作業してると、プロキシ経由で行ってるのか分からなくなってくる時がある。
その場合は『確認くん』とかで確認する。
結構ぐだったから、どっか誤っているかも。