vendredi 18 septembre 2015

Configuration de la carte réseaux sous Linux

Installation de la carte réseau :
Les cartes réseau sont souvent détectées au démarrage. Si ce n'est pas le cas il faudra charger les modules
correspondants.
Pour obtenir la liste des interfaces réseau qui ont été détectées, on peut utiliser la commande
ifconfig -a
Les sections qui commencent par ethX correspondent aux cartes ethernet, où X est le numéro de la carte.
Si la carte n'est pas détectée, il faudra charger le module avec la commande
modprobe <nom du module>
Parmi les modules courants on peut noter : ne2k-pci pour les cartes NE2000, via-rhine, rtl8139...
Les modules disponibles pour votre noyau se trouvent dans /lib/modules/<nom du
noyau>/kernel/drivers/net/. La commande suivante affiche les modules réseau disponibles pour le noyau
en cours d'utilisation :
ls /lib/modules/`uname -r`/kernel/drivers/net/
Pour connaître le nom du module en fonction du nom commercial d'une carte, une recherche sur internet est souvent
la meilleure solution.
Le noyau donne parfois des informations utiles sur les cartes réseau. On peut rechercher les messages contenant
"eth0" pour avoir plus d'informations sur la première carte réseau détectée :
dmesg | grep eth0
La commande suivante permet d'afficher les cartes réseaux reliées au bus PCI :
lspci | grep Ethernet
 
Configuration de l'interface réseau
Une fois votre carte reconnue par le noyau, vous devez au moins préciser l'adresse IP et le masque de sous-réseau de
la carte. Dans le cas d'un réseau local connecté à Internet, vous devez aussi ajouter l'adresse IP de la passerelle et
l'adresse IP d'un ou plusieurs serveurs DNS.
Adresse IP
Pour attribuer une adresse IP à une interface réseau, on peut utiliser la commande ifconfig :
ifconfig <interface> <adresse ip>
Par exemple :
ifconfig eth0 192.168.1.12
Le masque de sous-réseau est déterminé automatiquement en fonction de la classe de l'adresse IP. S'il est différent on
peut le spécifier avec l'option netmask :
ifconfig eth0 192.168.1.12 netmask 255.255.255.128
Pour voir si la carte réseau est bien configurée, on peut utiliser la commande :
ifconfig eth0
Passerelle et routage
Pour ajouter une passerelle, on peut utiliser la commande route :
route add default gw <adresse ip>
Pour afficher les routes vers les différents réseaux :
route -n
Tester le réseau
Pour tester si la carte réseau fonctionne, on peut essayer de communiquer avec une autre machine avec la commande
ping <adresse ip>
La commande ping envoi un paquet à l'adresse IP puis attend que la machine réponde. Elle affiche ensuite le
temps qu'a pris toute l'opération, en millisecondes.
Informations sur les interfaces
Pour vérifier le statuts de toutes les interfaces on peut utiliser la commande
netstat -a
Nom d'hôte (hostname)
Le fichier /etc/hostname contient le nom de la machine. Il suffit de l'éditer pour changer le nom d'hôte de la
machine. Cette modification n'est pas prise en compte immédiatement par le système. Elle le sera au prochain
démarrage de la machine ou après avoir lancé :
/etc/init.d/hostname.sh
On peut également changer le nom d'hôte avec la commande suivante, mais il ne sera pas conservé au prochain
démarrage :
hostname <nom d'hôte>
Configuration automatique au démarrage
Le fichier /etc/network/interfaces permet de configurer les cartes réseau de manière permanente.
Par exemple :
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
gateway 192.168.1.1

Cette configuration initialisera automatiquement les interfaces "lo" et "eth0".
L'interface "lo" est souvent indispensable au système, il est important de l'initialiser. Elle aura systématiquement
l'adresse IP 127.0.0.1.
L'interface "eth0" sera configurée avec l'adresse IP 192.168.1.2, le masque de sous réseau 255.255.255.0 et la
passerelle 192.168.1.1 (ce paramètre est facultatif).
Si l'interface eth0 doit être configurée automatiquement par un serveur DHCP, il faut indiquer :
auto eth0
iface eth0 inet dhcp

Pour que les modifications de ce fichier soient prises en compte, il faut redémarrer ou utiliser les commandes ifup et ifdown. Par exemple :
ifup eth0
Résolution de noms d'hôte
Le fichier /etc/host.conf indique comment les noms doivent être résolus (c'est à dire comment passer d'une
adresse IP à un nom, et inversement). Par exemple :
# D'abord traduire avec les serveurs DNS et ensuite avec /etc/hosts.
order bind,hosts
# Il existe des machines avec plusieurs adresses
multi on
# Vérifie l'usurpation d'adresse IP
nospoof on

Serveurs DNS
Le fichier /etc/resolv.conf contient les adresses IP des serveurs DNS. Par exemple :
nameserver 208.164.186.1
nameserver 208.164.186.2
search foo

La commande search indique que si un nom de domaine n'est pas trouvé, il faudra essayer en lui ajoutant .foo.
Fichier hosts
Le fichier /etc/hosts contient une liste de résolutions de noms (adresses IP et noms de machine). Par exemple:
192.168.105.2 sasa
Ce fichier indique que sasa correspond à l'adresse IP 192.168.105.2, qui sera accessible par cet alias.

Administration des services réseaux: Configuration du protocole DHCP sous Linux

Le protocole DHCP (pour Dynamic Host Configuration Protocol) est un protocole réseau dont le rôle est d'assurer la configuration automatique des paramètres réseau d'une station, notamment en lui assignant automatiquement une adresse IP et un masque de sous-réseau.
Le protocole DHCP est très souvent mis en oeuvre par les administrateurs de parc de stations car il offre l'énorme avantage de centraliser la configuration des stations sur une unique machine : le serveur DHCP. Le principal danger de DHCP est qu'en cas de panne du serveur DHCP, plus aucune station n'accède au réseau.
Il y a deux utilisations principales d'un serveur DHCP :
• attribuer une configuration fixe à certains postes (on les reconnaît grâce à leur adresse MAC)
• et attribuer une configuration dynamique aux postes inconnus.
On peut par exemple donner une adresse IP fixe à certains serveurs, et attribuer des adresses variables aux autres postes. Le protocole est prévu pour qu'un poste qui revient sur le réseau récupère la même adresse qu'il avait la première fois. Elle lui est réservée un certain temps (le lease time).
Configuration
Le fichier de configuration principal est /etc/dhcp/dhcpd.conf. Sa syntaxe est décrite dans man dhcpd.conf.
Il possède des options globales, généralement placées au début, et des sections pour chaque hôte ou réseau à configurer.
Après chaque modification de la configuration, il faut relancer le serveur :
/etc/init.d/isc-dhcp-server restart
S'il ne se relance pas, le détail de l'erreur se trouve généralement dans /var/log/syslog
Interfaces
Par défaut, le serveur DHCP(Dynamic host configuration protocol) est lancé sur toutes les interfaces. Dans ce cas il est impératif de configurer un réseau par interface dans dhcpd.conf.
Pour choisir les interfaces sur lesquels le serveur est lancé, il faut modifier /etc/default/isc-dhcp-server en indiquant par exemple
INTERFACES="eth1 eth2"
Il est obligatoire d'avoir une section "subnet" (voir ci-dessous) pour le réseau de chaque interface.
Adresse dynamique
Pour configurer une plage d'adresses à attribuer dynamiquement aux adresses MAC inconnues, on utilise une section subnet dans dhcpd.conf. La section suivante attribuera par exemple des adresses comprises entre 192.168.1.101 et
192.168.1.199 :
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.101 192.168.1.199;
}

Adresse fixe
Pour donne une adresse fixe à un poste, il faut connaître son adresse MAC et écrire une section host. Par exemple la section suivante attribue l'adresse 192.168.0.47 au poste cobalt dont l'adresse MAC est 00:13:d4:bd:b7:9a :
host cobalt {
hardware ethernet 00:13:d4:bd:b7:9a;
fixed-address 192.168.0.47;
}

Options
Le serveur DHCP peut fournir d'autres informations que l'adresse IP. Ces options peuvent être définies de manière globale en les plaçant en dehors de toute section. Elles s'appliqueront alors à toutes les sections qui ne les redéfinissent pas. Si elles sont placées dans une section particulière, elles ne s'appliquent qu'à celle-ci.
L'option domain-name-servers permet par exemple d'indiquer au poste les adresses des serveurs DNS. L'option routers indique la passerelle.
Toutes les options sont décrites dans la page de man. On peut également consulter cette documentation sur internet.

