※正確にはルーターではなくファイアウォール(Firewall)ですが
ルーター製品には大抵ファイアウォール機能がついています。
規制とか嫌いです、もっとふわふわしていたい
でもネットワークを規制したい管理者さんも多いと思うので
今回はSquidの記事を書いてみます。
Squidはキャッシュを貯めてくれるので高速化も図られるはず(?)です。
高速化はしないまでも溜め込んだキャッシュで帯域の節約になります。
キャッシュサーバーSquidのインストール
いわゆるProxy(プロキシ)ってやつです。
普通と違った方向からパソコンをかじった人などは『串』と呼んだりします。
squid.x86_64 7:3.1.10-22.el6_5
Complete!
[/bash]
ディスク容量確認
ディスク容量確認。/は50Gだとわかる。
[bash] # df -hFilesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
50G 14G 34G 29% /
tmpfs 1.9G 68K 1.9G 1% /dev/shm
/dev/sda1 477M 93M 356M 21% /boot
/dev/mapper/VolGroup-lv_home
96G 18G 73G 20% /home
[/bash]
1KB(キロバイト)=1024バイト
1MB(メガバイト)=1024KB(約100万バイト)
1GB(ギガバイト)=1024MB(約10億バイト)
1TB(テラバイト)=1024GB(約1兆バイト)
1024×40として40960MB(40GB)
Squid設定ファイルを編集します。
[bash] # vi /etc/squid/squid.confhttp_port 8080←確認(portを設定)
# We recommend you to use at least the following line.
hierarchy_stoplist cgi-bin ?
cache_mem 1024 MB←追加。Squidに割り当てのメモリを指定。
coredump_dir /var/spool/squid←ログ保存先確認。
#cache_dir ufs /var/spool/squid 100 16 256
cache_dir ufs /var/spool/squid 40960 16 256←キャッシュは40GBとします。
#許可ネットワーク
acl OK_lan src 192.168.0.0/16
http_access allow OK_lan
http_access deny all
cache_effective_user squid←rootで稼働する時squidユーザーにプロセスの所有を渡す
cache_effective_group squid←rootで稼働する時squidグループにプロセスの所有を渡す
cache_swap_low 90
cache_swap_high 95
ftp_user hoge@hoge.co.jp←anonymousFTPに接続した時のID
pid_filename /var/run/squid.pid
debug_options ALL,1←ログの詳細度を最高に(1-10)
cache_access_log /var/log/squid/access.log←ログファイル名を設定。
logfile_rotate 10←ログの循環数を指定
emulate_httpd_log on←ログをhttpd形式に出力
cache_mgr root@sigotosiro.biz←cache_mgrをroot@sigotosiro.bizに
visible_hostname unkown
forwarded_for off
request_header_access X-FORWARDED-FOR deny all
request_header_access Via deny all
request_header_access Cache-Control deny all
[/bash]
閲覧禁止サイトを登録します!
〇禁止ドメインの登録
[bash] # vi /etc/squid/blacklist_filter#blacklist
.2ch.net
[/bash]
〇禁止URLの登録
[bash] # vi /etc/squid/blacklist_regex# blacklist_regex
^http://2ch.net/
[/bash]
フィルターファイルを読み込んで貰うようSquidに設定します。
[bash] # vi /etc/squid/squid.conf# Only allow cachemgr access from localhost
#アクセス禁止サイト定義
acl blacklist_filter dstdomain “/etc/squid/blacklist_filter”←追加
acl blacklist_regex url_regex “/etc/squid/blacklist_regex”←追加
http_access deny blacklist_filter←追加
http_access deny blacklist_regex←追加
http_access allow manager localhost
http_access deny manager
[/bash]
キャッシュディレクトリ初期化
[bash] # squid -z[/bash]
再起動させて設定を反映させます。
[bash] # /etc/rc.d/init.d/squid restartsquid を停止中: ……………. [ OK ] squid を起動中: . [ OK ] [/bash]
自動起動設定を行います。
[bash] # chkconfig squid on[/bash]
パケットフィルタリング
192.168.11.8からのポート80は通過させる
それ以外のアドレスからは80番ポートを破棄
これでキャッシュサーバーを通さないとWEBの閲覧が出来なくなりました。
クライアントのネットワーク設定
このままではまずいのでクライアントPCを設定して
キャッシュサーバーを読むようにします。
自ホストのIPを設定して、デフォルトゲートウェイにSquid(キャッシュサーバ)の
IPを指定します。
クライアントのブラウザにSquidを通します
使用するブラウザに設定してあげねばSquidは役目を果たせません。
今回はFirefoxに設定してみます。
これでクライアントは最初にルーターではなく
Squidにパケットが向かいます。
ではyahooにでもアクセスしてみます。
おっけー、アクセス出来ました。
これで一安心ですね☆
禁止サイトにアクセスしてみます。
しょぼーん。
おとなしく仕事するしかなさそうです(笑)
まとめサイトやSNSは今回規制していないのでお好みで規制して下さい。
弊社では閲覧サイトの規制などはしていません。
今日の分の仕事さえ終わっていればのんびりした環境です。