ACL localport в Squid соответствует порту, на котором 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

Замените диапазон клиентов из документации на реальных авторизованных клиентов и подготовьте два файла списков доменов. Разместите парные правила allow после обязательных проверок deny в установке и перед её финальным deny. Сохраните ограничения для небезопасных портов, CONNECT и управления.

Имена ACL в одном правиле доступа объединяются через AND. Отдельные правила allow дают альтернативы. Если убрать условие слушателя из правил назначения, любой список пройдёт через любой порт.

Проверьте и более ранние правила: широкое allow, совпадающее первым, не даёт оценить эти поздние ограничения. Проверьте разрешённые и запрещённые назначения через каждый слушатель, чтобы подтвердить границу.

localport — это не порт веб-сайта и не эфемерный порт источника клиента. Условие порта назначения использует вместо этого ACL port.

Похожие статьи