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

最終更新日: 2017.02.18

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

■概要

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


■Squidインストール

(1)squid設定
[root@centos ~]# yum -y install squid ← squidインストール

■Squid設定

[root@centos ~]# vi /etc/squid/squid.conf ← squid設定ファイル編集

acl CONNECT method CONNECT
acl lan src 192.168.1.0/255.255.255.0 ← 追加(192.168.1.0/255.255.255.0からのプロキシサーバーへのアクセスを許可(1/2))

http_access allow localhost
http_access allow lan ← 追加(192.168.1.0/255.255.255.0からのプロキシサーバーへのアクセスを許可(2/2))
http_access deny all

# forwarded_for on
forwarded_for off ← 追加(プロキシサーバーを使用している端末のローカルIPアドレスを隠蔽化)

#  TAG: visible_hostname
#       If you want to present a special hostname in error messages, etc,
#       then define this.  Otherwise, the return value of gethostname()
#       will be used. If you have multiple caches in a cluster and
#       get errors about IP-forwarding you must set them to have individual
#       names with this setting.
#
#Default:
# none
visible_hostname centossrv.com ← 追加(squidの起動で以下のエラーメッセージが表示される場合の対処)
init_cache_dir /var/spool/squid... /etc/rc.d/init.d/squid: line 162: 4099 アボートしました $SQUID -z -F -D >>/var/log/squid/squid.out 2>&1
squid を起動中: /etc/rc.d/init.d/squid: line 162: 4100 アボートしました $SQUID $SQUID_OPTS >>/var/log/squid/squid.out 2>&1
[失敗]

#  TAG: header_access
#       Usage: header_access header_name allow|deny [!]aclname ...
#
#       WARNING: Doing this VIOLATES the HTTP standard.  Enabling
#       this feature could make you liable for problems which it
#       causes.
#
#       This option replaces the old 'anonymize_headers' and the
#       older 'http_anonymizer' option with something that is much
#       more configurable. This new method creates a list of ACLs
#       for each header, allowing you very fine-tuned header
#       mangling.
#
#       You can only specify known headers for the header name.
#       Other headers are reclassified as 'Other'. You can also
#       refer to all the headers with 'All'.
#
#       For example, to achieve the same behaviour as the old
#       'http_anonymizer standard' option, you should use:
#
#               header_access From deny all
#               header_access Referer deny all
#               header_access Server deny all
#               header_access User-Agent deny all
#               header_access WWW-Authenticate deny all
#               header_access Link deny all
#
#       Or, to reproduce the old 'http_anonymizer paranoid' feature
#       you should use:
#
#               header_access Allow allow all
#               header_access Authorization allow all
#               header_access WWW-Authenticate allow all
#               header_access Cache-Control allow all
#               header_access Content-Encoding allow all
#               header_access Content-Length allow all
#               header_access Content-Type allow all
#               header_access Date allow all
#               header_access Expires allow all
#               header_access Host allow all
#               header_access If-Modified-Since allow all
#               header_access Last-Modified allow all
#               header_access Location allow all
#               header_access Pragma allow all
#               header_access Accept allow all
#               header_access Accept-Charset allow all
#               header_access Accept-Encoding allow all
#               header_access Accept-Language allow all
#               header_access Content-Language allow all
#               header_access Mime-Version allow all
#               header_access Retry-After allow all
#               header_access Title allow all
#               header_access Connection allow all
#               header_access Proxy-Connection allow all
#               header_access All deny all
#
#       By default, all headers are allowed (no anonymizing is
#       performed).
#
#Default:
# none
以下を追加(プロキシ経由でアクセスしていることをアクセス先に知られないようにする)
header_access X-Forwarded-For deny all
header_access Via deny all
header_access Cache-Control deny all

(2)基本認証設定
アクセスを許可していないホストからも、ユーザー名/パスワードによる認証許可すればプロキシサーバーを利用できるようにする。
※ユーザー名/パスワードはWebページパスワード制限(htpasswd)で作成したユーザー名/パスワードを利用する
[root@centos ~]# vi /etc/squid/squid.conf ← squid設定ファイル編集
#auth_param basic program <uncomment and complete this line>
auth_param basic program /usr/lib/squid/ncsa_auth /etc/httpd/conf/.htpasswd ← 追加
auth_param basic children 5 ← コメント解除
auth_param basic realm Squid proxy-caching web server ← コメント解除
auth_param basic credentialsttl 2 hours ← コメント解除

acl CONNECT method CONNECT
acl password proxy_auth REQUIRED ← 追加

http_access allow password ← 追加
http_access deny all

■Squid起動

[root@centos ~]# /etc/rc.d/init.d/squid start ← squid起動
init_cache_dir /var/spool/squid... squid を起動中: .       [  OK  ]

[root@centos ~]# chkconfig squid on ← squid自動起動設定


■Squid確認

(1)Webブラウザ(Internet Explorer)設定
Internet Explorerのメニューで、ツール⇒インターネットオプション⇒「接続」タブ⇒「LANの設定」ボタン押下⇒「LANにプロキシサーバーを使用する」をチェック⇒「詳細設定」ボタン押下⇒「種類」HTTPの「使用するプロキシのアドレス」にサーバーのIPアドレス、「ポート」に3128と入力して⇒OKボタン押下

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

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


と表示されればOK



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

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