Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 10/06/2015, à 11:24

GoTrUnK_265

[Résolu] Exclure certains ports d'une connexion VPN

Bonjour à tous,

Après avoir remué le net entier à la recherche d'une réponse, sans en avoir trouvé, je me tourne vers vous.

mini_412871reseau.png

Je possède un serveur chez moi qui est sous Ubuntu 14.04 LTS (IP DHCP : 192.168.1.9).
Il se connecte à internet via une Freebox (Gateway : 192.168.1.1 / Interface : eth0)
Pour des raisons d'anonymat j'ai pris un abonnement chez un fournisseur de VPN (Private Internet Access) et pour me connecter j'utilise OpenVPN.
Jusque là tout va bien, la connexion démarre lorsque je lance le serveur et le tunnel est établie, j'ai même mis en place les scripts up et down lorsque la connexion du VPN est établie ou arrêtée.

Seulement, lorsque le VPN se lance et que l'interface tun0 est créée il devient impossible de joindre le serveur depuis l'IP publique de la Freebox puisque de nouvelles routes sont poussées (ce qui est normal).
Mon but serait de pouvoir continuer à joindre le serveur depuis l'adresse IP publique de ma freebox sur les ports : 22, 80 et 443.

Je suis tombé sur un topic qui date de 2011 dans lequel une personne avait quasiment le même problème que moi, seulement je n'arrive pas à le faire fonctionner (Topic).
Je ne vous cache pas que mes connaissances en réseau sont assez minces, j'ai donc vraiment besoin d'un coup de main.

Merci d'avance à tous.

Dernière modification par GoTrUnK_265 (Le 14/06/2015, à 20:39)

Hors ligne

#2 Le 11/06/2015, à 13:47

GoTrUnK_265

Re : [Résolu] Exclure certains ports d'une connexion VPN

Bonjour Screen et merci de ta réponse.
J'avais essayé les commandes disponibles sur ce topic, j'arrive bien à joindre le serveur en ssh une fois le VPN connecté seulement après impossible de faire un ping nulle part.
C'est comme si le serveur n'avais plus accès à internet.

Une idée de ce que ça pourrait être ?

Hors ligne

#3 Le 11/06/2015, à 16:30

Screen

Re : [Résolu] Exclure certains ports d'une connexion VPN

GoTrUnK_265 a écrit :

Bonjour Screen et merci de ta réponse.
J'avais essayé les commandes disponibles sur ce topic, j'arrive bien à joindre le serveur en ssh une fois le VPN connecté seulement après impossible de faire un ping nulle part.
C'est comme si le serveur n'avais plus accès à internet.

Une idée de ce que ça pourrait être ?

quelles commandes ?  a tu utilisé le routage avancé avec iproute2 ? as tu installé un parefeu ?
qui ping vers qui ?

Hors ligne

#4 Le 11/06/2015, à 17:33

pires57

Re : [Résolu] Exclure certains ports d'une connexion VPN

Les longues phrases c'est inutile et casse tête, fournis nous plutot des cas de figures avec des ip (même factice si tu veut du moment que tu les fixes (exemple serveur  : 192.168.20.56 VPN : 89.14.56.78 .... )


Utilisateur d'Archlinux, Ubuntu et Kali Linux
Administrateur système et réseau spécialisé Linux.
LinkedIn

Hors ligne

#5 Le 11/06/2015, à 19:27

GoTrUnK_265

Re : [Résolu] Exclure certains ports d'une connexion VPN

C'est une installation propre de Ubuntu 14.04.2 LTS, je n'ai pas installé de pare-feu.

Voici ce que retourne la commande "ifconfig" :

eth0      Link encap:Ethernet  HWaddr 70:71:bc:94:37:75  
          inet adr:192.168.1.9  Bcast:192.168.1.255  Masque:255.255.255.0
          adr inet6: fe80::7271:bcff:fe94:3775/64 Scope:Lien
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Packets reçus:202 erreurs:0 :0 overruns:0 frame:0
          TX packets:255 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000 
          Octets reçus:24751 (24.7 KB) Octets transmis:31432 (31.4 KB)

