Два порта Squid могут иметь разные списки разрешённых назначений
Объедините localport с соответствующим ACL назначения в каждом правиле allow, сохранив прежние ограничения и последнее правило deny.
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.