История изменений
Исправление samson, (текущая версия) :
Почему? Если будет -o внешний-интерфейс, то локальные не попадут под это правило.
Я то написал правило (-s) для hairpin nat (оно же и остальной nat в инет делает). Тут действительно есть минус в том, что src-addr клиента подменится адресом шлюза и стаистики не будет видно.
Как я понимаю, совет anc подразумевает следуещее:
# на шлюзе
iptables -t nat -A PREROUTING -s 192.168.0.100-110 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.222:3128
iptables -t nat -A PREROUTING -s 192.168.0.100-110 -p tcp --dport 443 -j DNAT --to-destination 192.168.0.222:3129
# snat наружу, пакеты перенаправленные на squid под это правило действительно не попадут:
iptables -t nat -A POSTROUTING -o OUT_IFACE -j MASQUERADE
# это правило комментируем (для hairpin)
# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
ps: лишним не будет:
# на squid можно (не не обязательно) прописать следующее
iptables -t nat -A PREROUTING -i ens192 -s 192.168.0.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i ens192 -s 192.168.0.0/24 -p tcp --dport 443 -j REDIRECT --to-port 3129
pps: вот сам сижу и думаю, применим ли, кстати, в такой ситуации hairpin вообще или нет... но из расуждений тут: http://macrodmin.ru/2011/08/osobennosti-prozrachnogo-proksi следует, что хотя бы работает.
ppps: тут я имел ввиду вариант №2
Исходная версия samson, :
Почему? Если будет -o внешний-интерфейс, то локальные не попадут под это правило.
Я то написал правило (-s) для hairpin nat (оно же и остальной nat в инет делает). Тут действительно есть минус в том, что src-addr клиента подменится адресом шлюза и стаистики не будет видно.
Как я понимаю, совет anc подразумевает следуещее:
# на шлюзе
iptables -t nat -A PREROUTING -s 192.168.0.100-110 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.222:3128
iptables -t nat -A PREROUTING -s 192.168.0.100-110 -p tcp --dport 443 -j DNAT --to-destination 192.168.0.222:3129
# snat наружу, пакеты перенаправленные на squid под это правило действительно не попадут:
iptables -t nat -A POSTROUTING -o OUT_IFACE -j MASQUERADE
# это правило комментируем (для hairpin)
# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
ps: лишним не будет:
# на squid можно (не не обязательно) прописать следующее
iptables -t nat -A PREROUTING -i ens192 -s 192.168.0.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i ens192 -s 192.168.0.0/24 -p tcp --dport 443 -j REDIRECT --to-port 3129
pps: вот сам сижу и думаю, применим ли, кстати, в такой ситуации hairpin вообще или нет... но из расуждений тут: http://macrodmin.ru/2011/08/osobennosti-prozrachnogo-proksi следует, что хотя бы работает.