chelaxe
@chelaxe
инженер-программист

Перенаправление трафика в MikroTik

Исходные данные:
Локальная сеть (src-address): 172.16.66.0/24

Задача:
Надо перенаправить с url: routerpwn.com/info.html на 172.16.66.200:80

Делаю так:
(1) у сайта routerpwn.com ip адрес: 74.208.139.97
я вначале отбираю все пакеты у которого dst-address == 74.208.139.97

ip firewall mangle add action=jump jump-target=registry chain=prerouting dst-address=74.208.139.97 dst-port=80 protocol=tcp src-address=172.16.66.0/24

(2) создаю правило в L7 для url: routerpwn.com/info.html
ip firewall layer7-protocol add name=routerpwn regexp="^.*(\/info\.html).*(routerpwn\.com).*$"

(3) маркирую пакеты по L7
ip firewall mangle add action=mark-packet chain=registry dst-port=80 layer7-protocol=routerpwn new-packet-mark=registry passthrough=no protocol=tcp src-address=172.16.66.0/24

(4) а в NAT перенаправляю:
ip firewall nat add action=dst-nat chain=dstnat dst-port=80 packet-mark=registry protocol=tcp src-address=172.16.66.0/24 to-addresses=172.16.66.200 to-ports=80

Что получается: 1-3 проходит как и хотел, а вот (4) не срабатывает… пробовал в (4) перенаправлять, когда dst-address = 74.208.139.97 получается, так же получается если в (1) промаркировать пакеты с dst-address == 74.208.139.97 тоже вышло, а вот после (3) пункта и маркировки пакета по L7 не получается.

Прошу помощи.

UDP:
если на шаге (3) убрать L7, то все получается. L7 правило создано верно, проверял через ip filter — дропаются пакетики
  • Вопрос задан
  • 26470 просмотров
Решения вопроса 1
chelaxe
@chelaxe Автор вопроса
инженер-программист
В результате поступил так:
1) Добавил ip адрес в список registry на котором находится сайт routerpwn.com
/ip firewall address-list add address=74.208.139.97 list=registry
2) Если пакет для ip адреса из этого списка то перенаправляю на порт 8080 в Web proxy
/ip firewall nat add action=redirect chain=dstnat comment=registry dst-address-list=registry dst-port=80 protocol=tcp src-address=172.16.66.0/24 to-ports=8080
3) Включаю прокси на порту 8080
/ip proxy set enabled=yes
4) Перенаправляю если обращение идет к routerpwn.com/info.html на 172.16.66.200
/ip proxy access add action=deny dst-host=routerpwn.com path=/info.html redirect-to=«172.16.66.200\?host=routerpwn.com&get=info.html»

Минус: не передается имя хоста и get запрос. По этой причине передаю их в параметрах get для 172.16.66.200 (172.16.66.200?host=routerpwn.com&get=info.html)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@alz
Подозреваю, что первый пакет (TCP SYN) у вас прошел через таблицу нат, где он не перенаправлялся (т.к. до L7 дело еще не дошло), а все последующие пакеты бегают уже мимо таблицы нат из-за connection tracking. Попробуйте в таблице raw отключить connection tracking для таких соединений
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 00:55
500 руб./за проект
21 нояб. 2024, в 23:30
300000 руб./за проект
21 нояб. 2024, в 22:21
3000 руб./в час