我輩は雑記帖である。名はまだない。

Squid をインスト-ルする

CentOS 7.3 に Squid をインスト-ルする。

最寄の SUSHI BAR へ行かなくちゃ (使命感)。

 

手順は下記の通り。

  1. Squid をインスト-ル
  2. Squid をセットアップ

 

1.Squid をインスト-ル

下記コマンドを実行して、インスト-ル。

yum install squid httpd wget

※httpd は、『proxy.pac』ファイル公開の為にインスト-ルする。

※wget は、ブラックリスト作成スクリプトで使用する為にインスト-ルする。

 

2.Squid をセットアップ

1.ブラックリスト作成スクリプトの作成と、ク-ロン設定

『/usr/local/src/blacklist/make_blacklist.sh』を作成する。

#!/bin/bash

PATH=/usr/local/sbin:/usr/bin:/bin

# ルートディレクトリ
ROOT_DIR="/usr/local/src/blacklist"

# 作業ディレクトリ
WORK_DIR="$ROOT_DIR/work"

# ログファイル名
LOG_FILE="make_blacklist.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"

# blacklist作成
sed -e '1d' -e 's/0.0.0.0 //' $WORK_DIR/hosts.txt > "$ROOT_DIR/blacklist" 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 url_regex -i "/usr/local/src/blacklist/blacklist"

 

40行目付近

http_access deny CONNECT !SSL_ports

# for Ad
http_access deny blacklist

 

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

 

作業してると、プロキシ経由で行ってるのか分からなくなってくる時がある。

その場合は『確認くん』とかで確認する。

 

結構ぐだったから、どっか誤っているかも。

 

参考元

  1. 悪いインタ-ネット

 

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

このサイトはスパムを低減するために Akismet を使っています。コメントデータがどう処理されているか知りたい方はこちらをお読みください