Удаленный доступ к SSH не работает, когда клиент OpenVPN включен в DD-WRT

У меня есть DD-WRT-маршрутизатор, который я бы хотел получить удаленно через SSH. DD-WRT находится за маршрутизатором ADSL, который имеет переадресацию портов для порта 22, а доступ и сервис DD-WRT SSH также установлены на порт 22. Удаленный доступ работает нормально. Однако DD-WRT должен быть постоянно подключен к VPN-серверу (используя встроенный клиент OpenVPN).

Соединение OpenVPN работает нормально, но удаленный доступ к SSH работает только тогда, когда VPN-клиент отключен.

Я читаю, что это может быть связано с тем, что весь трафик маршрутизируется исходящим через VPN-шлюз, включая трафик, проходящий через WAN. Правильно ли, что мне нужно определить настраиваемый параметр iptables для запросов, поступающих через WAN, для ответа через WAN? Если да, как бы я это сделал? Если нет, что еще я могу сделать?

У меня аналогичная проблема с веб-графическим интерфейсом на порту 8080 и PPTP VPN-сервером в порту 1723, поэтому я считаю, что проблема не связана с SSH как таковой.

Вот подробности моей настройки:

Устройства:

  • TP-Link W8151N ADSL-маршрутизатор
  • Маршрутизатор TP-Link WR1043ND с DD-WRT 25544

IP-адреса:

  • Маршрутизатор ADSL внешний: 115.xxx
  • Внутренний маршрутизатор ADSL: 192.168.1.1
  • DD-WRT WAN IP: 192.168.1.100 (от маршрутизатора ADSL)
  • DD-WRT IP: 192.168.10.1
  • DD-WRT IP внешний (VPN): 119.xxx
  • Идентификатор DDNS, указывающий на подключение маршрутизатора ADSL: 115.xxx

Конфигурация:

  • ADSL-маршрутизатор с переадресацией портов, активированный для портов 22/8080, DDNS до 192.168.1.100
  • DD-WRT установлен для разрешения удаленного управления графическим интерфейсом на 8080, а также от удаленных IP-адресов и SSH-доступа в 22, SSH, активированных в службах, также в 22.
  • DD-WRT, подключенный к OpenVPN с использованием встроенной функции клиента на вкладке «Сервисы»

Редактировать 05 марта: То, что я пытался в то же время:

Добавление следующего в поле «Маршрутизация на основе политик» в настройках клиента OpenVPN (идея: трафик, поступающий из WAN-ip, должен быть перенаправлен обратно на интерфейс WAN, vlan2 или ppp0):

 ip rule add from 192.168.1.1 table 200 ip route add default via 192.168.1.1 dev vlan2 table 200 ip route flush cache 

Результат: Когда установлено VPN-соединение, я больше не могу обращаться к графическому интерфейсу и к сети. Мой маршрутизатор настроен на перезагрузку после трех минут отсутствия доступа к Google DNS, поэтому через три минуты я снова получаю доступ к графическому интерфейсу и сети, но только до тех пор, пока VPN-соединение не будет восстановлено.

Неужели я полностью ошибаюсь в этом подходе?

Я был недоволен политикой, основанной на маршрутизации, поэтому после полного выходного дня исследований я добрался до этого.

Однако пакеты приходят на маршрутизатор, если вы пытаетесь использовать SSH для WAN IP, потому что весь трафик OUTPUT перенаправляется через VPN (интерфейс tun0 ) SSH не удастся.

Отсутствует правило OUTPUT на iptables для маршрутизации трафика по порту 22 через интерфейс vlan2 (это интерфейс, подключенный непосредственно к Интернету)

 # Create table 202 via the Gateway Ip on the Interface VLAN2 ip route add default via $(nvram get wan_gateway) dev vlan2 table 202 # Apply the rule on table 202 to packages marked with 22 ip rule add fwmark 22 table 202 # Tag with 22 every output package on port 22 not coming from any machine in the local network iptables -t mangle -I OUTPUT -p tcp --sport 22 -d ! 192.168.1.0/24 -j MARK --set-mark 22 

Обратите внимание, что последняя команда пропускает пакеты из локальной сети в моем случае 192.168.1.0/24, потому что при SSHing с локального узла пакеты должны быть маршрутизированы через br0 а не vlan2 .

Сначала выполните эти команды в командной строке вашего маршрутизатора, чтобы убедиться, что они работают с вами, если каким-то образом они нарушают вашу маршрутизацию, перезапуск очистит их. После того как вы убедитесь, что они работают, вы можете добавить их в сценарий брандмауэра вашего маршрутизатора

Конфигурация DD-WRT Обратите внимание, что мой IP-адрес и порт конфигурации различны, потому что я не использую значения по умолчанию.

В DD-WRT перейдите в раздел «Услуги -> VPN -> Клиент OpenVPN -> Маршрутизация на основе политик» , добавьте одну строку для каждого клиента, трафик которого вы хотите маршрутизировать через туннель VPN, например

  192.168.10.20/32 192.168.10.21/32 ... 

В результате клиент OpenVPN больше не направляет весь трафик через туннель и, следовательно, снова открывает WAN. У меня теперь есть VPN-клиент, который все еще может использовать SSH / PPTP / GUI в маршрутизаторе через IP-адрес WAN или псевдоним DDNS.

(Вероятно, более разумный способ, чем добавление одной строки для каждого клиента, но все различные сетевые маски, которые я пытался, привели к тому, что маршрутизатор больше не был доступен вообще, поэтому в итоге я добавил одну строку для всех IP-адресов в своем диапазоне DHCP.)

  • Двойной маршрутизатор OpenVpn Port Forwarding
  • Не удалось подключиться к PPTP VPN в Ubuntu: отключен плагин VPN: 1
  • Виртуальная виртуальная среда: сетевая тестовая среда VPN
  • Может ли локальный провайдер захватить мое местоположение всякий раз, когда я запускаю VPN на VPN-сервер?
  • Как отключить параметр «Использовать шлюз по умолчанию для удаленных сетей» в Windows 10?
  • Outlook 2007 и VPN-соединение?
  • VPN: Проводят ли все трафик через VPN при входе в систему?
  • Как заставить Windows 7 использовать определенные сетевые адаптеры для каждой программы?
  • Для чего фактически используется VPN?
  • Как выбрать адреса и сервер DNSMasq для PPTP VPN-клиента (в DD-WRT)?
  • Доступ к домашнему сетевому принтеру, когда я использую VPN для подключения к работе
  • Давайте будем гением компьютера.