Accueil

Passerelle Internet

Par Serge.

Partager sa connexion Internet

Ce document est sous licence Licence pour Documents Libres de la guilde des doctorants.

Sommaire

Introduction

Si vous avez plusieurs ordinateurs à la maison (ou au travail dans une petite société, ...) et une connexion internet haut débit (ou même bas débit d'ailleur), vous souhaitez surement partager cette connexion Internet avec tout les ordinateurs. Et bien sur, la Slackware a de base tout les outils pour faire cela. Un simple poste de travail trés peu puissant est largement suffisant pour accomplir cette tâche, un vieux Pentium par exemple avec 64Mo de mémoire (32Mo peuvent convenir mais pour plus de confort je vous conseille 64).

Nous souhaitons que ce partage de connexion internet soit totalement transparent pour les postes de travail, donc de n'avoir quasiement aucune configuration à faire sur ces derniers, et que ce partage de connexion soit sécurisé, c'est à dire que nous essayons dans la mesure du possible qu'aucun pirate externe puisse s'introduire sur notre réseau local.

Je suppose tout au long de cet article que la connexion internet de la passerelle est configurée et fonctionelle, c'est à dire que cette machine posséde un modem ou une carte réseau configuré pour une connection directe à l'internet. Cette passerelle posséde aussi une carte réseau libre non configurée ou déjà configurée pour un réseau local avec les autres ordinateurs qui vont utiliser le partage de connexion Internet.

Configurer le réseau local

Comme nous l'avons mentioné dans l'introduction, nous souhaitons que le réseau local demande le moins possible de configuration. Pour cela nous allons choisir le protocole DHCP pour configurer tout les postes de travail du réseau.

Nous devons aussi déterminer notre plan d'adressage réseau. A titre d'exemple pour cet article, voici le plan d'adressage réseau que je défini:

Configuration réseau des postes de travail

La configuration est donc extrémement simple, vous devez simplement configurer la connexion réseau de chaque poste de travail en DHCP. Sur les postes en Slackware 10.0 et supérieur, vous devez indiquer dans le fichier /etc/rc.d/rc.inet1.conf, par exemple pour la 1er carte réseau (0 donc):

 # /etc/rc.d/rc.inet1.conf
 #
 # This file contains the configuration settings for network interfaces.
 # If USE_DHCP[interface] is set to "yes", this overrides any other settings.
 # If you don't have an interface, leave the settings null ("").
 
 # Config information for eth0:
 IPADDR[0]=""
 NETMASK[0]=""
 USE_DHCP[0]="yes"
 DHCP_HOSTNAME[0]=""
 
 # Config information for eth1:
 IPADDR[1]=""
 NETMASK[1]=""
 USE_DHCP[1]=""
 DHCP_HOSTNAME[1]=""
 
 # Config information for eth2:
 IPADDR[2]=""
 NETMASK[2]=""
 USE_DHCP[2]=""
 DHCP_HOSTNAME[2]=""
 
 # Config information for eth3:
 IPADDR[3]=""
 NETMASK[3]=""
 USE_DHCP[3]=""
 DHCP_HOSTNAME[3]=""
 
 # Default gateway IP address:
 GATEWAY=""
 
 # Change this to "yes" for debugging output to stdout. Unfortunately,
 # /sbin/hotplug seems to disable stdout so you'll only see debugging output
 # when rc.inet1 is called directly.
 DEBUG_ETH_UP="no"

où X est le numéro de la carte réseau connectée au réseau local. Pour d'autres distribution réseau, consulter son manuel afin de configurer la carte réseau en DHCP. Pour les postes Windows, vous devez choisir Configuration automatique ou Obtenir automatiquement une adresse IP. Vous n'avez rien d'autre à configurer sur les postes de travail.

Configuration réseau de la passerelle

Nous devons configurer la passerelle afin qu'elle configure automatiquement tout poste de travail qui se brancherait physiquement sur le réseau local. Pour cela nous devons tout d'abord configurer la carte réseau de la passerelle avec l'adresse définie au dessus. Dans le cas d'une slackware 10.0, si on suppose que la 1er carte réseau (donc de numéro 0) est celle du réseau local, nous devons modifier le fichier /etc/rc.d/rc.inet1.conf de cette façon:

 # /etc/rc.d/rc.inet1.conf
 #
 # This file contains the configuration settings for network interfaces.
 # If USE_DHCP[interface] is set to "yes", this overrides any other settings.
 # If you don't have an interface, leave the settings null ("").
 
 # Config information for eth0:
 IPADDR[0]="192.168.10.254"
 NETMASK[0]="255.255.255.0"
 USE_DHCP[0]=""
 DHCP_HOSTNAME[0]=""
 
 # Config information for eth1:
 IPADDR[1]=""
 NETMASK[1]=""
 USE_DHCP[1]=""
 DHCP_HOSTNAME[1]=""
 
 # Config information for eth2:
 IPADDR[2]=""
 NETMASK[2]=""
 USE_DHCP[2]=""
 DHCP_HOSTNAME[2]=""
 
 # Config information for eth3:
 IPADDR[3]=""
 NETMASK[3]=""
 USE_DHCP[3]=""
 DHCP_HOSTNAME[3]=""
 
 # Default gateway IP address:
 GATEWAY=""
 
 # Change this to "yes" for debugging output to stdout. Unfortunately,
 # /sbin/hotplug seems to disable stdout so you'll only see debugging output
 # when rc.inet1 is called directly.
 DEBUG_ETH_UP="no"

La configuration réseau propre à la passerelle est finit, vous pouvez la faire prendre en compte en lançant le script de configuration réseau en root via la commande: /etc/rc.d/rc.inet1 eth0_restart . La configuration réseau de la passerelle est finit, nous allons maintenant configurer son serveur DHCP qui va distribuer les adresses réseaux aux autres ordinateurs.

Configuration du serveur DHCP

La configuration du serveur DHCP se trouve dans le fichier /etc/dhcpd.conf. Pour être fidèle à la configuration réseau que nous avons ennoncé en début d'article, ce fichier doit contenir:

 # dhcpd.conf
 #
 # Configuration file for salckFR
 # This is just an example
 #
 default-lease-time 6000;
 max-lease-time 72000;
 
 subnet 192.168.10.254 netmask 255.255.255.0 
 {
 range 192.168.10.1 192.168.10.200;
 option routers 192.168.10.254;
 option domain-name-servers 80.10.10.1, 80.10.10.2;
 option domain-name "wanadoo.fr";
 }

Un peu d'explications sur ce fichier:

Il existe bien d'autres options de configuration pour les serveurs DHCP, mais nous ne les détailleront pas ici car cela depasse le cadre de l'article.

Partager et sécuriser la connexion Internet

C'est ici que nous allons partager et sécuriser la connexion internet. Tout d'abord nous devons autoriser la passerelle à forwarder les paquets réseaux, c'est à dire l'autoriser a faire transiter les paquets réseaux entre l'extérieur (l'Internet) et l'intérieur (le réseau local formé par les postes de travail).

