Problème / Question Routing / VPN
-
Merci chris4916 pour ta réponse.
–
Pour ton liens, je suis dessus j'ai l'impression que son problème est sensiblement le même que le mien.
La solution qu'il expose si j'ai bien compris et de rajouter une rêgle de filtrage sur sa pfSense box pour que celle ci ne filtre plus son accès SSH.Mon soucis est le même sauf que j'ai l'impression que mon filtrage s'effectue côtré RPI non pfSense.
--
Si tu as la possibilité de voir le shéma que j'avais mis sur mon précédent post je vais te décrire exactement ou ça passe et ou ça passe pas et se qui me fais déduire que c'est le RPI qui filtre.Sens Lan pfSense vers RPI
Ping de CentOS vers le tunnel VPN –> Ok sur les deux interface (côté pfSense, côté RPI)
Ping de CentOS vers l'interface LAN du RPI (adressage en 192) --> Non OK
Retour du ping :PING 192.168.0.80 (192.168.0.80) 56(84) bytes of data. From 80.10.124.140 icmp_sec=3 Packet Filtered From 80.10.124.140 icmp_sec=6 Packet Filtered From 80.10.124.140 icmp_sec=7 Packet Filtered
Ce qui me perturbe dans cette réponse c'est l'adresse 80.10.x.x qui à priori serait une adresse ip public qui ne correspond a aucune des deux côté.
Sens Lan RPI vers pfSense
Le RPI a deux patte réseau, son eth0 sur le 192.168 et Tun0 qui correspond au Tunnel VPN.
Le ping de tun0 vers le tunnel VPN fonctionne.
Le ping de tun0 vers la machine CentOS du LAN pfSense fonctionne aussi.Le ping de eth0 vers le tunnel VPN ne fonctionne pas.
Commande utilisée :ping -I eth0 172.16.1.2
Je pense donc que ça coince ici.
Soit dans les routes soit dans les iptables.iptables :
Les trois chaine INPUT, FORWARD et OUTPUT sont vide.
Avec (Policy ACCEPT) qui je suppose veut dire que ça accepte tout par défault.Route
Destination Passerelle Genmask Iface default 192.168.0.1 0.0.0.0 eth0 172.16.0.0 172.16.1.1 255.255.255.128 tun0 172.16.1.0 * 255.255.255.128 tun0 192.168.0.0 * 255.255.248.0 eth0
Voilà j'espère pas être passé a côté de quelque chose de trop gros.
PS :
J'ai ajouté la configuration de mon NAT 1:1 fais côté pfSense.
Mais je pense que le problème juste au dessus si il n'es pas réglé empêchera le NAT de fonctionner.Je me sert de ce site pour me documenter et essayer de trouver un solution actuellement :
http://fr.wikibooks.org/wiki/Administration_r%C3%A9seau_sous_Linux/RoutageEDIT :
Après avoir bidouillé un peux et fait quelques test je viens vous faire un petit feedback.J'ai tripatouillé mon iptables pour être sur qu'il ne filtre rien, j'ai donc ajouté des rêgles de filtrage acceptant tout trafic en INPUT OUTPUT et FORARDING.
Ensuite je me suis aperçus quand si je me place dans le shell de mon CentOS (Côté LAN pfSense) et que je fais un ping vers une adresse type 172.16.54.1 (adresse complètement fictive), il n'y a aucun équipement a cette adresse et j'ai toujours cette fameuse réponse "Packet filtered"
Du coup je me dis que c'est peut pas du côté RPI que ça coince.
Je continue de chercher, bonne journée :) -
Tu essaies bien ces "ping" une fois que le tunnel est établi ? (je pense si je m'en tiens aux routes que tu montres)
-
Salut Chris4916.
Oui j'ai fais l'ensemble de ces ping avec le tunnel établis.
Peut être que le problème viens du routage de mon ping.
C'est à dire que j'ai l'impression que mon ping est dirigé vers la sortie Box Internet et non vers le tunnel VPN.
traceroute du LAN pfSense la patte RPI du tunnel (tun0)
Destination 172.16.1.21 172.16.1.2 (172.16.1.2) 45.026 ms 42.225 ms 36.892 ms
traceroute du LAN pfSense vers 192.168.0.80 patte eth0 du RPI
1 192.168.1.1 (192.168.1.1) 1.200 ms 0.956 ms 0.761 ms 2 * * * 3 * * * 4 * * * 5 * * * ...
On peut voir que le chemin utilisé n'es pas du tout le même.
La mon paquet sort par la sortie WAN de mon pfsense et passe par la box.
Idéalement il devrait sortir sur la sortie "Ovpn" pour atterrir dans le tunnel et avoir une chance d'arriver sur le réseau distant.Alors je me demande si il faut pas que j'ai une approche différente, j'ai vu certain tutoriel sur le net qui ajoutait une interface virtuelle qu'ils appelais OPT1 par exemple.
Je me dis qu'avoir une interface me permettrais d'entrer mes routes manuellement et donc d'être sûr de rediriger mon paquet vers le tunnel.J'essaye de vous faire part de mon raisonnement pour plus de clarté sur les tenant et aboutissant de se que je fais.
-
J'avoue que je n'ai pas fait l'effort de regarder le détail des équipements et des routes que tu décris dans tes différents schémas.
Pour comprendre ce qui s'y passe vraiment, il faut que ce soit exhaustif.Ce qu'il faut comprendre, mais je pense que as déjà assimilé ça, c'est que la route vers le site distant (ou son adresse translatée lorsqu'il y a translation) est au départ connue par le serveur VPN local et propagée (ou pas) par celui-ci.
Lorsque le serveur VPN local est la route par défaut des éléments connectés à celui-ci, ces équipement n'ont pas besoin de connaître cette route car les requêtes arrivent sur la route par défaut (ici l'extrémité locale du tunnel) qui elle connaît la route vers le site distant au travers du tunnel.Ce qui me conforte dans le fait que j'ai bien fait de ne pas étudier le détail de ton réseau avant, c'est que, sauf si j'ai raté quelque chose, tu sembles introduire maintenant un équipement réseau (en 192.168.1.1) qui ne fait pas partie de ce que tu as décrit avant.
Peut-être faut-il commencer par cette description exhaustive du réseau, hors tunnel(s) avant d'aller plus loin ?
Je vais quand même tout relire depuis le début ;)
-
Merci pour ta réponse Chris4916
Effectivement, j'introduis la partie hors VPN et je pense que le problème viens de la.
J'ai essayé de faire un schéma assez clair de l'infra sans trop détailler bien que ce soit une maquette j'utilise quand même des donnée et des équipement bien réel.J'ai aussi essayé de produire quelque chose de plutôt propre afin de faciliter la compréhension.
Je n'ai pas tenus compte du NAT dans le shéma mais idéalement le réseau LAN RPI serais sur un subnet de type 172.168.X.0/25
-
En tous cas, c'est beaucoup (beaucoup) plus clair comme ça.
Je vais relire tes précédents posts à la lumière de ce schéma.
Ce qui apparaît déjà - visuellement - clair, c'est que pfSense est tr_ès probablement la route par défaut pour les équipement sur le site A alors que la route par défaut sur le site B est plutôt le modem/routeur derrière le switch. Il faut donc que celui-ci sache que la route vers 172.16.0.0/25 passe part le RPI, en tous cas pour les sessions issues du site B. -
Hello,
Content que ça te permette de mieux visualiser les choses.
Le but avant de pouvoir atteindre mes host de test étant de pouvoir atteindre l'ip interne configuré sur la patte eth0 de mon RPI (192.168.0.80).
J'ai pas la main sur les Hote de test pour le moment, mais leurs rôle sera simplement de répondre à des pings émis du CentOS(côté Lan pfSense).Si il arrive a joindre l'hôte, le retour ne devrais pas poser de problème, enfin j'espère, peut être que je ne vois que la partie émergé de l'iceberg ;D
-
je pense, comme toi, que si tu arrives à joindre le serveur cible, il n'y a pas de problème de "retour".
En revanche, je ne suis pas certain que le ping soit l'arme absolue pour les tests, sauf si tu as une vision précise de ce qui est fait en terme de ICMP (et de règles de FW en général)Dois-je déduire de ton schéma que l'adresse publique de l'équipement réseau situé sur le site B est 80.10.xx.xxx ?
Et donc, dans ma compréhension, nous avons:
- sur l'équipement en 80.10.xx.xxx (site B) , une redirection vers 192.168.0.80 (interface du RIP) pour le(s) ports utilisés par OpenVPN
- ça permet d'établir un tunnel entre les sites A et B (le choix du netmask /25 pour le réseau du tunnel est surprenant mais pourquoi pas…)
- une fois le tunnel établi, pfSense connaît la route vers 192.168.0.0/24 (celle-ci passe par le tunnel donc la GW est 172.16.1.xxx)
- les machines sur le réseau A ayant pfSense comme gateway par défaut, les requêtes vers 192.168.0.x vont passer par le tunnel sans qu'il soit besoin de définir de route statique, à la main, de part et d'autre.
J'ai juste jusque là ?
Si oui:
- je ne comprends pas quel est le problème (au delà du fait que la réponse au ping n'est pas nécessairement activée partout
- je ne comprends pas pourquoi nous aurions un filtrage de la part de 80.10.xx.xxx (même si physiquement ça passe par là, nous sommes "dans" le tunnel n'est-ce pas ?)
Je continue ma lecture ;-)
-
A noter que si tu veux faire des tests de B ver A, il faut que sur la gateway par défaut des machines du réseau B il y ait une route "en dur" qui précise que la route vers 172.16.0.0/25 passe par 192.168.0.80
Je suppose que cette gateway est l'interface interne de l'élément qui se situe à la frontière avec le WAN (l'équipement qui a 80.10.124.xxx en adresse publique ;-) )
-
Dois-je déduire de ton schéma que l'adresse publique de l'équipement réseau situé sur le site B est 80.10.xx.xxx ?
Et non justement c'est ça qui me fais penser que ça part se perdre dans les méandre du web.
Aucune de mes deux ip public ne correspond a cette adresse qui me retourne "Packet filtered"
Il y a aussi le traceroute qui me met sur cette voie la.Et donc, dans ma compréhension, nous avons:
- sur l'équipement en 80.10.xx.xxx (site B) , une redirection vers 192.168.0.80 (interface du RIP) pour le(s) ports utilisés par OpenVPN
Exactement, sauf l'ip public qui ne correspond mais dans l'idée oui c'est ça.
- ça permet d'établir un tunnel entre les sites A et B (le choix du netmask /25 pour le réseau du tunnel est surprenant mais pourquoi pas…)
Je compte le changé, j'ai eu un soucis de compréhension en lisant la doc et j'ai cru qu'il fallait que j'alloue un sous réseau pour le tunnel.
M'enfin c'est comme ça pour la maquette, j'y touche plus mais quand je le mettrais en place ça changera surement- une fois le tunnel établi, pfSense connaît la route vers 192.168.0.0/24 (celle-ci passe par le tunnel donc la GW est 172.16.1.xxx)
Tu pense ?
Quand je fais un traceroute depuis le LAN pfSense vers 192.168.0.80 j'obtiens ceci :1 192.168.1.1 1.220 ms 0.952 ms 0.997 ms 2 * 80.10.124.140 2.332 ms !X * 3 * * 80.10.124.140 1.979 ms !X 4 80.10.124.140 1.928 ms !X * * 5 * 80.10.124.140 1.666 ms !X * 6 * * * 7 * * *
Si il passais par le tunnel il devrais me retourner 172.16.0.2 qui est le bout du tunnel.. Non ? Ou au moins 172.16.0.1 (Patte LAN pfSense, puis 172.16.0.2 Patte Tun0 du RPI)
- les machines sur le réseau A ayant pfSense comme gateway par défaut, les requêtes vers 192.168.0.x vont passer par le tunnel sans qu'il soit besoin de définir de route statique, à la main, de part et d'autre.
J'ai juste jusque là ?
Normalement oui mais du coup je suis pas sur avec le traceroute.
Si oui:
- je ne comprends pas quel est le problème (au delà du fait que la réponse au ping n'est pas nécessairement activée partout
- je ne comprends pas pourquoi nous aurions un filtrage de la part de 80.10.xx.xxx (même si physiquement ça passe par là, nous sommes "dans" le tunnel n'est-ce pas ?)
Je continue ma lecture ;-)
Il n'y a pas de filtrage, il y a bien un FW mais j'ai ajouté une règle pour ne rien filtrer sur la destination 192.168.0.80 donc le RPI.
Puis le tunnel est établis donc tout devrais passer dedans.Je fais des ping, cas l'objectif est de faire du monitoring avec notre ami Nagios, et il me semble que le check_host_alive passe par de l'icmp :)
Je te donne beaucoup de lecture et peut être un mal de tête, encore et encore merci :)
-
Donc oui il y a bien un truc dans le potage ;D car depuis le client VPN, une fois le tunnel établi, la route vers le(s) réseau(x) connecté(s) au serveur devrait être connue et publiée.
Je n'ai pas fait de test avec OpenVPN de pfSense (mais j'en ai déployé plein d'autres ;)) et si l'advertising est configuré correctement, alors cette route est publiée.
Dans le cas contraire, pas étonnant que ça ne marche pas.Pour en revenir au subnet associé au tunnel lui même, dans le cas d'un tunnel qui sert à raccorder 2 réseaux, un netmask en /30 suffirait puisque ça contient 2 hosts, soit un par extrémité du tunnel ;)
Mais c'est du détail et ne gène en rien le fonctionnementUne fois que tu as établi le tunnel, vérifie quelles sont les routes de part et d'autre avant de faire plus de tests ;-)
-
Hello,
Je viens vous donner des new, je suis toujours bloqué mais je n'ai plus ce prblème de de "Packet filtered"Alors niveau VPN j'ai monté un tunel Site to Site avec OpenVpn.
Les configuration sont sensiblement les même.Mon tunnel est bien établis sur OpenVPN et le client RPI arrive à ping le LAN pfSense.
Pour l'instant c'est comme avant.Je n'arrive pas à joindre dans l'autre sense mon LAN RPI.
J'arrive quand même à ping le tunnel VPN.Je pense qu'ici c'est un simple problème de route.
Je vais donc étudier le problème dans le sens LAN pfSense vers LAN RPIPour commencer la route par défault de mon LAN pfSense est pfSense.
Donc les paquet devrais être bien acheminé vers le pfSense.
Ensuite niveau pfSense la route pour joindre mon réseau 192.168.0.X est bien le tunnel VPN
Donc la aussi ça devrais être bon.Niveau route sur le RPI j'ai du mal a saisir si la configuration est bonne ou pas.
Table de routage IP du noyau Destination Passerelle Genmask Indic Metric Ref Use Iface default 192.168.0.1 0.0.0.0 UG 0 0 0 eth0 10.0.8.0 * 255.255.255.0 U 0 0 0 tun0 172.16.0.0 10.0.8.1 255.255.255.128 UG 0 0 0 tun0 192.168.0.0 * 255.255.248.0 U 0 0 0 eth0
Faut-il que j'ajoute une route pour lui dire tout se qui arrive de tun0 a destination de 192.168.0.0/21 doit sortir sur eth0 ?
-
le serveur VPN est ici pfSense. Lorsque le client établi le tunnel, le serveur informe le client que la route vers le réseau (LAN) du serveur passe par le tunnel.
Dans ce que tu veux faire, c'est un poste sur le LAN du serveur VPN qui veut joindre un poste sur le LAN du réseau "client"Ceci nécessite une route décrivant le tunnel comme route pour le réseau client, ce qui semble être le cas.
Peux-tu afficher ici les routes présentes sur pfSense une fois le tunnel établi ? -
Merci Chris pour l'aide que tu m'as apporté sur Skype/Mail.
Mon problème n'es pas résolus mais je vais reposer les choses dans un nouveau topic avec un titre explicite et une présentation concrète des routes règles FW.
J'ai tellement manipulé tout ça que vous serez perdu et perdrais du temps avec des shéma plus à jour ou mal décris.