[Résolu] Partage de connexion. Ca ne marche pas

Bonjour,

J’essaye de mettre en place un nouveau serveur dans une petite salle réseau.
Actuellement, j’ai un vieux pc sous mandriva 2006 qui sert de routeur, proxy, serveur de fichiers, d’imprimantes…

J’ai un nouveau serveur tout neuf sur lequel j’ai installé Debian 5 mais c’est plus compliqué à mettre en place qu’avec la Mandriva (où tout peut se faire par interface graphique).

Le nouveau serveur se connecte à internet, mais pas moyen de lui faire partage la connexion !
Ca a marché une fois, puis impossible de retrouver la bonne config.

J’ai testé depuis un client en ip fixe, pareil.

Merci de vous pencher sur mon cas !

Voici les infos nécessaires :

eth0 est l’interface connectée au Net.

un iptable -v -L -t nat donne

[code]Chain PREROUTING (policy ACCEPT 649 packets, 58106 bytes)
pkts bytes target prot opt in out source destination

Chain POSTROUTING (policy ACCEPT 270 packets, 17389 bytes)
pkts bytes target prot opt in out source destination
0 0 MASQUERADE all – any eth0 anywhere anywhere

Chain OUTPUT (policy ACCEPT 279 packets, 18991 bytes)
pkts bytes target prot opt in out source destination
[/code]

le script iptable :

[code]# /etc/network/iptables.up.rules

Script qui démarre les règles de filtrage IPv4

Formation Debian GNU/Linux par Alexis de Lattre

http://formation-debian.via.ecp.fr/

iptables-restore(8) remet implicitement à zéro toutes les règles

Les instructions qui suivent concernent la table « filter »,

c’est à dire… le filtrage.

*filter

#########################

Politiques par défaut

#########################

Les politiques par défaut déterminent le devenir d’un paquet auquel

aucune règle spécifique ne s’applique.

Les connexions entrantes sont bloquées par défaut

-P INPUT DROP

Les connexions destinées à être routées sont acceptées par défaut

-P FORWARD ACCEPT

Les connexions sortantes sont acceptées par défaut

-P OUTPUT ACCEPT

######################

Règles de filtrage

######################

Nous précisons ici des règles spécifiques pour les paquets vérifiant

certaines conditions.

Pas de filtrage sur l’interface de “loopback”

-A INPUT -i lo -j ACCEPT

Accepter le protocole ICMP (notamment le ping)

-A INPUT -p icmp -j ACCEPT

Accepter le protocole IGMP (pour le multicast)

-A INPUT -p igmp -j ACCEPT

Accepter les packets entrants relatifs à des connexions déjà

établies : cela va plus vite que de devoir réexaminer toutes

les règles pour chaque paquet.

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

Décommentez la ligne suivante pour que le serveur SSH éventuel

soit joignable de l’extérieur

-A INPUT -p tcp --dport ssh -j ACCEPT

Décommentez les lignes suivantes pour que le serveur de courrier

éventuel soit joignable de l’extérieur.

#-A INPUT -p tcp --dports smtp -j ACCEPT

Si vous avez activé les services SMTPS et soumission de messages…

#-A INPUT -p tcp --dports smtps -j ACCEPT
#-A INPUT -p tcp --dports submission -j ACCEPT

Décommentez les deux lignes suivantes pour que le serveur de noms

éventuel soit joignable de l’extérieur.

#-A INPUT -p tcp --dport domain -j ACCEPT
#-A INPUT -p udp --dport domain -j ACCEPT

Décommentez la ligne suivante pour que le serveur Web éventuel

soit joignable de l’extérieur.

-A INPUT -p tcp --dport http -j ACCEPT

Si vous avez activé le HTTPS…

#-A INPUT -p tcp --dport https -j ACCEPT

Décommentez les deux lignes suivantes pour que le serveur d’impression

éventuel soit joignable de l’extérieur.

#-A INPUT -p tcp --dport ipp -j ACCEPT
#-A INPUT -p udp --dport ipp -j ACCEPT

Décommentez les deux lignes suivantes pour que le serveur Samba

éventuel soit joignable de l’extérieur.

#-A INPUT -p tcp --dport netbios-ssn -j ACCEPT
#-A INPUT -p udp --dport netbios-ssn -j ACCEPT

Décommentez la ligne suivante pour que des clients puissent se connecter

à l’ordinateur par XDMCP.

#-A INPUT -p udp --dport xdmcp -j ACCEPT

Décommentez la ligne suivante pour que l’ordinateur puisse se connecter

par XDMCP à une machine distante).

#-A INPUT -p tcp --dport x11-1 -j ACCEPT

Décommentez la ligne suivante pour pouvoir recevoir des flux VideoLAN.

-A INPUT -p udp --dport 1234 -j ACCEPT

Décommentez la ligne suivante pour pouvoir recevoir des annonces SAP

(ce sont des annonces de session multicast).

#-A INPUT -p udp -d 224.2.127.254 --dport 9875 -j ACCEPT

Décommentez les 3 lignes suivantes pour pouvoir utiliser GnomeMeeting

#-A INPUT -p tcp --dport 30000:33000 -j ACCEPT
#-A INPUT -p tcp --dport 1720 -j ACCEPT
#-A INPUT -p udp --dport 5000:5006 -j ACCEPT

Décommentez la ligne suivante pour pouvoir partager de la musique par

DAAP.

#-A INPUT -p tcp --dport daap -j ACCEPT

Décommentez la ligne suivante pour que votre ordinateur

annonce son nom et ses services par mDNS sur le réseau local (cela

permet de le contacter sous « son nom d’hôte ».local).

-A INPUT -p udp -d 224.0.0.251 --dport mdns -j ACCEPT

La règle par défaut pour la chaine INPUT devient REJECT (contrairement

à DROP qui ignore les paquets, avec REJECT, l’expéditeur est averti

du refus). Il n’est pas possible de mettre REJECT comme politique par

défaut. Au passage, on note les paquets qui vont être jetés, ça peut

toujours servir.

-A INPUT -j LOG --log-prefix "paquet IPv4 inattendu "
-A INPUT -j REJECT

COMMIT

Les instructions qui suivent concernent la table « nat ».

*nat

########################

Partage de connexion

########################

Décommentez la ligne suivante pour que le système fasse office de

routeur NAT et remplacez « eth0 » par le nom de l’interface

connectée à Internet.

-A POSTROUTING -o eth0 -j MASQUERADE

########################

Redirections de port

########################

Décommentez la ligne suivante pour que les requêtes TCP reçues sur

le port 80 de l’interface eth0 soient redirigées à la machine dont

l’adresse IPv4 est 192.168.0.3 sur son port 80 (la réponse à la

requête sera transférée au client).

#-A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.3:80

COMMIT

####################

Problème de MTU…

####################

Les instructions qui suivent concernent la table « mangle », c’est

à dire l’altération des paquets

*mangle

Si la connexion que vous partagez est une connexion ADSL directement gérée

par votre ordinateur, vous serez probablement confronté au fameux problème du

MTU. En résumé, le problème vient du fait que le MTU de la liaison entre

votre fournisseur d’accès et le serveur NAT est un petit peu inférieur au MTU

de la liaison Ethernet qui relie le serveur NAT aux machines qui sont

derrière le NAT. Pour résoudre ce problème, décommentez la ligne suivante et

remplacez « eth0 » par le nom de l’interface connectée à Internet.

#-A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS -o eth0 --clamp-mss-to-pmtu

COMMIT
[/code]

un ifconfig donne :

[code]eth0 Link encap:Ethernet HWaddr 00:19:99:90:4e:9c
inet adr:10.0.0.1 Bcast:10.0.0.255 Masque:255.255.255.0
adr inet6: fe80::219:99ff:fe90:4e9c/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2388 errors:0 dropped:0 overruns:0 frame:0
TX packets:2542 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:100
RX bytes:2039349 (1.9 MiB) TX bytes:331279 (323.5 KiB)
Mémoire:d8400000-d8420000

