Bonjour
Voilà mon problème: je tente de monter un routeur sous debian.
Je suis en Lenny, installation de base sans x.org.
J’ai un petit pc avec deux cartes ethernet eth0 et eth1.
Eth0 est relié directement à l’internet via la freebox, eth1 a pour adresse 192.168.1.1.
Eth1 est connecté via un switch à d’autres ordinateurs et leur file une adresse ip via dhcp3-client.
J’essaie de faire en sorte qu’il y ait un partage de la connexion entre les ordinateurs.
J’ai pour l’instant suivi la doc d’Alexis de Lattre http://formation-debian.via.ecp.fr/firewall.html pour les regles de nat.
Je peux me connecter à cet ordinateur via ssh: il n’y a pas de probleme.
J’arrive à me connecter à l’internet sur l’ordi servant de routeur, mais évidemment, à partir d’un ordinateur qui y est relié, c’est impossible.
J’ai tenté le ping google.fr : il ne marche pas. Le ping 8.8.8.8 , lui marche.
Configuration des cartes réseaux:
[code]eth0 Link encap:Ethernet HWaddr 70:71:bc:43:dc:3c
inet adr:192.168.0.14 Bcast:192.168.0.255 Masque:255.255.255.0
adr inet6: fe80::7271:bcff:fe43:dc3c/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:80 errors:0 dropped:0 overruns:0 frame:0
TX packets:173 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:15251 (14.8 KiB) TX bytes:11285 (11.0 KiB)
Interruption:219 Adresse de base:0xc000
eth1 Link encap:Ethernet HWaddr 00:27:19:b0:d1:4f
inet adr:192.168.1.1 Bcast:192.168.1.255 Masque:255.255.255.0
adr inet6: fe80::227:19ff:feb0:d14f/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:528 errors:0 dropped:0 overruns:0 frame:0
TX packets:347 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:49649 (48.4 KiB) TX bytes:41726 (40.7 KiB)
Interruption:21 Adresse de base:0xe000
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:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:560 (560.0 B) TX bytes:560 (560.0 B)
[/code]
La sortie de route -n me donne:
[quote]Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 192.168.0.254 0.0.0.0 UG 0 0 0 eth0
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth1
[/quote]
La configuration stockées dans dhcpd.conf vaut:
[code]# La ligne qui suit est nécessaire. Elle est en rapport avec
la mise à jour dynamique du DNS, que nous n’utiliserons pas
pour l’instant.
ddns-update-style none;
Ce serveur fait autorité sur le réseau
authoritative;
Les options globales
option time-servers 192.168.0.252;
option domain-name “bidibulle.org”;
max-lease-time 3600;
default-lease-time 3600;
option domain-name-servers IP.DE.Ma.FreeBox;
#option subnet-mask 255.255.255.0;
option routers 192.168.1.1;
le réseau 192.168.1.0/24, avec la réserve d’adresses dynamiques
subnet 192.168.1.0 netmask 255.255.255.0 {
range dynamic-bootp 192.168.1.64 192.168.1.127;
}[/code]
La configuration des interfaces vaut:
[quote]# 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
auto eth1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0
gateway 192.168.1.1
network 192.168.1.0
auto eth0
iface eth0 inet dhcp
#address 192.162.0.3
#netmask 255.255.255.0
pre-up iptables-restore < /etc/iptables.up.rules
[/quote]
Voilà les iptables:[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]
J’ai gardé la config de de Lattre.
J’ai par ailleurs aussi fait: