# Probleme de routage sur ma passerelle

## Arcord

salut,

je voudrais utiliser la gentoo pour faire une passerelle internet.

J'ai donc un petit PC, sur lequel j'ai installé mon modem (eci usb).

Lorsque je lance la connection elle s'établie bien, et d'ailleurs un ping sur n'importe quel site permet de le vérifier.

J'ai activé le forwarding en tapant: echo "1" /proc/sys/net/ipv4/ip_forward

Mais je ne parviens pas à avoir internet sur les autres PC.

Pourtant en cherchant sur google, il semblerait que cette ligne suffise pour distribuer internet sur les PC du lan.

Une fois de plus, je fais appel à vous pour m'orienter.

----------

## DuF

Les autres PCs sont bien configurés pour accéder à ta passerelle et pour utiliser ta passerelle en tant que telle ?

----------

## Arcord

Tout à fait.

Habituellement ils ont accès via un PC sous Windows dont l'Ip est 192.168.5.2.

Aussitôt lancé la gentoo, j'ai changer l'Ip de leur passerelle par défaut en 192.168.5.1 (Ip de la nouvelle passerelle).

----------

## DuF

en fouillant sur le net j'ai effectivement trouvé ta fameuse ligne, mais elle ne se suffit pas à elle toute seule pour forwarder les paquets IPs et en plus il semble que cela soit valable pour ipchains....

cf => http://newbie.linuxbe.org/linux/masq/masq.html

Si t'as un noyau en 2.4.x, tu as iptables et non ipchains, alors prends plutôt une doc traitant du sujet sur iptables !

----------

## arlequin

Question conne, tu as fait :

```

iptables -F FORWARD

iptables -A FORWARD -j ACCEPT

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

```

----------

## Arcord

Arf, je pensais que je n'étais pas obligé de me servir d'iptables dasn un premier temps, pensant que celui-ci ne faisait que firewall et n'était pas indispensable pour le routage (bien que très conseillé pour la sécurité).

Je pensais donc vérifier que cela fonctionnait avant de mettre iptables et configurer le firewall.

Bon, je m'étais fourvoyer, alors je vais l'installer et m'occuper de lui en même temps.

----------

## arlequin

Ben disons que le firewalling c'est le but premier d'iptables (ipchains aussi), mais tu en as aussi besoin pour faire le partage de connection (ip masquerading and co.). 

Voilà  :Smile: 

----------

## Farnsworth

une tres bonne doc ici: http://christian.caleca.free.fr/netfilter/

----------

## px

au lieu d'utiliser seulement iptables (qui est chiant a configurer quand meme) je te conseille de faire un tour sur www.shorewall.net.

----------

## sergio

 *Arcord wrote:*   

> salut,
> 
> je voudrais utiliser la gentoo pour faire une passerelle internet.
> 
> J'ai donc un petit PC, sur lequel j'ai installé mon modem (eci usb).
> ...

 

Pourquoi ne pas en profiter pour installer un proxy/cache internet comme Squid. C'est simple à configurer et très efficace...

A+

----------

## Doudou

moi j'utilisais un petit script :

 *Quote:*   

> doudou root # cat /etc/init.d/pat      
> 
> #!/sbin/runscript
> 
> # Doudou Made
> ...

 

Ca marchait bien jusqu'a je passe au noyaux 2.4.20. La commande de MASQUERADE a changé   :Crying or Very sad:   si quelqu'un connais la modif, je suis preneur.   :Wink: 

----------

## px

Un petit howto sympa:

http://www.tldp.org/HOWTO/Masquerading-Simple-HOWTO/

Doudou: http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&threadm=b23kpu%24ehh%2407%241%40news.t-online.com&rnum=2&prev=/groups%3Fq%3Dmasquerading%2B2.4.20%26hl%3Den%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8%26sa%3DN%26tab%3Dwg

A ce que je peux lire ici, ca n'a pas changé, il faut juste prendre la derniere version d'iptables...

----------

## Doudou

Ton lien proposait de mettre a jour IPTABLE....mouaif....y'a pas eu de mise a jour!!    :Crying or Very sad: 

Par contre je l'ai ré-ermerge (sys-apps/iptables) et ca refonctionne   :Laughing: 

Merci bien!

----------

## arlequin

Y a même un script dans /etc/init.d pour démarrer iptables (de mémoire)...

----------

## Arcord

Aie, j'ai un problème là...

J'ai emergé iptables, mais la version installée est prévue pour le kernek 2.4.20. Or, moi je n'ai que le 2.4.19.

J'ai donc fait emergé le 2.4.20, mais c'est bien toujours le 2.4.19 qui est utilisé.

