Basculer le menu
Changer de menu des préférences
Basculer le menu personnel
Non connecté(e)
Votre adresse IP sera visible au public si vous faites des modifications.

WireGuard LXC Alpine Linux

De Le Wiki de Lug

100 % Testé et approuvé

   

ProxMox

source

Côté serveur.

proxmox:~# apt update && apt upgrade
proxmox:~# apt install pve-headers

WireGuard n'est pas disponible sur la version actuelle de ProxMox/Debian, il faut donc soit passer par les dépots "backports" ou les dépôts "testing".

Via Backport

On active le dépot "backports" si ce n'est pas déjà fait :

proxmox:~# echo 'deb http://deb.debian.org/debian buster-backports main' >> /etc/apt/sources.list

On install et active le module WireGuard :

proxmox:~# apt update
proxmox:~# apt install -t buster-backports wireguard-dkms
proxmox:~# modprobe wireguard
proxmox:~# echo "wireguard" >> /etc/modules-load.d/modules.conf

Via les dépôts testing

On active les dépôts testing et on exécute les commandes suivantes :

proxmox:~# apt update
proxmox:~# apt install wireguard-dkms
proxmox:~# modprobe wireguard
proxmox:~# echo "wireguard" >> /etc/modules-load.d/modules.conf

LXC Alpine 3.12

WireGuard Server

HDD : 0,5G / CPU : 1 / RAM : 256mb ??


Avec un téléphone android connecté !!! :

Incroyablement économe !

Côté conteneur LXC.

On autorise el routage :

lxcalpine:~# echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
lxcalpine:~# sysctl -p
net.ipv4.ip_forward = 1
lxcalpine:~# rc-update add sysctl default

Puis on install :

lxcalpine:~# apk update && apk upgrade
lxcalpine:~# apk add wireguard-tools

On génère la configuration sur wireguardconfig

# vi /etc/wireguard/wg0.conf

[Interface]
Address = 10.0.0.1/24
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 = *****************************************
PresharedKey = *****************************************
AllowedIPs = 10.0.0.2/32

[Peer]
PublicKey = *****************************************
PresharedKey = *****************************************
AllowedIPs = 10.0.0.3/32

[Peer]
PublicKey = *****************************************
PresharedKey = *****************************************
AllowedIPs = 10.0.0.4/32

# vi /etc/wireguard/client1.conf

[Interface]
Address = 10.0.0.2/24
ListenPort = 51820
PrivateKey = *****************************************

[Peer]
PublicKey = *****************************************
PresharedKey = *****************************************
AllowedIPs = 0.0.0.0/1, 128.0.0.0/1
Endpoint = myserver.dyndns.org:51820

Test

lxcalpine:~# wg-quick up wg0

[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.0.0.1/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
lxcalpine:~# wg
interface: wg0
  public key: *****************************************
  private key: (hidden)
  listening port: 51820

peer: *****************************************
  preshared key: (hidden)
  allowed ips: 10.0.0.2/32

peer: *****************************************
  preshared key: (hidden)
  allowed ips: 10.0.0.3/32

peer: *****************************************
  preshared key: (hidden)
  allowed ips: 10.0.0.4/32

Fin du test :

lxcalpine:~# wg-quick down wg0
[#] ip link delete dev wg0
[#] iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

wg0 au boot via init.d

source

lxcalpine:~# vi /etc/init.d/wireguard
#!/sbin/openrc-run

depend() {
   need localmount
   need net
}

start() {
   ebegin "Starting wireguard"
   /usr/bin/wg-quick up wg0
   eend $?
}

stop() {
   ebegin "Stopping wireguard"
   /usr/bin/wg-quick down wg0
   eend $?
}
lxcalpine:~# chmod +x /etc/init.d/wireguard
lxcalpine:~# rc-update add wireguard default

On lance :

lxcalpine:~# service wireguard start

On peut tester avec "wg", rebooter pour vérifier etc...

(Optionnel) QR Code

lxcalpine:~# apk add libqrencode

Exemple :

lxcalpine:~# qrencode -t ansiutf8 < /etc/wireguard/client1.conf

voila!