VPN IPSec RaspBerry/Stormshield

Voici comment paramétrer un Raspberry avec un hotspot + un VPN IPSec. L’idée est de simplifier le télétravail en branchant un Raspberry sur la box des utilisateurs afin qu’ils puissent retrouver le WIFI d’entreprise.

Dans cet article, j’ai utilisé un Raspberry PI3 B+ (mais cela fonctionne avec les autres versions) et un Stormshield SN710

Les logiciel utilisés

  • ddclient : afin d’adapter l’IP publique du client VPN.
  • hostapd : Permet de créer un hotspot WIFI
  • dnsmasq : fournira un serveur DHCP
  • strongswan : pour le tunnel IPSec

Mise en place

Tout d’abord on effectue les mises à jour

# sudo rpi-update
# sudo init 6
— Redémarrage du Raspberry —
# sudo apt-get update
# sudo apt-get upgrade

Puis on installe les pré-requis

# sudo apt-get install vim bash-completion ntpdate hostapd dnsmasq ddclient strongswan

Sélectionnez votre fournisseur DynDNS

Ici nous utilisons no-ip.com

Choisir le type de protocole

Indiquer votre nom d’utilisateur

Indiquer votre mot de passe

Indiquer l’interface (saisir web)

Indiquer le nom de domaine DynDNS

Suite de la configuration de ddclient

Editer le fichier de confiuguration /etc/ddclient.conf et adapter le fichier avec vos paramètres

# sudo vi /etc/ddclient.conf

protocol=dyndns2
use=web, web=checkip.dyndns.com/, web-skip=’Current IP Address: ‘
server=dynupdate.no-ip.com

ssl=yes
login=IDENTIFIANT
password=’PASSWORD’
DNS-DYNDNS.xxx.xxx

Puis on relance le service ddclient

# sudo /etc/init.d/ddclient restart

Configuration de ntpdate

L’heure se synchronisera tous les jours à minuit.

# sudo crontab -e

00 00 * * * /usr/sbin/ntpdate pool.ntp.org 2>&1 >/dev/null

Configuration de hostapd

Configurer le pays pour la configuration wifi :

# sudo raspi-config

Sélectionner “Localisation Options”

Sélectionner “WLAN Country”

Sélectionner “FR”

Sélectionner “Finish”, un redémarrage est nécessaire

Créer ou éditer le fichier /etc/hostapd/hostapd.conf et adapter la configuration suivante :

# This is the name of the WiFi interface we configured above
interface=wlan0

# Use the nl80211 driver with the brcmfmac driver
driver=nl80211

# This is the name of the network
ssid=SSID
v # Use the 2.4GHz band
hw_mode=g

# Use channel 6
channel=6

# Enable 802.11n
ieee80211n=1

# Enable WMM
wmm_enabled=1

# Enable 40MHz channels with 20ns guard interval
ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]

# Accept all MAC addresses
macaddr_acl=0

# Use WPA authentication
auth_algs=1

# Require clients to know the network name
ignore_broadcast_ssid=0

# Use WPA2
wpa=2

# Use a pre-shared key
wpa_key_mgmt=WPA-PSK

# The network passphrase
wpa_passphrase=CLEF_WPA

# Use AES, instead of TKIP
rsn_pairwise=CCMP

Editer ensuite le fichier /etc/default/hostapd et rajouter la ligne suivante :

DAEMON_CONF=’/etc/hostapd/hostapd.conf’

Puis on applique la configuration pour le démarrage automatique.

sudo systemctl unmask hostapd
sudo systemctl enable hostapd
sudo systemctl start hostapd

Configuration de dnsmasq et du réseau

Editer le fichier /etc/dnsmasq.conf

interface=wlan0
dhcp-range=172.25.0.11,172.25.0.30,255.255.255.0,24h
    #DNS      dhcp-option=option:dns-server,IP_DNS_ENTREPRISE

Editer ensuite le fichier /etc/dhcpcd.conf afin de configurer le réseau

interface wlan0
static ip_address=172.25.0.1/24
denyinterfaces eth0
denyinterfaces wlan0

Au prochaine redémarrage, l’interface WIFI possèdera l’adresse 172.25.0.1

Editer ensuite le fichier /etc/sysctl.conf afin d’autoriser les échanges entre les interfaces LAN et WIFI. Décommenter la ligne suivante :

# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1

Configuration du VPN IPSec avec strongswan

Les 2 fichiers de configuration sont :

  • /etc/ipsec.secrets
  • /etc/ipsec.conf

Editer le fichier /etc/ipsec.secrets afin de renseigner la clef PSK

IP_GATEWAY_VPN : PSK “RENSEIGNER ICI CLEF PSK”

Editer ensuite le fichier /etc/ipsec.conf

Le fichier doit ressembler à ceci :

# ipsec.conf – strongSwan IPsec configuration file

# basic configuration

config setup
     # strictcrlpolicy=yes
     # uniqueids = no
     charondebug=”cfg 2, dmn 2, ike 2, net 2″ conn %default

conn %default
     ikelifetime=28800s
     keylife=3600s
     rekeymargin=540s
     keyingtries=%forever
     authby=secret
     keyexchange=ikev1
     compress=no
conn NOM_VPN      left=%defaultroute
     leftsourceip=%config
     leftsubnet=172.25.1.0/24

     right=IP_GATEWAY_VPN
     rightsubnet=LAN_DISTANT/MASQUE
     ike=aes256-sha256-modp2048!
     esp=aes128-sha256-modp2048!

     auto=start

include /var/lib/strongswan/ipsec.conf.inc

Il faut ensuite configurer les règles de NAT pour le VPN

Editer un fichier /etc/iptables.ipv4.nat et ajouter les lignes suivantes (à adapter selon votre configuration)

*nat
:PREROUTING ACCEPT [118:9931]
:INPUT ACCEPT [37:4490]
:POSTROUTING ACCEPT [93:7145]
:OUTPUT ACCEPT [16:1916]
-A POSTROUTING -s 172.25.1.0/24 -d LAN_DISTANT/MASQUE -j ACCEPT
-A POSTROUTING -s LAN_DISTANT/MASQUE -d 172.25.1.0/24 -j ACCEPT
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT

Puis appliquer les règles iptables

#sudo iptables-restore < /etc/iptables.ipv4.nat

Pour appliquer les règles au démarrage, rajouter ceci dans /etc/rc.local avant “exit 0”

iptables-restore < /etc/iptables.ipv4.nat

Redémarrer le Raspberry

#sudo init 6

Configuration du VPN Stormshield

Ouvrir l’interface web Stormshield et sélectionner le menu “Configuration/VPN/VPN IPsec”

Sélectionner l’onglet “Correspondants”, cliquer ensuite sur “Ajouter”

Dans passerelle distante, indiquer l’objet contenant nom de domaine DynDNS (résolution DNS automatique), indiquer un nom au VPN, puis cliquer sur le bouton “Suivant”

Sélectionner “Clé prépartagée (PSK)”, indiquer la clé PSK de votre VPN IPsec, puis cliquer sur le bouton “Suivant”

Le résumé suivant apparaît, cliquer sur le bouton “Terminer”

Le correspondant apparaît comme ci-dessous. Ne pas oublier d’adapter le profil IKE.

Retourner dans l’onglet “Politique de chiffrement – Tunnels” et cliquer sur le bouton “Ajouter”

Ajouter la ligne suivante, en adaptant bien entendu à votre configuration

Ne pas oublier de configurer les règles de filtrage Stormshield entre le réseau du Raspberry (ici 172.25.0.0/24) et le réseau d’entreprise.

Test du projet

Connecter le Raspberry à votre box via un câble réseau (RJ45)

Démarrer votre Raspberry, attendez (jusqu’à 5 minutes) que le Raspberry se charge complètement (DynDNS, VPN Ipsec…)

Depuis votre équipements (PC, Tablette, Smartphone…) connectez-vous au WIFI du Raspberry.

Essayer d’accéder aux applications d’entreprise.

Troubleshooting

gbajart Written by:

Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *