ssh на сервер, подключенный к службе VPN

У меня есть виртуальный частный сервер, который я хотел бы запустить веб-сервер, пока мой сервер подключен к службе VPN

Когда VPN-соединение с моим провайдером не работает, я могу делать все, что захочу, с этого сервера, ssh, scp, http и т. Д.

Как только openvpn запущен и подключен к VPN-сервису провайдера, сервер недоступен каким-либо образом и, конечно, по уважительной причине

Изображение выглядит примерно так:

My VPS ------------ +----------------+ / \ | | / Internet / 101.11.12.13 | 50.1.2.3|-----------------\ cloud /----<--- me@myhome | | / \ | 10.80.70.60| / \ +----------------+ \ \ : \_____________/ : : : : : : : : +------------------+ : | 10.80.70.61 | : | \ | : | \ | : | 175.41.42.43:1197|..............: | 175.41.42.43:yy| | ..... | | 175.41.42.43:xx| +------------------+ Legend ------ Line No VPN connection present ...... Line VPN connection established 

Что нужно уточнить:

  • Все IP-адреса и номера портов выше и ниже являются фиктивными
  • Строки с номерами портов xx, yy и все, что между ними, являются моим предположением, а не тем, что я знаю для факта.
  • Я установил задание cron, которое запускает каждую минуту, пингует другой VPS, работающий на apache2. В журналах apache2 я вижу, что исходный IP-адрес изменяется от 50.1.2.3 до 175.41.42.43, когда VPN активен, поэтому VPN работает нормально

Журналы OpenVPN показывают следующее:

 UDPv4 link remote: [AF_INET]175.41.42.43:1197 [ProviderName] Peer Connection Initiated with [AF_INET]175.41.42.43:1197 TUN/TAP device tun0 opened do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0 sbin/ip link set dev tun0 up mtu 1500 /sbin/ip addr add dev tun0 local 10.80.70.60 peer 10.80.70.61 

На данный момент я хотел бы иметь возможность ssh от myhome до My VPS на картинке, в то время как VPN работает и использует PuTTY.

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

Используя IP-адреса и порты в диаграмме и / или фрагменте журнала, может кто-нибудь сказать мне, как я могу пройти через этот туннель и получить доступ к моему серверу?

2 Solutions collect form web for “ssh на сервер, подключенный к службе VPN”

Вы блокируетесь из своего VPS, потому что, как только VPN-сервис завершен, ваши ssh-пакеты будут маршрутизироваться через VPN, а не публичный IP-адрес VPS 50.2.1.3.

Предположим, что ваш сервер:

  • Открытый IP-адрес – 50.1.2.3 (согласно вашему примеру)
  • Общедоступная IP-подсеть – 50.1.2.0/24
  • Шлюз по умолчанию – xxx1
  • eth0 – устройство для шлюза

Сделайте следующее, используя iproute2:

 ip rule add table 128 from 50.1.2.3 ip route add table 128 to 50.1.2.0/24 dev eth0 ip route add table 128 default via xxx1 

Затем запустите конфигурацию клиента OpenVPN: openvpn --config youropenvpn-configfile.ovpn &

Затем вы сможете ssh на свой сервер, пока ваш сервер подключен к службе vpn.

Вам нужно будет добавить соответствующие фильтры iptable, чтобы ограничить доступ к вашему публичному IP из не-ssh: 22 сеанса.

Это может быть немного поздно, но …

Проблема в том, что шлюз по умолчанию изменяется на OpenVPN, и это прерывает ваше текущее соединение SSH, если вы не настроите соответствующие маршруты перед запуском OpenVPN.

Что следует за мной. Он использует iptables и ip (iproute2). Ниже предполагается, что интерфейс шлюза по умолчанию перед запуском OpenVPN является «eth0». Идея состоит в том, чтобы убедиться, что при подключении к eth0, даже если eth0 больше не является интерфейсом шлюза по умолчанию, пакеты ответов для соединения снова возвращаются к eth0.

Вы можете использовать один и тот же номер для метки подключения, метки брандмауэра и таблицы маршрутизации. Я использовал разные цифры, чтобы сделать различия между ними более очевидными.

 # set "connection" mark of connection from eth0 when first packet of connection arrives sudo iptables -t mangle -A PREROUTING -i eth0 -m conntrack --ctstate NEW -j CONNMARK --set-mark 1234 # set "firewall" mark for response packets in connection with our connection mark sudo iptables -t mangle -A OUTPUT -m connmark --mark 1234 -j MARK --set-mark 4321 # our routing table with eth0 as gateway interface sudo ip route add default dev eth0 table 3412 # route packets with our firewall mark using our routing table sudo ip rule add fwmark 4321 table 3412 

===

ОБНОВИТЬ:

Вышеприведенное работает отлично для меня на Debian Jessie. Но в более старой системе Wheezy я только что обнаружил, что мне нужно добавить «через» в запись таблицы маршрутизации:

 # our routing table with eth0 as gateway interface sudo ip route add default dev eth0 via 12.345.67.89 table 3412 

Там «12.345.67.89» должен быть исходный не-VPN-шлюз.

  • SSH ProxyCommand один хост для достижения другого
  • Какие строки следует искать в /var/log/auth.log?
  • Почему удаленный Bash использует .bash_profile вместо .bashrc
  • Bash назначает вывод / ошибку переменной
  • Как настроить такую ​​функцию, чтобы я всегда мог использовать SSH для моей системы через Интернет на динамическом IP-адресе?
  • Окончания строк при использовании экрана GNU
  • Псевдотерминал не будет выделен, поскольку stdin не является терминалом
  • ssh to localhost не работает, удаленные ssh works
  • Удаленное начало сеанса экрана через ssh и немедленное закрытие сеанса ssh
  • Выполнение команды на удаленном экране
  • Что происходит, когда ваш пароль истекает, и вы используете проверку подлинности ключа?
  • Как я могу защитить эти два сценария, используемые в SSH authorized_keys дальше?
  • Interesting Posts

    Выходная скорость лимита в XTerm?

    Почему моя система зависает во время загрузки, если я не загружаюсь в режим восстановления?

    Как использовать команду «cat» для вывода команды «find»?

    Доступ к контейнеру TrueCrypt без TrueCrypt. Какие опасности ждут?

    Автоматическое монтирование местоположения в файлах GNOME (Nautilus) при перетаскивании

    Как установить переменные среды другого процесса?

    grep для IP без последнего октета как 0

    Linux всегда отправляет перенаправление ICMP

    Может ли плагин / аддон браузера Firefox делать плохие вещи в ваших файлах?

    Могу ли я добавить официальных репозитариев чиновников в исходный список kali 2.0

    Multiseat с одной картой и двумя экземплярами Xorg

    Сохранить состояние окна рабочего стола в Lubuntu

    для цикла с многострочными данными

    Правило брандмауэра / маршрутизации в Centos для этой настройки

    Разрешения на запись файлов, но не чтение, перезапись или изменение

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