====== 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 [[[[kb:linux:generalites:Apporter une IPv4 de datacenter sur un Linux via un VPN|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 :
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) :
#!/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 :
{{ :kb:linux:pfsense:vpn_infrastructure.png?800 |}}
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 :
{{ :kb:linux:pfsense:vpn_infra_tap.png?800 |}}
puis de créer un bridge avec UNIQUEMENT l'interface créer précedement :
{{ :kb:linux:pfsense:vpn_infra_br.png?800 |}}
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.