カレンダー

11 | 2016/12 | 01
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

広告



最近の記事

カテゴリー

DATE: CATEGORY:TECH


少し諸事情があり、ローカルネットワーク内に
Squidを立てたので、その際の構築&設定メモ。
(debian環境&squid2.7ベース)

上位のルータと組み合わせれば、子供にインターネットの
環境を与えてるけど、何してるか心配!みたいな時にも
使えると思います。

Photo:Lamb and Chicken Wing Skewers - Ayguli AUD2 each By:avlxyz
Photo:Lamb and Chicken Wing Skewers - Ayguli AUD2 each By avlxyz


インストール


apt-get でインストール。これは簡単。

apt-get install squid


もろもろの設定


設定ファイルは「/etc/squid/squid.conf」。
初期コンフィグからの変更点を中心にメモ。

ポート変更設定

あんまり意味はないかもしれないけど、一応セオリーという事で。

# http_port 3128
http_port 8080


ICPポートの設定変更

分散キャッシュとかの利用は想定してないので設定変更。
無駄なトラフィックをネットワーク内に流さない、という事で。

# icp_port 3130
icp_port 0


ACLの設定

初期設定では、基本localhostからの利用しか許可していないので、
localnetworkからのアクセスを許可しておく。
(標準のローカルネットワークなら既にaclに
記載済みだったので、http_accessのみの設定でOK)

とりあえず、ポイントになるところだけピックアップ。
バージョン2.7だと、confの600行目あたりにあります。

#Recommended minimum configuration: 
acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
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

http_access allow manager localhost
http_access allow localnet <------追加
http_access deny manager
http_access allow localhost
http_access deny all


ログの時間表示を変更

初期設定のログはUTCでミリ秒の時間が出力されるように
設定されているので、ちゃんと見えるようにする。

具体的には、デフォルトだとこんな出力なので

1377276294.052    x.x.x.x TCP_MISS/200 16414 GET http://www.google.co.jp/ - DIRECT/74.125.31.94 text/html

こういう具合に出力させたい、という話。

24/Aug/2013:02:17:38 +0900    x.x.x.x TCP_MISS/200 16414 GET http://www.google.co.jp/ - DIRECT/74.125.31.94 text/html

というわけで設定。

#logformat squid %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt
logformat squid %tl %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt


local 内の情報を隠蔽

せっかくProxyサーバを構築するのでProxyサーバの
メリットにもなるlocal情報の隠蔽設定をしておく。

IPアドレスの隠蔽
# forwarded_for on
forwarded_for off

ローカルのホスト名の隠蔽
# none
visible_hostname unknown

隠蔽出来る項目は他にも色々あるけど、
とりあえずはこれくらい。

隠蔽されていく情報は「確認くん」あたりで
見ていくと分かりやすいです。

バージョン情報の非表示

localnetworkからの利用に制限すれば、そこまで気にしなくて
良いかもしれないけど、一応これもセオリーという事で。

# httpd_suppress_version_string off
httpd_suppress_version_string on


他の設定


他には、proxyの本来機能のキャッシュ設定や、フィルタ機能があります。
今回、ここはデフォルトのままだったけど、以下、参考までに。

キャッシュ機能

環境に合わせてチューニング。

キャッシュのメモリサイズ
#Default:
# cache_mem 8 MB

メモリの格納するオブジェクトの最大サイズ
#Default:
# maximum_object_size_in_memory 8 KB

キャッシュする最大オブジェクトサイズ
#Default:
# maximum_object_size 20480 KB

FQDNの最大キャッシュ数
#Default:
# fqdncache_size 1024

キャッシュを保存するディレクトリ。
以下の設定だと、100がディスクキャッシュ容量、
16が一次ディレクトリ数、256が二次ディレクトリ数になる。
#Default:
# cache_dir ufs /var/spool/squid 100 16 256


フィルタ機能

フィルタ機能は、ACLで設定します。

文字列でフィルタする場合。
acl denyword url_regex ^http://...(正規表現で記載) 
http_access deny denyword

IPアドレスでフィルタする場合。
acl denyip dst xxx.xxx.xxx.xxx yyy.yyy.yyy.yyy
http_access deny denyip

ドメイン名でフィルタする場合。
acl denydomain dstdomain .sample.jp .hoge.jp .deny.com
http_access deny denydomain


ここまで出来たらリスタート


一通りの設定が終わったのでリスタート

$ /etc/init.d/squid restart 


他、OS環境周り


ログ関連

apt-get等でパッケージでインストールしてしまえば、
logrotate.dに自動で出力されるのであまり意識しなくて良い。
ただ、デフォルトで2日保存になっていたので、この辺は
適度にチューニングしておく。

FireWall関連

基本、localnetwork内の利用なら外部からアクセスさせる
必要はないので、ルータ側のFWでも解放したポートへの
外部からの接続を遮断しておく。

とりあえず、これくらいの簡易作業でローカルネットワークに
Squid立てられます。

タグ : squid proxy 設定 構築 手順

Comment

コメントの投稿

管理者にだけ表示を許可する


トラックバック


この記事にトラックバックする



copyright © なんとなしの日記 all rights reserved.
内職☆在宅ワークの最強は?アフィリエイト!. 初心者だってカッコ良いホームページ作るぅ!
Powered by FC2ブログ
Related Posts Plugin for WordPress, Blogger...