Рейтинг:1

TPROXY мешает правилам переадресации портов DNAT

флаг in

Я настраиваю TPROXY на своем маршрутизаторе VyOS для перенаправления определенного трафика на локальный прозрачный прокси. Это работает довольно хорошо, пока я не обнаружил, что все мои правила переадресации портов DNAT больше не работают (тайм-аут соединения при подключении из внешней сети).

Среда

  • Маршрутизатор: 10.0.0.1/24 (прокси работает 1234 порт и добавление SO_MARK с 0xff)
  • Внутренний хост: 10.0.0.2/24 (Порт 80 надо выставить на всеобщее обозрение)

Правила TPROXY

ip правило добавить fwmark 1 таблица 100
ip route add local 0.0.0.0/0 dev lo таблица 100

nft добавить таблицу myproxy
nft add chain myproxy prerouting { type filter hook prerouting priority 0 \; }
nft добавить правило myproxy prerouting ip saddr { 127.0.0.1/32, 224.0.0.0/4, 255.255.255.255/32 } вернуть
nft добавить правило myproxy prerouting meta l4proto tcp ip saddr 10.0.0.0/24 return
nft добавить правило myproxy prerouting mark 0xff return
nft добавить правило myproxy prerouting meta l4proto {tcp, udp} пометить установить 1 tproxy на 127.0.0.1:1234 accept

nft добавить цепочку myproxy output { type route hook output priority 0 \; }
nft добавить правило myproxy output ipdddr {127.0.0.1/32, 224.0.0.0/4, 255.255.255.255/32} вернуть
nft добавить правило myproxy output meta l4proto tcp ip saddr 10.0.0.0/24 return
nft добавить правило myproxy output mark 0xff return
nft добавить правило myproxy output meta l4proto {tcp, udp} mark set 1 accept

nft добавить фильтр таблицы
nft add chain filter divert { type filter hook prerouting priority -150 \; }
nft добавить правило фильтр переадресовать мета l4proto tcp socket прозрачный 1 набор метаметок 1 принять

Правила ДНАТ

$ nft список таблиц nat

IP-адрес таблицы {
    цепь PREROUTING {
        type nat hook prerouting priority dstnat; политика принять;
        iifname "pppoe0" tcp dport { 8080 } счетчик пакетов 7 байт 400 dnat to 10.0.0.2:80
    }
}

Симптомы

Подключение Общедоступный IP-адрес маршрутизатора: 8080 тайм-аут. В идеале он должен перенаправлять трафик на 10.0.0.2:80.

Я предполагаю, что входящий трафик DNAT ошибочно перенаправляется на прокси-сервер (вместо фактического хоста). 10.0.0.2), однако я не смог определить правильные правила nft.

Заранее спасибо!

Tom Yan avatar
флаг in
Пробовали ли вы дополнительно добавить `meta l4proto tcp ip saddr 10.0.0.0/24 return` в `myproxy prerouting` (конечно, до правила `tproxy`).

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.