Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
Partage connexion internet Debian.
Envoyé par: Nicko

Bonjour,

je n'arrive pas à faire fonctionner mon partage de connexion internet, et j'en appelle à vos lumières =|:-)

Donc voilà la config :

J'ai un Linux Debian Sarge avec deux interfaces réseau : eth0 connectée à un modem ethernet (logique) et eth1 vers mon réseau local (192.168.0.2). Le linux fait office de serveur DHCP. Le serveur dhcp fonctionne bien puisque les clients récupèrent une adresse. Le serveur dhcp pousse comme paramètres : 192.168.0.2 comme gateway, et deux @ip de serveurs dns (ceux qui sont déclarés dans /etc/resolv.conf et avec lesquels ma connexion marche)

Après, j'ai deux clients, un windows 2000 pro et un Linux Debian Woody. Aucun des deux n'ont accès à Internet. Ils récupèrent bien une adresse ip.

Sur le serveur, j'ai bien activé l'ip forward :
cat /proc/sys/net/ipv4/ip_forward
1

Après pour les règles de filtrage, comme je n'y connais (encore) rien, j'ai pris celles données sur la formation Alexis Delattre :

#!/bin/sh
# /etc/network/if-pre-up.d/iptables-start
# Script qui démarre les règles de filtrage "iptables"
# Formation Debian GNU/Linux par Alexis de Lattre
# [www.via.ecp.fr]

# REMISE à ZERO des règles de filtrage
iptables -F
iptables -t nat -F


# DEBUT des "politiques par défaut"

# Je veux que les connexions entrantes soient bloquées par défaut
iptables -P INPUT DROP

# Je veux que les connexions destinées à être forwardées
# soient acceptées par défaut
iptables -P FORWARD ACCEPT

# Je veux que les connexions sortantes soient acceptées par défaut
iptables -P OUTPUT ACCEPT

# FIN des "politiques par défaut"


# DEBUT des règles de filtrage

# Pas de filtrage sur l'interface de "loopback"
iptables -A INPUT -i lo -j ACCEPT

# J'accepte le protocole ICMP (i.e. le "ping")
iptables -A INPUT -p icmp -j ACCEPT

# J'accepte le protocole IGMP (pour le multicast)
iptables -A INPUT -p igmp -j ACCEPT

# J'accepte les packets entrants relatifs à des connexions déjà établies
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

# Décommentez les deux lignes suivantes pour que le serveur FTP éventuel
# soit joignable de l'extérieur
#iptables -A INPUT -p tcp --dport 20 -j ACCEPT
#iptables -A INPUT -p tcp --dport 21 -j ACCEPT

# Décommentez la ligne suivante pour que le serveur SSH éventuel
# soit joignable de l'extérieur
#iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# Décommentez la ligne suivante pour que le serveur de mail éventuel
# soit joignable de l'extérieur
#iptables -A INPUT -p tcp --dport 25 -j ACCEPT

# Décommentez les deux lignes suivantes pour que le serveur de DNS éventuel
# soit joignable de l'extérieur
#iptables -A INPUT -p tcp --dport 53 -j ACCEPT
#iptables -A INPUT -p udp --dport 53 -j ACCEPT

# Décommentez la ligne suivante pour que le serveur Web éventuel
# soit joignable de l'extérieur
#iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# Décommentez la ligne suivante pour que le serveur CUPS éventuel
# soit joignable de l'extérieur
#iptables -A INPUT -p tcp --dport 631 -j ACCEPT

# Décommentez les deux lignes suivantes pour que le serveur Samba éventuel
# soit joignable de l'extérieur
#iptables -A INPUT -p tcp --dport 139 -j ACCEPT
#iptables -A INPUT -p udp --dport 139 -j ACCEPT

# Décommentez la ligne suivante pour que des clients puissent se connecter
# à l'ordinateur par XDMCP)
#iptables -A INPUT -p udp --dport 177 -j ACCEPT

# Décommentez la ligne suivante pour que l'odinateur puisse se connecter
# par XDMCP à une machine distante)
#iptables -A INPUT -p tcp --dport 6001 -j ACCEPT

# Décommentez la ligne suivante pour que le serveur CVS éventuel
# soit joignable de l'extérieur via le mécanisme de "pserver"
# (si les utilisateurs accèdent au serveur CVS exclusivement via SSH,
# seule la ligne concernant le serveur SSH doit être décommentée)
#iptables -A INPUT -p tcp --dport 2401 -j ACCEPT

# Décommentez la ligne suivante pour pouvoir reçevoir des flux VideoLAN
# (ce sont des flux UDP entrants sur le port 1234)
#iptables -A INPUT -p udp --dport 1234 -j ACCEPT

# Décommentez la ligne suivante pour pouvoir reçevoir des annonces SAP
# (ce sont des annonces de session multicast)
#iptables -A INPUT -p udp -d 224.2.127.254 --dport 9875 -j ACCEPT

# Décommentez les 3 lignes suivantes pour pouvoir utiliser GnomeMeeting
#iptables -A INPUT -p tcp --dport 30000:33000 -j ACCEPT
#iptables -A INPUT -p tcp --dport 1720 -j ACCEPT
#iptables -A INPUT -p udp --dport 5000:5006 -j ACCEPT

# La règle par défaut pour la chaine INPUT devient "REJECT"
# (il n'est pas possible de mettre REJECT comme politique par défaut)
iptables -A INPUT -j REJECT

# FIN des règles de filtrage


# DEBUT des règles pour le partage de connexion (i.e. le NAT)

# Décommentez la ligne suivante pour que le système fasse office de
# "serveur NAT" et remplaçez "eth0" par le nom de l'interface connectée
# à Internet
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# Si la connexion que vous partagez est une connexion ADSL, 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 remplaçez "eth0" par le nom de l'interface connectée à
# Internet.
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS -o eth0 --clamp-mss-to-pmtu

# FIN des règles pour le partage de connexion (i.e. le NAT)


# DEBUT des règles de "port forwarding"

# Décommentez la ligne suivante pour que les requêtes TCP reçues sur
# le port 80 de l'interface eth0 soient forwardées à la machine dont
# l'IP est 192.168.0.3 sur son port 80 (la réponse à la requête sera
# forwardée au client)
#iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.3:80

# FIN des règles de "port forwarding"



Tout est donc en place (enfin apparemment, pas tout...), mais les clients n'accèdent toujours pas à Internet. Je pense que cela vient des règles de filtrage que je ne ma^itrise absolument pas, et que je recopie betement.

Voilà, merci d'avance pour vos éventuelles réponses ;-)

Poste le Tuesday 12 July 2005 22:41:34
Répondre     Citer    
Re: Partage connexion internet Debian.
Envoyé par: lolotux

commente cette ligne (vers la fin)
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS -o eth0 --clamp-mss-to-pmtu

Poste le Wednesday 13 July 2005 00:54:21
Répondre     Citer    
Re: Partage connexion internet Debian.
Envoyé par: Nicko

Bonsoir, merci de ta réponse.

J'ai décommenté la ligne dont il était question, mais ça ne marche toujours pas :-/

Poste le Wednesday 13 July 2005 03:08:57
Répondre     Citer    
Re: Partage connexion internet Debian.
Envoyé par: Nicko

Bonjour,

je n'ai toujours pas réussi à faire marcher la connexion.
Quelque chose m'étonne.

Lorsque je lance ifconfig, mon adresse ppp0 est 83.205.233.60.

A partir des machines clientes, le ping vers cette adresse fonctionne. Mais ping www.google.fr ne fonctionne pas... (meme avec l'adresse ip directe d'un des serveurs google).

Merci pour vos éventuelles réponses ;-)

Poste le Wednesday 13 July 2005 10:53:22
Répondre     Citer    
Re: Partage connexion internet Debian.
Envoyé par: Nicko

Bon, désolé de flooder et d'insister, mais je vous tiens au courant, au moins vous avez de plus en plus d'infos, et vous pourrez peut etre m'aider smiling smiley

Donc voilà ce que j'ai fait, pour etre sur que le probleme venait de iptables :

iptables -F
iptables -t nat -F
iptables -A INPUT -j ACCEPT
iptables -A OUTPUT -j ACCEPT
iptables -A FORWARD -j ACCEPT
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

Donc j'autorise absolument tout, et là, paf, les clients accèdent à internet. Le probleme vient donc de iptables (règles manquantes? en trop?) smiling smiley

Merci pour vos éventuelles réponses ;-)

Poste le Wednesday 13 July 2005 11:25:07
Répondre     Citer    
Re: Partage connexion internet Debian.
Envoyé par: oudoubah

Citation

# Décommentez la ligne suivante pour que le système fasse office de
# "serveur NAT" et remplaçez "eth0" par le nom de l'interface connectée
# à Internet
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Je n'ai jamais mis encore en place de nat, mais est-ce que tu ne devrais pas mettre ppp0 pour ta connexion adsl au lieu de eth0?

Tu as lu les docs. Tu es devenu un informaticien. Que tu le veuilles
ou non. Lire la doc, c'est le Premier et Unique Commandement de
l'informaticien.
-+- TP in: Guide du Linuxien pervers - "L'évangile selon St Thomas"

Poste le Wednesday 13 July 2005 11:28:17
Répondre     Citer    
Re: Partage connexion internet Debian.
Envoyé par: Nicko

Pour tout te dire, j'allais te répondre que je pensais que c'était la meme chose, mais je me suis dit que j'allais quand meme essayé avant.

Et bien... ça marche :-o

Les règles de filtrage sont bien en place, et le partage de connexion est effectif.
Je suis surpris, mais très content :-))

Maintenant, je vais essayer de me plonger dans les règles de filtrage, histoire d'avoir un firewall qui tienne la route. D'ailleurs, celui-ci est il correct? Les connexions entrantes sont bloqués par défaut, mais est-ce suffisant? (ça m'étonnerait winking smiley)

Merci beaucoup pour votre aide!

Poste le Wednesday 13 July 2005 11:59:23
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
Partage connexion internet Debian.
Un problème avec une commande du shell ? Comment utiliser la crontab ? Vous avez des soucis pour la gestion réseau sous Linux ? Pour vous la gestion des utilisateurs/groupes est du chinois ? Etc... Posez donc vos questions ici.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons