CentOS7:プロキシーサーバーを構築する方法(squid)

検証環境のマシンが直接インターネットへ出れないため、CentOS7のSquidでプロキシ-サーバーを構築したときの手順を紹介します。

動作環境

この記事は、以下の環境で実行した結果を基にしています。他のディストリビューションやバージョンでは、動作結果が異なる場合があることをご了承ください。

cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)

手順

インストール

標準のリポジトリからインストールできます。

yum -y install squid

squid.conf設定

「squid.conf」に設定を記述します。なお、ここではプロキシーサーバーでキャッシュはしない設定にしています。

vi /etc/squid/squid.conf

~省略~

# Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed
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
acl localnet src fc00::/7 # RFC 4193 local private network range
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines
# ACL名を追加
acl lan src 192.168.10.0/24

~省略~

# Example rule allowing access from your local networks.
# Adapt localnet in the ACL section to list your (internal) IP networks
# from where browsing should be allowed
http_access allow localnet
http_access allow localhost
# 上に記述したACL名に対してアクセス許可を設定
http_access allow lan

# And finally deny all other access to this proxy
http_access deny all

# Squid normally listens to port 3128
#http_port 3128
# 既定値から待受ポートをIPv4の8080番へ変更
http_port 0.0.0.0:8080

~省略~

# キャッシュしないよう設定
no_cache deny all

# ログのフォーマットを見やすく整形
logformat combined %tl %>a %Ss/%03>Hs %<st %rm %ru %[un %Sh/%<a %mt
access_log /var/log/squid/access.log combined

# プロキシサーバー経由での接続を隠蔽
forwarded_for off
request_header_access Referer deny all
request_header_access X-FORWARDED-FOR deny all
request_header_access Via deny all
request_header_access Cache-Control deny all

サービス起動設定

サービスを起動し、システム起動時に自動で起動するよう設定

systemctl start squid
systemctl enable squid
systemctl status squid

ファイアウォール設定

待受ポートを既定値の3128/tcpから8080/tcpに変更しているので、firewalldのservice設定フィアルを修正します。

cd /etc/firewalld/services
cp /usr/lib/firewalld/services/squid.xml ./
vi ./squid.xml
~省略~

<!-- <port protocol="tcp" port="3128"/> -->
<port protocol="tcp" port="8080"/>

~省略~

最後にファイアーウォールにsquidの通信を許可します。

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

あとは、クライアントマシンのプロキシーサーバー設定にこのサーバーを設定し、インターネットに接続できれば完了です。

まとめ

キャッシュを利用する際は追加の設定が必要ですが、代理サーバーとしてだけなら簡単に構築できます。

スポンサーリンク