Auteur Sujet: Quel type de VPN installer sur un Raspberry Pie 1 B+ ?  (Lu 13645 fois)

0 Membres et 1 Invité sur ce sujet

Darkjeje

  • Abonné Free adsl
  • *
  • Messages: 592
  • Free VDSL2 Issy-les-Moulineaux (92)
Quel type de VPN installer sur un Raspberry Pie 3 ?
« Réponse #24 le: 21 septembre 2019 à 20:57:34 »
c'est quoi la finalité ?

Si les appareils distants n'ont besoin d’accéder qu'au réseau local du Pi et que tu peux mettre sur la passerelle par défaut du réseau local une route vers les IPs du wg alors tu n'as pas besoin d'iptables (pas besoin de NAT/masquerad).

Sinon cas il te faut NATer les IPs wg. Tu peux aussi tout contrôler sur le routeur du réseau ou y'a le Pi ca évite du double NAT.

comme toujours en réseau le mieux est de faire un plan d'adressage.

Mon but est d'avoir accès à mon réseau local, mais aussi au net lorsque je suis sur des hotspot wifi public dont je doute de la sécurité,...

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 078
  • Paris (75)
Quel type de VPN installer sur un Raspberry Pie 3 ?
« Réponse #25 le: 21 septembre 2019 à 22:13:00 »
Mon but est d'avoir accès à mon réseau local, mais aussi au net lorsque je suis sur des hotspot wifi public dont je doute de la sécurité,...

donc il faut faire du NAT quelque part.

1. as-tu le contrôle du routeur/box sur le réseau local du Pi ? Si oui tu peux installer une route dessus qui va pointer 192.168.2.0/24 vers le Pi. ("ip route 192.168.2.0/24 192.168.1.x").Dans ce cas le Pi n'a pas besoin d'iptables et doit juste router par défaut (/proc/sys/net/ipv4/ip_forward a 1). il faut aussi ajouter 192.168.2.0/24 en sortie du NAT dans le routeur.

2. sinon c'est au Pi de faire du NAT donc de partager son IP local (192.168.1.x) avec les clients wireguard qui eux sont en 192.168.2.y. C'est les commandes indiqués par renaud07.

donc à mettre dans le PostUp
iptables -A FORWARD -i wg0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

et les inverses en PostDown.

Apres si tu ne veux pas trop apprendre les détails, utilise le script proposer par alegui: https://lafibre.info/attaques/quel-type-de-vpn-installer-sur-un-raspberry-pie-3/msg687366/#msg687366

Darkjeje

  • Abonné Free adsl
  • *
  • Messages: 592
  • Free VDSL2 Issy-les-Moulineaux (92)
Quel type de VPN installer sur un Raspberry Pie 3 ?
« Réponse #26 le: 21 septembre 2019 à 22:51:39 »
Merci kgersen je vais regarder cela dès que possible.
Mon routeur la Freebox mini 4k donc je doute de pouvoir faire la 1ère solution, je vais tâcher de comprendre la 2 et au pire faire le script.

Merci encore pour votre aide, je vous dirai si cela a fonctionné

Darkjeje

  • Abonné Free adsl
  • *
  • Messages: 592
  • Free VDSL2 Issy-les-Moulineaux (92)
Quel type de VPN installer sur un Raspberry Pie 3 ?
« Réponse #27 le: 22 septembre 2019 à 11:11:43 »
donc il faut faire du NAT quelque part.

1. as-tu le contrôle du routeur/box sur le réseau local du Pi ? Si oui tu peux installer une route dessus qui va pointer 192.168.2.0/24 vers le Pi. ("ip route 192.168.2.0/24 192.168.1.x").Dans ce cas le Pi n'a pas besoin d'iptables et doit juste router par défaut (/proc/sys/net/ipv4/ip_forward a 1). il faut aussi ajouter 192.168.2.0/24 en sortie du NAT dans le routeur.

2. sinon c'est au Pi de faire du NAT donc de partager son IP local (192.168.1.x) avec les clients wireguard qui eux sont en 192.168.2.y. C'est les commandes indiqués par renaud07.

donc à mettre dans le PostUp
iptables -A FORWARD -i wg0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

et les inverses en PostDown.

Apres si tu ne veux pas trop apprendre les détails, utilise le script proposer par alegui: https://lafibre.info/attaques/quel-type-de-vpn-installer-sur-un-raspberry-pie-3/msg687366/#msg687366

Salut kgersen et renaud07 et encore merci pour votre aide.
J'ai donc créé un fichier firewall avec ceci dedans :
#!/bin/sh
### BEGIN INIT INFO
# Provides:          firewall rules
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by daemon.
### END INIT INFO

#Suppression des règles précédentes
iptables -F
iptables -X

########
# DROP #
########

# Définition du blocage général
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# Drop des scans XMAS et NULL
iptables -A INPUT -p tcp --tcp-flags FIN,URG,PSH FIN,URG,PSH -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP

##########
# ACCEPT #
##########

# Conservations des connexions déjà établies
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

# Autorisation du loopback (127.0.0.1)
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# WIREGUARD (51820)
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A INPUT -p udp --dport 51820 -j ACCEPT
iptables -A OUTPUT -p udp --dport 51820 -j ACCEPT

# ICMP (Ping)
iptables -A INPUT -p icmp -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT

# Parer les attaques de type Déni de Service
iptables -A FORWARD -p tcp --syn -m limit --limit 1/second -j ACCEPT
iptables -A FORWARD -p udp -m limit --limit 1/second -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/second -j ACCEPT

# Parer les scans de ports
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

Et au niveau du fichier wireguard j'ai :
Pour le client windows :
AllowedIPs = 0.0.0.0/0
Endpoint = xxx.xxx.xxx.xxx:51820

Pour le serveur :
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

J'avais une erreur de clé qui expliquait pourquoi je n'arrivais pas à faire de ping sur l'adresse du serveur en 192.168.2.x, c'est maintenant réglé.
J'ai accès à facebook et lafibre lorsque j'active le vpn, mais pratiquement aucun autre site. Est-ce une différence ipv4 / ipv6 ? Ou plutôt de DNS facebook et lafibre ne fonctionne plus si je les lance depuis un onglet de navigation privé de chrome,...

Je n'arrive par contre pas à faire de ping sur 192.168.1.254 (freebox) ou 192.168.1.6 (le rasp), j'ai le message défaillance générale en retour, seul 192.168.1.1 (mon pc) fonctionne.
En ping -6 j'ai le retour que l'hôte n'a pu être trouvé.

Il y a donc encore quelque chose qui ne va pas.

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 078
  • Paris (75)
Quel type de VPN installer sur un Raspberry Pie 3 ?
« Réponse #28 le: 22 septembre 2019 à 11:31:26 »
tu te complique à faire un conf firewall complete: le Pi n'est pas un routeur en direct sur Internet, ce n'est pas necessaire.

Il faut juste partir de rien (pas de regles;conf par défaut d'iptables) et juste ajouter les 2 regles indiquées.

Darkjeje

  • Abonné Free adsl
  • *
  • Messages: 592
  • Free VDSL2 Issy-les-Moulineaux (92)
Quel type de VPN installer sur un Raspberry Pie 3 ?
« Réponse #29 le: 22 septembre 2019 à 20:10:57 »
Il faut juste partir de rien (pas de regles;conf par défaut d'iptables) et juste ajouter les 2 regles indiquées.

J'ai vidé le fichier firewall, mais je ne vois pas où je dois mettre les lignes suivantes, si ce sont bien celle-ci à indiquer :
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT;  iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

renaud07

  • Abonné Orange adsl
  • *
  • Messages: 3 345
Quel type de VPN installer sur un Raspberry Pie 3 ?
« Réponse #30 le: 22 septembre 2019 à 20:55:07 »
Il faut les mettre dans /etc/network/interfaces mais sous cette forme :
auto wg0
iface wg0 inet static
pre-up ip link add dev wg0 type wireguard
post-up wg setconf wg0 /etc/wireguard/wg0.conf
post-up iptables -A FORWARD -i wg0 -j ACCEPT
post-up iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
post-down iptables -D FORWARD -i wg0 -j ACCEPT
post-down iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
post-down ip link del wg0
address 192.168.2.1
netmask 255.255.255.0

Dans /etc/wireguard/wg0.conf il faut commenter la ligne Address= (puisque désormais indiqué dans /etc/network/interfaces) :

On doit avoir ça au final :
[Interface]
PrivateKey = la-clé-privée
ListenPort = 51820
#Address = 192.168.2.1/24

# Client windows
[Peer]
PublicKey = la-clé-publique
AllowedIPs = 192.168.2.2/32


# Client android
[Peer]
PublicKey = la-clé-publique
AllowedIPs = 192.168.2.3/32

Et théoriquement ça devrait marcher  ;)

Darkjeje

  • Abonné Free adsl
  • *
  • Messages: 592
  • Free VDSL2 Issy-les-Moulineaux (92)
Quel type de VPN installer sur un Raspberry Pie 3 ?
« Réponse #31 le: 22 septembre 2019 à 22:09:43 »
Il faut les mettre dans /etc/network/interfaces mais sous cette forme :
auto wg0
iface wg0 inet static
pre-up ip link add dev wg0 type wireguard
post-up wg setconf wg0 /etc/wireguard/wg0.conf
post-up iptables -A FORWARD -i wg0 -j ACCEPT
post-up iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
post-down iptables -D FORWARD -i wg0 -j ACCEPT
post-down iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
post-down ip link del wg0
address 192.168.2.1
netmask 255.255.255.0

Dans /etc/wireguard/wg0.conf il faut commenter la ligne Address= (puisque désormais indiqué dans /etc/network/interfaces) :

On doit avoir ça au final :
[Interface]
PrivateKey = la-clé-privée
ListenPort = 51820
#Address = 192.168.2.1/24

# Client windows
[Peer]
PublicKey = la-clé-publique
AllowedIPs = 192.168.2.2/32


# Client android
[Peer]
PublicKey = la-clé-publique
AllowedIPs = 192.168.2.3/32

Et théoriquement ça devrait marcher  ;)

J'ai fait ce que tu m'as indiqué renaud07, malheureusement mon rasp ne redémarrait pas, où du moins ne me donnait plus accès en ssh.
J'ai donc effacer etc/network/interfaces pour avoir de nouveau la main.

renaud07

  • Abonné Orange adsl
  • *
  • Messages: 3 345
Quel type de VPN installer sur un Raspberry Pie 3 ?
« Réponse #32 le: 22 septembre 2019 à 23:47:31 »
Étrange... c'est la même config que j'utilise à quelques règles près. A noter que dans mon cas il faut que j'attende bien 1 minute avant qu'il ne me repropose le login SSH. Tu as testé voir s'il répondait au ping avec cette config ? Si c'est le cas, faut attendre un peu. Sinon, il est effectivement planté.

D’autant plus que même si l'interface wg0 n'est pas bonne, ça ne devrait pas en principe affecter l'interface principale.

EDIT : On va commencer par simplifier le fichier en activant le routage de manière permanente  (ça supprime la règle de forward) :

Décommenter la ligne (faut enlever le dièse, quoi) net.ipv4.ip_forward=1 dans /etc/sysctl.conf et rebooter.

ce qui donne :
auto wg0
iface wg0 inet static
pre-up ip link add dev wg0 type wireguard
post-up wg setconf wg0 /etc/wireguard/wg0.conf
post-up iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
post-down ip link del wg0
address 192.168.2.1
netmask 255.255.255.0

« Modifié: 23 septembre 2019 à 00:09:49 par renaud07 »

Darkjeje

  • Abonné Free adsl
  • *
  • Messages: 592
  • Free VDSL2 Issy-les-Moulineaux (92)
Quel type de VPN installer sur un Raspberry Pie 3 ?
« Réponse #33 le: 23 septembre 2019 à 07:05:30 »
Je testerai ce soir si possible.
Mais n'ayant pas de connexion ssh, j'ai connecté mon rasp à un écran et je te confirme qu'il affichait erreur au lancement de l'interface network, puis au lancement de wg0.

Darkjeje

  • Abonné Free adsl
  • *
  • Messages: 592
  • Free VDSL2 Issy-les-Moulineaux (92)
Quel type de VPN installer sur un Raspberry Pie 3 ?
« Réponse #34 le: 23 septembre 2019 à 23:00:21 »
Étrange... c'est la même config que j'utilise à quelques règles près. A noter que dans mon cas il faut que j'attende bien 1 minute avant qu'il ne me repropose le login SSH. Tu as testé voir s'il répondait au ping avec cette config ? Si c'est le cas, faut attendre un peu. Sinon, il est effectivement planté.

D’autant plus que même si l'interface wg0 n'est pas bonne, ça ne devrait pas en principe affecter l'interface principale.

EDIT : On va commencer par simplifier le fichier en activant le routage de manière permanente  (ça supprime la règle de forward) :

Décommenter la ligne (faut enlever le dièse, quoi) net.ipv4.ip_forward=1 dans /etc/sysctl.conf et rebooter.

ce qui donne :
auto wg0
iface wg0 inet static
pre-up ip link add dev wg0 type wireguard
post-up wg setconf wg0 /etc/wireguard/wg0.conf
post-up iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
post-down ip link del wg0
address 192.168.2.1
netmask 255.255.255.0

Dans ton fichier interfaces, tu n'as que les lignes de code que tu m'as indiqué, où tu as d'autres infos sur ta carte réseau, le dhcp,...
Car je n'ai que ça moi :
source-directory /etc/network/interfaces.d
Je garde cette ligne et je rajoute ce que tu as mis à ton post précédent ?

renaud07

  • Abonné Orange adsl
  • *
  • Messages: 3 345
Quel type de VPN installer sur un Raspberry Pie 3 ?
« Réponse #35 le: 24 septembre 2019 à 17:01:13 »
Je me doutais qu'on ne s'était pas compris.

Il faut évidemment rajouter wg0 à la suite et non effacer entièrement le fichier. Dans ton cas tu n'as plus la config de eth0, c'est donc normal que ça ne réponde pas.

Il faut remettre au moins ça :
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

Et là tu devrais avoir de nouveau du réseau.