Fedora 27
Sponsored Link


Squid のリバースプロキシとしての設定です。 Squid をリバースプロキシとして Web サーバーの前面にたてることで、処理性能の向上やサーバーのセキュリティ向上に役立ちます。
[1] 事前に SSL証明書を作成しておきます。自己署名の証明書を使用しない場合は作成不要です。
[root@www ~]#
cd /etc/pki/tls/certs

[root@www certs]#
openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/pki/tls/certs/squid.pem -out /etc/pki/tls/certs/squid.pem

Generating a 2048 bit RSA private key
writing new private key to '/etc/pki/tls/certs/squid.pem'
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
Country Name (2 letter code) [AU]:
# 国

State or Province Name (full name) [Some-State]:
# 地域(県)

Locality Name (eg, city) []:
# 都市

Organization Name (eg, company) [Internet Widgits Pty Ltd]:
# 組織名

Organizational Unit Name (eg, section) []:
Server World
# 組織の部門名

Common Name (eg, YOUR name) []:
# サーバーのFQDN

Email Address []:
# 管理者アドレス
[root@www certs]#
chmod 400 squid.pem

[2] Squid の設定です。
Let's Encrypt を使用する場合は [fullchain.pem] を指定します。
[root@prox ~]#
vi /etc/squid/squid.conf
# 57行目:追記 ( httpアクセス全て許可 )

http_access allow all

# And finally deny all other access to this proxy
http_access deny all
# 63行目:以下のように変更 (defaultsite は転送先Webサーバを指定)

http_port 3128
http_port 80 accel defaultsite=www.srv.world
https_port 443 accel defaultsite=www.srv.world cert=/etc/pki/tls/certs/squid.pem key=/etc/pki/tls/certs/squid.pem
# 66行目:コメント解除

# 数字の意味 ⇒ [ディスクキャッシュサイズ] [第1階層のディレクトリ数] [第2階層のディレクトリ数]

cache_dir ufs /var/spool/squid 100 16 256
# 最終行に追記

cache_peer www.srv.world parent 80 0 no-query originserver
# メモリキャッシュサイズ

cache_mem 256 MB
# ホスト名定義

visible_hostname prox.srv.world
[root@prox ~]#
systemctl start squid

[root@prox ~]#
systemctl enable squid

[3] Firewalld を有効にしている場合は HTTP サービスの許可が必要です。
[root@dlp ~]#
firewall-cmd --add-service={http,https} --permanent

[root@dlp ~]#
firewall-cmd --reload

[4] LAN 内の DNS の設定や、必要であればルータの設定等を変更して、Squid のサーバーで HTTPS アクセスを受けるように設定変更します。 変更後、クライアントPC 等から Web ブラウザで Squid のサーバーへアクセスし、以下のように設定したバックエンドサーバーが応答することを確認してください。