eth1 Link encap:Ethernet HWaddr 00:1b:21:6b:9e:0f
adr inet6: fe80::21b:21ff:fe6b:9e0f/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3064 errors:0 dropped:0 overruns:0 frame:0
TX packets:73 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:100
RX bytes:255085 (249.1 KiB) TX bytes:15825 (15.4 KiB)
Mémoire:d8080000-d80a0000

lo Link encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
adr inet6: ::1/128 Scope:Hôte
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:39919 errors:0 dropped:0 overruns:0 frame:0
TX packets:39919 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:19440296 (18.5 MiB) TX bytes:19440296 (18.5 MiB)

ppp0 Link encap:Protocole Point-à-Point
inet adr:90.37.47.78 P-t-P:90.37.47.1 Masque:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1
RX packets:1921 errors:0 dropped:0 overruns:0 frame:0
TX packets:1791 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:3
RX bytes:1956165 (1.8 MiB) TX bytes:222094 (216.8 KiB)[/code]

et enfin le fichier network/interface :

[code]# This file describes the network interfaces available on your system

and how to activate them. For more information, see interfaces(5).

The loopback network interface

auto lo
iface lo inet loopback

The primary network interface

auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet dhcp
address 192.168.1.1
netmask 255.255.255.0
broadcast 192.168.1.255

auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth0 up # line maintained by pppoeconf
provider dsl-provider[/code]

L’interface connectée à internet ne serait-elle pas plutôt ppp0 (PPPoE à travers un modem ADSL configuré en pont, probablement Alcatel/Thomson Speed Touch d’après la plage d’adresses) ?
Dans ce cas c’est ppp0 qu’il faudrait indiquer dans la règle MASQUERADE.
Ne pas confondre l’interface connectée au modem (eth0) et l’interface connectée à internet. L’interface connectée à internet, c’est celle qui porte la route par défaut, visible avec route -n.

Edit : si eth0 est en DHCP, alors il se peut qu’elle aussi ait une route par défaut, donc cette seule vérification ne sera pas probante.

Accessoirement, une interface utilisée seulement pour PPPoE n’a pas besoin de configuration IP, donc on peut la définir en “manual” au lieu de “dhcp” voir ne pas la définir du tout car pppoeconf a ajouté une commande pour l’activer dans la définition de la connexion dsl-provider.

Merci bien.

Malheureusement y a encore un truc qui bloque.
Mon réseau actuel fonctionne avec des adresse 192.168.1.x
la passerelle étant 192.168.1.1

Or là eth0 est en 10.0.0.1

Je l’ai mis en 192.168.1.1 avec le bon netmask mais ça ne marche pas mieux, même pas un ping sur le serveur ne fonctionne.

Oui, j’ai oublié quelques détails.

  1. Le “routage” IP (IP forwarding) est-il activé ?

Si 0, alors régler à 1 (à automatiser à chaque démarrage dans /etc/sysctl.conf par exemple).

  1. Je n’avais pas fait attention, ifconfig indique que l’interface eth1 n’a pas d’adresse IP. Elle devrait être configurée en “static” et non “dhcp” dans le fichier interfaces. Les paramètres “address”, “netmask”… ne sont valables qu’en “static” puisqu’en “dhcp” ils sont fournis par le serveur DHCP.

  2. Il ne faut surtout pas configurer eth0 avec 192.168.1.1 : cette adresse et le sous-réseau correspondant se trouvent côté eth1, pas eth0. En faisant cela, tu empêches la machine de communiquer avec le reste du réseau.

Je répète : eth0 n’a pas besoin d’adresse IP.

[quote=“PascalHambourg”]Oui, j’ai oublié quelques détails.

  1. Le “routage” IP (IP forwarding) est-il activé ?

