Маршрутизировать только трафик ssh через VPN

Возможно ли маршрутизировать службу SSH компьютера через VPN-соединение, но разрешить ли другим другим данным выйти через WAN-адрес? Какую манеру iptables нужно сделать для этого?

Данные SSH → проходят через VPN
ВСЕ другие данные → проходит по маршруту по умолчанию

  • Network Manager потерял сохраненные пароли vpn в Mint 17
  • Маскарад не работает иногда
  • VPN на Fedora Linux?
  • PPTP VPN в CentOS 7
  • Конфигурация клиента L2TP IPsec VPN
  • Как настроить два разных типа на VPN-серверах на одном компьютере?
  • IPsec не считывает конфигурацию при удалении туннеля
  • Доступ к VPN из Ubuntu 12.04
  • One Solution collect form web for “Маршрутизировать только трафик ssh через VPN”

    Мой ответ связан с ответом на связанный, но более сложный вопрос и не проверяется.

    Вам нужен пакет iproute2 .

    Добавить в /etc/iproute2/rt_tables строку

     200 vpn-route 

    а затем написать сценарий, который вы вызываете после инициализации VPN:

     # set default gateway of vpn-route ip route add default via $VPNGATEWAY dev $VPNINTERFACE table vpn-route # use this for marked packages ip rule add fwmark 0x1 table vpn-route # mark outgoing ssh packages iptables -t mangle -A OUTPUT -o $WANINTERFACE -p tcp --dport 22 -j MARK --set-mark 1 # rewrite source address iptables -t nat -A POSTROUTING -o $VPNINTERFACE -j MASQUERADE 

    Конечно, вам нужно заменить переменные $... их фактическими значениями.

    PS: Если ваш IP-адрес на WAN-интерфейсе исправлен, вы можете заменить последнюю строку на iptables -A POSTROUTING -t nat -o $WANINTERFACE -p tcp --dport 22 -j SNAT --to $WANIP

    Linux и Unix - лучшая ОС в мире.