Lenny routeur

Bonjour,

Je suis autodidacte et je veux utiliser une machine sous lenny comme routeur. J’ai déjà fait cela il y a un certain temps avec une version etch mais des config ont l’air de se faire différemment aujourd’hui ou bien j’ai oublié.

Schéma du réseau :
freebox (mode modem) —> eth0 Lenny eth1 —> switch réseau

-J’ai modifié sysctl.conf pour autoriser le forwarding ipv4
-j’ai remis mon filtre iptable d’antan :slight_smile:
-J’ai installé dhcp3-server et modifié le fichier conf pour indiquer les plages d’ip
-J’ai modifié le fichier dhcp3-server dans default pour indiquer eth1

et malgré tout cela je n’arrive pas à faire fonctionner mon routeur !
qu’ai je oublié ?

Voici quelques infos

routeur-lan:~# iptables -v -L
Chain INPUT (policy DROP 1 packets, 149 bytes)
pkts bytes target prot opt in out source destination
17 3460 ACCEPT all – lo any anywhere anywhere
0 0 ACCEPT icmp – any any anywhere anywhere
0 0 ACCEPT igmp – any any anywhere anywhere
11 838 ACCEPT all – any any 192.168.10.0/30 anywhere
17 6678 ACCEPT all – any any anywhere anywhere state RELATED,ESTABLISHED
0 0 ACCEPT tcp – any any anywhere anywhere tcp dpt:ssh
0 0 ACCEPT udp – any any anywhere anywhere udp dpt:8767
0 0 ACCEPT tcp – any any anywhere anywhere tcp dpt:14534
0 0 ACCEPT tcp – any any anywhere anywhere tcp dpt:smtp
0 0 ACCEPT tcp – any any anywhere anywhere tcp dpt:domain
0 0 ACCEPT udp – any any anywhere anywhere udp dpt:domain
0 0 ACCEPT tcp – any any anywhere anywhere tcp dpt:https
0 0 ACCEPT udp – any any anywhere anywhere udp dpt:https
0 0 ACCEPT tcp – any any anywhere anywhere tcp dpt:www
0 0 ACCEPT tcp – any any anywhere anywhere tcp dpts:27000:27018
0 0 ACCEPT udp – any any anywhere anywhere udp dpts:27000:27018
125 11694 REJECT all – any any anywhere anywhere reject-with icmp-port-unreachable

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all – any any anywhere 192.168.10.0/30

