LINUX.ORG.RU
ФорумAdmin

Падает ssh подключение к серверу, после того как запускаю на нем Wireguard

 ,


0

1

Всем привет. В поиске подобный случай/решение своего вопроса не нашел. Опыт работы с Линукс - минимален.
Итак, есть у меня ВМ Ubuntu LTS 22.04 в Compute Cloud на Yandex. Установил туда Wireguard. Я peer, поэтому не генерил ключи, а взял для подключения готовый конфиг файл с протон впн(ну или любого другого провайдера, дают самый обычный конфиг клиентский). Как только ввожу команду wg-quick up wg0.conf, сразу падает подключение по SSH, через которое и работаю на удаленной ВМ. Подключаюсь к ВМ со своего домашнего ПК из винды 10, через putty/MobaXterm/cmd. Подключаюсь на публичный IPv4 51.xxx.xxx.214 порт 22. Гуглил читал, менял разные настройки, безуспешно, фаервол выключал/включал, прописывал туда порты, безуспешно. Понимаю, что мне вероятно нужно прописать какое то правило для моего ssh подключения. Нужна помощь знающих и разбирающихся людей.

мой конфиг файл

[Interface]

PrivateKey = xxxxxxxxxxx

Address = 10.110.23.7/32

DNS = 8.8.8.8, 1.1.1.1

[Peer]

PublicKey = xxxxxxxxxxxx

AllowedIPs = 0.0.0.0/0

Endpoint = 185.182.193.108:51820

Непосредственно на ВМ подключение к инету из под wideguard есть.

root@mytest:~# wg

interface: wg0

public key: xxxxxxxxxxxxxxx

private key: (hidden)

listening port: 35943

fwmark: 0xca6c

peer: xxxxxxxxxxxxxxxxx

endpoint: 185.182.193.108:51820

allowed ips: 0.0.0.0/0

latest handshake: 1 minute, 59 seconds ago

transfer: 370.65 KiB received, 23.94 KiB sent

Могу зайти на удаленную ВМ только из серийной консоли на яндексе. Как только отключаю(wg-quick down wg0.conf) wireguard на ВМ, подключение по SSH с моего домашнего компа проходит отлично. Когда на ВМ Wireguard запущен, то ВМ даже не пингуется по публичному IP. Отключаю Wireguard и все приходит в норму.

Подскажите пожалуйста, как же настроить/дать возможность подключаться по SSH к этой вм.



Последнее исправление: alex1187 (всего исправлений: 1)

Ответ на: комментарий от alex_125

Сделал все как Вы сказали. Проблема осталась. Сделал ip route add default dev wg0 Потом раскомментировал строку - sudo nano /etc/sysctl.conf

Uncomment the next line to enable packet forwarding for IPv4

net.ipv4.ip_forward=1

root@mytest:~# sysctl -p net.ipv4.ip_forward = 1

Сделал reboot. Пробую подключиться к ВМ по SSH - результат тот же. Network error: Connection timed out. Не пингуется. Как только отключаю wireguard на ВМ, тогда сразу же подключение по SSH есть. Пингуется.

alex1187
() автор топика
Ответ на: комментарий от alex1187

Подключение перестаёт устанавливаться, потому что возникает асимметричная маршрутизация: ответный трафик с сервера до IP-адреса вашего компьютера начинает маршрутизироваться через VPN, с IP-адреса сервера VPN, а не адреса вашего сервера. Пакет даже может дойти до вас (зависит от настроек VPN-сервера), но ваш компьютер не может связать запрос и ответ из-за несовпадения IP-адресов.

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

ValdikSS ★★★★★
()
Последнее исправление: ValdikSS (всего исправлений: 1)
Ответ на: комментарий от ValdikSS

попробуй

sudo ip route add «ip-address-of-your-VM»/32 dev eth0

«ip-address-of-your-VM» - это IP-адрес Вашей ВМ. /32 - это маска подсети и означает, что данное правило применяется только к одному адресу (то есть самому адресу Вашей ВМ). dev eth0 - это имя сетевого интерфейса, через который происходит соединение с интернетом на Вашей ВМ

alex_125
()