Squid + Havp
-
PfS 2.0, прозрачный squid и havp родителем.
делаем в терминале
lynx localhost или
lynx localhost.domain или
lynx 127.0.0.1
Получаем петли соединений и полную дальнейшую непроходимость HTTP.
Пытаемся бороться.
Это не отрабатывает как надо:# Setup Squid proxy redirect no rdr on bridge0 proto tcp from { 127.0.0.1, 192.168.7.1 } to any port 80 no rdr on lo0 proto tcp from { 127.0.0.1, 192.168.7.1 } to any port 80 no rdr on bridge0 proto tcp from any to { 127.0.0.1, localhost } port 80 no rdr on lo0 proto tcp from any to { 127.0.0.1, localhost } port 80 rdr on bridge0 proto tcp from any to !(bridge0) port 80 -> 127.0.0.1 port 80 rdr on lo0 proto tcp from any to !(lo0) port 80 -> 127.0.0.1 port 80
т.к. сам squid слушает на localhost:80, если я правильно понимаю.
Попытки загнать все вариации localhost в чёрные списки сквида не решают проблемы доступа по IP, да и работают как-то странно - то работают, то нет.
Попытки заткнуть доступ с помощью havp-а тоже не совсем успешны. Можно заткнуть localhost.domain, но localhost входной контроль пакета за домен не считает, не говоря уже про IP адрес, хотя сам havp их прекрасно хавает. Вручную поправить раздел havp в конфиге не представляется возможным, т.к. на месте чёрного списка бред в виде хеша.
Проблема встала из-за того, что некоторые говнодомены иногда прикидываются в DNS 127.0.0.1, что и приводит к затыкам.
Вопрос в том, как правильно заткнуть петли, не правя код GUI? -
Шокирован, но попробую догадаться - на бриджах существующие прозрачные режимы не работают.
-
Вроде как не в редиректе дело. Что редиректим - попадаем на 127.0.0.1:80, что не редиректим. Запрашиваемый сервер всё равно 127.0.0.1:80, что при localhost, что при very.bad.domain, срезолвенным в 127.0.0.1. Вот и крутимся по цепочке localhost->squid->havp->localhost again :)
Или я не прав?Edit:
Это всё в случае запросов с самого PfSensa.
Да, и ещё. Бридж тут езернета с wifi, а не сквозной. -
Пришлось таки пока добавить в squid.inc дополнительное правило
$rules .= "# Setup squid pass rules for proxy\n"; +++$rules .= "block in quick on lo0 proto tcp from 127.0.0.1 to (lo0) port 80\n";