logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 04-06-2021 07:31:53

zafpodd5584131631
Membre
Inscription : 03-06-2021

VPN : Router tout le trafic, sauf un sous-réseau, vers le VPN

Bonjour à tous,

J'ai un serveur OpenVPN situé sur un VPS chez OVH.
J'ai ma machine Debian que j'utilise tous les jours connectée au VPN, ça fonctionne nickel et c'est très bien.

Le réseau de ma machine est 192.168.10.0
Le réseau du VPN est 10.8.0.0

Mais depuis peu, j'utilise quelques services contenus dans des Dockers.
En terme de réseau, ces Dockers sont sur le réseau 172.17.0.0 (je n'ai pas trop bidouillé ça, c'est Docker qui fait ça tout seul).

Ce que je cherche à faire, c'est de faire en sorte que tout le trafic soit envoyé sur le VPN -sauf le trafic de Docker-.

Je pense que cela se passe dans la table de routage, mais j'avoue n'avoir pas trop trouvé comment faire et ai peur de tout casser. Bref, l'échec s'est abbattu sur moi smile

Merci d'avance pour votre aide bienveillante smile

Quelques informations :

Voici ma table de routage lorsque je ne suis pas connecté au VPN :

Destination     Gateway      Genmask         Indic Metric Ref    Use Iface
default         192.168.10.1   0.0.0.0         UG    100    0        0 enp2s0
link-local      0.0.0.0         255.255.0.0     U     1000   0        0 enp2s0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
192.168.10.0    0.0.0.0         255.255.255.0   U     100    0        0 enp2s0



Voici ma table de routage une fois que je suis connecté au VPN :

Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface
default         _gateway        0.0.0.0         UG    50     0        0 tun0
default         _gateway        0.0.0.0         UG    100    0        0 enp2s0
10.8.0.0        0.0.0.0         255.255.255.0   U     50     0        0 tun0
vps-2224a3f4.vp _gateway        255.255.255.255 UGH   100    0        0 enp2s0
link-local      0.0.0.0         255.255.0.0     U     1000   0        0 enp2s0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
192.168.10.0    0.0.0.0         255.255.255.0   U     100    0        0 enp2s0
_gateway        0.0.0.0         255.255.255.255 UH    100    0        0 enp2s0



vps-2224a3f4.vp est le nom du serveur openVPN.


Version du serveur OpenVPN : OpenVPN 2.4.7 x86_64-pc-linux-gnu
Version du client OpenVPN : OpenVPN 2.4.7 x86_64-pc-linux-gnu


Le fichier de configuration du client.ovpn :

client
proto udp
remote public_IP 1194
dev tun
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
verify-x509-name server_b2YrpwwxLm837xGC name
auth SHA256
auth-nocache
cipher AES-128-GCM
tls-client
tls-version-min 1.2
tls-cipher TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256
setenv opt block-outside-dns # Prevent Windows 10 DNS leak
pull-filter ignore "redirect-gateway"
route 192.168.10.0 255.255.255.0 route_vpn_gateway
route 172.17.0.0 255.255.0.0 route_net_gateway
verb 3
<ca>
-----BEGIN CERTIFICATE-----
MII........0V
WYHUBAB9cyCdNSNbkGCXHxRBy2hJ
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
MII.....4g==
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
M.....Gg
-----END PRIVATE KEY-----
</key>
<tls-crypt>
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
0c66533.........b008
-----END OpenVPN Static key V1-----
</tls-crypt>




Le fichier de conf du serveur :

port 1194
proto udp
dev tun
user nobody
group nogroup
persist-key
persist-tun
keepalive 5 20
reneg-sec 0
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "dhcp-option DNS 213.186.33.99"
push "redirect-gateway def1 bypass-dhcp"
dh none
ecdh-curve prime256v1
tls-crypt tls-crypt.key 0
crl-verify crl.pem
ca ca.crt
cert server_b2YrpwwxLm837xGC.crt
key server_b2YrpwwxLm837xGC.key
auth SHA256
cipher AES-128-GCM
ncp-ciphers AES-128-GCM
tls-server
tls-version-min 1.2
tls-cipher TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256
status /var/log/openvpn/status.log
verb 3

Hors ligne

#2 04-06-2021 10:32:50

raleur
Membre
Inscription : 03-10-2014

Re : VPN : Router tout le trafic, sauf un sous-réseau, vers le VPN

zafpodd5584131631 a écrit :

J'ai un serveur OpenVPN situé sur un VPS chez OVH.


Pour quel usage ?

zafpodd5584131631 a écrit :

Mais depuis peu, j'utilise quelques services contenus dans des Dockers.


