Удаленный доступ к 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? Если да, как бы я это сделал? Если нет, что еще я могу сделать?
- Как отключить политику безопасности с помощью защищенного клиента VPN-1 контрольной точки?
- Весь VPN-трафик проходит через VPN-сервер или это только для проверки подлинности?
- Как удаленный доступ к малине pi подключен к VPN?
- Многопользовательский VPN
- Vpn не удалось зарегистрировать ваш компьютер на сетевом этапе
У меня аналогичная проблема с веб-графическим интерфейсом на порту 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-соединение не будет восстановлено.
Неужели я полностью ошибаюсь в этом подходе?
- Балансировка нагрузки с несколькими шлюзами
- Доступ к внешнему компьютеру без переадресации портов
- Как настроить параметр «ручное окно» VPN для сервера и клиента, чтобы разрешить спутниковое VPN-соединение?
- Как устранить асимметричную скорость PPTP VPN? (Нисходящая линия к клиенту медленная, пропускная способность сервера и отсутствие накладных расходов на шифрование)
- Как подключить интернет-соединение через VPN-интерфейс Teamviewer?
- Скопируйте большой файл по ненадежной ссылке
- Как настроить сетевой менеджер Ubuntu / Linux для выборочного маршрутизации сетевого трафика через VPN?
- Подключение к SonicWall VPN с Linux-машины
Я был недоволен политикой, основанной на маршрутизации, поэтому после полного выходного дня исследований я добрался до этого.
Однако пакеты приходят на маршрутизатор, если вы пытаетесь использовать 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
.
Сначала выполните эти команды в командной строке вашего маршрутизатора, чтобы убедиться, что они работают с вами, если каким-то образом они нарушают вашу маршрутизацию, перезапуск очистит их. После того как вы убедитесь, что они работают, вы можете добавить их в сценарий брандмауэра вашего маршрутизатора
Обратите внимание, что мой 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.)