LINUX.ORG.RU
ФорумAdmin

DNAT для прокси


0

0

Не получается перенаправить клиентов-диалапщиков на прокси (squid), через маршрутизатор. Прокси на машине с внешним ip, маршрутизатор - linux с iptables, пишу правило (1):

/sbin/iptables -t nat -A PREROUTING -p tcp -s ip_клиента -m multiport --dport 80,81,8080,8000,8081 -j DNAT --to -destination ip_прокси:3128

Если прокси ставить на машине-маршутизаторе, то следующее правило (2) работает без проблем:

/sbin/iptables -t nat -A PREROUTING -p tcp -s ip_клиента -m multiport --dport 80,81,8080,8000,8081 -j REDIRECT --to-ports 3128:3128

Конфиг прокси насторен для transparent proxy.

В результате работы правила (1) пакеты до прокси не доходят, это видно при просмотре top на машине с прокси, обычно если клиенту указать в браузере ip прокси, то отнимается 1.5% памяти прокси-сервера. То есть пакеты просто сбрасываются в DROP, хотя политика для цепочек ACCEPT.

anonymous

Ответ на: комментарий от anonymous

да, включен и к тому же к маршрутизатору подключена локалка, и SNAT выполняется без проблем ...

anonymous
()
Ответ на: комментарий от anonymous

включил tcpdump на машине с прокси - пакеты приходят, клиентский копм отвечает резетом на син пакеты прокси:

06:36:00.5166422 client.com.32876 > proxy.com.squid: S 1557384665:1557384665 (0) win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 0> (DF)
06:36:00.5166479 proxy.com > client.com.32876: S 27009961157:27009961157 (0) ack 1557384666 win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 0> (DF)
06:36:00.5166482 client.com.32876 > proxy.com.squid: R 1557384666:1557384666 (0) win 0 (DF)

чо за фигня ?

anonymous
()

>/sbin/iptables -t nat -A PREROUTING -p tcp -s ip_клиента -m multiport --dport 80,81,8080,8000,8081 -j DNAT --to -destination ip_прокси:3128

Так нельзя. В этом случае, сквид будет вытаться ответить клиенту на прямую, а клиент от него ответа не ждет.

В этом случае надо еще делать SNAT с указанием адреса шлюза в качестве source адреса. И при этом, в логах сквида естествено, будет адрес шлюза.

Надо в этом случае использовать второе правило, с REDIRECT, но при этом можно на шлюзе поставить какой нибудь редиректор портов, который и будет переправлять пакеты на машину сквида.

Xela
()
Ответ на: комментарий от Xela

Ну вот не надо... то что один раз заднатилось, потом будет разснативаться автоматически. Я бы смотрел в сторону конфига сквида, и насчет того, на каком порту у тебя поднимается transparent proxy

anonymous
()
Ответ на: комментарий от Xela

всем спасибо за участие :)
в результате нужно было прописать для нужного ip, 2 правила на маршрутизаторе:

1) /sbin/iptables -t nat -A PREROUTING -p tcp -s ip_client -m multiport --dport 80,81,8080,8000,8081 -j DNAT --to destination ip_proxy:3128
2) /sbin/iptables -t nat -A POSTROUTING -p tcp -s ip_client --dport 3128 -j SNAT --to-source ip_router

В таком случае клиент получает пакеты от шлюза.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.