9

Недавно я обнаружил, что, когда моя рабочая станция подключается через VPN-соединение, ее SSH-сервер не может быть подключен с удаленного сайта. Я уверен, что это проблема маршрутизации, потому что VPN-клиент меняет шлюз по умолчанию на его равноправный (VPN-сервер) соединения ppp.

Есть ли решение сделать сервер SSH и VPN-клиента счастливыми?

4 ответа4

2

Когда вы используете vpn, как правило, сеть vpn захватывает весь ваш интерфейс, так что вы можете маршрутизировать только из сети vpn, а не из Интернета в целом. Большинство людей решают эту проблему, запустив vm (virtualbox и т.д.) И подключившись к vpn на этой виртуальной машине, чтобы он не полностью подключил основное соединение к реальной машине.

2

Перед тем, как приступить к настройке сети, проверьте, прослушивает ли рассматриваемый ssh-сервер интерфейс vpn. Может быть, это связано с конкретным интерфейсом на вашем сервере.

Пример вывода netstat -a :

 Proto Recv-Q Send-Q Local Address    Foreign Address   State      
 tcp        0      0 *:ssh            *:*               LISTEN      

Сервер ssh в этом примере прослушивает все интерфейсы (обозначенные звездочкой в *:ssh . Если в вашей системе вместо этого есть адрес хоста, сервер ssh привязан к определенным интерфейсам.

Отредактируйте /etc/ssh/sshd_config и установите ListenAddress 0.0.0.0 для настройки, если это необходимо.

Если sshd уже слушает правильные интерфейсы, не стесняйтесь войти в подземелье маршрутизации :-)

0

Вы говорите о разделенном туннелировании. Если вы достаточно знакомы с инструментом командной строки ROUTE.EXE, вы можете изучить маршруты, размещенные VPN-клиентом, и удалить их. Затем вам нужно добавить еще один, чтобы только трафик вашей корпоративной локальной сети проходил через шлюз VPN.

В частности, вы бы использовали

route print

... чтобы получить список записей маршрутизации. Не видя вывод, похоже, что ваш VPN-клиент разместил бы запись по умолчанию (0.0.0.0), причем шлюз является равноправным шлюзом VPN. Ты можешь использовать

route delete 10.*

... например, чтобы удалить все записи, указывающие на сеть 10.xxx.

Вы можете использовать

route add 10.0.0.0 mask 255.0.0.0 10.0.99.99

... где первый адрес (10.0.0.0 255.0.0.0) - это ваша корпоративная сеть и маска, а второй адрес - удаленный шлюз.

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

Примечание: альтернативой будет убедить вашу компанию настроить VPN на использование раздельного туннелирования; аргументом для этого является снижение пропускной способности и (IANAL) снижение ответственности за не корпоративный веб-трафик, проходящий через их сеть.

-1

Что мне помогло, так это настройка гостевых приложений для прослушивания нужного интерфейса и создание второго адаптера NAT в виртуальной коробке.

Этот ответ должен отвечать @ btw0, а также @Psychonaut выше

Шаг 1. Настройте один мостовой адаптер и один NAT-адаптер в Virtualbox

  • Щелкните правой кнопкой мыши свою виртуальную машину -> выберите настройки -> выберите сеть
  • Настройте адаптер 1 как мостовой адаптер
  • Настройте адаптер 2 в качестве адаптера NAT
    • Сохраните изменения -> SSH на вашей виртуальной машине и введите ifconfig
    • Определите IP-интерфейс вашего адаптера NAT, для меня это было 10.0.3.15
    • Вернитесь к настройкам вашего адаптера NAT и выберите Переадресация портов.
    • Настройте правила так, чтобы ваши гостевые виртуальные машины пересылали трафик на компьютер вашего хоста.
    • Для меня я перенаправил моего гостя 10.0.3.15 22 (SSHD), на мой хост 192.168.0.69 22000 (Проксированный гостевой SSHD)

Шаг 2 - Настройте SSHD и другие приложения для прослушивания интерфейса адаптера NAT

  • Отредактируйте /etc/ssh/sshd_config и оставьте комментарий в # ListenAddress 0.0.0.0
  • Это заставит sshd прослушивать все интерфейсы. Вы можете просто настроить его на 10.0.3.15, если вы хотите быть более безопасным.
  • Перезапустите ssh через sudo service ssh restart; sudo service sshd restart;

Шаг 3 - Тест

  • Проверьте, слушает ли ваш гостевой демон, запустив telnet 10.0.3.15 22 в вашем госте.
  • Проверьте, что virtualbox пересылает гостевой трафик на ваш хост-компьютер через telnet 192.168.0.69 22000 на ваших хост-устройствах или сетевых подключенных устройствах.



Теперь вы можете подключиться к vpn-соединению, но при этом инициировать новые ssh-соединения с этим сервером.

Ваше VPN-соединение должно использовать ваш мостовой адаптер на адаптере по умолчанию 1. Это должно быть невозможно, если ваш VPN работает.

Все ваши настроенные приложения в вашем госте должны слушать 10.0.3.15 на адаптере NAT. Весь трафик должен быть выборочно перенаправлен на ваш хост.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .