WireGuard LXC Alpine Linux
Révision datée du 15 mai 2021 à 21:09 par Admin (discussion | contributions) (→Via le dépôt testing)
100 % Testé et approuvé
ProxMox
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 le dépot "backports" ou le dépôt "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 le dépôt testing
On active le dépôt 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é !!! :
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
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!