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

Я вводил autoyast параметры ядра и затем заметил нижнюю часть Вашего сообщения. Вы, возможно, просто должны отредактировать свои опции личинки на DVD для включения autoyast = параметр.

22
20.10.2015, 20:58
2 ответа

Вы теряете доступ к своему 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 x.x.x.1

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

После этого вы сможете подключиться к вашему серверу по ssh, пока ваш сервер подключен к сервису vpn.

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

10
27.01.2020, 19:43

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

Проблема в том, что шлюз по умолчанию изменяется 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 я только что обнаружил, что мне нужно добавить «via» в запись таблицы маршрутизации:

# 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.

2
27.01.2020, 19:43

Теги

Похожие вопросы