Pptpd + iptables
xval
Messages postés
66
Statut
Membre
-
crabs Messages postés 909 Statut Membre -
crabs Messages postés 909 Statut Membre -
Bjr,
j'ai un preoblème avec la connection VPN en pptp sur mon serveur.
(Fedora Core2 2.6.10-1.771_FC2, pptpd-1.2.3-1, kernel_ppp_mppe-0.0.4-3dkms)
J'ai essayé avec un client windaube et c'est idem qu'avec un client linux.
Je me demande si ce n'est pas mon firewall iptables qui bloque quelque chose.
La connexion commence bien à s'établire, puis : arret
Connect: ppp1 <--> /dev/pts/5
Oct 1 17:01:26 frpc000 pptpd[25334]: GRE: Bad checksum from pppd.
Oct 1 17:01:26 frpc000 pptpd[25334]: GRE: xmit failed from decaps_hdlc: Operation not permitted
Oct 1 17:01:26 frpc000 pptpd[25334]: CTRL: PTY read or GRE write failed (pty,gre)=(6,7)
Oct 1 17:01:26 frpc000 pppd[25335]: Modem hangup
Oct 1 17:01:26 frpc000 pppd[25335]: Connection terminated.
Oct 1 17:01:26 frpc000 pppd[25335]: Exit.
Il me semble pourtant avoir déja réussi à me connecté à partir du LAN.
Mais à distance, pas moyen !
je ne trouve rien dans les discussions qui puisse résoudre mon problème.
Merci de toute aide.
@+
xval
j'ai un preoblème avec la connection VPN en pptp sur mon serveur.
(Fedora Core2 2.6.10-1.771_FC2, pptpd-1.2.3-1, kernel_ppp_mppe-0.0.4-3dkms)
J'ai essayé avec un client windaube et c'est idem qu'avec un client linux.
Je me demande si ce n'est pas mon firewall iptables qui bloque quelque chose.
La connexion commence bien à s'établire, puis : arret
Connect: ppp1 <--> /dev/pts/5
Oct 1 17:01:26 frpc000 pptpd[25334]: GRE: Bad checksum from pppd.
Oct 1 17:01:26 frpc000 pptpd[25334]: GRE: xmit failed from decaps_hdlc: Operation not permitted
Oct 1 17:01:26 frpc000 pptpd[25334]: CTRL: PTY read or GRE write failed (pty,gre)=(6,7)
Oct 1 17:01:26 frpc000 pppd[25335]: Modem hangup
Oct 1 17:01:26 frpc000 pppd[25335]: Connection terminated.
Oct 1 17:01:26 frpc000 pppd[25335]: Exit.
Il me semble pourtant avoir déja réussi à me connecté à partir du LAN.
Mais à distance, pas moyen !
je ne trouve rien dans les discussions qui puisse résoudre mon problème.
Merci de toute aide.
@+
xval
7 réponses
Salut,
Je me demande si ce n'est pas mon firewall iptables qui bloque quelque chose.
As-tu désactive ton firewall (seulemant pour tester) pour voir si le problème viens de là?
Si oui alors vérifie les règles dans iptables (au moins tu sais si c'est iptables ou non), sinon alors peut être c'est un problème de configuration.
Voici quelque liens :
http://www.lemans-sansfil.net/?q=node/380
http://www.linux-tarn.org/documentation/linuxtarn/Laurent_R/PPTP/serveur/serveur-pptpd.htm
http://www.linux-sottises.net/vpn.php
http://lea-linux.org/reseau/cxion_net/adsl.html
lami20j
Je me demande si ce n'est pas mon firewall iptables qui bloque quelque chose.
As-tu désactive ton firewall (seulemant pour tester) pour voir si le problème viens de là?
Si oui alors vérifie les règles dans iptables (au moins tu sais si c'est iptables ou non), sinon alors peut être c'est un problème de configuration.
Voici quelque liens :
http://www.lemans-sansfil.net/?q=node/380
http://www.linux-tarn.org/documentation/linuxtarn/Laurent_R/PPTP/serveur/serveur-pptpd.htm
http://www.linux-sottises.net/vpn.php
http://lea-linux.org/reseau/cxion_net/adsl.html
lami20j
Slt,
Ok, merci pour les liens, je vais aller voir.
Pour désactiver iptables... je sais bien que ça me permettrait de voir si ça passe.
Mais j'ai peur de faire une co..erie et comme je suis à 9000 km du serveur, je n'aurais pas de moyens de remettre tout en route !
Je vais quand même essayé !
@+
xval
Ok, merci pour les liens, je vais aller voir.
Pour désactiver iptables... je sais bien que ça me permettrait de voir si ça passe.
Mais j'ai peur de faire une co..erie et comme je suis à 9000 km du serveur, je n'aurais pas de moyens de remettre tout en route !
Je vais quand même essayé !
@+
xval
Hi,
Bon, après avoir désactivé le filtrage par iptables, j'ai réussi à établir une connexion pptp avec ma machine distante.
C'est donc bien le filtrage iptables (NAT semblerait-il) qui bloque quelque chose.
Cependant, je ne peux pas rester sans firewall !!!
Il faut donc trouver pourquoi ça bloque et comment contourner le pb.
J'ai pourtant ajouté les port 47 (GRE) et 1723 (pptp) en ACCEPT pour iptables, mais ça ne fonctionne pas mieux.
Peut-être qu'en recupérant les DROP je pourrais savoir...
Si quelqu'un a une idée... merci d'avance
@+
xval
Bon, après avoir désactivé le filtrage par iptables, j'ai réussi à établir une connexion pptp avec ma machine distante.
C'est donc bien le filtrage iptables (NAT semblerait-il) qui bloque quelque chose.
Cependant, je ne peux pas rester sans firewall !!!
Il faut donc trouver pourquoi ça bloque et comment contourner le pb.
J'ai pourtant ajouté les port 47 (GRE) et 1723 (pptp) en ACCEPT pour iptables, mais ça ne fonctionne pas mieux.
Peut-être qu'en recupérant les DROP je pourrais savoir...
Si quelqu'un a une idée... merci d'avance
@+
xval
Essaie de fournir un shéma simplié de ton archi.
Si tu pense que c'est le NAT, l'accept ne suffit pas, il faut aussi assurer
la redirection : table nat et chaine PREROUTING
Ne pas oublier de mettre les ACCEPT dans le sens de la connexion
et ESTABLISHED/RELATED dans les deux sens sur la chaine FORWARD.
Si tu pense que c'est le NAT, l'accept ne suffit pas, il faut aussi assurer
la redirection : table nat et chaine PREROUTING
Ne pas oublier de mettre les ACCEPT dans le sens de la connexion
et ESTABLISHED/RELATED dans les deux sens sur la chaine FORWARD.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Pour analyser le probleme: Que donnes les commandes "/sbin/ifconfig" (quand le VPN marche ) et aussi
"/sbin/iptables -L -v" (quand le pare feu est active, donc VPN ne marche pas).
Je me demande quel est device reseau associe a tonVPN, est-ce "ppp0" ou autre chose ? De toute facon c'est visible avec /sbin/ifconfig.
Apres il faut regarder que sont les regles que "/sbin/iptables -L -v" affiche, en principe ca doit contenir le meme device que le VPN mais peut-etre c'est encore configure en ethernet eth0 ou eth1 etc. et ca ne bloque uniquement parce que le device ppp0 (ou le bon device si c'est autre chose) manquent dans ces regles.
Si c'est ca, ca devrait etre facile a reparer si tu es en mesure d'editer ton script iptables mais c'est delicat. S'il y a de regles eth0, etc. il faut les laisser comme elles sont et seulement ajouter de regles pour ton VPN.
"/sbin/iptables -L -v" (quand le pare feu est active, donc VPN ne marche pas).
Je me demande quel est device reseau associe a tonVPN, est-ce "ppp0" ou autre chose ? De toute facon c'est visible avec /sbin/ifconfig.
Apres il faut regarder que sont les regles que "/sbin/iptables -L -v" affiche, en principe ca doit contenir le meme device que le VPN mais peut-etre c'est encore configure en ethernet eth0 ou eth1 etc. et ca ne bloque uniquement parce que le device ppp0 (ou le bon device si c'est autre chose) manquent dans ces regles.
Si c'est ca, ca devrait etre facile a reparer si tu es en mesure d'editer ton script iptables mais c'est delicat. S'il y a de regles eth0, etc. il faut les laisser comme elles sont et seulement ajouter de regles pour ton VPN.
Bjr,
Alors, qd le VPN marche, sur le serveur, un ppp1 apparait avec ifconfig (ce qui semble normal). Pour le client, c'est ppp0 (mais il ne semble pas y avoir de pb côté client).
l'interface serveur face à l'internet est eth1 pour le ppp0 qui est sur l'internet.
eth0 est le LAN.
Quand le parfeu est actif, y a rien ! (normal, ça marche pas). Sauf qu'en fait, en espionant, ppp1 apparait et est tué de suite.
Quant à iptables -L -v , je ne vois que sur les 4 essais sur la chaine OUTPUT des paquets accept :
4 160 ACCEPT tcp -- any ppp0 anywhere anywhere tcp spt:1723
pour les autres tables/chaines, pas de DROP pas d' ACCEPT !!!!
Ce qui est étrange c'est qu'avec nmap, les ports 47 et 1723 apparaissent "closed" !
Si tu as une idée ???
Voici la partie du script concerant pptp et gre :
#[IPTABLES-CONF2] ACCEPT PPTP
/sbin/iptables -A INPUT -p tcp --dport 1723 -i ppp0 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp --sport 1723 -o ppp0 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --sport 1723 -i ppp0 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp --dport 1723 -o ppp0 -j ACCEPT
# Pour essais
#/sbin/iptables -A OUTPUT -o ppp0 -p tcp --sport 1024: --dport 1723 -m state --state ! INVALID -j ACCEPT
#/sbin/iptables -A INPUT -i ppp0 -p tcp --sport 1723 --dport 1024: -m state --state RELATED,ESTABLISHED -j ACCEPT
#[IPTABLES-CONF2] ACCEPT GRE pour PPTP
/sbin/iptables -A INPUT -p tcp --dport 47 -i ppp0 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp --sport 47 -o ppp0 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --sport 47 -i ppp0 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp --dport 47 -o ppp0 -j ACCEPT
# Pour Essais
#/sbin/iptables -A OUTPUT -o ppp0 -p tcp --sport 1024: --dport 47 -m state --state ! INVALID -j ACCEPT
#/sbin/iptables -A INPUT -i ppp0 -p tcp --sport 47 --dport 1024: -m state --state RELATED,ESTABLISHED -j ACCEPT
Merci beaucoup de l'aide de tous !
@+
xval
Alors, qd le VPN marche, sur le serveur, un ppp1 apparait avec ifconfig (ce qui semble normal). Pour le client, c'est ppp0 (mais il ne semble pas y avoir de pb côté client).
l'interface serveur face à l'internet est eth1 pour le ppp0 qui est sur l'internet.
eth0 est le LAN.
Quand le parfeu est actif, y a rien ! (normal, ça marche pas). Sauf qu'en fait, en espionant, ppp1 apparait et est tué de suite.
Quant à iptables -L -v , je ne vois que sur les 4 essais sur la chaine OUTPUT des paquets accept :
4 160 ACCEPT tcp -- any ppp0 anywhere anywhere tcp spt:1723
pour les autres tables/chaines, pas de DROP pas d' ACCEPT !!!!
Ce qui est étrange c'est qu'avec nmap, les ports 47 et 1723 apparaissent "closed" !
Si tu as une idée ???
Voici la partie du script concerant pptp et gre :
#[IPTABLES-CONF2] ACCEPT PPTP
/sbin/iptables -A INPUT -p tcp --dport 1723 -i ppp0 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp --sport 1723 -o ppp0 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --sport 1723 -i ppp0 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp --dport 1723 -o ppp0 -j ACCEPT
# Pour essais
#/sbin/iptables -A OUTPUT -o ppp0 -p tcp --sport 1024: --dport 1723 -m state --state ! INVALID -j ACCEPT
#/sbin/iptables -A INPUT -i ppp0 -p tcp --sport 1723 --dport 1024: -m state --state RELATED,ESTABLISHED -j ACCEPT
#[IPTABLES-CONF2] ACCEPT GRE pour PPTP
/sbin/iptables -A INPUT -p tcp --dport 47 -i ppp0 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp --sport 47 -o ppp0 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --sport 47 -i ppp0 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp --dport 47 -o ppp0 -j ACCEPT
# Pour Essais
#/sbin/iptables -A OUTPUT -o ppp0 -p tcp --sport 1024: --dport 47 -m state --state ! INVALID -j ACCEPT
#/sbin/iptables -A INPUT -i ppp0 -p tcp --sport 47 --dport 1024: -m state --state RELATED,ESTABLISHED -j ACCEPT
Merci beaucoup de l'aide de tous !
@+
xval
Je ne connais pas assez bien tout ca pour en etre sur et peut-etre je me trompe mais ne faut-il pas ajouter de regles avec "ppp1" pour ouvrir le serveur ??
Sinon le script, qui contient a la fin certainement une regle defaut pour tout fermer, ne laissera pas passer les requetes ppp1 si on n'ouvre pas express.
Au moins ca risque de fermer l'acces VPN meme si c'est techniquement demarre.
Sinon le script, qui contient a la fin certainement une regle defaut pour tout fermer, ne laissera pas passer les requetes ppp1 si on n'ouvre pas express.
Au moins ca risque de fermer l'acces VPN meme si c'est techniquement demarre.
C'est ce que je pensais aussi... et c'était peut-être la raison pour laquelle gre referme pppd , n'étant pas autorisé à envoyer sur ppp1.
Je vais essayer de faire un script iptable lancé par /etc/ppp/ip-up.local qui rajoutera ppp1, en accept partout (c'est un LAN interne finalement, il devrait être sur).
On verra bien.
Merci
@+
xval
Je vais essayer de faire un script iptable lancé par /etc/ppp/ip-up.local qui rajoutera ppp1, en accept partout (c'est un LAN interne finalement, il devrait être sur).
On verra bien.
Merci
@+
xval
Slt,
Voici la config, les services devant être accessibles via le Inet sont www,dns,smtp,ftp,ssh,pptp. C'est une config classique !
Ces services sont bien sur, sur le serveur qui fait aussi passerelle.
intranet----------eth0--- Serveur ---eth1---ppp0 (pppoe)----------- internet
Les connexions du LAN vers internet fonctionnent parfaitement bien pour tous services (pop, smtp, dns, www, ftp, irc, ... ).
Je commence seulement à vraiment m'interesser à iptables et à la sécurité, et j'avoue que nombreux point sont encore assez confus.
Si tu peux (crabs) être un peu plus explicite, ça serait bien.
(crabs, tu serais pas de Lyon ???)
Merci
@+
xval
Voici la config, les services devant être accessibles via le Inet sont www,dns,smtp,ftp,ssh,pptp. C'est une config classique !
Ces services sont bien sur, sur le serveur qui fait aussi passerelle.
intranet----------eth0--- Serveur ---eth1---ppp0 (pppoe)----------- internet
Les connexions du LAN vers internet fonctionnent parfaitement bien pour tous services (pop, smtp, dns, www, ftp, irc, ... ).
Je commence seulement à vraiment m'interesser à iptables et à la sécurité, et j'avoue que nombreux point sont encore assez confus.
Si tu peux (crabs) être un peu plus explicite, ça serait bien.
(crabs, tu serais pas de Lyon ???)
Merci
@+
xval
Salut,
Tu n'as pas à priori à activer le NAT pour la configuration que tu désires mettre
en place.
je te conseilles ce HOW-TO (en anglais) qui propose un script avec iptables ainsi
que d'autre info :
http://home.swbell.net/berzerke/howto.html
Sur ce script, je pense qu'il faut remplacer ppp+ sur les 2 dernières lignes du
script par ppp1.
(Sinon, je suis pas de Lyon, né à Toulouse et vivant en région parisienne)
A+, crabs
Tu n'as pas à priori à activer le NAT pour la configuration que tu désires mettre
en place.
je te conseilles ce HOW-TO (en anglais) qui propose un script avec iptables ainsi
que d'autre info :
http://home.swbell.net/berzerke/howto.html
Sur ce script, je pense qu'il faut remplacer ppp+ sur les 2 dernières lignes du
script par ppp1.
(Sinon, je suis pas de Lyon, né à Toulouse et vivant en région parisienne)
A+, crabs