# VPN Wireguard

# Installation et configuration de Wireguard sur Debian

## Qu'est-ce que c'est
Wireguard va permettre facile de faire des réseaux privés virtuels qui passent par des "tunnels" chiffrés sur le principe de la clé privée/clé publique.

## L'installation

```bash
#On met a jour et on upgrade notre debian
apt update
apt upgrade

#On installe wireguard
apt install wireguard

#On on créer nos clés
cd /etc/wireguard
umask 077 #Comme ca les fichiers qu'on crée ont les perms 700
mkdir keys
mkdir keys/clients
cd keys
#Génération clé pirvée et clé publique
wg genkey | tee privatekey | wg pubkey > publickey
cd ..
touch wg0.conf
```

## Créer les clés d'un client
```
cd /etc/wireguard/keys
umask 077
mkdir alice && cd alice
wg genkey | tee privatekey | wg pubkey > publickey
```

## La configuration du serveur
```                                         
[Interface]
PrivateKey = <privatekey du serveur>
Address = 192.168.66.1/32


# Clients
# Alice
[peer]
PublicKey = <publickey de Alice>
AllowedIPs = 192.168.66.2/32

# Bob
[peer]
PublicKey = <publickey de Bob>
AllowedIPs = 192.168.66.3/32

```

## Demarrage de l'interface
Quick and dirty pour des test
```
wg-quick up wg0
```
Ou on l'ajoute aux services ! :)
```
systemctl enable wg-quick@wg0.service
```

## Configuration du client
Voilà le fichier config basic. Si il y a une interface, il suffit de rentrer les parametres dans les bonnes cases
```
[Interface]
PrivateKey = <privatekey de Alice>
Address = 192.168.66.2/32 # L'ip attribuée à Alice

[Peer]
PublicKey = <publickey du serveur>
Endpoint = <ip ou adresse du serveur>
AllowedIPs = 192.168.66.0/24 # Le masque du range d'IP qu'on tunnel
```