lo        Link encap:Boucle locale  
          inet adr:127.0.0.1  Masque:255.0.0.0
          adr inet6: ::1/128 Scope:Hôte
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          Packets reçus:229 erreurs:0 :0 overruns:0 frame:0
          TX packets:229 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:0 
          Octets reçus:17212 (17.2 KB) Octets transmis:17212 (17.2 KB)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet adr:10.192.1.6  P-t-P:10.192.1.5  Masque:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          Packets reçus:2 erreurs:0 :0 overruns:0 frame:0
          TX packets:50 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:100 
          Octets reçus:152 (152.0 B) Octets transmis:3160 (3.1 KB)

"route -n"

0.0.0.0         10.106.1.5      128.0.0.0       UG    0      0        0 tun0
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
10.106.1.1      10.106.1.5      255.255.255.255 UGH   0      0        0 tun0
10.106.1.5      0.0.0.0         255.255.255.255 UH    0      0        0 tun0
109.201.154.200 192.168.1.1     255.255.255.255 UGH   0      0        0 eth0
128.0.0.0       10.106.1.5      128.0.0.0       UG    0      0        0 tun0
192.168.1.0     0.0.0.0         255.255.255.0   U     1      0        0 eth0

"ip route" me renvoi sans VPN:

default via 192.168.1.1 dev eth0  proto static 
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.9  metric 1

"ip route" me renvoi connecté au VPN :

0.0.0.0/1 via 10.106.1.5 dev tun0 
default via 192.168.1.1 dev eth0  proto static 
10.106.1.1 via 10.106.1.5 dev tun0 
10.106.1.5 dev tun0  proto kernel  scope link  src 10.106.1.6 
109.201.154.200 via 192.168.1.1 dev eth0 
128.0.0.0/1 via 10.106.1.5 dev tun0 
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.9  metric 1

En adaptant par rapport à ma configuration les commandes disponibles dans le topic donné par Screen j'ai exécuté ça :

Ajout de la table "connection" dans "/etc/iproute2/rt_tables" puis :

ip rule add from 192.168.1.9 table 128
ip route add table 128 to 192.168.1.0/24 dev eth0
ip route add table 128 default via 192.168.1.1

Lorsque j'execute ces commandes, le serveur est accessible de l'extérieur mais si je fais :

ping google.com

Je reçois un "unknown host".

Je sais pas si il vous faut d'autres informations, n'hésitez pas à me le dire.
Merci en tous cas de votre aide.

Dernière modification par GoTrUnK_265 (Le 11/06/2015, à 19:29)

Hors ligne

#6 Le 11/06/2015, à 22:53

Screen

Re : [Résolu] Exclure certains ports d'une connexion VPN

