Назад | Перейти на главную страницу

Как настроить iptables для запущенной консоли Openvpn с доходом ssh

У меня есть сервер Ubuntu, которым я удаленно управляю через ssh, мне нужно запустить клиент OpenVpn на этом сервере, поэтому весь трафик будет проходить через VPN-туннель, за исключением двух вещей: 1. ssh-соединение с моего компьютера здесь, 2. Другая программа использует самоопределяемый порт 43210.

Это то, что я пробовал. Я создал новую таблицу правил IP для всего трафика, который не хочу использовать через VPN:

# reserved values
255      local 
254      main
253      default   
0        unspec
#
# local
#
#1      inr.ruhep
206      passvpn

Я определил поведение таблицы passvpn для использования локального устройства без VPN:

ip route add default via xxx.xxx.xxx.xxx dev eth0 table passvpn

где xxx.xxx.xxx.xxx - мой шлюз

Я добавляю новое правило IP, чтобы направить отмеченный трафик в таблицу:

ip rule add fwmark 66 table passvpn

Я помечаю SSH и трафик другой программы этой маской 66, используя номер порта:

iptables -t mangle -A OUTPUT -p tcp --sport 22 -j MARK --set-mark 66

Когда я запускаю OpenVpn, мое ssh-соединение прерывается, и я не могу установить никаких новых соединений, ошибка как «тайм-аут». Я подумал, что, возможно, запрос на подключение с моего компьютера не может достичь сервера с запущенным VPN, поэтому я добавляю еще одно правило iptables как:

iptables -t mangle -A INPUT -p tcp --sport 22 -j MARK --set-mark 66

Но все равно не работает.

Подскажите, пожалуйста, если я здесь что-то не так сделал? Любое предложение будет оценено, спасибо!