Table of Contents
squidでプロキシサーバの構築
2023/02/08 IPv6のローカルネットワークの定義を追加(自分の体感で改善した気がする。)
インストール
# dnf install squid
設定
# vi /etc/squid/squid.conf
--------------------------------------------------
#使用しているローカルネットワークを定義(それ以外は削除)
acl localnet src 192.168.xxx.0/24
#有効なIPv6のローカルネットワークを定義追加 23/02/08
acl localnet src fc00::/7 # RFC 4193 local private network range
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines
#キャッシュで使用する容量を拡張(100M⇒4096M)
cache_dir ufs /var/spool/squid 4096 16 256
#ホスト名を非表示
visible_hostname unkown
#クライアントのIPアドレスを非表示
forwarded_for off
#FORWARDED_FORの出力を抑制
request_header_access X-Forwarded-For deny all
#プロキシのバージョン情報などを抑制
request_header_access Via deny all
#キャッシュ制御情報の出力を抑制
request_header_access Cache-Control deny all
--------------------------------------------------
起動設定
# systemctl enable squid
# systemctl start squid
ポートオープン
# firewall-cmd --zone=internal --add-service=squid --permanent
# firewall-cmd --reload
# firewall-cmd --list-all --zone=internal
proxyの自動設定
androidや、ipad等でも可能な限り使用したいので設定を追加
BIND
プライベートアドレスのCNAMEレコード追加
# vi /var/named/rc.chinaz.org
--------------------------------------------------
wpad IN CNAME ns
--------------------------------------------------
Apache
proxyの定義ファイルをドキュメントルートに作成
ローカルは、直接で、それ以外は、proxy経由
# vi wpad.dat
--------------------------------------------------
function FindProxyForURL(url,host)
{
if (isResolvable(host)||
dnsDomainls(host,".chinaz.org")||
isInNet(host, "192.168.xxx.0", "255.255.255.0"))
return "DIRECT";
else
return "PROXY proxy.chinaz.org:3128";
}
--------------------------------------------------
wpad.datのアクセスをプライベートアドレスのみアクセス許可
# vi .htaccess
--------------------------------------------------
<Files "wpad.dat">
Require ip 192.168.xxx.0/24
</Files>
--------------------------------------------------
cachemgr.cgi
cache_objectにmanagerの権限を付与
ログオン用のアカウントとパスワードを設定
# vi /etc/squid/squid.conf
--------------------------------------------------
acl manager proto cache_object
http_access allow localhost manager
http_access deny manager
cache_mgr admin
cachemgr_passwd (パスワード) all
--------------------------------------------------
squidに指定したポートと同じポートを指定
# vi /etc/squid/cachemgr.conf
--------------------------------------------------
localhost:3128
--------------------------------------------------
cgiのアクセス権を設定
# vi /etc/httpd/conf.d/squid.conf
--------------------------------------------------
ScriptAlias /status/cachemgr.cgi /usr/lib64/squid/cachemgr.cgi
<Location /status/cachemgr.cgi>
Options ExecCGI
Require all denied
Require ip 192.168.xxx.
</Location>
--------------------------------------------------