Lorsque vous travaillez dans une entreprise, il est courant d'utiliser un serveur (sous Windows Server ou sous Linux) comme routeur, notamment pour effectuer du filtrage ou pour une autre raison.
Ensuite, lorsque l'on crée une passerelle, on installe aussi un serveur DHCP pour distribuer automatiquement les adresses IP aux PC clients. Ceci peut être effectué avec un périphérique physique ou via un programme installé sur un serveur.
Dans notre cas, notre serveur Linux servira de passerelle (routeur) et de serveur DHCP.
Configuration utilisée :
- un serveur sous Linux (Debian 7.7.0 x64) avec 2 cartes réseau. La 1ère connectée sur le réseau WAN (externe) et la 2ème sur le réseau LAN (interne).
- un client sous Windows, Linux ou autre. Dans notre cas, nous avons utilisé un PC sous Windows 7.
Pour commencer, vous devez configurer les 2 interfaces réseau (carte réseau) de votre serveur Linux.
- Du côté WAN (eth0 dans notre cas), le serveur Linux aura une adresse IP statique (qui dépend de la classe d'IP du réseau WAN).
- Du côté LAN (eth1 dans notre cas), le serveur Linux aura une adresse IP statique qui devra correspondre à la classe d'IP du serveur DHCP existant sur le réseau LAN ou du serveur DHCP que nous installerons sous Linux.
Dans notre cas, nous utiliserons :
- une classe C pour le réseau WAN : 192.168.x.x
- une classe A pour le réseau LAN : 10.x.x.x
Pour définir une adresse IP statique, référez-vous à un de ces tutoriels :
Voici notre configuration réseau pour l'IP statique WAN (/etc/network/interfaces).
Note : ne supprimez pas la partie concernant l'interface lo (loopback).
Plain Text
auto eth0 iface eth0 inet static address 192.168.1.10 netmask 255.255.255.0 gateway 192.168.1.1
Et notre configuration DNS (/etc/resolv.conf).
Note : il s'agit des serveurs DNS publics de Google.
Plain Text
nameserver 8.8.8.8 nameserver 8.8.4.4
Ensuite, pour l'interface LAN, vous devrez utiliser un ID réseau.
Dans notre cas, notre serveur Linux aura :
- une adresse IP "10.0.0.254" coté LAN. C'est cette adresse que les clients devront indiquer en tant que passerelle par défaut.
- un masque de sous réseau "255.0.0.0" (de classe A comme l'adresse IP citée précédemment)
- une adresse de broadcast "10.255.255.255" (il s'agit d'une adresse IP réservée reconnaissable aux valeurs : 255)
- et un ID réseau "10.0.0.0" (reconnaissables aux valeurs 0 indiquées à la fin)
Plain Text
auto eth1 iface eth1 inet static address 10.0.0.254 netmask 255.0.0.0 broadcast 10.255.255.255 network 10.0.0.0
Pour finir, redémarrer la machine pour prendre en compte les changements.
Lorsque l'on configure un serveur pour qu'il agisse en tant que passerelle, on installe généralement un serveur DHCP sur ce même serveur.
En effet, les machines se trouvant sur le réseau LAN devront avoir une adresse IP pour pouvoir communiquer avec votre passerelle et donc avoir accès à Internet.
Si votre serveur Linux et vos clients sont branchés sur un switch, vous devrez aussi installer le serveur DHCP sur votre serveur Linux ou sur un serveur se trouvant sur le réseau LAN.
Dans notre cas, nous allons installer un serveur DHCP sous Linux.
Pour cela, installez le paquet "isc-dhcp-server".
Note : isc-dhcp-server est le remplaçant de dhcp3-server. De plus, si vous tentez d'installer le paquet "dhcp3-server", vous verrez que Linux choisira automatiquement d'installer le paquet "isc-dhcp-server".
Bash
apt-get install isc-dhcp-server
A la fin de l'installation, vous verrez que la tentative de démarrage du serveur DHCP provoquera une erreur.
Si vous regardez dans le fichier "/var/log/syslog", vous verrez que cette erreur est due à la non-configuration du fichier "dhcpd.conf".
Plain Text
Oct 7 13:20:19 debian dhcpd: No subnet declaration for eth1 (10.0.0.254). Oct 7 13:20:19 debian dhcpd: ** Ignoring requests on eth1. If this is not what Oct 7 13:20:19 debian dhcpd: you want, please write a subnet declaration Oct 7 13:20:19 debian dhcpd: in your dhcpd.conf file for the network segment Oct 7 13:20:19 debian dhcpd: to which interface eth1 is attached. ** Oct 7 13:20:19 debian dhcpd: Oct 7 13:20:19 debian dhcpd: Not configured to listen on any interfaces!
Pour résoudre ce problème et configurer votre serveur DHCP, vous devrez donc modifier le fichier "/etc/dhcp3/dhcpd.conf" ou "/etc/dhcp/dhcpd.conf" (en fonction de votre distribution Linux et de sa version).
Bash
vi /etc/dhcp/dhcpd.conf
Dans ce fichier, vous trouverez plusieurs informations importantes.
Le domaine (ou "Suffixe DNS propre à la connexion" sous Windows).
Il s'agit du nom de domaine local présent sur votre réseau.
Définir cette valeur est utile si vous posséder un serveur Active Directory sur votre réseau local, par exemple.
Plain Text
option domain-name "informatiweb.lan";
Ensuite, vous pourrez indiquer les serveurs DNS que vos clients devront utiliser.
Soit, vous indiquez les serveurs DNS publics de Google, soit ceux de votre fournisseur d'accès à Internet (FAI) ou l'adresse IP de votre passerelle si vous comptez y installer un serveur DNS (exemple : BIND).
Dans notre cas, nos clients utiliseront ceux de Google.
Plain Text
option domain-name-servers 8.8.8.8, 8.8.4.4;
Pour finir, vous devrez définir :
- une plage d'adresse IP pour votre réseau LAN (interne) : range x.x.x.x x.x.x.x;
- et l'adresse IP de la passerelle que vos clients devront utiliser : option routers x.x.x.x;
Plain Text
subnet 10.0.0.0 netmask 255.0.0.0 { range 10.0.0.10 10.0.0.20; option routers 10.0.0.254; }
Notez que par défaut, le bail (durée de validité des adresses IP seront de 7200 secondes. Donc, 2 heures.).
Pour modifier la durée de validité des adresses IP, modifiez ces lignes :
Plain Text
default-lease-time 600; max-lease-time 7200;
Redémarrez le serveur DHCP.
Bash
/etc/init.d/isc-dhcp-server restart
Note : si vous utilisez toujours l'ancien paquet "dhcp3-server" et non "isc-dhcp-server", vous devrez utiliser cette commande :
Bash
/etc/init.d/dhcp3-server restart
Grâce au serveur DHCP, vous pouvez attribuer automatiquement des adresses IP aux ordinateurs de votre réseau.
Néanmoins, un serveur DHCP permet aussi d'attribuer à chaque fois la même adresse IP à une machine spécifique (par exemple : un autre serveur présent sur le même réseau).
Pour cela, il suffit de rajouter ceci pour chaque IP statique.
Dans ce bloc, vous indiquerez :
- le nom de la machine (en théorie, ce nom n'est pas vérifié) : my-server
- l'adresse MAC de la machine : 01:23:45:67:89:01
- l'adresse IP que cette machine obtiendra à chaque fois : 10.0.0.15
Note : pour trouver l'adresse MAC (adresse physique) d'une machine, utilisez la commande "ipconfig /all" sous Windows ou "ifconfig" sous Linux.
Plain Text
host my-server { hardware ethernet 01:23:45:67:89:01; fixed-address 10.0.0.15; }
Pour finir, nous allons activer le routage des paquets sur notre serveur Linux pour que celui-ci se comporte comme un routeur (une passerelle).
Pour cela, modifiez le fichier "/etc/sysctl.conf".
Bash
vi /etc/sysctl.conf
Et décommentez la ligne "net.ipv4.ip_forward=1".
Plain Text
net.ipv4.ip_forward=1
Ensuite, modifiez le fichier "/etc/rc.local".
Bash
vi /etc/rc.local
Et ajoutez ceci avant la ligne "exit".
Bash
/sbin/iptables -P FORWARD ACCEPT /sbin/iptables --table nat -A POSTROUTING -o eth0 -j MASQUERADE
Maintenant, à chaque démarrage, ces 2 lignes seront exécutées et le pare-feu de Linux acceptera donc de routeur les paquets entre vos 2 interfaces réseau (cartes réseau).
Redémarrer votre serveur pour appliquer les changements :
Bash
reboot
Ou tapez les 2 commandes "/sbin/iptables ..." pour éviter de devoir redémarrer maintenant.
Pour router des ports sous Linux et donc pouvoir accéder à un serveur local depuis l'extérieur (par exemple : Internet), il suffira d'ajouter ceci dans le fichier "rc.local".
Note :
- eth0 : correspond à l'interface WAN (externe / Internet) de votre serveur Linux.
- informatiweb.no-ip.org : au nom de domaine externe ou à l'adresse IP externe de votre serveur Linux.
- dport : le port externe (HTTP = 80 par défaut)
- to 10.0.0.2:80 : l'adresse IP du serveur sur votre réseau interne (LAN) et le port sur lequel votre serveur écoute. Ici un serveur web (Apache ou IIS) qui écoute par défaut sur le port 80 (HTTP).
Bash
/sbin/iptables -t nat -A PREROUTING -p tcp -i eth0 -d informatiweb.no-ip.org --dport 80 -j DNAT --to 10.0.0.2:80
Pour tester notre configuration, nous avons utilisé un client sous Windows.
Mais cela fonctionnera avec n'importe quelle machine et n'importe quel système d'exploitation (Windows, Mac, Linux, ...).
Comme vous pouvez le voir :
- le nom de domaine local (facultatif) est : informatiweb.lan
- notre PC client a bien reçu une adresse IP : 10.0.0.10
- le masque de sous-réseau est : 255.0.0.0
- l'adresse IPv4 de la passerelle (routeur) : 10.0.0.254
- l'adresse IP du serveur DHCP depuis lequel notre client a reçu une adresse IP est : 10.0.0.254
- et notre PC client utilisera les serveurs DNS de Google : 8.8.8.8 et 8.8.4.4
Linux 14/2/2015
Linux 26/12/2014
Linux 4/2/2014
Linux 20/12/2014
Contenu épinglé
Contact
® InformatiWeb-Pro.net - InformatiWeb.net 2008-2022 - © Lionel Eppe - Tous droits réservés.
Toute reproduction totale ou partielle de ce site est interdite et constituerait une contrefaçon sanctionnée par les articles L.335-2 et suivants du Code de la propriété intellectuelle.
Vous devez être connecté pour pouvoir poster un commentaire