D
D
dsslesarev2020-05-29 18:11:21
Debian
dsslesarev, 2020-05-29 18:11:21

Problem with wireguard on Debian?

Hello everyone, I installed wireguard, I used to put everything working, now I installed it on the latest version of debian and such an error? What could be the problem?

systemctl status [email protected]
● [email protected] - WireGuard via wg-quick(8) for wg0
   Loaded: loaded (/lib/systemd/system/[email protected]; disabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Fri 2020-05-29 18:05:11 MSK; 3min 26s ago
     Docs: man:wg-quick(8)
           man:wg(8)
           https://www.wireguard.com/
           https://www.wireguard.com/quickstart/
           https://git.zx2c4.com/wireguard-tools/about/src/man/wg-quick.8
           https://git.zx2c4.com/wireguard-tools/about/src/man/wg.8
  Process: 786 ExecStart=/usr/bin/wg-quick up wg0 (code=exited, status=1/FAILURE)
 Main PID: 786 (code=exited, status=1/FAILURE)

мая 29 18:05:11 Server systemd[1]: Starting WireGuard via wg-quick(8) for wg0...
мая 29 18:05:11 Server wg-quick[786]: wg-quick: `wg0' already exists
мая 29 18:05:11 Server systemd[1]: [email protected]: Main process exited, code=exited, status=1/FAILURE
мая 29 18:05:11 Server systemd[1]: [email protected]: Failed with result 'exit-code'.
мая 29 18:05:11 Server systemd[1]: Failed to start WireGuard via wg-quick(8) for wg0.


Config:
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
#приватный ключ сервера берем из файла srv-priv.key
PrivateKey = kGILFzOqXzFwjjHQr/sYleVljwShwgM7/257CMmJ030=
#настраиваем маршрутизацию в примере название интерфейса, который смотрит наружу enp0s8, у вас он будет называться иначе
PostUp   = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o enp0s25 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o enp0s25 -j MASQUERADE

[Peer]
PublicKey = FG271hul8VWyt/KjVifupbeydVOAq0w1Y8F0QJSPryk=
AllowedIPs = 10.8.0.0/24
Endpoint = 192.168.0.10:51820

[Peer]
# client 1 
#публичный ключ первого клиента берем из файла cl1-pub.key
PublicKey = PHoqZ10jkia9mzOdJsclWGiUIflAb1KnFAMfuuGM1go=
AllowedIPs = 10.8.0.2/32

[Peer]
# client 2 
#публичный ключ второго клиента берем из файла cl2-pub.key
PublicKey = ymGJKl2bB3Jk4VXTHyF+fgPTnfupk9zoGZme7j/oolo=
AllowedIPs = 10.8.0.3/32

[Peer]
# client 3 
#публичный ключ первого клиента берем из файла cl3-pub.key
PublicKey = Xun05kBuziWcoBOZ3N6ZmY3Z2XOXi7PEayXMsR7j6G4=
AllowedIPs = 10.8.0.4/32


I set it up like this:

Добавляем в файл sources.list строчку: 
 
deb http://deb.debian.org/debian buster-backports main
 

затем обновляем базу пакетов:
 
 apt update
 
затем устанавливаем из бэкпортов пакет wireguard: 

apt -t buster-backports install wireguard

поскольку для текущего ядра в debian 10 модуль wireguard собирается посред-ством dkms, перезагружаемся и после проверяем, что модуль подгрузился:

lsmod|grep wireguard

 далее генерируем ключи для сервера и двух(понадобится больше, делаем по аналогии) клиентов:

wg genkey | tee srv-priv.key |  wg pubkey > srv-pub.key
wg genkey | tee cl1-priv.key |  wg pubkey > cl1-pub.key
wg genkey | tee cl2-priv.key |  wg pubkey > cl2-pub.key

В результате получаем 3 пары файлов, каждая пара -- приватный и публичный ключи. Сервер и два клиента, соответственно
 
создаем файл конфигурации /etc/wireguard/wg0.conf
 Все ключи в примере требуется заменить на строчки из соответствующих
 файлов ключей

[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
#приватный ключ сервера берем из файла srv-priv.key
PrivateKey = qOMrIb3b8/zkzXaePhQnjn7Qfc5ilBf9k6gVXqQixHc=
#настраиваем маршрутизацию в примере название интерфейса, который смотрит наружу enp0s8, у вас он будет называться иначе
PostUp   = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o enp0s8 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o enp0s8 -j MASQUERADE

[Peer]
PublicKey = 0nk+Fg0hY3K83zODuyZHiHvBf4OkUcWtepBIix2bJgw=
AllowedIPs = 10.0.0.0/24
Endpoint = 192.168.47:51820

[Peer]
# client 1
#публичный ключ первого клиента берем из файла cl1-pub.key
PublicKey = +bkGjS2J+d4GscwZMic8Tn5URxoXsc31KuPSvLhyfW4=
AllowedIPs = 10.0.0.2/32

[Peer]
# client 2
#публичный ключ второго клиента берем из файла cl2-pub.key
PublicKey = uW8PKxsce+8bnBzg3rRI85vxOYOILOVOMt42gadJdx0=
AllowedIPs = 10.0.0.3/32
 


проверяем конфигурацию на отсутствие ошибок:
 
wg-quick up wg0
Если все в порядке, останавливаем командой 
 wg-quick down wg0
и запускаем уже  средствами systemd:
 
systemctl start [email protected]
 

разрешаем форвардинг, раскомментировав net.ipv4.ip_forward = 1 в файле 
 
/etc/sysctl.d/99-sysctl.conf 

включаем сервис wg на постоянной основе:
 
systemctl start [email protected]

Конфигурация клиента
[Interface]
PrivateKey = приватный ключ клиента
Address = 10.0.0.2/24

[Peer]
PublicKey = публичный ключ сервера
AllowedIPs = 10.0.0.0/24
Endpoint = внешний_айпи_сервера:51820

Далее проверяем пинги с сервера на клиент и с клиента на сервер

Answer the question

In order to leave comments, you need to log in

1 answer(s)
S
Sergey, 2020-05-29
@KingstonKMS

It's written directly:

May 29 18:05:11 Server wg-quick[786]: wg-quick: `wg0' already exists

Look for the reason in this direction.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question