LINUX.ORG.RU
решено ФорумAdmin

Отдельный маршрут для пользователя.

 ,


1

1

Добрый день. Необходимо пустить весь трафик отдельного пользователя через vpn. Делаю так:

iptables -t mangle -A OUTPUT -m owner --uid-owner 1003 -j MARK --set-mark 0x2
ip rule add fwmark 0x2 table 102
ip route add default via 10.10.0.1 table 102
iptables -t nat -A POSTROUTING -o tap_vpn -j MASQUERADE
Всё работает как надо, но если отвалится vpn, таблица маршрутизации 102 становится пустой и пользователь ходит в интернет напрямую.
Почему так происходит? Как я понимаю при пустой таблице маршрутизации трафик вообще не должен никуда идти.
И как это исправить?


Добавь ниже правило для drop пакетов от этого пользователя уходящих через внешний интерфейс (не тап).

anonymous
()

Что мешает добавить в таблицу 102 dgw с бОльшей метрикой и типом blackhole «ip ro add blackhole default metric 10 table 102»

vel ★★★★★
()

Если верить встроенному хелпу «ip ru», то маркировка пакетов не нужна.

$ ip -V
ip utility, iproute2-ss180402
$ ip ru help
Usage: ip rule { add | del } SELECTOR ACTION
       ip rule { flush | save | restore }
       ip rule [ list [ SELECTOR ]]
SELECTOR := [ not ] [ from PREFIX ] [ to PREFIX ] [ tos TOS ] [ fwmark FWMARK[/MASK] ]
            [ iif STRING ] [ oif STRING ] [ pref NUMBER ] [ l3mdev ]
            [ uidrange NUMBER-NUMBER ]
ACTION := [ table TABLE_ID ]
          [ nat ADDRESS ]
          [ realms [SRCREALM/]DSTREALM ]
          [ goto NUMBER ]
          SUPPRESSOR
SUPPRESSOR := [ suppress_prefixlength NUMBER ]
              [ suppress_ifgroup DEVGROUP ]
TABLE_ID := [ local | main | default | NUMBER ]
Якобы есть возможность сразу проверять uid

В man-е этого пока нет.

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