Sur la machine locale ou sur le VPS ?

zafpodd5584131631 a écrit :

Ce que je cherche à faire, c'est de faire en sorte que tout le trafic soit envoyé sur le VPN -sauf le trafic de Docker-.


Le trafic de la machine locale ou du VPS ?

Peux-tu afficher les tables de routage avec la commande "ip route" dont le résultat est plus lisible ?


Il vaut mieux montrer que raconter.

Hors ligne

#3 04-06-2021 13:07:13

zafpodd5584131631
Membre
Inscription : 03-06-2021

Re : VPN : Router tout le trafic, sauf un sous-réseau, vers le VPN

Bonjour,

raleur a écrit :

Pour quel usage ?


Je vis à l'étranger et c'est mon serveur VPN.
Tous mes appareils sont connectés à lui pour que mon trafic sorte en France. via ce serveur OpenVPN installé sur ce VPS.

raleur a écrit :

Sur la machine locale ou sur le VPS ?


J'utilise Docker sur mon ordinateur personnel, pas sur le serveur VPS.

Je souhaite envoyer tout le trafic de la machine locale sur le VPN, sauf le trafic des containers dockers (dont le sous-réseau est 172.17.0.0


raleur a écrit :

Peux-tu afficher les tables de routage avec la commande "ip route" dont le résultat est plus lisible ?


Oui, bien sûr :

Lorsque l'ordinateur local n'est pas connecté au serveur OpenVPN :

default via 192.168.10.1 dev enp2s0 proto dhcp metric 100
169.254.0.0/16 dev enp2s0 scope link metric 1000
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
192.168.10.0/24 dev enp2s0 proto kernel scope link src 192.168.10.100 metric 100
 



Lorsque l'ordinateur local est connecté au serveur OpenVPN :

default via 10.8.0.1 dev tun0 proto static metric 50
default via 192.168.10.1 dev enp2s0 proto dhcp metric 100
10.8.0.0/24 dev tun0 proto kernel scope link src 10.8.0.4 metric 50
51.83.75.190 via 192.168.10.1 dev enp2s0 proto static metric 100
169.254.0.0/16 dev enp2s0 scope link metric 1000
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
192.168.10.0/24 dev enp2s0 proto kernel scope link src 192.168.10.100 metric 100
192.168.10.1 dev enp2s0 proto static scope link metric 100
 




Merci pour le coup de main smile

Hors ligne

#4 04-06-2021 20:38:57

raleur
Membre
Inscription : 03-10-2014

Re : VPN : Router tout le trafic, sauf un sous-réseau, vers le VPN

zafpodd5584131631 a écrit :

Je souhaite envoyer tout le trafic de la machine locale sur le VPN, sauf le trafic des containers dockers


Le trafic entre les conteneurs et quoi ? Le trafic de la machine locale vers les conteneurs est déjà routé par une route directe qui a priorité sur la route par défaut du VPN.


Il vaut mieux montrer que raconter.

Hors ligne

#5 07-06-2021 07:25:49

zafpodd5584131631
Membre
Inscription : 03-06-2021

Re : VPN : Router tout le trafic, sauf un sous-réseau, vers le VPN

raleur a écrit :

zafpodd5584131631 a écrit :

Je souhaite envoyer tout le trafic de la machine locale sur le VPN, sauf le trafic des containers dockers


Le trafic entre les conteneurs et quoi ? Le trafic de la machine locale vers les conteneurs est déjà routé par une route directe qui a priorité sur la route par défaut du VPN.



Le trafic entre les conteneurs et internet.
En fait ces conteneurs interrogent régulièrement des sites internet spécifiques, mais ne fonctionnent pas si cela passe par le VPN (je pense que l'IP du VPN est blacklistée sur la moitié d'entre eux)

Je voudrais également conserver la communication entre la machine locale et les conteneurs.

Merci encore pour votre aide,

Hors ligne

#6 07-06-2021 11:42:39

raleur
Membre
Inscription : 03-10-2014

Re : VPN : Router tout le trafic, sauf un sous-réseau, vers le VPN

Pour les connexions des conteneurs vers l'extérieur, il va falloir faire du routage avancé.
Le principe : on route le trafic provenant du préfixe des conteneurs avec une table de routage spécifique dans laquelle la route par défaut est via le routeur du LAN. On y inclut aussi les routes vers les destinations locales au cas où.

ip rule add from 172.17.0.0/16 lookup 172
ip route add default via 192.168.10.1 dev enp2s0 table 172
ip route add 192.168.10.0/24 dev enp2s0 table 172


Il vaut mieux montrer que raconter.

Hors ligne

Pied de page des forums