# [module ip_tables] partage de connection

## Gilbow

Salut

Je me bat depuis plus d'une semaine sur mon partage de connection.

J'ai une connection ADSL par modem USB, et je veux partager ma connection avec mon deuxieme PC (aussi sous Gentoo).

Au lancement de Shorewall, j'ai ça :

- modprobe : can't locate module ip_tables

- iptables v1.2.9 : can't initialize iptables table 'filter' : iptables who ? (do you need to insmod ?)

- Perhaps iptables or kernel needs to be upgraded.

Je suppose que mon probleme viens de l'absence du module ip_tables.

J'aimerais donc savoir quelle(s) option(s) du kernel genere le module ip_tables.

Merci

----------

## kernelsensei

Je vais te donner la marche a suivre dans le 2.6 (les emplacements different un peu dans le 2.4)

Device Drivers -> Networking Support -> Networking Options -> :

[*] Network packet filtering (replaces ipchains)  --->

Dedans t'as :

IP: Netfilter Configuration  --->

tu rentres dedans et tu cherches pas trop comprendre, tu actives TOUT !

<*> Connection tracking (required for masq/NAT)

[...]

EDIT: Perso, j'ai tout en dur !

----------

## titix

Tout en module c'est pas plus mal :p mais l'important reste de tout ajouter. Après si tu est plus ou moins "novice" je te conseil de configurer ton iptable depuis webmin qui simplifie grandement le travail et te donne un meilleur aperçu qu'en ligne de commande surtout pour un partage de connexion qui peut nécessiter bon nombre de tentative avant d'aboutir à un succès.  :Cool: 

----------

## Gilbow

Bien...

la solution de tout integrer dans le noyau a resolu mon probleme.

il ne me reste plus qu'a comprendre comment configurer shorewall.

merci encore.

----------

## kernelsensei

De rien  :Very Happy: 

shorewall je connais pas trop, mais de toute maniere ce ne sont que des front end a iptables ...

sur lea-linux.org ya un tuto iptables pas mauvais ... et comme a dit titix il y a aussi webmin (que je ne connais pas trop non plus ^^)

----------

## Pachacamac

Pour partager ta connexion c'est tout simple.

Tu dois l'autoriser en activant le forwarding dans le noyau :

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

Ensuite tu dois le dire à iptables :

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

Et enfin coté client :

route add default gw ip_de_votre_passerelle

Sans oublier de mettre les serveurs dns dans /etc/resolv.conf

EDIT : j'ai oublié de dire que tout çà est effacé lors du reboot coté client comme coté serveur. Un script au demarrage est donc très utile.

----------

## Leander256

 *Pachacamac wrote:*   

> Et enfin coté client :
> 
> route add default gw ip_de_votre_passerelle
> 
> Sans oublier de mettre les serveurs dns dans /etc/resolv.conf
> ...

 

Pour spécifier la passerelle proprement (à la gentoo donc), c'est dans le fichier /etc/conf.d/net:

```
# For setting the default gateway

#

gateway="eth0/192.168.0.128"

```

Pour iptables il faut voir avec le service iptables (donc dans /etc/init.d et /etc/conf.d).

----------

## kernelsensei

 *Pachacamac wrote:*   

> Pour partager ta connexion c'est tout simple.
> 
> Tu dois l'autoriser en activant le forwarding dans le noyau :
> 
> echo 1 > /proc/sys/net/ipv4/ip_forward
> ...

 

J'ai jamais fait de echo 1 > /proc/sys/net/ipv4/ip_forward et ca marche, c'est surement du a la solution plus propre a mon gout qui est :

Editer /etc/sysctl.conf et y mettre :

```

net.ipv4.ip_forward = 1

```

----------

## Pachacamac

Je ne savais meme pas que  /etc/sysctl.conf existait. Je vais voir ce qu'il contient.

----------

## Gilbow

Je pense que mon dernier probleme est le suivant.

Au lancement de Shorewall j'obtiens ca :

iptables: No chain/target/match by that name

et je ne sais pas d'ou ca vient....

Si vos lumieres pouvaient m'eclairer, je pourrais vous laisser un peu tranquille.

Merci d'avance.

----------

## kernelsensei

habituellement iptables te sort ca quand tu lui passe une mauvaise chaine en argument ... (qui n'existe pas)

----------

## Gilbow

je suis confus mais ca ne fais aps longtemps que je tripotte linux (gentoo en particulier). ce qui fait que j'ai pas trop compris ce que tu m'as dit. 

quelques explications complementaires seraient les bienvenues...

A +

----------

## kernelsensei

un exemple :

```

iptables -A INPUT -i ppp0 -j ACCEPT

```

Fonctionne car la chaine INPUT existe

Maintenant :

```

# iptables -A EXISTEPAS -i ppp0 -j ACCEPT

iptables: No chain/target/match by that name

```

Ne fonctionne pas car la chaine EXISTEPAS n'existe pas !

----------

## Gilbow

ca s'eclaircis...

mais je ne connait toujrous pas le processus qui appelle iptables avec des parametres inexistants...

je vais reprendre ma config de shorewall depuis le debut. je trouverais peut etre la solution...

Au courant, je te tiendrais.

----------

## Pachacamac

Regarde la version d'iptables que tu as. Chez moi :

```
# iptables -V

iptables v1.2.9

```

----------

## Gilbow

ma version de iptables

```

# iptables -V

iptables v1.2.9

```

aussi, j'utilise un noyau "linux-2.4.26_pre6-gentoo", si ca peut aider.

----------

## Pachacamac

D'apres moi tu n'a pas compiler tout ce qu'il faut pour autoriser iptables a faire du NAT.

Regarde bien si tu as dans ton noyau

Device Drivers  --->

    Networking support  --->

       Networking options  --->

  │ │       [*] TCP/IP networking                                           │ │

  │ │       [*]   IP: multicasting                                              │ │

  │ │       [*]   IP: advanced router                                       │ │

  │ │       [*] Network packet filtering (replaces ipchains)  --->          │ │

  │ │                IP: Netfilter Configuration  --->                      │ │

  │ │       <*> Connection tracking (required for masq/NAT)                 │ │

  │ │       <*>   FTP protocol support                                      │ │

  │ │       <*> IP tables support (required for filtering/masq/NAT)         │ │

  │ │       <*>   Packet filtering                                          │ │

  │ │       <*>     REJECT target support                                   │ │

  │ │       <*>   Full NAT                                                  │ │

  │ │       <*> MASQUERADE target support                                   │ │

  │ │       <*> REDIRECT target support                                     │ │

Voila, j'ai à peu près çà chez moi et çà roule.

EDIT : Chez moi je l'ai mis en dur mais si tu veux le mettre en module y'a aucun problème.

----------

## Gilbow

apres avoir recompiler mon kernel avec les options manquantes, le resultat n'a pas change.

Le probleme ne pourrait pas venir d'iproute (j'utilise iproute2).

en attendant, je sens que je vais lacher lacher l'affaire, peut etre que dnas une semaine mon pc voudra bien marcher comme je le veux...   :Smile:  je suis a court de patience.

A+

----------

## Pachacamac

Je ne connais pas iproute, il faut que je regarde ce que c'est.

Là je vais faire un tour, je me pencherai sur çà ce soir.

Pourquoi tu n'utilise pas iptables ?

----------

## Gilbow

disons qu'on m'a conseille d'utiliser shorewall... alors, bete comme je suis  :Rolling Eyes:  ,  c'est ce que j'ai fais.

tout a l'heure j'ai appris par dela mes recherches, que je pouvais utiliser "simplement" iptables. (quand je dis simplement c'est pas que la syntaxe soit evidente et intuitive, mais que je contournerais peut etre mon probleme de shorewall.)

je suis en train de chercher des renseignements me permettant de configurer iptables a ma guise... j'ai trouver une page sur lea-linux qui me parait bien, mais je comprend tout de meme pas grand chose. 

Si demain j'ai toujorus rien compris, je crirais "au secour"...

a demain.... lol

----------

## Pachacamac

Tu as déjà tout ce qu'il te faut sur cette page pour configurer iptables.

Options du noyau + commandes à passer. Sers toi en, c'est là pour çà  :Wink: 

----------

## Gilbow

J'ai recuperer ce qui m'interessait de la page de lea-linux (pour ne pas faire de pub).

Et j'avoue que mon partage marche impecable...

Ile me reste je crois qu'un seul probleme a regler (en en attendant d'autres.) qui consiste a permettre au firewall d'acceder a internet... 

quand j'aurias compris comment on fais, je pense que j'aurias fais un tre grand pas dasn ce monde merveilleux qu'est celui de Linux.

voila mon script de regles pour les courageux...   :Wink: 

```
#!/bin/sh

# Activation du forwarding

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

# Alors la, on va appliquer quelques astuces

# pour empêcher les attaques de type spoofing

# et bloquer les réponses ICMP du firewall,

# pas de spoofing

if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]

then

  for filtre in /proc/sys/net/ipv4/conf/*/rp_filter

  do

    echo 1 > $filtre

  done

fi

# pas de icmp

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

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

# Pour faire bien, on va vider toutes les règles

# avant d'appliquer les nouvelles règles de firewall

iptables -F

iptables -X

# On va rajouter 2 nouvelles chaînes.

# Ceci permettra d'ajouter des nouvelles cibles qui

# auront la possibilité de loguer ce qui se passe.

# La on logue et on refuse le paquet,

# on rajoute un préfixe pour pouvoir

# s'y retrouver dans les logs

iptables -N LOG_DROP

iptables -A LOG_DROP -j LOG \

  --log-prefix '[IPTABLES DROP] : '

iptables -A LOG_DROP -j DROP

# ici, on logue et on accepte le paquet,

# on rajoute un préfixe pour pouvoir

# s'y retrouver dans les logs

iptables -N LOG_ACCEPT

iptables -A LOG_ACCEPT -j LOG \

  --log-prefix '[IPTABLES ACCEPT] : '

iptables -A LOG_ACCEPT -j ACCEPT

# On veut faire un firewall efficace,

# donc la politique a appliquer est de tout

# refuser par défaut et rajouter une a une

# les règles que l'on autorise.

# Bien sur, on a RTFM un peu et on a vu que

# l'option -P permet de définir

# la cible par défaut

iptables -P INPUT DROP

iptables -P OUTPUT DROP

iptables -P FORWARD DROP

# Pour éviter les problèmes, on va tout accepter sur

# la machine en local (interface lo).

iptables -A INPUT  -i lo -j ACCEPT

iptables -A OUTPUT -o lo -j ACCEPT

# il faut accepter que le proxy ait une connexion

# internet directe. Tant qu'à faire, on va

# mettre des états pour que ça soit bien sécurisé

iptables -A OUTPUT -o eth1 -m state \

  --state NEW,ESTABLISHED -p tcp --dport 80 -j ACCEPT

iptables -A INPUT  -i eth1 -m state \

  --state ESTABLISHED     -p tcp --sport 80 -j ACCEPT

# Permettre au LAN d'acceder au web

# Une règle de NAT suffira largement pour faire ça.

iptables -t nat -A PREROUTING -i eth1 -p tcp \

  --dport 80 -j DNAT --to-destination 192.168.0.1:3128

# SSH interne au reseau

iptables -A INPUT -i eth0 -s 192.168.0.2 -m state \

  --state NEW,ESTABLISHED -p tcp --dport 22 -j LOG_ACCEPT

iptables -A OUTPUT -o eth0 -d 192.168.0.2 -m state \

  --state ESTABLISHED     -p tcp --sport 22 -j LOG_ACCEPT

# On veut que le LAN connecté à l'interface

# eth0 ait un accès complet à internet

# qui est gerer par l'interface eth1

iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

iptables -A FORWARD -o eth0 -i eth1 -j ACCEPT

# Une petite règle de NAT avec un -j MASQUERADE

# suffira (masquerade = dialoguer avec l'adresse

# IP publique sur firewall)

iptables -t nat -A POSTROUTING \

  -s 192.168.0.0/24 -j MASQUERADE

# Toutes les règles qui n'ont pas passé les

# règles du firewall seront refusées et loguées...

iptables -A FORWARD -j LOG_DROP

iptables -A INPUT -j LOG_DROP

iptables -A OUTPUT -j LOG_DROP

# Pour faire zoli

echo " [Termine]"

```

----------

## Pachacamac

Hum çà ressemble à un copier coller  :Wink: 

Pour que le firewall accède a internet ? J'ai pas compris mais si tu parle de configurer le parefeu pour permettre un acces à internet je vais te conseiller Léa que tu as l'air d'apprécier.

----------

## Gilbow

effectivement, ca ressemble bien a du copier-coller. 

je n'ai aps encore eu le temps de me pencher sur la comprehension de ce que j'ai betement copier.

Je t'explique la situation : j'ai deux pc, 

 - le premier me sert de firewall, de station de dl, et autre msn...

 - le second me sert a msn (surtout) mais aussi a taffer (un peu) , et jouer ... pourquoi pas.

quand iptables est charger, j'ai internet sur le second mais plus sur le premier... (et oui, ya du progres.) quand il n'y a aps de regles pour iptables, alors a situation est inversee (normal, iptables effectue le lien entre le reseau et internet et il n'y a pas de restriction...).

J'aimerais avoir iternet sur les deux pcs simultanement...

----------

## Pachacamac

T'as essayé de mettre les règles minimum pour iptables ?

En fait juste pour ton routage tu pe mettre dans le script :

```

#!/bin/sh 

# Activation du forwarding 

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

# pas de icmp 

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

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

# Pour faire bien, on va vider toutes les règles 

# avant d'appliquer les nouvelles règles de firewall 

iptables -F 

iptables -X 

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

# Pour faire zoli 

echo " [Termine]"
```

Voila, c'est tout simple et tes 2 ordis auront un accès simultané sur internet !

[EDIT] Ils n'y aura plus de protection par le parefeu avec ce script

----------

## Leander256

 *Gilbow wrote:*   

> Ile me reste je crois qu'un seul probleme a regler (en en attendant d'autres.) qui consiste a permettre au firewall d'acceder a internet... 
> 
> ```
> iptables -P INPUT DROP
> 
> ...

 

Ton problème est là: tu interdis les connexions entrantes et sortantes sur ta passerelle, en effet tandis que INPUT et OUTPUT sont uniquement pour la machine elle-même, FORWARD concerne uniquement les autres machines.

Il te faut rajouter dans ton script les lignes suivantes (par exemple après l'autorisation des connexions sur l'interface lo):

```
iptables -A OUTPUT -o eth1 -m state --state NEW,ESTABLISHED -p tcp -j ACCEPT

iptables -A INPUT  -i eth1 -m state --state ESTABLISHED -p tcp -j ACCEPT

```

Tu peux à cet effet modifier les lignes suivantes déjà présentes (et rendues inutiles):

```
iptables -A OUTPUT -o eth1 -m state \

  --state NEW,ESTABLISHED -p tcp --dport 80 -j ACCEPT

iptables -A INPUT  -i eth1 -m state \

  --state ESTABLISHED     -p tcp --sport 80 -j ACCEPT

```

A ce moment-là tu acceptes toute tentative de connexion vers internet, mais aucune depuis internet, sans restriction de port (i.e. pas que le port 80 comme avant).

----------

## Pachacamac

Si tu n'autorise rien depuis internet tu va quand meme recevoir le retrour des paquets ?

----------

## kernelsensei

le RELATED,ESTABLISHED permet de recevoir les paquets si TU as fait une REQUETE, c a d que rien ne rentrera si tu ne demande pas ! (normalement)

moi ma regle differe un peu

```

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

```

je ne precise pas l'interface ni le port !

----------

## Gilbow

Je vous remercie tous d'avoir resolu un a un mes probleme. 

Mon firewall, ne bloque rien, mais permet le plus important , le partage...

je verais renforcer le firewall quand j'aurais un peu de temps et beaucoup de patience...

Voila...   :Very Happy: 

----------

## kwenspc

bon j'ai envie de faire la même chose là, j'ai un pc qui va servir de passerelle (il a 2 cartes rézo)

eth0 --> adsl

eth1 --> LAN

j'ai compris pour les règles tout ça c'est ok. (c vrai que la doc de lea-linux est bien) 

et cependant (je vais passer pour un lame mais c po grave) : vous parler du script mais lequel? iptables.sh qu'est dans /etc/init.d ?

où doit-on inscrire nos règles?

----------

## Pachacamac

Le script c'est toi qui le fait pour que les règles soient prises en compte au demarrage.

Sur Léa c'est firewall.sh il me semble, mais tu lui donne le nom que tu veux.

----------

## kwenspc

bah oui mais où je le met???

imagines je le met dans /var/trucmuche/bidule

et hop si je fait rc-update add iptables default

ben ouske tu crois que ce service va chercher mon script?   :Laughing: 

il va pas deviner...

en plus tu dis qu'on lui donne le nom qu'on veut...euh comment il devine là encore que ton fichier de règles s'appelle tsointsoin.sh  ?

donnes moi directement ton exemple : où est ton fichier de règles, comment se nomme-t-il et comment a tu fais pour que le service iptables sachent le trouver?  s'il te plaît   :Smile: 

(j'ai ma passerelle qu'attend là à côté de moi de pouvoir enfin servir  lol)

----------

## guilc

tu exécutes ton script, ensuite, tu fais "rc-update /etc/init.d/iptables save"

Comme ça tes regles sont sauvegardées.

Pour les commandes de type echo "1" > /proc/sys/net/ipv4/ip_forward , regarde du coté de /etc/sysctl.conf, y a des lignes en modele, tu comprendra vite comment ça marche  :Wink: 

----------

## kwenspc

là ça a l'avantage d'être clair   :Smile: 

merci guilc 

(bon c vrai aussi que je suis feignant et impatient   :Razz: , j'aurais pu chercehr un peu plus par moi-même...)

----------

## Pachacamac

J'ai dit que tu pouvai lui donner le nom que tu voulai. Mais nullement que si tu voulai utiliser rc-update il pouvai etre n'importe ou... Quoique si tu fais un lien çà marche.

Pour se servir d'rc-update tu as la doc sur le site de gentoo, çà pe aider

----------

## kwenspc

Pachacamac : oki, je suis pas réveillé j'ai un peu de mal ce matin. (oué enfin on est déjà après-midi...)

c'est bon là tout devrait fonctionner 

thx!

----------

## kwenspc

ça marche pas...hum hum?

bon j'ai pas mis les lignes concernant l'icmp pour pouvoir pinguer...ça veut pas.

le partage n'est pas lancé puisque a priori la résolution de nom ne fonctionne pas (ni sur mon pc de bureau ni sur la passerelle)

je n'ai pas accès au net alors même que ma connexion adsl est bonne 

j'ai essayé les 2 scripts qui était donén en page 1 de ce thread et rien à faire. 

(j'ai bien changé ce qu'il fallait selon ma config réseau etho --> internet et eth1 --> lan)

rien à faire, j'ais essayé plusieurs options ça veut pas  :/

kk1 voit - il  d'où ça pourrait venir?

----------

## kwenspc

bon je lis la doc je vais tout faire moi-même, depuis le temps que j'avais envie de m'y mettre tiens    :Very Happy: 

je vais y aller pas à pas !

----------

## kwenspc

Bon j'ai refait un scirpt iptable à partir de ceux existant, je pense avoir bien compris le fionctionnement et là je dois dire que je comprends pas pkoi ça ne marche pas..

ma config :

etho est l'interface relié à mon modem...donc ppp0 passe par eth0 (ip : 192.168.0.1)

eth1 est l'interface relié à mon rézo (ip : 192.168.0.2)

mon pc de bureau a une carte rézo eth0 d'ip 192.168.0.3

avce un gateway de "eth0/192.168.0.2"

voilà mon fichier de config : 

```

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

iptables -F

iptables -X

iptables -N LOG_DROP

iptables -A LOG_DROP -j LOG \

  --log-prefix '[IPTABLES DROP] : '

iptables -A LOG_DROP -j DROP

iptables -N LOG_ACCEPT

iptables -A LOG_ACCEPT -j LOG \

  --log-prefix '[IPTABLES ACCEPT] : '

iptables -A LOG_ACCEPT -j ACCEPT

iptables -P INPUT DROP

iptables -P OUTPUT DROP

iptables -P FORWARD DROP

iptables -A INPUT  -i lo -j ACCEPT

iptables -A OUTPUT -o lo -j ACCEPT

#ssh accepte

iptables -A INPUT -i eth1 -m state \

  --state NEW,ESTABLISHED -p tcp --dport 22 -j LOG_ACCEPT

iptables -A OUTPUT -o eth1 -m state \

  --state ESTABLISHED     -p tcp --sport 22 -j LOG_ACCEPT

iptables -A INPUT -i ppp0 -m state \

  --state NEW,ESTABLISHED -p tcp --dport 22 -j LOG_ACCEPT

iptables -A OUTPUT -o ppp0 -m state \

  --state ESTABLISHED     -p tcp --sport 22 -j LOG_ACCEPT

#ftp accepte

iptables -A INPUT -i eth1 -m state \

  --state NEW,ESTABLISHED -p tcp --dport 21 -j LOG_ACCEPT

iptables -A OUTPUT -o eth1 -m state \

  --state ESTABLISHED     -p tcp --sport 21 -j LOG_ACCEPT

iptables -A INPUT -i ppp0 -m state \

  --state NEW,ESTABLISHED -p tcp --dport 21 -j LOG_ACCEPT

iptables -A OUTPUT -o ppp0 -m state \

  --state ESTABLISHED     -p tcp --sport 21 -j LOG_ACCEPT

iptables -A FORWARD -i eth1 -o ppp0 -j ACCEPT

iptables -A FORWARD -o eth1 -i ppp0 -j ACCEPT

iptables -t nat -A POSTROUTING \

  -s 192.168.0.0/24 -j MASQUERADE

iptables -A FORWARD -j LOG_DROP

iptables -A INPUT -j LOG_DROP

iptables -A OUTPUT -j LOG_DROP

```

voilà c tout...

et ça ne fonctionne pas, impossible d'avoir de résolution de nom où d'accéder à quoique ce soit...  :Sad: 

y aurait-il une erruer dans ce fichier?

ah oui aussi quand le service iptables ce lance il me met que "-ppp0" comme interface c pas pris en compte (forcément...y a un "-" devant)

or je suis sûr qu'il y a aucun "-" devant un ppp0 dans mon script.

j'ai bien éxécuté mon script , fait un iptables-save et tout...rien à faire il me met cet erreur là (qui vient de mon tout premier script que j'ai foiré)

des suggestions?

----------

## Leander256

 *kwenspc wrote:*   

> ma config :
> 
> etho est l'interface relié à mon modem...donc ppp0 passe par eth0 (ip : 192.168.0.1)
> 
> eth1 est l'interface relié à mon rézo (ip : 192.168.0.2)
> ...

 

Ce n'est pas normal que eth0 et eth1 aient des adresses IP appartenant au même sous-réseau (je suppose que tu as laissé 255.255.255.0 comme masque par défaut), ça empêche le routage correct de tes paquets. Donc il faudrait savoir pourquoi l'interface reliée au modem reçoit l'adresse IP 192.168.0.1, peut-être est-ce une erreur parce que tu n'as pas enlevé /etc/init.d/net.eth0 ?

----------

## kwenspc

euh ptet oui, si je met juste ifconfig eth0 up sans ip sans rien ça devrait suffire.

mais c bizzare puisque sur mon pc de bureau eth0 a une ip à lui, un mask et tout et ppp0 se greffe dessus sans pb...et je peus atteindre mon pc de bureau avec mon portable au travers d'eth0 du pc de bureau...

enfin j'essaierais pkoi pas oui 

je vais passer en sous-réseau 192.168.1.0 pour le LAN ça facilitera ptet

----------

## Pachacamac

Pour le DNS faut que tu ai sur chaque poste au moins un serveur dans /etc/resolv.conf

----------

## kwenspc

oui c'est réglé ça aussi  :/ 

j'ai bien mes dns sur mes 3 machines serveur/pc/portable

----------

## Pachacamac

Ben alors c'est bon si tu fais ce que je t'ai dit dans mon dernier post sur la pge 1 le partage doit fonctionner.

----------

## kwenspc

non justement ça ne marche pas, j'ai bien les dns dans les resolv.conf et tout, j'ai un bon script mais ça ne marche pas.

j'ai pas eu le temps de tester d'autre soluce

je vous tiens au courant (à mon avis ça doit être un problème de sous-rézo comme le pense Leander256)

----------

## Pachacamac

T'as fait des sous réseaux pour ton réseau perso ?    :Shocked: 

Bref verifie que tu ai bien le routage dans iptable 

```
cat > /proc/sys/net/ipv4/ip_forward 
```

 doit te retourner 1

Ensuite liste les règles d'iptables :

```
 iptables -t nat -L 
```

doit te retourner (si t'as fait avec ce que je t'ai donnéà savoir iptables -A POSTROUTING -t nat -o ppp0 -j MASQUERADE )

Chain PREROUTING (policy ACCEPT)

target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)

target     prot opt source               destination         

MASQUERADE  all  --  anywhere             anywhere 

Chain OUTPUT (policy ACCEPT)

target     prot opt source               destination 

Ensuite sur le client tu passe la commande

```
 route 
```

qui doit te retourner : 

Table de routage IP du noyau

Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface

192.168.0.0     *               255.255.255.0   U     0      0        0 eth0

loopback        localhost       255.0.0.0       UG    0      0        0 lo

default         192.168.0.2    0.0.0.0         UG    0      0        0 eth0 

Pour continuer le test un ping de ton poste client vers celui qui a la connexion s'impose. 

```
ping 192.168.0.1
```

Ensuite un ping du client vers une @IP sur le net. Par exemple

```
 ping 217.12.3.11
```

Si c'est ok termine par un ping vers une adresse FQDN sur le net comme 

```
ping www.yahoo.fr
```

Ensuite tu nous tiens au courant de tes avancés.

----------

## kwenspc

hum dis moi iptables -X et ipatbles -F ça vide bien entièrement les règles?

et si je fais un iptables-save après il va en fait sauver quelque chose qui ne contiendra pas de règles?

donc si je redémarre le service iptables je ne devrais plus avoir de règles...

or là il me charge toujours la meme table de règles...foireuse en plus.

j'ai faire de nouvelles modif à mon fichier, l'éxecuté, sauvegardé les nouvelels règles et relancés iptables...il me sort toujours mes vieilles errues de script que j'ai fait en début de journée   :Confused: 

il existe une option pour forcer le vidage complet?

----------

## Pachacamac

En theorie lorsque tu redemarre iptables pouf t'a plus rien. Mais tu as l'air d'avoir sauvegardé tes regles donc faire ce que t'as dit me parait etre une bonne idee.

iptables -t nat X et -L non ? pour vider la table nat

----------

## kwenspc

oué bon super...il doit y avoir une couille dans le paté et ça viens pas des scripts c'est sûr.

j'ai fait ta manip' à la lettre près  :Very Happy: 

ben...le iptables -t net -L est trés bavard il me sort 20 fois la même lignes all anywhere anywhere, y en a d'autres qui s'y melent 192.168.0.0/24 anywhere et ainsi de suite.

ça fait une bonne 30aine de lignes...

et toujours cette merde d'erreur de règles soi-disant  :

warning: weird character in interface '-ppp0' (No aliases etc...)

or CETTE erreur a eu lieu sur ma première version du script et a été trés vite corrigée...et il me la notifie encore!

j'ai beau flushé à donf les tables, ré-executer mon script (mainte fois vérifié) et sauvegardé l'etat de la table  : rien. ça bouge pas d'un pouce   :Sad: 

ah aussi, on est d'accord qu'avec ta règle icmp n'est pas bloqué?

bon ben impossible d'atteindre ma passerelle à partir d'un ping de mon pc de bureau...et mieux que ça : quand je fais un ping SUR ma passerelle d'une de ces ip (eth0 par ex) il me sort ça :

ping 192.168.0.1

ping: sendmsg: Operation not permitted

coool    :Mad: 

je dois avoir un truc de merdé je ne sais où mais ces pas ta manip ni ton scirpt ni le mien qui merdent ça c sûr...

----------

## Pachacamac

Un couille dans le paté t'es sur ? S'il n'y en avait qu'une çà serai déjà bien.

Je te conseille de faire un

rc-update -s pour voir les scripts qui sont au demarrage. Tu dois en avoir plusieurs qui lancent plusieurs règles.

Lorsque tu fais un flush des règles et que tu ne redemarre surtout pas iptables il te sort quoi avec iptables -t nat -L ?

----------

## kwenspc

nivo réseau il y a net.eth0, net.eth1, net.ppp0, rp-pppoe, iptables et domainname ainsi que hostname

le reste n'a aucun rapport avec le réseau ou en tout cas pas directement et surement pas avec netfilter...

j'ai flushé la tables de règles affiché les regles nat : rien n'a changé

je suis un peu interloqué je dois dire   :Sad: 

----------

## kwenspc

ah par contre la table filter est vide...mais le contenu de la nat est toujours le même.

mais en y regardant de plus près je me dis que la table nat ne pose pas problème comme cela

donc je vois pas ce qui m'interdis les ping et la résolution de nom

car en plus en faisant un cat sur /proc/sys/net/ipv4/fichier concernant les echo icmp j'ai bien la valeur 0...donc ça ça ne devrait pas bloquer

...

----------

## Pachacamac

Tu as fait 

```
 iptables -t nat F 
```

 et 

```
  iptables -t nat -X 
```

 ?

Ce qui t'interdis de faire les pings ? Hum probablement un 1 dans 

```
cat /proc/sys/net/ipv4/icmp_echo_ignore_all
```

Le fais de supprimer les règles d'iptables ne permet pas de changer de facto ce que tu as passé dans le scrip auparavant...

Les portes de l'enfer sont au bout d'une grande allée pavé, ici au paradis nous n'avons que des chemins sinueux mais qu'est ce que l'on s'amuse !   :Twisted Evil: 

----------

## kwenspc

nan justement j'ai bien 0 dans les fichier gérant les echo icmp...

(je l'ai dit plus haut mais c vrai que j'ai fait un edit pour ça...)

j'avais oublié de vider la nat avec -F dslé . 

bon là elle est bien vide.

je réexecute mon script...j'ai une nat  propre   :Smile: 

merci là elle est vraiment propre et comem tu as dis

sinon pas de ping...

mes fichiers sont vraiment tous à zéro pour icmp_echo_ignore_all, icmp_echo_ignore_broadcasts et icmp_ignore_bogus_error_response

hum hum...   :Confused: 

----------

## kwenspc

si si le ping marche tiens là maintenant (bon j'ai arreté iptables par contre)...

je relance le service, ré-excute mon script, et sauve la table on verra bien

je vais relancé le service ensuite pour voir si il a "oublié" cette vieille erreur

yessss! cette fois ça marche  :Very Happy: 

j'esais de suite la partage et là à mon avis : pu de pb 

Thanks Pachacamac et merci de ta patience  (qualité que je n'ai pas eu moi-même au début...  :Wink: )

----------

## kwenspc

g parlé trop vite    :Crying or Very sad: 

sniffff

je peus pas pinger ma passerelle à partir de mon pc de bureau...

j'ai tout bien configuré pour atteindre les dns tout ça...rien à faire.

la résolution de nom est foireuse

quand je ping à partir de mon pc de bureau...tout les paquet sont lost mais il essais toujours...alors que sur ma passerelle c encore mieux il me met direct host unknown comme ça il va encore moins loin.

donc pour le moment : pas de partage de connexion  :Crying or Very sad: 

bon j'essaierais demain là j'en ai marre. je vais révérifier la table de routage, c pas iptable qui merde maintenant on le sait (bon ila a quand même fallu que je tappe une manip à la con pour vider à fond les tables et rentrer les nouvelles...)

enfin, ben bonne nuit tout le monde

----------

## Pachacamac

Tu fais des pings à partir d'une adresse ip ou à partir du nom de ta machine pour le réseau local ?

Là je ne peux pas m'occuper de toi plus longtemps, je passe mon oral d'anglais. Je vois ça dès que je reviens.

A tout à l'heure.

----------

## Pachacamac

Me revoila.

Ce que je te conseille de faire c'est de reconfigurer l'adresse des cartes réseau, ça ne me parait pas clair cette histoire.

 *kwenspc wrote:*   

> je peus pas pinger ma passerelle à partir de mon pc de bureau... 

 

Si t'as meme pas de RL qui fonctionne ou va-t-on ?

Sur ton serveur tu fais 

```
ifconfig eth0 192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.255
```

Sur ton client : 

```
ifconfig eth0 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255
```

 et 

```
route add default 192.168.0.1
```

Si là tu ne peux pas pinger les 2 postes entre eux c'est que t'as mal branché tes cables. Bouh la honte   :Laughing: 

----------

## kwenspc

nan mon rézo est nickel...mais je pense que je vais effacer mes tables de routages. tout refaire proprement et passer à un autre kernel aussi en passant parce que celui là je sais pu ce que j'avais mis mais ça fait lgtmp qu'il est comem ça et je vais changer. (j'ai essayé le partage avec mon pc de bureau et ça marche alors...)

bon sinon iptables je connais les bases ça va.

bah merci de tes conseils sinon Pachacamac

----------

## Pachacamac

Pas de problème. Tiens nous informé de tes avancés.

----------

