Bonjour,
Le service Wireguard et Adguardhome sont installés sur une Machine Virtuelle et j’ai réussi.
La configuration du client est important pour se connecter.
Infos:
Réseau: 192.168.1.0/24
Poste W10:
- Poste: Windows 10 PRO
- Adresse IP : 192.168.1.21
- Port: 3389
Serveur: sldebian01
- Interface ens18 : 192.168.1.5
- Interface wg0: 192.168.30.1
Mon Poste:
Adresse: 192.168.30.2
DNS: 192.168.30.1 (Sldebian01)
Mon Poste > wg0 > Sldebian01 > ens18 > W10
Wireguard - Nettoyage d’ancienne version
apt autoremove --purge -y wireguard
rm -r /etc/wireguard
Wireguard - Ajout du dépôt Backports + Installation (Release: Buster)
sudo nano /etc/apt/sources.list.d/buster-backports.list
deb http://deb.debian.org/debian buster-backports main
apt update
apt install -y wireguard
Autoriser le Forwarding
nano /etc/sysctl.conf
#net.ipv4.ip_forward=1 en > net.ipv4.ip_forward=1
A chaud: /sbin/sysctl -w net.ipv4.ip_forward=1
Arrêt du service
systemctl disable wg-quick@wg0
systemctl stop wg-quick@wg0
systemctl status wg-quick@wg0
#################################################################################################
Aller sur le site wireguardconfig pour générer une configuration.
Noter bien la clé « Random Seed », c’est l’algorithme qui génère les clés Privée / Clients.
« Post-Up rule » et « Post-Down rule » contient le nom de l’interface à appliquer au niveau du pare-feu (eth0 par défaut)
La clé du serveur PRIVATE:
nano /etc/wireguard/privatekey
La clé du serveur PUBLIC :
nano /etc/wireguard/publickey
Configuration du serveur
nano /etc/wireguard/wg0.conf
Coller la configuration serveur
Rendre le fichier accessible qu’en ROOT
sudo chmod 600 /etc/wireguard/ -R
Activation du service
systemctl enable wg-quick@wg0
reboot
systemctl status wg-quick@wg0
Information:
L’adresse 10.0.0.1 sera l’adresse du serveur et donc l’adresse DNS pour votre client.
Les adresses X.X.X.2-4 sont les clients
Le /32 permet d’avoir que 2 IP disponibles . (Client et Serveur)
Client:
Le client se connectera au VPN ayant l’adresse teste.ddns.net:51820.
Le client utilisera le serveur DNS 10.0.0.1.
[Interface]
Address = 10.0.0.2/24
ListenPort = 51820
PrivateKey = ************
DNS = 10.0.0.1
[Peer]
PublicKey = ************
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = teste.ddns.net:51820
! A ce stade le client arrive juste à ce connecter sur le serveur VPN mais le SURF est KO. (DNS pas fonctionnel)
#################################################################################################
Installation du DNS ADGuardHome
cd /root/
wget https://static.adguard.com/adguardhome/release/AdGuardHome_linux_amd64.tar.gz -O - | tar -xz
./AdGuardHome/AdGuardHome -s install
./AdGuardHome/AdGuardHome -s status
Terminé l’installation du DNS via le navigateur
Lors de l’installation on peux bloquer l’accès au panel Web du DNS à un réseau pour éviter qu’il soit accessible pour le VPN.
Le port 3000 est pour l’installation et le 80 est pour gérer le panel une fois installé.
http//<IP_SERVEUR>:3000
! Une fois cette étape terminé, le client a une résolution DNS et donc le surf fonctionne.
#################################################################################################
Installer le paquet Iptabes-persistent
apt install -y iptables-persistent
Mon interface s’appel ens18 , donc à ajuster pour un autre nom d’interface.
|Description|Port|Protocol|XX|
|—|---|—|
En cours| |||
Iptables.sh
Reset le pare-feu
/sbin/iptables -t filter -F
/sbin/iptables -t filter -X
Bloquer tous le trafic
/sbin/iptables -t filter -P INPUT DROP
/sbin/iptables -t filter -P FORWARD DROP
/sbin/iptables -t filter -P OUTPUT DROP
Ne pas interrompre les connexions établies
/sbin/iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Autorise les connexions entre loopback
/sbin/iptables -t filter -A INPUT -i lo -j ACCEPT
/sbin/iptables -t filter -A OUTPUT -o lo -j ACCEPT
Autoriser ICMP
/sbin/iptables -A INPUT -i ens18 -p icmp -j ACCEPT
iptables -A OUTPUT -o ens18 -p icmp -j ACCEPT
SSH
/sbin/iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT
/sbin/iptables -t filter -A OUTPUT -p tcp --dport 22 -j ACCEPT
DNS
/sbin/iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT
/sbin/iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT
/sbin/iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT
/sbin/iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT
HTTP
/sbin/iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
HTTPS
/sbin/iptables -t filter -A OUTPUT -p tcp --dport 443 -j ACCEPT
/sbin/iptables -t filter -A INPUT -p tcp --dport 443 -j ACCEPT
AdGuardHome
/sbin/iptables -t filter -A INPUT -p tcp --dport 3000 -j ACCEPT
Wireguard
/sbin/iptables -t filter -A INPUT -p udp --dport 51820 -j ACCEPT
On accepte les paquets en provenance du VPN
/sbin/iptables -A FORWARD -i wg0 -j ACCEPT
On autorise également les paquets à destination du VPN
/sbin/iptables -A FORWARD -o wg0 -j ACCEPT
On effectue la traduction d’adresse entre l’IP publique du serveur et les clients
/sbin/iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o ens18 -j MASQUERADE
Mode Persistance:
/sbin/iptables-save >/etc/iptables/rules.v4
Activation du Service
systemctl enable netfilter-persistent
systemctl restart netfilter-persistent