tu as fais à ta sauce mais bon (il est préférable de spécifier le src ip  dans iproute add reseau) ,
tu peux vérifier aussi les tables avec:
ip route show table connection  (ou plutôt 128 comme tu l'a renommé)
ip rule show

alors maintenant tu accèdes bien depuis l'extérieur en ssh tu as écris.

Je reçois un "unknown host".

en local ou depuis ssh ?
et ping 8.8.8.8  ?
certainement la résolution dns de ton vpn mal configuré.

Hors ligne

#7 Le 12/06/2015, à 01:11

GoTrUnK_265

Re : [Résolu] Exclure certains ports d'une connexion VPN

J'ai essayé le ping directement sur la machine en local et depuis l'extérieur en ssh et impossible dans les deux cas de faire un ping.
D'ailleurs impossible d'accéder à internet sur Firefox sur la machine par exemple.
Le ping sur 8.8.8.8 fonctionne bien dans les deux cas par contre.

J'ai modifié les commandes de cette façon :

ip rule add from 192.168.1.9 table connection
ip route add table connection to 192.168.1.0/24 dev eth0
ip route add table connection default via 192.168.1.1

Lorsque je fais un "ip route show table connection" j'ai :

default via 192.168.1.1 dev eth0 
192.168.1.0/24 dev eth0  scope link

"ip rule show" :

0:	from all lookup local 
32765:	from 192.168.1.9 lookup connection 
32766:	from all lookup main 
32767:	from all lookup default 

Je ne sais pas si ça t'aide, je dois avouer que je suis un peu perdu.

client
dev tun
proto udp
remote nl.privateinternetaccess.com 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
tls-client
remote-cert-tls server
auth-user-pass
comp-lzo
verb 1
reneg-sec 0
crl-verify crl.pem

auth-user-pass login.conf

;Scripts locaux gérant les routes et le client torrent
script-security 2
up /etc/openvpn/scripts/up.sh
down /etc/openvpn/scripts/down.sh

Edit : J'ai rajouté mon fichier de configuration OpenVPN au cas ou.

Dernière modification par GoTrUnK_265 (Le 12/06/2015, à 01:21)

Hors ligne

#8 Le 12/06/2015, à 08:33

Screen

Re : [Résolu] Exclure certains ports d'une connexion VPN

GoTrUnK_265 a écrit :

J'ai essayé le ping directement sur la machine en local et depuis l'extérieur en ssh et impossible dans les deux cas de faire un ping.
D'ailleurs impossible d'accéder à internet sur Firefox sur la machine par exemple.
Le ping sur 8.8.8.8 fonctionne bien dans les deux cas par contre.

Je comprend alors que ton serveur est à la fois ton pc de bureau --> network-manager ?

1434090508.png

la résolution dns utilisera aussi la route par défault du vpn.

Hors ligne

#9 Le 12/06/2015, à 09:43

GoTrUnK_265

Re : [Résolu] Exclure certains ports d'une connexion VPN

Oui c'est ça l'idée, je m'en sers de temps en temps comme pc du bureau j'ai donc accès au Network Manager.
Merci en tous cas Screen, je testerai ça ce soir.

Bonne journée à toi !

Hors ligne

#10 Le 13/06/2015, à 11:35

GoTrUnK_265

Re : [Résolu] Exclure certains ports d'une connexion VPN

Par contre ma connexion VPN n'est pas configuré dans le Network Manager, je passe directement en ligne de commande pour lancer OpenVPN.
Y a t-il un moyen de définir le serveur DNS en ligne de commande par hasard ?

Hors ligne

#11 Le 13/06/2015, à 14:32

Screen

Re : [Résolu] Exclure certains ports d'une connexion VPN

GoTrUnK_265 a écrit :

Par contre ma connexion VPN n'est pas configuré dans le Network Manager, je passe directement en ligne de commande pour lancer OpenVPN.
Y a t-il un moyen de définir le serveur DNS en ligne de commande par hasard ?

Normalement, c'est du côté config du serveur vpn qu'il faut faire un push dns  (push "dhcp-option DNS xxxx.xxxx.xxxx.xxxx"
pour que le client inscrive automatiquement l'adresse DNS dans /etc/resolv.conf

si ce n'est pas le cas, alors il faut l'écrire dans ce fichier, avec le gestionnaire réseau comme je l'ai mentionné sinon en éditant ce fichier
nano /etc/resolv.conf
nameserver 8.8.8.8        (opendns: 208.67.222.222 208.67.222.220)
mais à refaire à chaque reboot

si tu utilises /etc/network/interfaces pour définir la connexion, tu peux rajouter cette ligne:  dns-nameservers 8.8.8.8

Hors ligne

#12 Le 14/06/2015, à 20:38

GoTrUnK_265

Re : [Résolu] Exclure certains ports d'une connexion VPN

Ça marche enfin !
Plus qu'à faire quelques règles iptables pour peaufiner tout ça et ce sera parfait.

Merci de ton aide Screen en tous cas !
Je passe en résolu.

Hors ligne