プロキシサーバー構築(Squid)

最終更新日: 2017.06.19

<<トップページ <<新着情報 <<逆引き集 <<リンク集 <<サイト内検索 <<メルマガ <<Scientific Linuxで自宅サーバー構築 <<Fedoraで自宅サーバー構築

■概要

プロキシサーバー(Squid)は、一度読み込んだWebページを保存しておき、次回からの同一Webページへのアクセス時には保存してあるWebページをクライアント側に返すことにより、内部からの高速なWebアクセスを可能にするためのサーバー。


■Squidインストール

[root@centos ~]# yum -y install squid ← squidインストール

■Squid設定

[root@centos ~]# vi /etc/squid/squid.conf ← Squid設定ファイル編集
# Deny CONNECT to other than secure SSL ports
http_access deny CONNECT !localnet !SSL_ports ← 外部への443番以外のポートへのアクセスを拒否(内部の一部サービスでHTTPSアクセスに443番以外のポートを使用するため)

# Uncomment and adjust the following to add a disk cache directory.
#cache_dir ufs /var/spool/squid 100 16 256
maximum_object_size 2048000000 bytes ← 追加(iOSアップデートをキャッシュできるように最大キャッシュサイズを2GBにする)
cache_dir aufs /var/spool/squid 3000 128 256 max-size=2048000000 ← 追加(iOSアップデートをキャッシュできるように最大キャッシュサイズを2GBにする)

#
# Add any of your own refresh_pattern entries above these.
#
refresh_pattern -i appldnld\.apple\.com 129600 100% 129600 ignore-reload ignore-no-store override-expire override-lastmod ignore-must-revalidate ← 追加(appldnld.apple.comからのキャッシュを90日間=129600分保存する)
refresh_pattern -i phobos\.apple\.com 129600 100% 129600 ignore-reload ignore-no-store override-expire override-lastmod ignore-must-revalidate ← 追加(phobos.apple.comからのキャッシュを90日間=129600分保存する)
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern .               0       20%     4320

−−追加(ここから)−−
# プロキシ経由アクセスの隠蔽化
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

# アクセスログ設定
logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" >Hs %h" "%{User-Agent}>h" %Ss:%Sh
access_log /var/log/squid/access.log combined
−−追加(ここまで)−−

■Squid起動

[root@centos ~]# squid -z ← キャッシュディレクトリ作成

[root@centos ~]# systemctl start squid ← squid起動※CentOS7の場合
[root@centos ~]# /etc/rc.d/init.d/squid start ← squid起動※CentOS6の場合

[root@centos ~]# systemctl enable squid ← squid自動起動設定※CentOS7の場合
[root@centos ~]# chkconfig squid on ← squid自動起動設定※CentOS6の場合


■Squid確認

(1)プロキシサーバー利用設定(Windowsの場合)
コントロールパネル⇒インターネットオプション⇒「接続」タブ⇒「LANの設定」ボタン押下⇒「LANにプロキシサーバーを使用する」をチェック⇒「アドレス」にサーバーのIPアドレス、「ポート」に3128と入力して⇒OKボタン押下

(2)プロキシサーバー利用設定(iPhoneの場合)
設定⇒Wi-Fi⇒i⇒「HTTPプロキシ」で「手動」を選択⇒「サーバ」にサーバーのIPアドレス、「ポート」に3128と入力

(3)プロキシサーバー確認
診断くんにアクセスして、

 総合評価:?(A 以上 or 生 IP。下記参照)

と表示されればOK

■自動プロキシサーバー利用設定

WAPDにより、クライアント側でプロキシサーバー利用設定を行わなくてもプロキシサーバーを利用できるようにする。
DHCPサーバー導入済であること
Webサーバー導入済であること
[root@localhost ~]# vi /etc/dhcp/dhcpd.conf ← DHCPサーバー設定ファイル編集
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#
option wpad-curl code 252 = text; ← 追加(WPAD有効化)
subnet 192.168.1.0 netmask 255.255.255.0 {
        range 192.168.1.21 192.168.1.254;
        option routers 192.168.1.1;
        option domain-name-servers 192.168.1.3;
        option wpad-curl "http://WebサーバーIPアドレス/wpad.dat"; ← 追加(WPADページURLを指定)
}

[root@localhost ~]# systemctl restart dhcpd ← DHCPサーバー再起動

[root@centos ~]# vi /var/www/html/wpad.dat ← WPADページ作成※ドキュメントルートは/var/www/html(デフォルト)とする
function FindProxyForURL(url,host)
{
    return "PROXY プロキシサーバーIPアドレス:3128";
}

[root@centos ~]# vi /var/www/html/.htaccess ← .htaccessファイル作成※ドキュメントルートは/var/www/html(デフォルト)とする
# WPADページへ内部からのみアクセスを許可する
<Files "wpad.dat">
    <IfVersion >= 2.3>
        Require ip 10.0.0.0/8
        Require ip 172.16.0.0/12
        Require ip 192.168.0.0/16
    </IfVersion>
    <IfVersion < 2.3>
        Order allow,deny
        Allow from 10.0.0.0/8
        Allow from 172.16.0.0/12
        Allow from 192.168.0.0/16
    </IfVersion>
</Files>

■自動プロキシサーバー利用設定確認

(1)プロキシサーバー利用設定(Windowsの場合)
特になし※プロキシサーバー利用設定を行っていた場合は、インターネットオプション⇒「接続」タブ⇒「LANの設定」ボタン押下⇒「LANにプロキシサーバーを使用する」のチェックをはずす=元に戻す

(2)プロキシサーバー利用設定(iPhoneの場合)
設定⇒Wi-Fi⇒i⇒「HTTPプロキシ」で「自動」を選択






▲このページのトップへ戻る

LPIロゴ Copyright© 2005-2017 fallenangels, All rights reserved.
ご自由にリンクしてください(連絡は不要です)
本ページへのご意見・ご要望、誤字・脱字・リンク切れ等のご連絡はこちらからお願いします