Сопоставление owner в iptables позволяет определить пакеты, созданные сокетом локального процесса. Например, -m owner --uid-owner 1234 относится к локальному сокету, принадлежащему UID 1234; это не идентифицирует имя пользователя HTTP-прокси.

На машине с Squid различайте эти пути:

ТрафикСущественное различие
Клиент подключается к Squid на этой машинеВходящее соединение к слушателю прокси
Squid открывает соединение к назначениюЛокально созданный исходящий сокет
Клиент LAN маршрутизируется напрямую через эту машинуПересылаемый трафик без локального сокета-создателя

Расширение действует в OUTPUT и POSTROUTING. У пересылаемых пакетов нет связанного локального сокета для этого сопоставления, поэтому правило FORWARD не может обнаружить пользователя удалённого компьютера, запросив UID Squid.

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

Используйте настроенную идентичность времени выполнения, а не предполагайте, что Squid работает как nobody. Несколько процессов могут делить один UID, поэтому разрешение на основе UID — это граница учётной записи, а не доказательство, что конкретный исполняемый файл создал каждое разрешённое соединение.

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