squid

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>
--------------------------------------------------

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です