Si 0, alors régler à 1 (à automatiser à chaque démarrage dans /etc/sysctl.conf par exemple).

  1. Je n’avais pas fait attention, ifconfig indique que l’interface eth1 n’a pas d’adresse IP. Elle devrait être configurée en “static” et non “dhcp” dans le fichier interfaces. Les paramètres “address”, “netmask”… ne sont valables qu’en “static” puisqu’en “dhcp” ils sont fournis par le serveur DHCP.

  2. Il ne faut surtout pas configurer eth0 avec 192.168.1.1 : cette adresse et le sous-réseau correspondant se trouvent côté eth1, pas eth0. En faisant cela, tu empêches la machine de communiquer avec le reste du réseau.

Je répète : eth0 n’a pas besoin d’adresse IP.[/quote]

Merci, le routage est bien activé.
Je suis pas doué ! :slightly_smiling:
Je vais tester ça quand le réseau sera disponible !

Ca avance, mais ça ne marche toujours pas.

Est-ce normal d’avoir eth0 et eth1 dans la même plage d’ip ?
Faut-il que je replace eth0 en 10.0.0.x ?

Merci.

Les règles iptables sont les mêmes qu’au-dessus sauf que j’ai remplacé eth0 par ppp0 dans la ligne MASQUERADE.

le fichier network/interface :

[code]# The loopback network interface
auto lo
iface lo inet loopback

The primary network interface

auto eth0

auto eth1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0
broadcast 192.168.1.255

auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth0 up # line maintained by pppoeconf
provider dsl-provider
[/code]

et un ifconfig donne:

[code]eth0 Link encap:Ethernet HWaddr 00:19:99:90:4e:9c
inet adr:192.168.1.50 Bcast:192.168.1.255 Masque:255.255.255.0
adr inet6: fe80::219:99ff:fe90:4e9c/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5481 errors:0 dropped:0 overruns:0 frame:0
TX packets:6059 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:100
RX bytes:4444012 (4.2 MiB) TX bytes:868321 (847.9 KiB)
Mémoire:d8400000-d8420000

eth1 Link encap:Ethernet HWaddr 00:1b:21:6b:9e:0f
inet adr:192.168.1.1 Bcast:192.168.1.255 Masque:255.255.255.0
adr inet6: fe80::21b:21ff:fe6b:9e0f/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:9841 errors:0 dropped:0 overruns:0 frame:0
TX packets:199 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:100
RX bytes:836228 (816.6 KiB) TX bytes:46217 (45.1 KiB)
Mémoire:d8080000-d80a0000

lo Link encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
adr inet6: ::1/128 Scope:Hôte
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:45199 errors:0 dropped:0 overruns:0 frame:0
TX packets:45199 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:21962073 (20.9 MiB) TX bytes:21962073 (20.9 MiB)

ppp0 Link encap:Protocole Point-à-Point
inet adr:XX.XX.117.109 P-t-P:XX.XX.117.1 Masque:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1
RX packets:57 errors:0 dropped:0 overruns:0 frame:0
TX packets:56 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:3
RX bytes:51309 (50.1 KiB) TX bytes:4447 (4.3 KiB)[/code]

Non, je l’ai déjà dit. Cela fausse la table de routage qui contient des entrées contradictoires pour la même destination. Tu peux effacer l’adresse d’eth0 avec

Ce n’est pas nécessaire, mais dans l’immédiat ça aurait l’avantage d’effacer l’adresse actuelle en 192.168.1.x. En tout cas il vaut mieux éviter la configuration en DHCP car cela risque d’apporter une route par défaut qui n’a pas lieu d’être, la route par défaut devant être par ppp0 et non eth0. Tu peux faire une configuration statique.

Non, je l’ai déjà dit. Cela fausse la table de routage qui contient des entrées contradictoires pour la même destination. Tu peux effacer l’adresse d’eth0 avec

Merci, ça marche enfin.

Il me reste à sauvegarder ça et le mettre en route automatiquement au démarrage. Puis paramétrer Squid, squidGuard, samba et cie…