date: 15 Jan 2009 title: Recycler un vieux PC en passerelle internet tags: debian, gnu, internet, Linux, passerelle, planet-libre, réseau, serveur dhcp categories: Administration & Configuration, GNU-Linux et Logiciels Libres Dans ce tuto, je vais vous expliquer comment transformer un PC en passerelle internet. Cela peut servir dans le cas ou vous voulez partager votre connection à internet (vous n'avez qu'un modem ADSL qui ne fait pas de routage, ou plus de ports disponible sur votre box (c'est mon cas),  etc...). *Objectif :* Une fois la passerelle configurée, on pourra brancher au tant de PC que l'on veut sur celle ci, à condition bien sur d'avoir assez de cartes réseau (ou alors de disposer d'un switch). Ces PC pourront alors avoir accès à internet de façon transparente (pas de config sur ceux ci). *Configuration matérielle de la passerelle :* n'importe quel vieux PC conviendra, pour peu qu'il dispose de 2 cartes réseau au minimum. J'y ai installé une Debian 4.0, mais toutes distributions peuvent faire l'affaire. Voici un petit schéma de mon réseau. À vous d'adapter le tuto à votre configuration. NOTE: n'oubliez pas de faire des copies de sauvegarde des fichier de config que vous modifiez avant de les ouvrir. Je préfère le rappeler, on ne sait jamais... ## Première étape : configuration des interfaces réseaux Je pars du principe que la passerelle est correctement configurée du coté eth0 ; il n'y a rien de spécial à faire de ce coté. Normalement, elle a été configuré lors de l'installation de la distribution. Pour les interfaces eth1 et eth2, il va falloir leurs attribuer une IP (celle que verront les PC connectés derrière) : modifiez le fichier /etc/network/interface comme ceci (à rajouter en fin de fichier) : auto eth1 iface eth1 inet static address 192.168.10.1 netmask 255.255.255.0 auto eth2 iface eth2 inet static address 192.168.10.1 netmask 255.255.255.0 Si vous avez des lignes qui parle de eth1 et eth2, supprimez les. ## Deuxième étape : activation de la translation d'adresse entre les interfaces eth0 et {eth1,eth2} Tout d'abord, commençons par modifier le fichier /etc/sysctl.conf : décommentez les lignes: net.ipv4.conf.default.rp_filter=1 net.ipv4.conf.default.forwarding=1 Ensuite, nous allons créer un petit script qui ajoutera une règle dans iptables, le par feu par défaut dans Gnu-Linux. Étant donné que la table de iptables est effacée à chaque reboot, le script devra être lancé au boot du système. Placez le de préférence dans /etc/init.d/, répertoire contenant les scripts de démarrage. #!/bin/bash # Mise en place de la translation d'adresse (NAT) start() { echo "Activating NAT protocol... " echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE echo "done." } stop() { echo "Deactivating NAT protocol... " echo 0 > /proc/sys/net/ipv4/ip_forward echo "done." } case "$1" in start) start ;; stop) stop ;; restart) stop && start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit 0 rendez le exécutable : chmod +x /etc/init.d/ip_forward et intégrez le à la liste des scripts à lancer au boot : update-rc.d iptables start 99 2 . stop 00 2 0 1 6 . ## Dernière étape : configuration d'un serveur DHCP Pour qu'il n'y ai aucune config à faire sur les PC qui seront branché derrière la passerelle, il faut que celle ci donne automatiquement les renseignements nécessaires pour une connection à internet (IP du PC, IP de la passerelle, IP du DNS, ...). Cette étape n'est pas obligatoire, à ce stade la passerelle devrait fonctionner mais en IP statique seulement. On installe donc le serveur dhcp : apt-get install dhcp3-server Vous devriez avoir une erreur du style : start dhcpd failed C'est normal car il n'est pas encore configuré. Éditez donc le fichier /etc/default/dhcp3-server et renseignez le champ INTERFACES avec le nom des interfaces sur lesquels écouter les requêtes de connection : INTERFACES="eth1 eth2" Puis ouvrez le fichier /etc/dhcp3/dhcpd.conf et modifiez les lignes suivantes : option domain-name "Passerelle"; option-domain-name-servers 192.168.1.1, 192.168.10.1; Vous pouvez mettre se que vous voulez pour domain-name, cela importe peu dans le cas présent. domain-name-servers étant les adresses IP des serveurs DNS. La première devrait se trouver dans le fichier /etc/resolv.conf (dans mon cas, et dans de nombreux cas, c'est l'adresse de votre box). Pour la seconde, j'ai mis celle de la passerelle, car j'y installerai peut-être un serveur DNS local. Ensuite décommentez authoritative; pour obliger les clients à utiliser un connection dhcp (ip fixe interdite) Enfin décommentez et adaptez selon votre cas : subnet netmask { range ; options routers ; } Par exemple : subnet 192.168.10.0 netmask 255.255.255.0 { range 192.168.10.2 192.168.10.100; option routers 192.168.10.1; } Vous pouvez voir les exemples dans la suite du fichier, pour par exemple reserver des IP à certain PC Et enfin, la commande finale, pour que tout soit pris en compte : /etc/init.d/dhcp3-server restart Petit bonus de fin : vous pouvez consulter le fichier /var/lib/dhcp3/dhclient.leases pour avoir la liste des postes connectés à la passerelle.