Passerelle Internet

De Cliss XXI
Révision datée du 2 mai 2007 à 15:01 par imported>SylvainBeucler (premier jet)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Sauter à la navigation Sauter à la recherche

Comment partager une connexion Internet avec le reste des locaux, ou comment faire un boitier routeur manuellement.

On étudie ici la configuration à partir d'une Debian Etch.


Nommage des cartes réseau

Pour s'y retrouver facilement, on peut renommer eth0, eth1, etc. avec des noms plus explicite.

Le paquet ifrename peut être utilisé dans ce but. Exemple de configuration dans /etc/iftab:

eth-net         mac 00:0C:57:85:FE:45
eth-office      mac 00:19:71:54:AB:83

Le changement est pris en compte au redémarrage, ou en tapant ifrename avec les interfaces concernées down (iptables eth0 down).

TODO: il y a des fois des conflits avec udev sous Etch?

Routage IP

La passerelle transmet les paquets qu'elle reçoit du réseau local vers l'Internet.

Facile, c'est le noyau Linux qui s'en occupe. Cela se configure via /etc/sysctl.conf:

net.ipv4.conf.default.forwarding=1

Pour prendre en compte les paramètres:

sysctl -p /etc/sysctl.conf

Pour vérifier:

sysctl -a | grep default.forwarding

Note: précedemment configuré dans /etc/network/options - à migrer si c'est le cas sur une ancienne machine (cf. /usr/share/doc/netbase/README.Debian).


NAT

Un serveur Internet ne saura pas où envoyer une réponse à 192.168.1.10, par exemple. Du coup, il faut modifier l'adresse IP source des paquets, et la remplacer l'adresse IP publique de la passerelle.

Cette technique s'appelle le masquerading, et fait partie du concept plus général du NAT (network address translation). Cela se fait au niveau du pare-feu, iptables.

Voir la partie Shared Internet access sur debmaintenance

Mise en place du masquerading

Cf. basic-firewall.txt

iptables -t nat -A POSTROUTING -o eth-inet -j MASQUERADE

Modules noyau

Le masquerading est très utilisé mais ne respecte pas le protocole IP. Il peut occasionner des soucis, par exemple pour le protocole FTP qui utilise deux connexions simultanées (contrôle et données).

Rajouter dans /etc/modules:

ip_conntrack_ftp
ip_nat_ftp

MTU

Il y a également des problèmes de taille de paquets trop gros. Sans entrer dans les détails, il s'agit du problème du MTU (maximum transfert unit).

Rajouter la ligne correspondante dans le pare-feu.

iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS -o eth-inet --clamp-mss-to-pmtu

Droits

On ne fait du routage que pour le réseau interne. Pas question de router des paquets pour les extérieurs. Les paquets transmis, avant d'êtres NATés, passent par la règle FORWARD d'iptables:

iptables -A FORWARD -i eth-office -j ACCEPT
iptables -A FORWARD -i eth-inet -o eth-office -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -j REJECT


Serveur DHCP

DHCP permet d'attribuer des adresses locales aux postes connectés au réseau, avec configuration automatique des .


Serveur DNS

Alternative: Dnsmasq

Le paquet dnsmasq