読者です 読者をやめる 読者になる 読者になる

orz.conf

技術メモ✍

広告を非表示にする為にプロキシサーバ(squid)をたてる

広告を非表示にする為にプロキシサーバをたてました。

インストール

環境

CentOS release 6.8 (Final)

まずは既にインストールされていないかどうか確認します。

rpm -qa | grep squid

何も出なければOK。

続いてsquidをインストールします。

yum -y install squid

下記のものがインストールされました。

squid-3.1.23-16.el6_8.6.x86_64

iptablesの設定

今回はCentOS6なのでiptablesの設定を記載します。
25128というポートを使用したいと思います。

iptables -A INPUT -p TCP --dport 25128 -j ACCEPT

確認します

iptables -L
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:25128

コンフィグ設定

squid.confを編集します。
まずはバックアップ。

cp /etc/squid/squid.conf /etc/squid/squid.conf.org
ホスト名の設定

ホスト名を設定してやらないとwarningが出ます。

Stopping squid: 2016/XX/XX XX:XX:XX| WARNING: Could not determine this machines public hostname. Please configure one or set 'visible_hostname'.
2016/XX/XX XX:XX:XX| WARNING: Could not determine this machines public hostname. Please configure one or set 'visible_hostname'.

ホスト名を設定します。
visible_hostnameの行が無い場合、追加して下さい。

visible_hostname ホスト名
ポートの変更

デフォルトだと不安なのでポートを変更します。

# Squid normally listens to port 3128
http_port 25128
ダイジェスト認証

パスワードファイルを作成します。

htpasswd -bcp /etc/squid/passwd ユーザ名 パスワード

squid.confにダイジェスト認証をする為の設定をします。

###ダイジェスト認証用パスワードファイル
auth_param digest program /usr/lib64/squid/digest_pw_auth /etc/squid/passwd
###認証用のプロセス数を制限する
auth_param digest children 3
###プロキシサーバの名前
auth_param digest realm Proxy Web Server
###クライアントエージェントの有効性をチェックする時間
auth_param digest nonce_garbage_interval 5 minutes
###nonce(臨時・その場限り)の有効性のチェックする時間
auth_param digest nonce_max_duration 30 minutes
###nonceの使用できる回数
auth_param digest nonce_max_count 50
###ダイジェスト認証
acl password proxy_auth REQUIRED

### password
#以下2行をコメントアウト
#http_access allow localnet
#http_access allow localhost
#以下を追加
http_access allow password
blacklistの設定

下記のようなファイルを作成します。
blacklist.conf

XXXX.net
XXXX.info

squid.confにblacklistを使用する為の設定をします。

acl blacklist dstdomain "/etc/squid3/blacklist.conf"
http_access deny blacklist

dstdomainはデスティネーションドメインです。

blacklistの設定(正規表現を使用)

正規表現を使用する場合です。

下記のようなファイルを作成します。
blacklist_reg.conf

.*/ad/.*

squid.confにblacklist_regを使用する為の設定をします。

acl blacklist_reg url_regex "/etc/squid3/blacklist_reg.conf"
http_access deny blacklist_reg

dstdomainの代わりにurl_regexを使用します。

ログフォーマットの変更

デフォルトだとシリアル値が出力されてしまうので、日付けフォーマットに変更します。

logformat squid %tl %6tr %>a %Ss/%03>Hs %<st %rm %ru %un %Sh/%<A %mt
起動

最後に起動してやります。

service squid start
chkconfig squid on

blacklistはインターネットを検索してみると2016年でもいくつか見つかりました。
助かります。


まだblacklist_reg.conf周りがうまくいってないかも。
後日調査。