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.
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.
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
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.
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
Les paquets sont traités pour chaque chaîne par défaut selon la table suivante.
Les règles de pare-feu ont plusieurs cibles :
--to-source ipaddr[-ipaddr][:port-port]
--to-ports port[-port]
--to-destination ipaddr[-ipaddr][:port-port]
--to-ports port[-port]
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
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
.
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/
.
[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 :
[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 :)
Guide de référence pour Debian
1.06-16, sam 03 jan 2004 21:37:21 UTCosamu@debian.org
gerbs@free.fr