Routage

Bonjour à tous,

Dans mon entreprise j’aiinstallé un serveur VPN sous Windows mais pour l’atteindre de l’exterieur, je dois traverser un proxy squid sous Debian sur lequel le firewall est activé.

Sans la machine sous Debian tout marche très bien. Mais dès que je rebranche ma machine et bien le routage ne se fait pas!

J’ai configuré mon firewall de cette façon:

#!/bin/bash

eth1 = carte wan

eth0 = carte lan

a mettre dans /etc/rc2.d/

ext vers int

echo “1” > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A FORWARD -i eth0 -o eth1 -p tcp -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 1723 -j DNAT --to-destination 192.168.2.1:1723

int ver ext

iptables -t nat -A FORWARD -i eth1 -o eth0 -p tcp -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 1723 -j MASQUERADE
echo ok

Je ne suis pas l’auteur du script, mais il semble qu’il y ai une erreur.

étant novice sous Linux, Quelqu’un serait il capable de m’indiquer où se situe mon erreur?

J’ai fait un test avec openvpn mais le problème reste le même.

Merci à tous pour votre aide.

Je n’ai jamais encore utilisé openvpn, mais il semble qu’il faille ouvrir le port 1723 en tcp comme tu as fait et autoriser le traffic pour le protocole GRE.

echo "1" > /proc/sys/net/ipv4/ip_forward

Donc :

iptables -A FORWARD -m connmark --ctsate ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 1723 -m connmark --ctstate NEW -j ACCEPT

Pour autoriser les connexions entrantes vers le serveur VPN interne, et toutes les connexions établises.

iptables -A FORWARD -p gre -m connmark --ctstate NEW -j ACCEPT

Pour accepter le protocole GRE dans tous les sens pour les nouvelles connexions. Tu peux aussi la limiter par rapport à eth1 et eth0.

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Pour faire le masquerading sur toutes les connexions forwardées sortantes. C’est la chaîne FORWARD qui est censée restreindre les accès à l’extérieur depuis le réseau privé.

Et ensuite, on autorise toutes les requêtes à destination du serveur VPN, à être transférées vers lui (192.168.2.1), (si comme je le pense le protocole GRE est mis en place après la demande de connexion sur le port 1723 en tcp, alors les connexions GRE seront aussi transférées vers le serveur VPN)

iptables -A PREROUTING -i eth0 -p tcp --dport 1723 -j DNAT --to-destination 192.168.2.1

Si cela ne fonctionne pas (c’est sans garanti :p!), cela ne devrait pas être trop loin de la vérité je pense.

En tout cas, un feedback sera le bien venu.

Merci pour le coup de pouce, je vais tenter ça dés que possible et je te tien informé.
@+

Salut,
Pour openvpn c’est le port 1194
Le 1723 c’est pour Windows
coagul.org/article.php3?id_article=422

Bonsoir,
Je n’ai pas encore testé la solution mais je souhaite savoir si je peux coller ces quelques lignes dans un fichier exécutable dans le dossier rc2.d?
Merci.

Je vais y arrivé.

Dans le principe tu peux les ajouter dans un fichier pour lancement dans le run level2.

Cependant, les ajouter toutes seules comme cela ne va pas faire grand chose car il manque les autres règles à coté. Modifier le script initial dans lequel tu as pioché les règles précédentes pour prendre en compte celles que j’ai écrites, me semble être une meilleure idée. Mais il faut vérifier qu’il n’y a pas d’incohérence avec le script.

Bonjour et désolé pour le retard.

lorsque j’ajoute à mon script la ligne suivante “iptables -A FORWARD -p gre -m connmark --ctstate NEW -j ACCEPT”

j’ai le message suivant sur le test de mon script:iptables v1.3.6: Unknown arg `–ctstate’

comment puis je le remplacer?

Merci

Oups, c’est pas du connmark mais du conntrack partout, rien à voir. Si tu as d’autres erreurs du genre regarde la man page iptables :p!

Je progresse, je progresse,
Jetest ça demain et je poste dès le retour.

@+ et merci