透過型proxyの構築まで~その1~

キャッシュサーバとしてsquidを入れたのは良いものの、すべての端末に対してproxy登録するのは非常に面倒である為、透過型proxyにして構築してみた。

 

ネットワーク構成(通常proxy)

           <192.168.1.0/24>

 WAN─ルータ─┬クライアント

          └──proxyサーバ(固定IP:192.168.1.3)

  

まずはsquidのインストール

#yum -y install squid 

次にFirewallの設定をする。これが一番しんどかった。

まずは通常proxyとしての設定を行う。

Firewallにserviceとしてsquidを登録する。

#cd /etc/firewalld/services

#cp /usr/lib/firewalld/services/squid.xml ./

squid.xmlを開き、ポート番号を好みの番号に変える

#vi ./squid.xml

<port protocol="tcp" port="8080"/>

次にfirewalldにserviceを登録する。

#firewall-cmd --permanent --add-service=squid

 squidの設定を行う。

#vi  /etc/squid/squid.conf

 

acl Safe_ports port XXXX       #ポートの定義 SSHなど追加しておく

acl localnet src 192.168.1.0/24  #ローカルネットの定義

http_access allow localnet         #アクセス許可

http_access deny all                  #すべてのアクセス拒否

http_port 8080                           #HTTPポートの指定

 

# Proxyの秘匿性を上げる為の設定

request_header_access Referer deny all

request_header_access User-Agent deny all

request_header_access X-Forwarded-For deny all
request_header_access Via deny all
request_header_access Cache-Control deny all

visible_hostname unknown

forwarded_for off

 

#Proxyキャッシュ量の設定 
cache_mem 256 MB
maximum_object_size 262144 KB
cache_dir ufs /var/spool/squid 2000 16 256

 

#エラー時のNoticeを日本語のものにする。 
error_directory /usr/share/squid/errors/ja-jp/

 

#ログのフォーマットを見やすいCLF形式へ。

logformat combined %tl %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt

access_log /var/log/squid/access.log combined

 ここまでできたら通常のproxyとしては動くはず。

最後にFirewallとSquidを有効化する。

#firewall-cmd --reload

#firewall-cmd --list-all

#systemctl start squid

#systemctl enable squid

後はクライアントにproxy設定を登録し、HTTPアクセスできるかどうか確認する。

 

参考URL:

プロキシサーバー構築(Squid) - CentOSで自宅サーバー構築

4.5. ファイアウォールの使用