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-адреса и порты в диаграмме и / или фрагменте журнала, может кто-нибудь сказать мне, как я могу пройти через этот туннель и получить доступ к моему серверу?

  • Как туннель SSH через SSH?
  • Как ssh в ubuntu (настроено в виртуальном боксе) при выключенном
  • Отключить аутентификацию для ssh
  • Приложение Directx с использованием вина поверх ssh -x
  • Удаленный сервер, случайно зависающий на ssh login
  • Ubuntu SSH для удаленной подпапки
  • openssh: если ssh добавляет ключи к агенту по мере необходимости
  • channel 1: open failed: административно запрещено: open failed
  • 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-шлюз.

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