Table des matières
Apporter une IPv4 de datacenter sur un pfSense via un VPN
L'objectif est de faire descendre une IP de datacenter sur le pfSense avec un tunnel OpenVPN et du proxyARP.
Cette documentation existe aussi pour Linux.
Il vous sera nécessaire :
- un serveur OpenVPN linux avec:
- Une IP fixe pour initier la session VPN
- Une IP supplémentaire (nommé “IP Fail-Over” chez OVH par exemple)
Dans notre exemple, notre IP supplémentaire sera 172.32.0.1
Configuration du serveur OpenVPN
La configuration d'OpenVPN est classique avec quelques exception, par exemple :
- proxyarp.conf
mode server tls-server proto udp port 1194 dev tap0 cipher AES-256-CBC keepalive 10 30 persist-key persist-tun verb 3 status proxyarp_status.log log-append /var/log/openvpn-proxyarp.log ca /etc/openvpn/easy-rsa/keys/ca.crt cert /etc/openvpn/easy-rsa/keys/server.crt key /etc/openvpn/easy-rsa/keys/server.key dh /etc/openvpn/easy-rsa/keys/dh4096.pem tls-auth /etc/openvpn/easy-rsa/keys/ta.key 0 auth sha256 keysize 256 comp-lzo no script-security 2 client-connect /etc/openvpn/proxyarp_up.sh
Vous noterez l'utilisation OBLIGATOIRE d'une interface TAP, l'absence de configuration réseau et l'ajout des deux lignes suivantes :
script-security 2 client-connect /etc/openvpn/proxyarp_up.sh
et d'ajouter dans le dossier /etc/openvpn les deux fichiers suivant (en les adaptant) :
- proxyarp_up.sh
#!/bin/bash echo '1' > /proc/sys/net/ipv4/conf/all/proxy_arp ip link set up tap0 ip route add 172.32.0.1 dev tap0
et pour finir de le rendre exécutable :
# chmod +x /etc/openvpn/proxyarp_up.sh
Configuration du client OpenVPN pfSense
On va créer un client OpenVPN sur pfSense, si on suit l'exemple plus haut :
Avec pour même spécificité : l'interface TAP et pas de configuration de réseau.
Il faut ensuite assigner l'interface ovpncX comme interface du pfSense sans IP :
puis de créer un bridge avec UNIQUEMENT l'interface créer précedement :
puis assigner ce bridge a une interface, et lui assigner l'IP Fail-Over de votre hébergeur ainsi que sa passerelle (souvent identique a celle de votre serveur).
Si celle-ci n'est pas dans le même réseau, il vous faudra cocher la case Use non-local gateway dans la gateway.