クライアントIPを一つに限定するSquid 6のアクセス規則
Squid 6.13のフォワードプロキシを既知のクライアントに限定し、宛先保護を維持して導入前に規則の順序を確認します。
この設定はDebian 13のパッケージを含むSquid 6.13向けです。squid -vでインストール済みのバージョンを確認してください。Squidのディレクティブ参照では、バージョン8でhttp_accessは利用できないとされています。
まずアドレスを選ぶ
リスナーにはサーバーに割り当てられたアドレスが必要です。クライアント規則にはSquidが観測する送信元アドレスが必要で、ノートPCのプライベートアドレスではなくNATネットワークの公開出口アドレスかもしれません。
以下のドキュメント用アドレスを置き換えてください。クライアント制限は一つのアドレスを/32で表しています。
http_port 192.0.2.10:3128
acl proxy_client src 198.51.100.27/32
acl Safe_ports port 80 443
acl SSL_ports port 443
acl CONNECT method CONNECT
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny manager
http_access deny to_localhost
http_access deny to_linklocal
http_access allow proxy_client
http_access deny all
パッケージ設定内の該当するリスナー、ACL定義、アクセス規則を置き換え、ログとファイルシステムの設定は残します。既存のクライアント許可より下にこの規則を追加すると、制限を回避される場合があります。リスト型ACLの定義を繰り返すと、値が追加されることもあります。
リクエストが規則を通る流れ
最初の拒否は、不要な宛先ポート、管理用リクエスト、ローカルまたはリンクローカルの宛先を拒否します。その確認後に既知のクライアントを許可し、それ以外は最後の拒否に到達します。送信元許可リストだけでは宛先を制限できないため、宛先保護は引き続き必要です。
リスナーを公開する前に、ホストまたはネットワークのファイアウォールを想定する送信元に制限します。バインドはSquidが接続を受け付ける場所を、アクセス規則は許可するリクエストを決めます。
sudo squid -k parse -f /etc/squid/squid.conf
管理されているサービスをリロードする前に、構文解析エラーを修正してください。許可されたクライアントと、拒否されるべき管理下の別の送信元から試します。宛先に許可したリクエストだけが届くことを確認してください。TCP接続だけでは転送許可の証明になりません。