Outils pour utilisateurs

Outils du site


kb:linux:generalites:apporter_une_ipv4_de_datacenter_sur_un_linux_via_un_vpn

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
kb:linux:generalites:apporter_une_ipv4_de_datacenter_sur_un_linux_via_un_vpn [2019/10/10 09:17] – créée beukb:linux:generalites:apporter_une_ipv4_de_datacenter_sur_un_linux_via_un_vpn [2019/10/10 10:08] (Version actuelle) beu
Ligne 1: Ligne 1:
-====== Apporter une IPv4 de datacenter sur un pfSense via un VPN ======+====== Apporter une IPv4 de datacenter sur un Linux via un VPN ======
  
-L'objectif est de faire descendre une IP de datacenter sur le pfSense avec un tunnel OpenVPN et du proxyARP.+L'objectif est de faire descendre une IP de datacenter sur un Linux avec un tunnel OpenVPN et du proxyARP
 + 
 +Cette documentation existe aussi pour [[kb:linux:pfsense:apporter_une_ip_de_datacenter_sur_un_pfsense_via_un_vpn|pfSense]].
  
 Il vous sera nécessaire : Il vous sera nécessaire :
Ligne 39: Ligne 41:
  
 script-security 2 script-security 2
-client-connect /etc/openvpn/proxy-arp-up.sh +client-connect /etc/openvpn/proxyarp_up.sh
-client-disconnect /etc/openvpn/proxy-arp-down.sh+
 </code> </code>
  
-Vous noterez l'utilisation OBLIGATOIRE d'une interface TAP, l'absence de configuration réseau et l'ajout des trois lignes suivantes : +Vous noterez l'utilisation OBLIGATOIRE d'une interface TAP, l'absence de configuration réseau et l'ajout des deux lignes suivantes : 
  
 <code> <code>
 script-security 2 script-security 2
 client-connect /etc/openvpn/proxyarp_up.sh  client-connect /etc/openvpn/proxyarp_up.sh 
-client-disconnect /etc/openvpn/proxyarp_down.sh 
 </code> </code>
  
 et d'ajouter dans le dossier ///etc/openvpn// les deux fichiers suivant (en les adaptant) : et d'ajouter dans le dossier ///etc/openvpn// les deux fichiers suivant (en les adaptant) :
  
-<code file proxyarp_up.sh>+<code bash proxyarp_up.sh>
 #!/bin/bash #!/bin/bash
  
 echo '1' > /proc/sys/net/ipv4/conf/all/proxy_arp echo '1' > /proc/sys/net/ipv4/conf/all/proxy_arp
-ifconfig tap0 up+ip link set up tap0
 ip route add 172.32.0.1 dev tap0 ip route add 172.32.0.1 dev tap0
 </code> </code>
  
-et+et pour finir de le rendre exécutable :
  
-<code file proxyarp_down.sh>+<code bash> 
 +# chmod +x /etc/openvpn/proxyarp_up.sh 
 +</code> 
 + 
 +==== Configuration du client OpenVPN Linux ==== 
 + 
 +On va créer un client OpenVPN sur le client Linux, si on suit l'exemple plus haut : 
 + 
 +<code file proxyarp.conf> 
 +tls-client 
 +proto udp 
 +proto udp6 
 +port 1194 
 +remote XXXXXX 
 +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/keys/ca.crt 
 +cert /etc/openvpn/keys/client.crt 
 +key /etc/openvpn/keys/client.key 
 +tls-crypt /etc/openvpn/keys/ta.key 0 
 +auth sha512 
 +keysize 256 
 +comp-lzo no 
 + 
 + 
 +script-security 2 
 +up /etc/openvpn/proxyarp-up.sh 
 +down /etc/openvpn/proxyarp-down.sh 
 + 
 +</code> 
 + 
 +Avec pour même spécificité : l'interface TAP et pas de configuration de réseau. 
 + 
 +<code bash /etc/openvpn/proxyarp-up.sh>
 #!/bin/bash #!/bin/bash
  
-ip route del 172.32.0.1 dev tap0 +# Configuration de l'interface 
-ifconfig tap0 down+ip link set up tap0 
 +ip addr add 172.32.0.1/32 dev tap0 
 + 
 +# Ajout des règles dans la table wan_vpn 
 +ip rule add from 172.32.0.1 table wan_vpn 
 +ip rule add fwmark 1 table wan_vpn 
 + 
 +# Ajout la passerelle par défaut 
 +ip route add 51.255.37.1 src 172.32.0.1 dev tap0 table wan_vpn 
 +ip route add default via 51.255.37.1 src 172.32.0.1 dev tap0 table wan_vpn 
 + 
 +# Ajout règles de firewall pour que le trafic entrant par le tunnel, soit re-routé dans le tunnel 
 +iptables -t mangle -A PREROUTING -i tap0 -j CONNMARK --set-xmark 0x1 
 +iptables -t mangle -A PREROUTING -i eth0 -m connmark --mark 0x1 -j CONNMARK --restore-mark
 </code> </code>
  
-et pour finir de les rendre exécutable :+<code bash /etc/openvpn/proxyarp-down.sh> 
 +#!/bin/bash
  
-<code bash> +Suppression des règles dans la table wan_vpn 
-chmod +x proxyarp_up.sh proxyarp_down.sh+ip rule del from 172.32.0.1 table wan_vpn 
 +ip rule del fwmark 1 table wan_vpn 
 + 
 +# Suppresion des règles de firewall pour que le trafic entrant par le tunnel, soit re-routé dans le tunnel 
 +iptables -t mangle -D PREROUTING -i tap0 -j CONNMARK --set-xmark 0x1 
 +iptables -t mangle -D PREROUTING -i eth0 -m connmark --mark 0x1 -j CONNMARK --restore-mark
 </code> </code>
  
-==== 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 |}}+Puis il faudra les rendre exécutable :
  
-Avec pour même spécificité : l'interface TAP et pas de configuration de réseau.+<code bash> 
 +# chmod +x /etc/openvpn/proxyarp-up.sh /etc/openvpn/proxyarp-down.sh 
 +</code>
  
-Il faut ensuite assigner l'interface ovpncX comme interface du pfSense sans IP :+et créer la table de routage **wan_vpn**
  
-{{ :kb:linux:pfsense:vpn_infra_tap.png?800 |}}+<code bash> 
 +# echo "1 wan_vpn" >> /etc/iproute2/rt_tables 
 +</code>
  
-puis de créer un bridge avec UNIQUEMENT l'interface créer précedement :+Et maintenant, ça doit fonctionner !
  
-{{ :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).+====Informations optionnelle ==== 
 +Si vous souhaitez faire du NAT de port entrant, voici un exemple de règle :
  
-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.+<code bash> 
 +# iptables -t nat -A PREROUTING -i tap0 -p tcp -m tcp --dport 25 -j DNAT --to-destination 192.168.1.10:25 
 +</code> 
 + 
 +Et si vous voulais faire du NAT sortant, il faut mettre les deux règles suivante : 
 +<code bash> 
 +# iptables -t mangle -A PREROUTING -s 192.168.1.10/32 -j MARK --set-xmark 0x1 
 +</code><code bash> 
 +# iptables -t nat -A POSTROUTING -s 192.168.1.10/32 -j SNAT --to-source 172.32.0.
 +</code>
kb/linux/generalites/apporter_une_ipv4_de_datacenter_sur_un_linux_via_un_vpn.1570699063.txt.gz · Dernière modification : 2019/10/10 09:17 de beu