146 lines
3.7 KiB
Markdown
146 lines
3.7 KiB
Markdown
# WIREGUARD-VPN
|
|
|
|
## INSTALLATION ET CONFIGURATION SERVEUR (Linux):
|
|
|
|
### Ajout du repo pour le paquet:
|
|
```bash
|
|
echo 'deb http://ftp.debian.org/debian buster-backports main' | sudo tee /etc/apt/sources.list.d/buster-backports.list
|
|
```
|
|
|
|
### Update et installation:
|
|
```bash
|
|
sudo apt update
|
|
sudo apt install wireguard
|
|
```
|
|
|
|
### Création des clefs:
|
|
```bash
|
|
wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey
|
|
```
|
|
|
|
### Création de la configuration serveur:
|
|
```bash
|
|
sudo nano /etc/wireguard/wg0.conf
|
|
```
|
|
|
|
Dans ce fichier de configuration, CLEF_PRIVEE_SERVEUR et INTERFACE_RESEAU sont à renseigner (remplacer):
|
|
```bash
|
|
/etc/wireguard/wg0.conf
|
|
|
|
[Interface]
|
|
# Adresse interne du serveur
|
|
Address = 10.0.0.1/24
|
|
ListenPort = 51820
|
|
# Clef privée du serveur
|
|
PrivateKey = CLEF_PRIVEE_SERVEUR
|
|
# Routing vers l'interface réseaux
|
|
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o INTERFACE_RESEAU -j MASQUERADE
|
|
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o INTERFACE_RESEAU -j MASQUERADE
|
|
```
|
|
|
|
La CLEF_PRIVEE_SERVEUR s'obtient avec la commande:
|
|
```bash
|
|
cat /etc/wireguard/privatekey
|
|
```
|
|
|
|
L'INTERFACE_RESEAU s'obtient avec la commande:
|
|
```bash
|
|
ip -o -4 route show to default | awk '{print $5}'
|
|
```
|
|
|
|
Enfin, on protège l'accès aux fichiers sensibles:
|
|
```bash
|
|
sudo chmod 600 /etc/wireguard/{privatekey,wg0.conf}
|
|
```
|
|
|
|
/\ NOTE: Si le serveur se trouve dérrière un routeur ou box internet, ne pas oublier de faire la redirection de port (ici dans l'exemple, le 51820) de la box vers l-IP du serveur.
|
|
L'adresse publique du serveur devient alors celle du routeur/box dans la configuration client:
|
|
Endpoint = SERVER_IP_ADDRESS:51820
|
|
|
|
## INSTALLATION ET CONFIGURATION CLIENT:
|
|
|
|
### LINUX:
|
|
|
|
#### Ajout du repo pour le paquet:
|
|
```bash
|
|
echo 'deb http://ftp.debian.org/debian buster-backports main' | sudo tee /etc/apt/sources.list.d/buster-backports.list
|
|
```
|
|
|
|
#### Update et installation:
|
|
```bash
|
|
sudo apt update
|
|
sudo apt install wireguard
|
|
```
|
|
|
|
#### Création des clefs:
|
|
```bash
|
|
wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey
|
|
```
|
|
#### création de la configuration:
|
|
```bash
|
|
nano /etc/wireguard/wg0.conf
|
|
```
|
|
|
|
```bash
|
|
/etc/wireguard/wg0.conf
|
|
|
|
[Interface]
|
|
# Clef privée du client
|
|
PrivateKey = CLIENT_PRIVATE_KEY
|
|
# Adresse interne du client (en cohérence avec l'IP interne du serveur)
|
|
Address = 10.0.0.2/24
|
|
|
|
[Peer]
|
|
# Clef publique du serveur
|
|
PublicKey = SERVER_PUBLIC_KEY
|
|
# Adresse IP publique du serveur
|
|
Endpoint = SERVER_IP_ADDRESS:51820
|
|
AllowedIPs = 0.0.0.0/0
|
|
```
|
|
|
|
Pour démarrer la connection:
|
|
```bash
|
|
sudo wg-quick up wg0
|
|
```
|
|
|
|
### WINDOWS:
|
|
|
|
#### Télécharger l'application à l'adresse:
|
|
|
|
https://download.wireguard.com/windows-client/wireguard-installer.exe
|
|
|
|
#### Créer une nouvelle config:
|
|
|
|

|
|
|
|

|
|
|
|
#### Configuration:
|
|
Appliquer la configuration suivante en renseignant CLEF-PRIVEE_CLIENT, IP_PUBLIQUE_SERVEUR et CLEF_PUBLIQUE_SERVEUR:
|
|
```bash
|
|
/etc/wireguard/wg0.conf
|
|
|
|
[Interface]
|
|
PrivateKey = CLIENT_PRIVATE_KEY
|
|
Address = 10.0.0.2/24
|
|
|
|
[Peer]
|
|
PublicKey = SERVER_PUBLIC_KEY
|
|
Endpoint = SERVER_IP_ADDRESS:51820
|
|
AllowedIPs = 0.0.0.0/0
|
|
```
|
|
Note: La port et les adresses IP internes au réseau peuvent également être modifiées (en cohérence avec la configuration du serveur)
|
|
|
|
### Ajouter un client:
|
|
|
|
Commande à éffectuer sur le serveur:
|
|
```bash
|
|
sudo wg set wg0 peer 'CLEF_PUBLIQUE_CLIENT' allowed-ips 'IP_INTERNE_CLIENT'
|
|
```
|
|
La CLEF_PUBLIQUE_CLIENT s'obtient sur le client avec la commande:
|
|
```bash
|
|
sudo cat /etc/wireguard/publickey
|
|
```
|
|
|
|
Pour l'IP interne, elle doit être cohérente avec l'adresse IP interne du serveur.
|
|
Dans cet exemple, le serveur a pour IP interne 10.0.0.1 et le client 10.0.0.2 |