サーバ構築ガイド - SquidでProxyサーバ

Proxyサーバは、アクセスの代理を行うサーバです。Proxyサーバを経由してアクセスすることで例えば以下のメリットがあります。

  • キャッシュ機能を利用し他の誰かが1度アクセスしたページは更新されない限り使いまわしができる
  • フィルタによってアクセス制限をかけたり、ログの一括管理ができる

インストール

Portsからインストール

# cd /usr/ports/www/squid

# make install clean

 

SSLを利用したい場合は途中で以下のチェックを入れます。

[X] SQUID_SSL Enable SSL support for reverse proxies

 

squidというユーザも自動で作成されます。

設定

以下の部分は最低限書き換えておきます。ディレクトリはFreeBSDの標準にしました。

# vi /usr/local/etc/squid/squid.conf

 cache_access_log /var/log/squid/squid-access.log

 cache_log /var/log/squid/squid-cache.log

 cache_store_log /var/log/squid/squid-store.log

 coredump_dir /var/log/squid/cache

 pid_filename /var/run/squid.pid

 

 acl frienduser src 192.168.0.0/255.255.255.0

 http_access allow frienduser

 cache_mgr webmaster@sewig.jp

 cache_effective_group squid

 forwarded_for off

 logfile_rotate 12

 

# mkdir -p /var/log/squid/cache

# touch /var/log/squid/squid-store.log /var/log/squid/squid-cache.log /var/log/squid/squid-access.log

# chown -R squid:squid /var/log/squid

# squid -z

 

・起動スクリプトの編集

# vi /usr/local/etc/rc.d/squid.sh

 squid_chdir=${squid_chdir:-/var/log/squid}

 

・ログローテート

# vi /etc/crontab

 30 3 * * * squid /usr/local/sbin/squid -k rotate

起動

# /usr/local/etc/rc.d/squid.sh start

設定例

/usr/local/etc/squid/squid.confの設定例です。

 

・URLやキーワードに該当するものを対象にする

acl hoge url_regex 萌え ラノベ

 

・該当のIPアドレスのものを対象にする

acl hoge dst 192.168.0.xxx 〜

 

・該当のドメインのものを対象にする

acl hoge dstdomain example.com 〜

 

・対象を拒否する

http_access deny hoge

 

・許可する/拒否するリストから制限する

acl private src 192.168.0.0/24

acl whitelist url_regex -i "/usr/local/squid/etc/whitelist.txt"

acl blacklist url_regex -i "/usr/local/squid/etc/blacklist.txt"

http_access allow whitelist

http_access deny blacklist

http_access allow private