Activer le forwarding

Pour cela, il suffit de rendre executable le script d'init correspondant, via la commande, en tant que root:

 chmod u+x /etc/rc.d/rc.ip_forward 

De ce fait, l'activation se fera automatiquement au démarrage. Vous pouvez l'activer manuellement immédiatement par la commande /etc/rc.d/rc.ip_forward start.

Partage de la connexion et sécurisation

Chapitre à mettre à jour

Optimiser votre connexion

Maintenant que vous partagez une seule connexion avec plusieurs autres PCs, il peut être avantageux d'optimiser l'utilisation de cette connexion. Pour ce faire nous allons utiliser ce que l'on appelle un QoS, pour Quality of Services. Je ne rentrerai pas dans le détail du fonctionnement d'un QoS et de plus nous allons utiliser la méthode la plus approriée pour un cas d'utilisation simple, à savoir que l'on veut :

Pour ce faire, dans Networking options > Qos and/or fair queueing de la configuration du noyau, vérifez que :

Si besoin recompilez le noyau, mais normallement avec les noyaux de la 10.0 et de la -current, tout est déjà dans le noyau ou en module.

Vérifiez que le package iproute2 est installé. Si ce n'est pas le cas il est dans les packages officiels de la série n.

Maintenant nous téléchargeons le script de gestion de la bande passante WonderSharper. Une fois téléchargé, en tant que root installer-le là où vous voulez. Personnellement je l'ai installé sous /etc/wondershaper-<version> en faisant ainsi :

 # cd /etc
 # tar -xvzf wondershaper-<version>.tar.gz

Dans le répertoire d'installation, modifier le fichier wsharper.htb (ou wsharper, plus testé mais utilise une méthode différente et moins performante) afin de supprimer les lignes en vertes et afin d'indiquer les spécificités de votre ligne, ici une ligne adsl 512/128 en éthernet sur eth0 :

 [...]
 # Set the following values to somewhat less than your actual download
 # and uplink speed. In kilobits. Also set the device that is to be shaped.
 DOWNLINK=512
 UPLINK=128
 DEV=eth0
 [...]
 # Now remove the following two lines :-)
 
 echo Please read the documentation in 'README' first :-\)
 exit
 [...]

Une fois cela fait, il ne reste plus qu'à lancer le script wsharper.htb au moment de la connexion Internet. Donc une solution est de l'ajouter dans le script de connexion ou dans le /etc/ppp/ip-up.

Pour en savoir plus sur le QoS vous pouvez commencer par lire QoS/Gestion de la bande passante sous Linux sur Léa-Linux. Ensuite, à vous d'approfondir avec Internet.

Thèmes : #articles #local #reseau #securite #serge #services

Sauf indication contraire, ce document est placé sous licence CC-BY-SA 3.0.