Поставили Fedora 20 на шлюз, yum установил squid 3.3.12-2.fc20, который отказался работать в режиме transparent. Получили проблему с обычными настройками (которые работали в версии до 3.3)
конфиг squid
1 | http_port 3128 transparent |
правило iptables
1 | iptables -t nat -A PREROUTING -i enp11s0 -s 10.0.9.0/24 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128 |
squid работал только в режиме прозрачного. У кого же в настройках был явно прописан адрес прокси — «доступ запрещен».
Попробовали варианты:
1 | http_port 3128 transparent |
1 | http_port 3128 intercept |
ничего не меняло.
В итоге пришли к выводу что в данный момент squid не может работать на одном порту в режиме и прозрачного и явного прокси сервера (но быть может это и ошибка), но в итоге мы сделали у себя так:
конфиг сквида
1 2 3 | # Squid normally listens to port 3128 http_port 3128 http_port 3129 transparent |
правило iptables
1 | iptables -t nat -A PREROUTING -i enp11s0 -s 10.0.9.0/24 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3129 |
То есть, те у кого явно прописан адрес прокси — попадают на стандартный порт 3128 и все прекрасно. У кого же прокся не прописана — попадают на правило прероутинга и редиректятся на порт 3129 — и тоже все прекрасно...
Буду рад услышать другие варианты.