Chain OUTPUT (policy ACCEPT 77 packets, 11596 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all – any any anywhere 192.168.10.0/30
routeur-lan:~# route -n
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 eth0
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0

Bonjour

T’as bien activé le partage de connexion sur ton serveur routeur : echo 1 > /proc/sys/net/ipv4/ip_forward ? <-- EDIT : ok, ca c’est fait dans le sysctl.conf j’avais pas fait attention.

T’aurais pas oublié la règle de masquerading : iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE (ou -j SNAT --to-source ip_de_eth0 si l’adresse ip de eth0 ne bouge jamais)

Je pense que ca serait plus facile de t’aider avec le script qui contient tes règles, plutôt que le résultat de iptables -L

Voici script iptable:


#!/bin/sh

/etc/network/if-pre-up.d/iptables-start

Script qui démarre les règles de filtrage “iptables”

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 le réseau lan

iptables -A INPUT -s 192.168.10.0/30 -j ACCEPT
iptables -A OUTPUT -d 192.168.10.0/30 -j ACCEPT
iptables -A FORWARD -d 192.168.10.0/30 -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

mysql joignable

#iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
#iptables -A INPUT -p tcp --dport 3306 -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 teamspeak éventuel

soit joignable de l’extérieur

iptables -A INPUT -p udp --dport 8767 -j ACCEPT
iptables -A INPUT -p tcp --dport 14534 -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 les deux lignes suivantes pour que le serveur de HTTPS éventuel

soit joignable de l’extérieur

iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p udp --dport 443 -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 les lignes suivantes pour pouvoir utiliser Half Life

iptables -A INPUT -p tcp --dport 27000:27018 -j ACCEPT
iptables -A INPUT -p udp --dport 27000:27018 -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 # Formation Debian GNU/Linux par Alexis de Lattre

via.ecp.fr/~alexis/formation-linux/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 eth1 --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
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6022 -j DNAT --to-destination 192.168.10.2:22
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6023 -j DNAT --to-destination 192.168.10.3:22
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 5962 -j DNAT --to-destination 192.168.10.3:5962

mysql

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 3306 -j DNAT --to-destination 192.168.10.3:3306

#— port vnc
#iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 5900:5910 -j DNAT --to-destination 192.168.10.3:5900-5910
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 5901 -j DNAT --to-destination 192.168.10.3:5901

#iptables -t nat -A PREROUTING -i eth0 -p udp --dport 31336 -j DNAT --to-destination 192.168.10.15:31336
#iptables -t nat -A PREROUTING -i eth0 -p udp --dport 1200 -j DNAT --to-destination 192.168.10.2:1200
#iptables -t nat -A PREROUTING -i eth0 -p udp --dport 1201 -j DNAT --to-destination 192.168.10.2:1201
#iptables -t nat -A PREROUTING -i eth0 -p udp --dport 3000 -j DNAT --to-destination 192.168.10.2:3000

FIN des règles de port forwarding

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

Si pascal ou francois passe par là, il vont surement t’en dire beaucoup plus et plus précisément que moi, mais déjà, au niveau de l’initialisation de tes tables, il en manque :
Tu initialises que la table filter, mais pas la table nat, ni mangle, donc on ne sait pas ce qu’il y a dans les politiques par défaut de ces tables là…

Et ensuite, que n’arrives tu pas à faire avec ta machine routeur, exactement ?

Déjà, pour que tes message soit plus lisibles :

  • utilise la balise code
  • pour iptables, tu peux poster le résultat de la commande iptables-save

Pour mieux te répondre, il faudrait savoir quel est ton problème exactement :

  • les machines ne prennent pas d’adresse par DHCP ?
  • les machines ne peuvent pas contacter l’extérieur ?
  • le serveur web est injoignable ?
  • autre ?

(pour le code c’est quoi les balises ? )

“Tu initialises que la table filter, mais pas la table nat, ni mangle, donc on ne sait pas ce qu’il y a dans les politiques par défaut de ces tables là…”

suis largué ! … table nat, mangle

"- les machines ne prennent pas d’adresse par DHCP ?"
eth0 prend le dhcp d’un routeur

freebox --> routeur 192.168.1.1—> eth0 lenny eth1 192.168.10.1 —> switch lan

  • les machines ne peuvent pas contacter l’extérieur ?
    tout ce qui derrire lenny ne fonctionne pas. wista par exemple me dit “reseau non identifié”
  • le serveur web est injoignable ?
    Lenny reçoit internet.
  • autre ? … bonne question :slight_smile:

La propriété intellectuelle n’a d’intérêt que lorsqu’elle porte mal son nom.

Rapporter ce message

Bon j’essaie de revoir ma copie

cela veut dire quoi “initiazlier la table nat” ?
cela veut dire quoi “initiazlier la table mangle” ?

Bon, on va y aller doucement. Déjà, pour initialiser toutes les chaines au début :

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X

( les balises c’est ton code ici sauf que c’est [balise] et non ).

Un peu de lecture : olivieraj.free.fr/fr/linux/information/firewall/

Sur le Vista, que donne

?

Merci pour le lien.

ipconfig /all : résultat

Configuration IP de Windows
   Nom de l'h“te . . . . . . . . . . : mon-PC
   Suffixe DNS principal . . . . . . : 
   Type de noeud. . . . . . . . . .  : Hybride
   Routage IP activ‚ . . . . . . . . : Non
   Proxy WINS activ‚ . . . . . . . . : Non

Carte Ethernet Connexion au r‚seau local 2 :
   Statut du m‚dia. . . . . . . . . . . . : M‚dia d‚connect‚
   Suffixe DNS propre 
 la connexion. . . : 
   Description. . . . . . . . . . . . . . : TAP-Win32 Adapter V9
   Adresse physique . . . . . . . . . . . : xx-xx-xx-03-5F-CE
   DHCP activ‚. . . . . . . . . . . . . . : Oui
   Configuration automatique activ‚e. . . : Oui

Carte r‚seau sans fil Connexion r‚seau sans filÿ:
   Statut du m‚dia. . . . . . . . . . . . : M‚dia d‚connect‚
   Suffixe DNS propre 
 la connexion. . . : 
   Description. . . . . . . . . . . . . . : Carte Mini Dell Wireless 1390
   Adresse physique . . . . . . . . . . . : xx-xx-xx-xx-AE-68
   DHCP activ‚. . . . . . . . . . . . . . : Oui
   Configuration automatique activ‚e. . . : Oui

Carte Ethernet Connexion au r‚seau local :
   Suffixe DNS propre 
 la connexion. . . : 
   Description. . . . . . . . . . . . . . : Broadcom 440x 10/100 Integrated Controller
   Adresse physique . . . . . . . . . . . : xx-xx-xx-xx-AB-A7
   DHCP activ‚. . . . . . . . . . . . . . : Oui
   Configuration automatique activ‚e. . . : Oui
   Adresse d'autoconfiguration IPv4 . . . : 169.xxx.155.xxx(pr‚f‚r‚) 
   Masque de sous-r‚seau. . . .ÿ. . . . . : 255.255.0.0
   Passerelle par d‚faut. . . .ÿ. . . . . : 
   NetBIOS sur Tcpip. . . . . . . . . . . : Activ‚

bon voila, j’ai pas revu les codes cabalistique mais cela ne devrait pas géner!
mon pc sous vista est un portable et je me connecte en filaire pour les essais

tout s’explique…

oui d’accord mais pourquoi ?

quelles peuvent être les raisons ?

les cartes réseaux fonctionnent et la machine réagit de la même manière en la déplaçant à notre endroit sur d’autres machines donc il semblerait que c’est dans la config !

La machine n’obtient pas d’ip du dhcp, donc elle s’attribue une adresse APIPA en 169.254. Ca explique qu’elle n’accède pas à internet (à rien d’ailleurs, même dans le LAN)

Les raisons possibles :
dhcp pas bien configuré ou qui ne fonctionne pas
pare feu qui empêche le trafic lié au dhcp

Je pencherais pour la 2eme possibilité, car tu as une politique par defaut qui droppe le trafic entrant, et dans les exception, aucune règle concernant le dhcp. Donc quand le client envoi sa requête de découverte d’un serveur dhcp sur son segment réseau, le serveur la drope et ne répond pas, donc il n’attribue pas d’adresse a ton client.
Il faut accepter les requêtes sur le port 67/udp de ton serveur dhcp, et il faut qu’il puisse répondre à destination du port 68/udp du client :
iptables -t filter -A INPUT -i eth1 -p UDP --dport 67 -j ACCEPT
iptables -t filter -A OUTPUT -o eth1 -p UDP --dport 68 -j ACCEPT

parefeu j’y ai pensé et donc je l’avais arrêté sur le pc vista

dhcp sur la parti avant lenny il marche. C’est un routeur commercial. Pour la parti lenny --> lan j’ai installé dhcp3-server mais comment je peux voir s’il marche correctement sur le serveur ?

Je parlais du pare feu du serveur lenny, pas de celui de vista.

Mais c’est surtout sur la lenny qu’il faut que le pare-feu autorise le DHCP ! [grilled]

Bon, essaye :

Puis sur ton windows, redemande une adresse DHCP :

ipconfig /release
ipconfig /renew

Si tu n’obtiens toujours pas d’adresse, poste la conf de ton serveur DHCP.

snif ça ne change rien

dhcpd.conf

#
# Sample configuration file for ISC dhcpd for Debian
#
# $Id: dhcpd.conf,v 1.1.1.1 2002/05/21 00:07:44 peloy Exp $
#

# The ddns-updates-style parameter controls whether or not the server will
# attempt to do a DNS update when a lease is confirmed. We default to the
# behavior of the version 2 packages ('none', since DHCP v2 didn't
# have support for DDNS.)
ddns-update-style none;

# option definitions common to all supported networks...
option domain-name "mondomaine";
option domain-name-servers 212.27.54.252,212.27.53.252;

default-lease-time 600;
max-lease-time 7200;

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;

# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;

# No service will be given on this subnet, but declaring it helps the 
# DHCP server to understand the network topology.

subnet 192.168.10.1 netmask 255.255.255.0 {
  range 192.168.10.2 192.168.10.30;
  option routers 192.168.10.1;
}

bon j’ai trouvé. C’est mon fichier de conf de dhcp3-server qui n’était pas bon.

Je mets ma solution si cela peut aider quelqu’un. Ce n’est pas la meilleure mais bon :slight_smile:

#
# Sample configuration file for ISC dhcpd for Debian
#
# $Id: dhcpd.conf,v 1.1.1.1 2002/05/21 00:07:44 peloy Exp $
#

# The ddns-updates-style parameter controls whether or not the server will
# attempt to do a DNS update when a lease is confirmed. We default to the
# behavior of the version 2 packages ('none', since DHCP v2 didn't
# have support for DDNS.)
ddns-update-style none;

# option definitions common to all supported networks...
option domain-name "nomdelamachine";
option domain-name-servers 212.27.54.252,212.27.53.252;

default-lease-time 600;
max-lease-time 7200;

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;

subnet 192.168.10.0 netmask 255.255.255.0 {
  range 192.168.10.2 192.168.10.30;
  option routers 192.168.10.1;
}

# A slightly different configuration for an internal subnet.
#subnet 10.5.5.0 netmask 255.255.255.224 {
#  range 10.5.5.26 10.5.5.30;
#  option domain-name-servers ns1.internal.example.org;
#  option domain-name "internal.example.org";
#  option routers 10.5.5.1;
#  option broadcast-address 10.5.5.31;
#  default-lease-time 600;
#  max-lease-time 7200;
#}

Merci pour votre précieuse aide qui était aussi un soutien :slight_smile:

Il reste du boulot, ton jeu de règles iptables est déplorable.