je me place dans /usr/src/linux et lance make menuconfig, mais je vois en haut de la fenêtre qu'il s'agit toujours de configurer le 2.4.19. Comment puis-je passer au 2.4.20?

----------

## sergio

 *Arcord wrote:*   

> Aie, j'ai un problème là...
> 
> J'ai emergé iptables, mais la version installée est prévue pour le kernek 2.4.20. Or, moi je n'ai que le 2.4.19.
> 
> J'ai donc fait emergé le 2.4.20, mais c'est bien toujours le 2.4.19 qui est utilisé.
> ...

 

Place-toi sous /usr/src et fait :

```

ln -sf /usr/src/linux-2.4.20-gentoo-r1 linux

cd linux

make menuconfig

```

N'oublie pas de sauvegarder ton noyeau actuel pour prévenir un éventuel problème de compil du noyeau :

```

mount /boot (si ce n'est pas déjà fait)

cp bzImage bzImage-2.4.19

```

ajouter une entrée dans grub ou dans lilo pour pouvoir booter sur ton ancien noyeau (bzImage-2.4.19)

A+

----------

## Arcord

Super, merci.  :Very Happy: 

----------

## Arcord

il y a quand même encore juste une chose que je ne comprend pa bien à propos d'iptables.

Tous les sites expliquent les règles à mettre, etc... et utilisent souvent un script pour cela.

Or, iptables au démarrage restaure les règles sauvegardées, donc pas besoin de script contenant les règles puisqu'il les reprend tout seul.

Mais quand on veut faire une modification ou vérifier, je voit bien l'utilité d'avoir un script les reprenantes toutes, c'est bien plus pratique. Mais comment fait-on se genre de script?

là je viens de faire qqchose avec nano que j'ai appelé firewall.sh -> toujours des problèmes de permissions alors que je suis en root.

Donc comment fait-on?

----------

## px

le script ne te sert a rien sur la gentoo, y'en a deja un dans le /etc/init.d/iptables qui te fait tout ca.

si tu veut sauvegarder tes regles (normalement ca se fait avec le stop) tu peux toujours faire un

/etc/init.d/iptables saves

le fichier /var/lib/iptables/rules-save contient les regles qui seront chargées et sauvé par le script.

si tu veut enregistrer ses règles manuellement tu peux toujours faire un

iptables-save > /var/lib/iptalbes/rules-save.

pour les charger ca doit etre un truc du style

cat /var/lib/iptables/rules-save >iptables-restore

mais je vais repeter que tu peux utiliser shorewall, tout se trouve dans le /etc/shorewall, tu bidouilles les fichiers de facon claire et ca va lui meme tout transcrire pour iptables et lancer iptables. donc rien a faire d'autre que d'ecrire des lignes comme

ACCEPT	net	fw	tcp	80

pourquoi se compliquer la vie  :Smile: 

----------

## px

