プロキシサーバーとは、企業などの組織で、内部ネットワークからインターネット接続する際に、高速なアクセスや安全な通信などを確保するために、内部ネットワーク上のPCなどの代わりにインターネット接続を行う中継(代理)サーバーを指しており、テスト環境や開発環境を構築する際にプロキシサーバーが必要となることがあります。
そこでここでは、CentOS 7のSquidでプロキシサーバーを構築する基本的な方法を紹介します。

CentOS 7のSquidでBasic認証付きプロキシサーバーを構築する方法
ここでは、CentOS 7でsquidを使って認証付きProxy(プロキシ)サーバーを構築する手順を紹介します。
目次
動作環境
この記事は、以下の環境で実行した結果を基にしています。他のディストリビューションやバージョンでは、動作結果が異なる場合があることをご了承ください。
# 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
ファイアウォール設定
待受ポートを既定値の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
あとは、クライアントマシンのプロキシサーバー設定にこのサーバーを設定し、インターネットに接続できれば完了です。
あとがき
キャッシュを利用する際は追加の設定が必要ですが、代理サーバーとしてだけなら簡単に構築できます。