Squid

 

シンプルな二段構成プロキシ

現在稼働しているプロキシ(proxy.example.com:8080, aaa.bbb.ccc.ddd)があり、それを参照する子プロキシを構成する場合。

squid をインストールした素の状態から、squid.conf の変更点は以下。

http_prot 8080    <--- サービスポート。初期値は 3180 になってる
cache_peer aaa.bbb.ccc.ddd parent 8080 0 no-query
  • 8080は上位プロキシのサービスポート番号
  • 0 は上位プロキシのICPサービスポート番号。使わないので0を指定。
  • no-queryはICPを使わない場合のオプション。他に沢山オプションがある。

あとは、この子プロキシを使うクライアントをACLに書く。

acl localnet src 192.168.253.0/24 <--- 自NWのみ
http_access allow localnet  <--- 初期値から変えてない
http_access allow localhost <--- 初期値から変えてない
http_access deny all <---------- あとは全部不許可

確認は以下。ちゃんとするなら、さらにクライアント(192.168.253.0/24中)から。

telnet localhost 8080

InterScan?のための多段プロキシ構成

InterScan? VirusWall?は上位プロキシが必須なので、某環境では次のようにしていた。 等幅で見ないと図が乱れるので、ずれて読めない時は、テキストエディタにコピペして見てちょうだい

+--------+       +-------------+       +---------------+
| Client | ----> |(8080) Squid | ----> |(81)Interscan  |
+--------+       +-------------+       |     ↓        |
                                       |(8080)Delegate |----> インターネット
                                       +---------------+

このDelegateが非常にシステムリソースを食っている疑いがあり、Windowsサーバでもあることから、同居はよくないと言うことになり、リソースが余っているLinuxサーバ(1段目のSquidサーバ)にもうひとつ別のSquidを載せて、↓のような環境で動かしてみることにした。

+--------+       +-------------+       +---------------+
| Client | ----> |(8080) Squid | ----> |               |
+--------+       |             |       |(81)Interscan  |
                 |    Squid(81)| <---- |               |
                 +-------------+       +---------------+
                       |
                       +---> インターネット

この環境の実験環境として、下記を用意した。

インターネット部分の代わりに既存の上位プロキシを設定した。

                    Proxy-1                Proxy-2
+--------+       +-------------+       +---------------+
| Client | ----> |(8080)Squid1 | ----> |               |
+--------+       |             |       |(81)Squid      |
                 |   Squid2(81)| <---- |               |
                 +-------------+       +---------------+
                       |
                       +---> (8080)インターネット(Proxy3)

各サーバのIPアドレスは下記の通り

サーバIPアドレス
Client192.168.1.30
Proxy-1192.168.1.80
Proxy-2192.168.1.99
Proxy-3192.168.1.2

この場合の各squid設定ファイルは下記の通り。

ただし、セキュリティなどはほとんど考慮していないので注意

<Proxy-1>
http_port 8080
icp_port 3130
cache_peer 192.168.1.99 parent    81  3130 no-query

cache_mem 8 MB
maximum_object_size 4096 KB
cache_dir ufs /usr/local/squid1/var/cache 100 16 256
cache_access_log /usr/local/squid1/var/logs/access.log
cache_log /usr/local/squid1/var/logs/cache.log
cache_store_log none
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern .               0       20%     4320

acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443 563     # https, snews
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl CONNECT method CONNECT
acl localnet src 192.168.1.0/255.255.255.0

never_direct allow all

http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localnet
http_access deny all

http_reply_access allow all
icp_access allow all

cache_effective_user squid
dns_testnames (上位プロキシのFQDN(別に何でも良い))

logfile_rotate 10
emulate_httpd_log yes
<Proxy-2>
http_port 81
icp_port  3130
cache_peer 192.168.1.80 parent    81  3131 no-query

cache_mem 8 MB
maximum_object_size 4096 KB
cache_dir ufs /usr/local/squid/var/cache 100 16 256
cache_access_log /usr/local/squid/var/logs/access.log
cache_log /usr/local/squid/var/logs/cache.log
cache_store_log none
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern .               0       20%     4320

acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443 563     # https, snews
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl CONNECT method CONNECT
acl localnet src 192.168.1.0/255.255.255.0

never_direct allow all

http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localnet
http_access deny all

http_reply_access allow all
icp_access allow all

cache_effective_user squid
dns_testnames (上位プロキシのFQDN(別に何でもいい))

emulate_httpd_log yes
logfile_rotate 10
<Proxy-3>
http_port 81
icp_port  3131
cache_peer 192.168.1.2 parent 8080 3130 no-query

cache_mem 8 MB
maximum_object_size 4096 KB
cache_dir ufs /usr/local/squid2/var/cache 100 16 256
cache_access_log /usr/local/squid2/var/logs/access.log
cache_log /usr/local/squid2/var/logs/cache.log
cache_store_log none
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern .               0       20%     4320

acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443 563     # https, snews
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl CONNECT method CONNECT
acl localnet src 192.168.1.0/255.255.255.0
acl interscan src 192.168.1.99/255.255.255.255

never_direct allow all

http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow interscan
http_access allow localhost
http_access deny all

http_reply_access allow all
icp_access allow all

cache_effective_user squid
dns_testnames  (上位プロキシのFQDN(別に何でもいい))
logfile_rotate 10
emulate_httpd_log yes

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS