SSH через VPN соединение


11

У нас есть сервер AWS EC2, который мы настроили так, чтобы он был доступен только (через SSH) из нашей офисной сети. Очевидно, что это не идеально для удаленных устройств, где кто-то должен подключиться к экземпляру EC2 и работает удаленно вне офиса, например, во время деловой поездки.

Мне удалось настроить VPN через PPTP и я могу подключиться к офисной сети (у меня есть два локальных IP-адреса один от wlan0 и один от ppp0) независимо от того, где я нахожусь. Тем не менее, когда я SSH к экземпляру EC2, он все еще отвергает меня, скорее всего, потому что он видит, что я все еще пытаюсь ssh из-за пределов сети.

Я думаю, проблема в том, что я не могу направить трафик ssh для прохождения через VPN. Есть идеи, как мне это сделать?

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


Краткий ответ - маршрутизировать ваш SSH-трафик через VPN. И использовать что-то более безопасное, чем PPTP.
Hyppy

Ответы:


15

Давайте предположим, что ваш AWS доступен через SSH по IP «your.ec2.ip.address». Предположим, что ваша офисная сеть имеет доступ к Интернету через маршрутизатор, который применяет некоторые преобразования NAT, и, следовательно, ваши офисные ПК видны в Интернете с IP-адресом «your.office.external.ip».

Предположим также, что вы находитесь вне вашего офиса, ваш ноутбук подключен по всему миру, с:

  • основной IP-адрес, назначенный вашим местным интернет-провайдером (предположим, 192.168.0.33 с маской сети 255.255.255.0 и def-gw 192.168.0.1);
  • адрес PPP0, назначенный вашему ноутбуку удаленным сервером PPTP (как только ваш VPN-туннель будет успешно установлен). Давайте предположим, что PPP0 - это .local.ppp0.ip с удаленным P2P .remote.pptp.address. Другими словами, ваш ноутбук знает, что это .local.ppp0.ip, а также знает, что на другой стороне туннеля VPN есть ваш PPTP-сервер, доступный через VPN, по адресу .remote.pptp.address.

В таком случае, если вы не можете - из вашей записной книжки - связаться с вашим AWS по адресу «ваш.ec2.ip.address», я уверен, что проблема в том, что, как вы думаете, маршрутизация: ваш трафик SSH направлен на » your.ec2.ip.address " НЕ покидает ваш нетбук внутри VPN, но вместо этого оставляет общий путь по внешнему VPN (aka: отправляется на ваш локальный шлюз: 192.168.0.1).

Чтобы диагностировать эту проблему, очень простая проверка может быть сделана с:

  • Linux: команда tracepath (es .: «tracepath -n your.ec2.ip.address»)
  • windows: команда "tracert" (es .: "tracert -d your.ec2.ip.address")

Из выходных данных вы можете проверить, сообщает ли второй шаг PPTP-адреса или нет.

Если ваш трафик движется по неверному пути, его легко исправить в VPN:

  • Linux: "route add -host your.ec2.ip.address gw the.remote.pptp.address"
  • Windows: «route add your.ec2.ip.address mask 255.255.255.255 the.remote.pptp.address»

После настройки вышеуказанного маршрута вы можете снова проверить маршрутизацию с помощью tracert / tracepath

После правильной настройки маршрутизации существует небольшая вероятность того, что проблемы могут возникнуть в вашем офисе: если ваш сервер PPTP НЕ выполняет IP-пересылку и NAT-трансляцию, существует высокая вероятность того, что вы будете испытывать «фильтрацию» в случае отсутствует IP-пересылка или «асимметричная маршрутизация» (в случае отсутствия NAT) между вашим ноутбуком и вашим адресом.ec2.ip.address:

  • трафик от вас до Amazon, проезд по VPN до вашего офиса, а затем до Amazon;
  • возвращать трафик из Amazon к вам, маршрутизироваться по общему Интернет-пути и ... высоки шансы, что он куда-то упал.

Снова: tracepath / tracert может помочь вам проверить проблему.

На Linux-боксах другой очень полезный друг - "tcpdump". Некоторые полезные команды tcpdump:

  • «tcpdump -n -i interface icmp» для проверки входящих / исходящих запросов / ответов PING;
  • «tcpdump -n -i host an.ip.add.ress » для проверки трафика, поступающего / отправленного на an.ip.add.ress;
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.