Squid の localport ACL は、Squid が接続を受け付けたポートに一致します。これを適切な宛先 ACL と組み合わせることで、各リスナーは自分のリストだけを許可します。

クライアントと安全なポートの制限が既にある Squid 6 または 7 の構成の場合:

http_port 3128
http_port 3129

acl approved_clients src 192.0.2.0/24
acl main_listener localport 3128
acl alternate_listener localport 3129
acl main_sites dstdomain "/etc/squid/main-sites.txt"
acl alternate_sites dstdomain "/etc/squid/alternate-sites.txt"

http_access allow approved_clients main_listener main_sites
http_access allow approved_clients alternate_listener alternate_sites
http_access deny all

ドキュメントのクライアント範囲を実際に許可されたクライアントに置き換え、2 つのドメインリストファイルを用意します。対になる allow ルールは、インストールに必要な deny チェックの後、最後の deny の前に置きます。安全でないポート、CONNECT、管理に関する制限はそのまま残します。

1 つのアクセスルール上の ACL 名は AND で結合されます。別々の allow ルールは代替を提供します。宛先ルールからリスナー条件を外すと、どちらのリストもどちらのポートからでも通ってしまいます。

以前のルールも確認してください。先に一致する広い allow があると、これらの後続の制限は評価されません。境界を確認するには、各リスナー経由で許可・拒否される宛先をテストしてください。

localport はウェブサイトのポートでも、クライアントの一時的な送信元ポートでもありません。宛先ポートの条件には代わりに port ACL を使います。

関連記事