Задать вопрос
@dialMorei

Как настроить и запустить сервер WireGuard на Ubuntu 24.04?

Добрый день. Помогите пожалуйста настроить сервер WireGuard.

Опишу ситуацию.
Есть физическая машина с Ubuntu Desktop 24.04, свободный белый IP.

Что необходимо:
Что бы несколько человек могли с помощью WireGuard поменять свой ипшник (с любой точки и провайдера) на необходимый мне статический и я для вышеуказанного ип адреса дал доступ для подключения.

Что сделано:
Пока в локальной сети установил сервер, сгенерировал файл конфигурации:
[Interface]
Address = 1.1.1.1/28 (мой свободный белый ип)
ListenPort = 51820
PrivateKey = ключ из сгенерированного файла
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
PublicKey = так же из файла
AllowedIPs = здесь я вставил снова свой ипшник, но чет мне кажется что я осёл)

Файл конфигурации пользователя выглядит так:
[Interface]
PrivateKey = 2OFFAe5yzYF9mti+NdVf/XPHTyJiVgICYj+hW02IVEk=
Address = 1.1.1.1/28
DNS = 77.88.8.8

[Peer]
PublicKey = CSBbv/HvYOszskTR3fH2wRbJqH+wnRmER63E2UBDimE=
Endpoint = 1.1.1.1:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

К туннелю вроде подключается, но не работает.
Все ли было сделано правильно, или я что-то упустил.
В сетевых настройках указан вручную мой статический ип.
Заранее спасибо.
  • Вопрос задан
  • 118 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 2
@AlexVWill
Ядро сервера настроено на IP Forwarding?
cat /etc/sysctl.conf покажи.
Если там нет (или закомменчено) net.ipv4.ip_forward=1
то надо вставить (или раскомментить), и сделать ребут сервера.
Ответ написан
smorman
@smorman
When In Rome do as The Romans do...
Думаю, что правильно так в конфиге на сервере должно быть:
spoiler
[Interface]
Address = 1.1.1.1/28 (мой свободный белый ип)
ListenPort = 51820
PrivateKey = ключ из сгенерированного файла
PostUp = sysctl net.ipv4.ip_forward=1
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = sysctl net.ipv4.ip_forward=0
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
PublicKey = так же из сгенерированного файла для Клиента 1
AllowedIPs = 1.1.1.2/28 # - это IP на Клиенте 1
# Т.е. у Сервера  IP заканчивается на 1, а у Клиента(ов peer-ов) на 2 и далее

# Если Клиентов больше, чем 1, то по возрастанию каждый Peer прописывается с увеличением последней цифры в его IP, например:
[Peer]
PublicKey = так же из сгенерированного файла для Клиента 2
AllowedIPs = 1.1.1.3/28 # - это IP на Клиенте 2

Соответственно файл конфигурации пользователя Клиент 1 будет выглядеть так:
spoiler
[Interface]
PrivateKey = 2OFFAe5yzYF9mti+NdVf/XPHTyJiVgICYj+hW02IVEk=
Address = 1.1.1.2/28
DNS = 77.88.8.8

[Peer]
PublicKey = CSBbv/HvYOszskTR3fH2wRbJqH+wnRmER63E2UBDimE=
Endpoint = 1.1.1.1:51820
AllowedIPs = 0.0.0.0/0,::/0
PersistentKeepalive = 25

Если Клиентов более 1, то файл конфигурации пользователя, например Клиент 2 уже будет выглядеть так, с возрастанием последней цифры в Address:
spoiler
[Interface]
PrivateKey = ххххххххххххххххххххх=
Address = 1.1.1.3/28
DNS = 77.88.8.8

[Peer]
PublicKey = хххххххххххххххххххххх=
Endpoint = 1.1.1.1:51820
AllowedIPs = 0.0.0.0/0,::/0
PersistentKeepalive = 25

И т.д...
Как-то так...

И ещё, если в Ubuntu (сервер) помимо iptables, ещё установлена и UFW, то в конфиг на нём нужно добавлять правила директивами:
PostUp =
и
PreDown =
и для UFW иначе при запуске WG будет ошибка и работать естесно не будет...
spoiler
PostUp = sysctl net.ipv4.ip_forward=1
PostUp = ufw route allow in on wg0 out on enp4s0
...
PreDown = ufw route delete allow in on wg0 out on enp4s0
PostDown = sysctl net.ipv4.ip_forward=0
...

где wg0 имя конфиг-файла в Ubuntu (сервер):
/etc/wireguard/wg0.conf
Также уточните название сетевого интерфейса в Ubuntu (сервере) командой:
ip a
Как правило это в пункте:
2:
Что-то наподобие:
2: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000

Так вот название интерфейса - это enp4s0

Его и надо вписывать в конфиге, где у вас eth0 прописано, т.е. вместо него...
Т.е. должно быть так:
spoiler
iptables -t nat -A POSTROUTING -o enp4s0 -j MASQUERADE
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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