pour faire un script... j'allais oublié oups :'(

tu cree un fichier machin.sh

avec a l'interrieur:

la premiere ligne defini l'executable:

#!/bin/sh 

ou #!/bin/bash

ou #!/bin/perl 

etc...

ensuite tu met tes lignes de script

pour ton cas ca te donnerai:

iptables -F;

iptables -F -t nat;

iptables -F -t mangle;

etc...

toutes les lignes que tu tapperais a la main.

ensuite faut juste faire passer le fichier en tant qu'executable, tu fais donc un:

chmod +x machin.sh

sinon tu peux toujours l'appeler par un

sh machin.sh

ou bash machin.sh

----------

## Arcord

Ok merci pour toutes ces infos.

Je vais essayer dans un premier temps d'utiliser iptables directement. Comme je suis un newnie, je préfère voir d'abord un truc que je suis sûr de retrouver dans toutes les distributions, et quand je serais au point là-dessus je verrais shorewall (et certainement qu'à ce moment là je me dirais que cela simplifie la vie).  :Wink: 

----------

## Arcord

Pour l'instant, je suis le tutorial suivant: http://christian.caleca.free.fr/netfilter/filter.htm

pourtant lorsque je fais:

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

j'obtient le message 'iptables: invalid argument'.

Euh... je ne comprend pas bien là.

mon modem (eci usb) est bien appelé ppp0 donc je ne vois pas du tout ce qui cloche.

j'ai aussi essayé de faire:

iptables -t nat -A POSTROUTING -s 192.168.5.0/24 -j MASQUERADE (mon lan est en 192.168.5.xx), mais c'est exactement la même chose.  :Sad: 

----------

## arlequin

Moi j'ai les même arguemnts, mais pas dans le même ordre... peut-être que ça joue   :Rolling Eyes: 

```

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

```

----------

## Arcord

Non, ça ne changer rien.

Je tient à préciser que dans la configuration du noyau, j'ai tout activé dans l'onglet Ip Netfilter Configuration. Donc je ne pense pas que cela puisse venir d'un non-support du nat ou autrechose dans le noyau.

----------

## arlequin

T'as tout mit en modules ? quoique, ça ne change sûrement rien... tu peux vérifier que l'ebuild 'sys-apps/iptables' est bien installée ?

Sinon j'ai pas trop d'idée   :Rolling Eyes: 

----------

## Arcord

Oui oui, il est bien installé.

Et tout est mis en modules (de toute façon on ne peut pas le mettre directement en noyau, module est le seul choix).

J'ai cherché un peu partout, il semblerait que les dernières versions d'iptables puissent provoquer ce genre d'erreur si elles ne sont pas compilées avec le noyau qui est utilisé. Pourtant moi j'utilise le 2.4.20-r3 et c'est avec lui que je l'ai compilé.  :Sad: 

----------

## Farnsworth

quand tu as emerge iptables, ton usr/src/linux pointait bien vers ton repertoire 2.4.20-r3??

----------

## Arcord

Bonne question ça.

A vrai dire je pense que non.

Je pense que je vais supprimer iptables et refaire un emerge en m'assurant que le lien pointe bien vers le 2.4.20

----------

## px

sinon il y a toujours la solution de downgrader l'iptables  :Smile: 

----------

## Arcord

 *px wrote:*   

> sinon il y a toujours la solution de downgrader l'iptables 

 

Tu veux dire par là installer une version plus ancienne que la 1.2.7 actuelle?

Auquel cas je peux le faire avec emerge ou bien je dois chercher les sources?

----------

## px

heu... y'a que la 1.2.7a-r3 dans le portage tree... si ca marche chez les autres ca doit pas venir de la en fait  :Mad: 

tu as essayé avec le noyau 2.4.19?

----------

## Arcord

Au début j'avais le 2.4.19 et ça ne marchait pas.

L'un des messages d'erreur m'a fait croire qu'iptables 1.2.7 avait besoin d'un noyau plus récent et c'est pour ça que je suis passé au 2.4.20 (avant de comprendre que le message en signifiait pas cela).

----------

## px

il y a peut-etre un probleme dans la config de ton noyau, dans les modules du netfilter, tu as activé quoi?

----------

## Arcord

Je ne l'ai pas sous les yeux là (je ne peux malheureusement pas consacré tout le temps nécessaire à linux), mais dans le noyau, section netfilter, j'ai absolument tout mis en modules.

----------

## px

et tu les charge bien avant de faire ton iptables?

----------

## Arcord

Euh?

Moi j'avais compris que les modules se chargaient automatiquement dès qu'un programme en avait besoin.

Serais-je passer à côté de quelquechose d'important là?

Sinon je fait comment pour les charger manuellement? modprobe je suppose...

----------

## Farnsworth

normalement oui, ils sont charges a la demande.

Mais tu peux essayer plus simplement de faire en sorte que /usr/src/linux pointe bien vers le bon repertoire (le plus recent), et puis lancer un emerge iptables. (au pire, tu peux refaire tout ton kernel/modules avant iptables...).

----------

## px

je suis pas du tout certain qu'ils se chargent tout seul, tu peux check s'ils sont bien lancés avec lsmod, sinon pour les charger c'est modprobe. Tu as la liste dans le /lib/modules/

----------

## DuF

il me semble aussi qu'il se tout seul suivant le besoin, il suffit juste de charger le module iptables, tous les autres logiquement sont chargés par lui, c'est du moins ce que j'avais cru lire .....

----------

## px

ca parait logique, mais si ca se fait mal, c'est normal que ca rechine sur le MASQUERADE, sinon il y a toujours la solution de mettre le MASQUERADE en core dans le noyau

----------

## DuF

oué mais si on commence à tous mettre ce que propose iptables dans le noyau... il va vite grossir le petit   :Wink: 

----------

## px

bien sur, mais ca peut au moins donner une piste sur le probleme

----------

## DuF

vi vi je ne dis pas le contraire  :Smile: 

----------

## px

 :Very Happy: 

----------

## Arcord

Oulà, beaucoup de suggestions et je n'ai pas encore put retoucher à la machine en question.

Je vais essayer de m'yatteler aujourd'hui.

Je vais donc vérifier si les modules sont bien chargés, et si ce n'est pas le cas, je le ferais manuellement.

par contre, si ma mémoire est bonne, je ne peux pas mettre le MASQUERADE  dans le noyau mais uniquement en module (faudra que je vérifie en même temps).

----------

## px

faut que tu mette iptables en core dans le module pour mettre  les autres en core aussi, sinon tu es bloqué en modules.

----------

## arlequin

Perso, je pense que ces modules sont suffisant:

```

modprobe iptable_nat

modprobe ip_nat_ftp

modprobe ip_nat_irc

```

Le reste suit tout seul... pour être tranquil, je les ai mit dans le fichier /etc/modules.autoload. A notre tout de même que le module 'ip_net_ftp' est à charger absoluement, sinon tu n'auras plus d'accés ftp sur tes machines (c'est du vécu, lol).

----------

## Arcord

Bon, j'ai pas encore eut le temps de recompiler iptables en étant sûr et certains que le lien pointait bien vers le kernel 2.4.20, mais j'ai put regarder les modules chargés. Pour l'instant j'ai:

iptables_mangle

iptables_nat

ip_conntrack

usbcore

 et c'est tout.

----------

## px

pour le masquerade il faut pas le ipt_MASQUERADE ?  :Smile: 

----------

## Arcord

Je ne vois aucun module de ce nom.  :Sad: 

Pourtant il est bien en module dans la config du noyau.  :Shocked: 

----------

## arlequin

Je confirme, il y a bien un 'ipt_MASQUERADE.o'... chez moi, j'ai ces modules de lancés:

```
serveur32 root # lsmod | grep ip

ipt_multiport            664   0  (autoclean)

ip_nat_irc              2832   0  (unused)

ip_conntrack_irc        2752   0  [ip_nat_irc]

ip_nat_ftp              3472   0  (unused)

ip_conntrack_ftp        4032   0  [ip_nat_ftp]

ipt_MASQUERADE          1432   3  (autoclean)

iptable_nat            16408   3  (autoclean) [ip_nat_irc ip_nat_ftp ipt_MASQUERADE]

iptable_filter          1708   1  (autoclean)
```

----------

## Arcord

Et je confirme que je suis bien un idiot, j'avais fait un lsmod sans être connecté et sans avoir essayé de configurer iptables.

Après avoir retenté les manips habituelles, j'ai bien ipt_MASQUERADE.

La seule différence avec toi, c'est que le chiffre suivant le ipt_MASQUERADE est 0.

----------

## arlequin

Yep, mais je ne pense pas que ce soit important... enfin, c'est marqué qqpart dans le fichier /usr/src/linux/Documentation/modules.txt... mais bon, la flème pour changer   :Smile: 

----------

## Arcord

Bon, en tout cas, cet après-midi, j'ai fait ceci:

rc-update del iptables default

emerge unmerge iptables

-> un reboot

ln -sf linux /usr/src/linux-2.4.20jesaisplukoi

emerge iptables

rc-update add iptables default

-> et c'est toujours exactement la même chose.

----------

## px

essaye ca:

emerge unmerge iptables

rc-update del iptables

rm /usr/src/linux

ln -s /usr/src/linux-2.4.20-gentoo-r2 /usr/src/linux

cd /usr/src/linux

cp .config ../

make mrproper

cp ../.config .

make menuconfig && make dep && make clean bzImage modules modules_install install 

et avant de quitter le menuconfig, (soit tu met tout dans le netfilter configuration, ce qui serait bien comme test, sinon)

compile en core:

Networking options -> Network packet filtering

Networging optons -> NetfilterConfiguration 

	-> Connection tracking

	-> ftp protocol

	-> iptables support

	-> Connection state match

	-> packet filtering -> Reject

	-> Full NAT -> MASQUERADE

	-> FullNAT -> REDIRECT

	-> packet mangling

	-> Log target

ensuite reboot,

env-update

modules-update

emerge sync && emerge iptables && rc-update add iptables default

modprobe ipt_MASQUERADE (normalement ca devrait te dire qu'il n'existe pas mais c'est pas grave, c'est pour etre sur)

iptables -F; iptables -t nat -F; iptables -t mangle -F

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

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

/etc/init.d/iptables save && /etc/init.d/iptables start

comme cela au moins on sera sûr de la config du noyau et tout... si ca marche, il faudra optimiser le kernel. Si ca marche pas, je comprend pas.

----------

## Arcord

Super, je tente ça dès Demain (j'ai difficilement accès à ce PC le week end).  :Smile: 

----------

## arlequin

Mince, si avec ça, ça ne marche pas, c'est que tu fais exprés !!   :Twisted Evil: 

----------

## Arcord

CA MARCHEEEEEEEEEEEE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Merci à tous pour votre aide.

 :Smile: 

----------

## px

tu as fait la config speciale ou tu as tout mis en core?

----------

## Arcord

J'ai tout mis en core.

----------

## px

il reste plus qu'a optimiser maintenant :p

----------

## Arcord

Je suis justement en train de voir et tester les règles dont j'ai besoin.  :Wink: 

----------

