LINUX.ORG.RU
ФорумAdmin

Проблема с настройкой прозрачного Squid через MikroTik

 , ,


1

1

Поставил в ArchLinux squid, прописал

http_port 3128 intercept
http_port 3129
В качестве шлюза стоит MikroTik, направляю с него через dstnat 80 порт на squid - не работает.
 0 XI  ;;; SQUID tcp
      chain=dstnat action=dst-nat to-addresses=192.168.88.5 to-ports=3128
      protocol=tcp src-address=192.168.88.2 in-interface=bridge dst-port=80
      log=no log-prefix=""
MikroTik показывает, что пакеты по правилу проходят, но в логах squid пусто. На порту 3129 работает, если прописать вручную в браузере. Поставил debian stable в виртуалку, то же самое. Подскажите, где я туплю.


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

Дык при ошибки перенаправления или зацикливании squid пишет об этом в лог.

Соединение на 80 порт для хоста с прокси разрешены перед редиректом? Проверяешь с 192.168.88.2?

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

В логе только строчки с порта 3129, с прозрачного ничего нет.

Соединение на 80 порт для хоста с прокси разрешены перед редиректом?

Сейчас проверяю на чистой виртуалке с debian, там iptables пустой.

Проверяешь с 192.168.88.2?

Да.

upviqq
() автор топика

Tcpdump:

tcpdump -i eth0 port 3128
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes

10:58:32.680042 IP 192.168.88.5.3128 > 192.168.88.2.47636: Flags [R.], seq 0, ack 2138482950, win 0, length 0
10:58:32.895681 IP 192.168.88.2.47638 > 192.168.88.5.3128: Flags [S], seq 3828828499, win 29200, options [mss 1460,sackOK,TS val 89811 ecr 0,nop,wscale 7], length 0
10:58:32.895715 IP 192.168.88.5.3128 > 192.168.88.2.47638: Flags [R.], seq 0, ack 3828828500, win 0, length 0
10:58:32.929894 IP 192.168.88.2.47640 > 192.168.88.5.3128: Flags [S], seq 3190972948, win 29200, options [mss 1460,sackOK,TS val 89821 ecr 0,nop,wscale 7], length 0
10:58:32.929929 IP 192.168.88.5.3128 > 192.168.88.2.47640: Flags [R.], seq 0, ack 3190972949, win 0, length 0
10:58:33.145860 IP 192.168.88.2.47642 > 192.168.88.5.3128: Flags [S], seq 916796673, win 29200, options [mss 1460,sackOK,TS val 89886 ecr 0,nop,wscale 7], length 0
10:58:33.145896 IP 192.168.88.5.3128 > 192.168.88.2.47642: Flags [R.], seq 0, ack 916796674, win 0, length 0
10:58:33.680282 IP 192.168.88.2.47636 > 192.168.88.5.3128: Flags [S], seq 2138482949, win 29200, options [mss 1460,sackOK,TS val 90047 ecr 0,nop,wscale 7], length 0
10:58:33.680322 IP 192.168.88.5.3128 > 192.168.88.2.47636: Flags [R.], seq 0, ack 1, win 0, length 0
10:58:33.896848 IP 192.168.88.2.47638 > 192.168.88.5.3128: Flags [S], seq 3828828499, win 29200, options [mss 1460,sackOK,TS val 90112 ecr 0,nop,wscale 7], length 0
10:58:33.896887 IP 192.168.88.5.3128 > 192.168.88.2.47638: Flags [R.], seq 0, ack 1, win 0, length 0
10:58:33.930181 IP 192.168.88.2.47640 > 192.168.88.5.3128: Flags [S], seq 3190972948, win 29200, options [mss 1460,sackOK,TS val 90122 ecr 0,nop,wscale 7], length 0
10:58:33.930212 IP 192.168.88.5.3128 > 192.168.88.2.47640: Flags [R.], seq 0, ack 1, win 0, length 0
10:58:34.146826 IP 192.168.88.2.47642 > 192.168.88.5.3128: Flags [S], seq 916796673, win 29200, options [mss 1460,sackOK,TS val 90187 ecr 0,nop,wscale 7], length 0

И так повторяется.

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

tcp6

Возможно, сквид ждёт обращения по ipv6, а микротик ломится по ipv4. На всякий случай укажи сквиду явно интерфейс/адрес, на которых слушать.

lizard ★★★
()
Ответ на: комментарий от upviqq

В свое время я тоже мучался по данному вопросу. На микротике надо маркировать пакеты пришедшие от клиентов сети с запросом наружного 80 порта, и перекидывать их на другой «default route», где дефаултом является адрес с прозрачным прокси. В той схеме (dst nat) что у тебя, запрос приходит от клиента на микротик и перекидывается микротиком на порт сквида, сквид отвечает напрямую клиенту, а клиент уже тупо дропает пакет, т.к для него он как «неизвестный» тупо пришел от тех, кого не спрашивали (от сквида). Можешь убедиться этим, запустив tcpdump и на сквиде и на дебиане. (Дебиан будет просить страницу у своего маршрута по умолчанию - у микротика, а ему какого-то хрена взаместо шлюза отвечает сквид.

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

На микротике надо маркировать пакеты пришедшие от клиентов сети с запросом наружного 80 порта, и перекидывать их на другой «default route», где дефаултом является адрес с прозрачным прокси

А я вот сижу и думаю, чем же у меня конфигурация от авторской отличается. Таки да, у меня прокси с клиентами в разных подсетях. Получается да, либо маркировать соединения и применять policy routing, либо проксю в другую подсеть выставить.

Davyd ★★
()

Если нужно редиректить из внутренней сети тоже, то нужны примерно такие правила (3 штуки). Порты сам поменяешь.


add action=dst-nat chain=dstnat comment=\«to reverse-proxy https\» dst-port=443 in-interface=ether10-WAN protocol=tcp to-addresses=192.168.10.230 to-ports=443\r\
\nadd action=dst-nat chain=dstnat comment=\«to reverse-proxy https\» dst-address=5.23.x.x dst-port=443 protocol=tcp src-address=192.168.10.0/24 to-addresses=192.168.10.230 to-ports=443\r\
\nadd action=src-nat chain=srcnat comment=\«to reverse-proxy https\» dst-address=192.168.10.230 dst-port=443 protocol=tcp src-address=192.168.10.0/24 to-addresses=192.168.10.1\r\

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

Это в дополнение к моему правилу? Что-то не работают, не попадают под них пакеты. А если вместе включаю свой dstnat, то результат как и раньше.

    chain=dstnat action=dst-nat to-addresses=192.168.88.5 to-ports=80 protocol=tcp 
      in-interface=pppoe-out1 dst-port=80

    chain=dstnat action=dst-nat to-addresses=192.168.88.5 to-ports=80 protocol=tcp 
      src-address=192.168.88.0/24 dst-address=109.195.x.x dst-port=80

    chain=srcnat action=src-nat to-addresses=192.168.88.1 protocol=tcp 
      src-address=192.168.88.0/24 dst-address=192.168.88.5 dst-port=80

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

Разбирайся. Те правила, что я тебе скинул, для примера, 100% работают, редиректят как из внешних сетей, так и из внутренней (в моём примере 192.168.10.0/24)

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

Для проверки поставил прокси в другую подсеть, но squid так и не заработал с dstnat. Поставил privoxy - работает. Ерунда какая-то творится, пойду изучать, как анализировать трафик...

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