二か月ぐらい前に読み終わった、Packet Publishingというイギリスのニッチな技術書を売っている出版社の、Squid Proxy Server 3.1: Beginner’s Guideという本の内容を忘れないうちに、Proxyサーバーの設定をまとめてみることにした。
ここでまとめるのはLANのGatewayとしてのSquidの設定、Reverse Proxyを作るならNginxのほうが性能出ると思う。
下記のようなネットワーク構成で、メモリを4GBぐらい積んだサーバーでの設定例を書きます。
この設定例は、CentOS6でデフォルトで入るSquid3.1の設定ファイルに手を加えたものです。Proxyアプライアンスとか、Web cache機能の付いたUTMが売ってるからほとんど需要がなさそうだな・・・
「設定例」
# 基本設定
visible_hostname proxy.example.com
httpd_port 8080
snmp_port 3401
via disalbe
forwarded_for delete# キャッシュ容量の設定
cache_mem 2500MB
maximum_object_size_in_memory 8MBcache_dir aufs /var/pool/squid 30000 32 512
minimum_object_size 0KB
maximum_object_size 100MBipcache_size 15000
fqdncache_size 15000coredump_dir /var/spool/squid
# ACLの設定
acl manager proto cache_object
acl snmp_public snmp_community public
acl from_localhost dst 127.0.0.1/32
acl from_localnet 192.168.0.0.24
acl to_localhost dst 127.0.0.1/8 0.0.0.0/32
acl to_localnet dst 192.168.0.0/24acl SSL_ports port 443
acl Safe_ports port 21 # ftp
acl Safe_ports port 70 # gopher
acl Safe_ports port 80 # http
acl Safe_ports port 210 # wais
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 443 # https
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 1025-65535 # unregisterd ports
acl CONNECT method CONNECT# キャッシュマネージャーのアクセス制限(ローカルネットワークのみ)
http_access allow manager from_localhost
http_access allow manager from_localnet
http_access deny manager# 安全でないポートからのアクセス制限
http_access deny !Safe_ports# 安全でないSSLポートへのアクセス制限
http_access deny CONNECT !SSL_ports# Proxyサーバーへのアクセス制限
http_access allow from_localhost
http_access allow from_localnet
http_access deny all# ローカルネットワークへのアクセス時のコンテンツのキャッシュを無効にする。
cache deny to_localnet
cache deny to_localnet# キャッシュのストップリスト
hierarchy_stoplist cgi-bin ?# キャッシュのリフレッシュパターン
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320# ログを読みやすく解析しやすいようにするためにApache互換のフォーマットに変換する設定
access_log /var/log/squid/access.log auto
emulate_httpd_log on
[参考書籍]
英語版だけど、Proxyサーバーを設定するにあたって役に立ちました。なんで日本語でまともな本が出てないんだよ・・・