[ précédent ] [ Table des matières ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ suivant ]

Guide de référence pour Debian
Chapitre 10 - Construire une passerelle avec Debian


Debian permet d'avoir une machine passerelle tout usage, avec NAT, mail, DHCP, cache DNS, cache proxy HTTP, CVS, NFS, et services Samba pour un réseau local personnel. Voir Netfilter, ou de nombreuses configuration de réseaux sont expliquées.


10.1 Configuration réseau


10.1.1 Configuration de la passerelle

Le réseau local utilise des adresses IP des plages ci-dessous pour éviter les collisions d'adresses avec l'Internet.

     Class A: 10.0.0.0                    avec masque 255.0.0.0
     Class B: 172.16.0.0 - 172.31.0.0     avec masque 255.255.0.0
     Class C: 192.168.0.0 - 192.168.255.0 avec masque 255.255.255.0

Debian utilise /etc/network/interfaces pour la configuration IP.

Par exemple, si eth0 est connectée à l'Internet avec une adresse IP fournie par DHCP et eth1 est connectée au réseau local, /etc/network/interfaces est configuré comme suit (Woody ou version plus récente) :

     auto lo
     iface lo inet loopback
     
     auto eth0
     iface eth0 inet dhcp
     
     auto eth1
     iface eth1 inet static
     address 192.168.1.1
     network 192.168.1.0
     netmask 255.255.255.0
     broadcast 192.168.1.255

Exécutez les commandes suivantes pour mettre à jour la configuration réseau avec le nouveau /etc/network/interfaces :

     # /etc/init.d/networking restart

Rappel : le fichier interfaces de Woody est incompatible avec celui de Potato.

Si le système utilise une carte réseau PCMCIA, il faut configurer le réseau dans /etc/pcmcia/network.opts à la place avec Potato. Le problème a été résolu avec Woody.

En cas de doute, consultez la sortie des commandes suivantes :

     # ifconfig
     # cat /proc/pci
     # cat /proc/interrupts
     # dmesg|more

Parfois, les connexions DSL (PPPoE ?) ont des problèmes de MTU. Consultez le DSL-HOWTO du LDP. Si vous avez des problèmes avec certains sites web, consultez Étranges problèmes d'accès à certains sites web, Section 3.7.5.


10.1.2 Points principaux de la configuration réseau

Ensemble de programmes typique :

     # apt-get install nfs samba dhcpd dhcp-client bind squid procmail fetchmail
     # apt-get install ssh cvs

Ensuite, consultez les fichiers suivants :

     /etc/init.d/dhcpd       (éditer pour avoir LAN = eth1)
     /etc/host.allow         (ALL: 192.168.0.0/16 127.0.0.0/8) pour NFS
     /etc/exports            (besoin pour NFS)
     /etc/bind/db.192.168.1  (à ajouter)
     /etc/bind/db.lan        (à ajouter)
     /etc/bind/named.conf    (à éditer)
     /etc/resolv.conf       (à éditer)
     /etc/hosts
     /etc/dhcpd.conf         (éditer pour avoir LAN = eth1)
     /etc/dhclient.conf      (éditer pour forcer le DNS local)
     /etc/samba/smb.conf
     /etc/exim/exim.conf
     /etc/mailname
     /etc/aliases
     /etc/squid.conf         (ajouter toutes les adresses IP des machines du LAN
     comme machines autorisées)

bind crée un cache DNS local et transforme l'hôte local en serveur DNS. Consultez le fichier /etc/resolv.conf :

     nameserver 127.0.0.1
     search lan.aokiconsulting.com

10.2 Configuration de Netfilter

Le projet netfilter/iptables est un sous-système de pare-feu pour Linux 2.4 et supérieur. Voir Netfilter, où de nombreux problèmes de configuration réseau sont expliqués.


10.2.1 Bases de Netfilter

Le traitement des paquets par Netfilter utilise 5 chaînes par défaut : PREROUTING, INPUT, FORWARD, OUTPUT, et POSTROUTING.

                     routing
                     decision
     IN ------> PRE ---> ------> FORWARD -----> ----> POST -----> OUT
     interface  ROUTING  \       filter       /       ROUTING     interface
                DNAT     |       tracking     ^       SNAT
                REDIRECT |                    |      MASQUERADE
                         v                    |
                       INPUT                OUTPUT
                         | filter             ^ filter,DNAT 
                         v                    |
                         \--> Local Process --/
                                 user-space programs

10.2.2 Table Netfilter

Les paquets sont traités pour chaque chaîne par défaut selon la table suivante.


10.2.3 Cibles Netfilter

Les règles de pare-feu ont plusieurs cibles :


10.2.4 Commande Netfilter

Les commandes de base de iptables sont :

     iptables -N chaine                   # crée une chaine
     
     iptables -A chaine \                 # ajoute une règle à  chaine
              -t table \                  # utilise table (filtre, nat, troncage)
              -p protocol \               # tcp, udp, icmp, ou tous
              -s source-address[/mask] \
              --sport port[:port] \       # port source si -p est tcp ou udp
              -d destination-address[/mask] \
              --dport port[:port] \       # port destination si -p est tcp ou udp
              -j target \                 # que faire si cela correspond
              -i in-interface-name \      # pour INPUT,  FORWARD, PREROUTING
              -o out-interface-name       # pour FORWARD, OUTPUT, POSTROUTING

10.2.5 IP-masquerade

Les machines du LAN peuvent accéder à l'Internet à travers une passerelle qui utilise IP-masquerade (NAT) en partageant une seule adresse IP accessible depuis l'extérieur.

     # apt-get install ipmasq

Appliquez les règles de l'exemple pour fortifier la protection ipmasq. Consultez /usr/share/doc/ipmasq/examples/stronger/README. Pour l'image du noyau Debian 2.4, assurez-vous de charger les modules appropriés. Consultez Fonctions réseau, Section 7.2.3.

Pour l'image du noyau Debian 2.2, éditez Z92timeouts.rul dans /etc/masq/rules comme suit pour assurer une connexion plus longue aux sites distants (bon pour de gros emails, etc.) :

     # tcp, tcp-fin, udp
     # 2hr, 10 sec, 160 sec - default
     # 1 day, 10 min, 10 min - longer example
     $IPCHAINS -M -S 86400 600 600

De plus, si le réseau est accédé par une carte PCMCIA, ipmasq a besoin d'être démarré depuis /etc/pcmcia/network.opts. Consultez /usr/share/doc/ipmasq/ipmasq.txt.gz.


10.2.6 Rediriger une connexion SMTP (2.4)

Supposons que vous avez un PC portable qui est configuré pour utiliser un autre environnement réseau et que vous voulez utiliser votre logiciel de courrier électronique sans le reconfigurer.

En ajoutant les règles suivantes avec la commande iptables sur la passerelle, la connexion SMTP sera redirigée vers la passerelle.

     # iptables -t nat -A PREROUTING -s 192.168.1.0/24 -j REDIRECT \
                -p tcp --dport smtp --to-port 25 # smtp=25, INPUT is open

Pour une règle de redirection plus complexe, installez le paquet ipmasq et ajoutez M30redirect.def au répertoire /etc/ipmasq/rules/.


10.3 Gérer plusieurs connexions à l'Internet

[FIXME] Politique de routage (par Phil Brutsche pbrutsch@tux.creighton.edu) : Voir le Manuel d'iproute pour les détails. Le contrôle de traffic peut aussi être intéressant.

Environnement :

     eth0: 192.168.1.2/24; gateway 192.168.1.1
     eth1: 10.0.0.2/24; gateway 10.0.0.1
     Pas de masquerading sur cette machine.

Un peu de magie :

  1. ip rule add from 192.168.1.2 lookup 1
  2. ip rule add from 10.0.0.2 lookup 2
  3. ip route add to default via 10.0.0.1 metric 0
  4. ip route add to default via 192.168.1.1 metric 1
  5. ip route add table 1 to 192.168.1.0/24 via eth0
  6. ip route add table 1 to 10.0.0.2/24 via eth1
  7. ip route add table 1 to default via 192.168.1.1
  8. ip route add table 2 to 192.168.1.0/24 via eth0
  9. ip route add table 2 to 10.0.0.2/24 via eth1
  10. ip route add table 2 to default via 10.0.0.2

[FIXME] Je n'ai jamais fait cela. Comment configurer une connexion RTC en cas de défaillance d'une connexion rapide ? Envoyez-moi une rustine pour cela s'il-vous-plaît :)


[ précédent ] [ Table des matières ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ suivant ]

Guide de référence pour Debian

1.06-16, sam 03 jan 2004 21:37:21 UTC

Osamu Aoki osamu@debian.org
Coordinateur de traduction en Français : Guillaume Erbs gerbs@free.fr
Auteurs, Section A.1