[RESOLU] IP MASQUERADING sous Debian

Bonjour tout le monde.

Voilà je viens de m’installer un serveur sous debian (j’ai pas mal lutté pour ça car je débute dans le monde de linux) et pour permettre à mon serveur de rediriger la connexion sur mon autre ordi, je dois a chaque redémarrage tapper la commande “iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.2 -j MASQUERADE” et c’est assez ennuyeux.

Donc comment faire pour automatiser cette tache ?
Au fait j’ai regardé, je n’ai pas de iptables dans /etc/init.d/ est ce normal ?

Autre ptite question au passage : c’est quoi la commande pour connaitre dans quelle initialisation on est ?

Merci

Y a pas de script iptables dans ton init.d ??? Pas normal.

Normalement tu as juste à saisir toutes tes règles et ensuite, tu fais un “/etc/init.d/iptables save”

Pour le runlevel, regarde la doc de la commande “init”. Et jette un oeil au fichier /etc/inittab

ok merci je vais essayer ca.
Mais par contre la seule regle que j’ai essayé c’est celle que j’ai écrite plus haut. Ca craint ?

Pour le fichier /etc/inittab j’ai ça au début :

The default runlevel.

id:2:initdefault:
ca veut dire que c’est le init 2 qui est lancé non ?

Edit: Je viens de voir que oui apparement c’est celui là qui est lancé

Dans /etc/ je n’ai pas non plus de rc.d, a chaque fois il y a un numéro du genre rc1.d. Ca pose probleme ?

Les rcX.d sont dans un sous repertoire. Je n’ai pas de Debian sous la main pour t’en dire plus.

Pour le runlevel, le inittab t’indique uniquement les runlevels possibles et le runlevel par défaut. Dans ton cas, si tu n’a passé aucun paramètres pour changer de runlevel, tu est en init2.

Pour tes règles, ça dépend de ce que tu veux faire. Là, tu es en train de masquer l’adresse tout ce qui provient de 192.168.0.2 et qui ressort par l’interface réseau eth0.

sur une debian les dossiers de runlevel sont directement dans /etc/rcX.d, ca change de redhat/fedora :wink:

pour ta régle, ce que je fais moi c’est un pti script dans /etc/init.d dans ce style

tu le rend executable avec un “chmod +x” sur le fichier et tu en fait un lien vers /etc/rc2.d avec “ln -s” (je te laisse chercher un peu ;))

tu n’a plus qu’a sauvegarder tes régles iptables actuelles en faisant [quote=""]
iptables-save > /chemin_vers_tes_régles
[/quote]

et a chaque démarrage il executera le script donc t’activera le routage et restaurera tes régles :wink:

Dans le fichier /etc/network/interfaces, pour l’interface concernée (eth0), rajoute:
[fixed]post-up iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.2 -j MASQUERADE[/fixed]
Cette ligne sera exécuté àprès chaque démarrage de l’interface (ifup xxx)
=> man interfaces

jdloic je viens d’essayer ton truc rapido ca marche pas, je vois bien que ca l’exécute car a la fin, lorsque le serveur est lancé il est écrit : ip_tables: © blabla … enfin bref la meme chose que si je le lancais manuellement. Mais ca ne marche pas…

dg-switcher ta méthode ne marche pas non plus avec mon serveur :frowning:
J’ai pourtant créé un fichier dans /test/ qui s’appelle iptables.txt que j utilise pour iptables-save
J’ai ensuite créé un fichier comme ceci : “nano /etc/init.d/script_connection” dans lequel j’ai mis ton script sauf le "echo 1 > /proc/sys/net/ipv4/ip_forward " car je l’ai déja activé dans un fichier je sais plus ou :wink:
ensuite j’ai fait le chmod +x
Ensuite j’ai fait : "ln -s /etc/init.d/script_connection /etc/rc2.d/connection

Je pense que je ne me suis pas trompé et ca ne marche pas :frowning:

Aucune ne marche y compris celle du IP Masquerade HOWTO à l’adresse http://ipmasq2.cjb.net/

Je pense que vos solutions sont correctes mais que ca vient de mon serveur grr ! Mais d’où ?

le fichier de régles iptables doit etre généré par iptables, il ne faut pas taper vos régles dedans mais les taper en console puis une fois que toutes les régles sont tapées, il faut lancer la commande

iptables-save > /chemin/des/régles

ca génére un fichier qui a cette syntaxe:

je mes ces régles a titre d’exemples, ne les utilisez que si vous savez les modifier :wink:

Si tu pouvais nous donner le message d’erreur en entier, ça aiderait…

dg-switcher ==> c’est ce que j’ai fait mais ca change rien :frowning:
Par contre je veux bien que tu me dises ou je peux trouver des tutos pour apprendre a le paramétrer car c’est vrai que le “-A walltable -m state --state RELATED,ESTABLISHED -j ACCEPT” par exemple ca me parle pas trop :wink:

jdloic ==> alors en fait ce n’est pas un message d’erreur puisque ca apparait aussi après que j’ai tapé a la main au démarrage la ligne : “iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.2 -j MASQUERADE”.

Ce message apparait, dans le cas de l’utilisation du script juste avant :“Debian GNU/Linux 3.1 nom_du_serveur tty1”

Ce message est le suivant:
“ip_tables: © 2000.2002 Netfilter core team
ip_conntrack version 2.1 (6144 buckets, 49152 max) - 296 bytes per conntrack”

T’as bien activé le forwarding d’adresse?
=> ip_forward=yes dans /etc/network/options

oui

edit : mais des que je retappe la commande ca marche de nouveau

tu mets ton script avec tes règles iptables dans /etc/network/if-pre-up.d/ et il sera chargé à chaque demarrage de ton interface

dans le meme style tu peut faire un script avec certaines commande executé à chaque extinction de ton interface dans
/etc/network/if-pots-down.d/

Ca ne marche pas non plus :frowning:

J’en ai marre je sais pas pourquoi ca marche pas avec moi c’est chiant !

Je te conseille la Formation Debian GNU/LinuxAlexis de Lattre[/url] et surtout la partie [url=http://people.via.ecp.fr/~alexis/formation-linux/firewall.html]N. Firewalling et partage de connexion Internet, bien que la doc entière ne soit que pur bonheur

Sa méthode est de placer un script qui fait tout dans /etc/network/if-pre-up.d/ , il sera donc automatiquement lancé après le montage de chaque interface réseau (enfin pour un script bien fait, comme celui qu’il fournit, même si tu as 2 interfaces, ça ne pose pas de prolèmes), j’ai toujours fait ça et ça a toujours marché

Bon Spider j’ai mis les script de ton lien. Alors là ca marche mais pas encore entièrement automatiquement car j’ai besoin de lancer la commande “/etc/init.d/networking restart” pour avoir le net sur l’autre ordi.

Une solution ?

Merci en tout cas :slight_smile:

et dans ton /etc/network/interface, tu éclares bien que tes interfaces doivent être montées au boot ? [quote=""]
auto lo
iface lo inet loopback

Internet via FreeBox

auto eth0
iface eth0 inet dhcp

Réseau local

auto eth1
iface eth1 inet static
address 192.168.1.10
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
[/quote]
Parceque j’ai rajouté des echo au script et je les vois au démarage et à chaque /etc/init.d/networking restart et même à chaque ifup ethX