Administration des services réseaux: Configuration du protocole NFS sous Linux

Le protocole NFS (Network file system) permet de partager des fichiers entre des machines Unix, et donc Linux.
C'est un modèle client-serveur : une machine met à disposition (exporte) des répertoires de son système de fichier local sur le réseau. Suivant les droits d'accès, les autres stations du réseau peuvent monter ces répertoires, qui seront alors vus comme des répertoires locaux. Un ordinateur peut être à la fois client et serveur NFS.
Installation coté serveur
Commencer par vérifier que les demons NFS (nfsd) ne sont pas déjà lancés avec, par exemple, la commande
ps ax | grep nfsd
Pour lancer les démons manuellement sous Debian :
/etc/init.d/nfs-kernel-server start
ou, si c'est le serveur NFS en espace utilisateur qui est installé :
/etc/init.d/nfs-user-server start
On peut remplacer start par restart pour redémarrer le serveur.
Configuration
Pour partager (ou exporter) des répertoires, il faut renseigner le fichier /etc/exports. Il indique la liste des répertoires
partagés et le nom des machines qui y ont accès.
Chaque ligne correspond à un répertoire et a la forme :
<répertoire local> <nom ou IP des machines autorisées à se connecter>(<options>) <autres machines>(<options>)...
Par exemple :
/home/bob ollinux(rw) station1(ro)
/projet station1(rw) (ro)
/brouillon
Le serveur exporte son répertoire /home. La machine ollinux pourra le monter en lecture/écriture (rw),
station1 en lecture seule (ro), et les autres machines ne pourront pas se connecter.
De même, station1 pourra accéder en lecture/écriture au répertoire projet et toutes les autres stations en
lecture seule.
Enfin, tout le monde pourra accéder en lecture/écriture au répertoire brouillon (l'option rw est celle par défaut).
Pour connaitre la liste des options possibles et leur signification, consultez man exports.
Notez bien que les droits en écriture via le réseau seront toujours inhibés par les droits sur le système de fichier.
Prenons par exemple un fichier test appartenant à root, situé dans le répertoire projet et avec les droits 600
(lecture/écriture pour root uniquement, aucun droit pour les autres). Si l'utilisateur toto accède via la station
station1 au répertoire /projet, il ne pourra pas accéder au fichier test, bien qu'il ait les "droits réseaux
read-write".
Un fois le fichier /etc/exports correctement configuré, il suffit de relancer le service NFS par la commande
suivante pour que les modifications soient prises en compte :
/etc/init.d/nfs-kernel-server reload
Installation coté client
C'est relativement simple puisque le "système de fichier réseau" NFS est directement intégré au noyau. Il suffit de
vérifier que ce dernier a été compilé avec la prise en charge de NFS. C'est le cas de toutes les distributions récentes.
Pour monter un système de fichier distant, utiliser la commande mount avec l'option nfs :
mount -t nfs <machine distante>:<répertoire partagé> <répertoire local> -o <options>
Par exemple :
mount -t nfs 192.168.105.2:/armor/plages /mnt/cotes -o ro
Cette commande montera le répertoire /armor/plages, exporté par la station 192.168.105.2, dans le répertoire
local /mnt/cotes, en lecture seule.
A la place d'une adresse IP, vous pouvez aussi donner un nom de machine, comme par exemple sasa. Pour cela, il
faut que le nom sasa puisse être converti en adresse IP (en modifiant /etc/hosts par exemple, si on n'a pas de
serveur DNS)
Connexion au démarrage
Il est possible de connecter les répertoires partagés au démarrage de la station.
Le plus simple est de renseigner le fichier /etc/fstab qui contient une liste des systèmes de fichiers connus.
La syntaxe est la suivante :
<ordinateur distant>:<répertoire distant> <répertoire local> nfs <options> 0 0
Pour reprendre l'exemple précédent, cela donnerait :
sasa:/armor/plages /mnt/cotes nfs auto,rw,user,soft 0 0
Les options sont décrites dans la page de man de mount. Certaines sont communes à d'autres systèmes de fichiers
(ext2, vfat...) alors que d'autres sont spécifiques à NFS.