0% ont trouvé ce document utile (0 vote)
4 vues87 pages

Guide complet sur le réseau UNIX

Le document traite des réseaux sous UNIX, incluant l'historique, la présentation des services, l'installation et la configuration des cartes réseau. Il décrit également les commandes essentielles comme ifconfig et netstat, ainsi que les fichiers de configuration nécessaires pour établir une connexion réseau. Enfin, il aborde les services ARPA, Berkeley et SUN utilisés pour la communication entre systèmes UNIX et non-UNIX.

Transféré par

KhardaniMaamer
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOC, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues87 pages

Guide complet sur le réseau UNIX

Le document traite des réseaux sous UNIX, incluant l'historique, la présentation des services, l'installation et la configuration des cartes réseau. Il décrit également les commandes essentielles comme ifconfig et netstat, ainsi que les fichiers de configuration nécessaires pour établir une connexion réseau. Enfin, il aborde les services ARPA, Berkeley et SUN utilisés pour la communication entre systèmes UNIX et non-UNIX.

Transféré par

KhardaniMaamer
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOC, PDF, TXT ou lisez en ligne sur Scribd

UNIX RESEAU

LE RESEAU SOUS UNIX

SC 1 UNIX RESEAU 03/11/2025


UNIX RESEAU

SC 2 UNIX RESEAU
UNIX RESEAU

  

SC 3 UNIX RESEAU
UNIX RESEAU

SOMMAIRE

SOMMAIRE 4

HISTORIQUE 7

PRESENTATION DES SERVICES 9

RELATIONS INTERFACES,PILOTES ET MATERIEL 13

INSTALLATION D'UNE CARTE RESEAU 15

CONFIGURATION DE LA COUCHE RESEAU 19

COMMANDE IFCONFIG 21

COMMANDE NETSTAT 23

INTERFACE LOOPBACK 25

FICHIER /ETC/HOSTS 27

FICHIER /ETC/SERVICES 29

FICHIER /ETC/PROCOLS 31

FICHIER /ETC/NETWORKS 33

FICHIER /ETC/[Link] 35

TCP WRAPPER 39

COMMANDE TELNET 43

COMMANDE FTP 45

NOTIONS D'EQUIVALENCE 47

SC 4 UNIX RESEAU
UNIX RESEAU

COMMANDE RLOGIN 51

COMMANDE RCP 53

REMOTE PROCEDURE CALL (RPC) 55

NFS 59

ROUTAGE SOUS UNIX 61

COMMANDE ROUTE 63

COMMANDE ROUTED 65

COMMANDE GATED 67

DOMAIN NAME SYSTEM (DNS) 69

SC 5 UNIX RESEAU
UNIX RESEAU

HISTORIQUE

1970 L'ARPA (Advanced Research Project Agency ) finança un projet de recherche


pour créer un réseau à commutation de paquets expérimental.
Le réseau porta le nom ARPANET

1975 Le réseau expérimental ARPANET devint opérationnel, la responsabilité en


matière d'administration fut donnée à la DCA (Defense Communication
Agency )

1983 Les protocoles TCP/IP ont été adoptés comme normes militaires et toutes les
machines connectées au réseau ont dû les employer. L'ARPA finança
BOLT,BERANEK et NEWMAN pour qu'ils implémentent TCP/IP dans la version
Berkeley d'UNIX BSD.

1983 Le vieux réseau ARPANET fût divisé en deux réseaux MILNET et un nouveau
réseau ARPANET plus petit. La réunion de ces deux réseaux a donné
naissance à l'Internet

1985 La "National Science Fondation" (NSF) créa le réseau NSFNet et se connecta


au réseau Internet existant

1987 La NSF créa un nouveau backbone plus rapide.

1990 L'ARPANET cessa de manière officielle d'exister

1995 NSFNet arrêta de jouer son rôle de réseau fédérateur Internet

1999 Aujourd'hui l'Internet est plus grand que jamais et il comporte plus de 100000
réseaux répartis.

SC 6 UNIX RESEAU
UNIX RESEAU

HISTORIQUE

1970 L'ARPA (Advanced Research Project Agency ) finança un projet


de recherche pour créer un réseau à commutation de paquets
expérimental.
Le réseau porta le nom ARPANET

1975 Le réseau expérimental ARPANET devint opérationnel, la


responsabilité en matière d'administration fut donnée à la DCA
(Defense Communication Agency )

1983 Les protocoles TCP/IP ont été adoptés comme normes militaires
et toutes les machines connectées au réseau ont dû les employer.
L'ARPA finança BOLT,BERANEK et NEWMAN pour qu'ils
mettent en place TCP/IP dans la version Berkeley d'UNIX BSD.

1983 Le vieux réseau ARPANET fût divisé en deux réseaux MILNET et


un nouveau réseau ARPANET plus petit. La réunion de ces deux
réseaux a donné naissance à l'Internet

1985 La "National Science Fondation" (NSF) créa le réseau NSFNet et


se connecta au réseau Internet existant

1988 La NSF créa un nouveau backbone plus rapide.

1991 L'ARPANET cessa de manière officielle d'exister

1971 NSFNet arrêta de jouer son rôle de réseau fédérateur Internet

1999 Aujourd'hui l'Internet est plus grand que jamais et il comporte plus
de 100000 réseaux répartis.

SC 7 UNIX RESEAU
UNIX RESEAU

Présentation des services

SERVICES ARPA
Les services ARPA sont généralement utilisés pour communiquer avec des
systèmes non-UNIX comme VAX/VMS, et le PC.
Mais toute fois un système UNIX peux communiquer avec un autre système
UNIX si ces deux systèmes possèdent les services ARPA.
Exemple :

telnet = Connexion distante


ftp = Transfert de fichier (TCP)
tftp = Transfert de fichier (UDP)
smtp = Transfert de mail
dns = Service de nom de domaine
bootp = Service de boot
routed = Service de routage RIP
gated = Service de routage ( RIP, OSPF, etc..)
dhcp = Service de configuration dynamique

SC 8 UNIX RESEAU
UNIX RESEAU

PRESENTATION DES SERVICES

MODELE SERVICES SERVICES SERVICES


OSI ARPA BERKELEY SUN

telnet rlogin NFS


APPLICATION ftp rcp NIS
smtp rsh
bootp… rwho …

PRESENTATION XDR

SESSION BSD IPC BSD IPC RPC

TRANSPORT TCP/UDP TCP/UDP TCP/UDP

RESEAU IP IP IP

LIAISON Ethernet Ethernet Ethernet

PHYSIQUE Ethernet Ethernet Ethernet

CORRESPONDANCE AVEC LE MODELE OSI

SC 9 UNIX RESEAU
UNIX RESEAU

Présentation des services (suite)

SERVICES BERKELEY

Les services Berkeley sont utilisés pour communiquer entre systèmes UNIX
comme HPUX, VAX, SUN,LINUX..

rlogin = connexion distante


rsh = Exécution d'une commande a distance
rcp = Copie de fichier
rexec = Exécution de commande avec envoi du mot de pass
rwho = Utilisateur logés
ruptime = Statistique de charge

SERVICES SUN

NFS = Systèmes de fichier distribués


NIS = Système de maintenance centralisée des fichiers
administrations (les pages jaunes)

SC 10 UNIX RESEAU
UNIX RESEAU

MODELE SERVICES SERVICES SERVICES


OSI ARPA BERKELEY SUN

telnet rlogin NFS


APPLICATION ftp rcp NIS
smtp rsh
bootp… rwho …

PRESENTATION XDR

SESSION BSD IPC BSD IPC RPC

TRANSPORT TCP/UDP TCP/UDP TCP/UDP

RESEAU IP IP IP

LIAISON Ethernet Ethernet Ethernet

PHYSIQUE Ethernet Ethernet Ethernet

CORRESPONDANCE AVEC LE MODELE OSI

SC 11 UNIX RESEAU
UNIX RESEAU

Configuration d'une carte réseau sous LINUX

Il y a plusieurs méthodes pour installer une carte Ethernet dans un système


LINUX.

La première méthode consiste à laisser faire le système lors de l'installation.


On prie que le système découvre la carte ?

La deuxième méthode consiste à modifier le noyau et paramètrer quelques fichiers de


configurations. Nous allons expliquer cette deuxième méthode.
Pour que votre noyau puisse accéder votre carte réseau, il est important qu'il contienne
des fonctions spéciales connaissant la méthode à employer pour accéder à ce
périphérique.
Ce sont les fameux pilotes de périphérique, Linux possède des pilotes pour plusieurs
marques de cartes Ethernet : SMC, NE2000, 3com etc…

Le pilote doit être capable de communiquer par un moyen quelconque avec la carte, il doit
pouvoir lui envoyer des commandes, des données et la carte doit délivrer toute donnée
reçue a ce pilote

Dans un PC, cette communication se fait par l'intermédiaire d'une zone mémoire destinée
aux entrées/sorties qui donne accès aux registres de la carte.
Il est parfois important d'indiquer au noyau la ligne d'interruption IRQ

Le noyau doit être capable d'identifier le nombre de carte réseau dans la machine, pour
cela le noyau utilise des noms d'interfaces : eth0, eth1, lo, ppp0, slip1 etc…
L'affectation des noms en fonction des interfaces physiques peut être choisie par le
système ou par l'administrateur réseau.
On affecte ensuite une adresse IP par interface.

SC 12 UNIX RESEAU
UNIX RESEAU

RELATIONS INTERFACES,PILOTES ET MATERIEL

SC 13 UNIX RESEAU
UNIX RESEAU

Etapes d'installation d'une carte réseau


Etape 1 :
Vous devez utiliser l'utilitaire qui est livré avec la carte réseau pour lui affecter son adresse
E/S, son IRQ
Ex : i/o 0x300 et irq = 5
Attention de ne pas donner une IRQ qui est déjà utilisée !
Etape 2 :
Vous devez compiler le noyau pour lui indiquer quels sont les pilotes des cartes réseaux
installées dans la machine.
La philosophie de la compilation du noyau est de n’y intégrer que ce qui est indispensable
au fonctionnement du système, l’ensemble des pilotes "optionnels" étant compilé en
modules qui seront chargés et déchargés par le démon kerneld au fur et à mesure des
besoins du système.
Les cartes réseaux étant souvent sollicitées, les pilotes ne seront pas chargés en module.
Pour établir une nouvelle configuration du noyau, il y a trois façons de faire. Du répertoire
/usr/src/linux, on peut lancer make config, make menuconfig ou make
xconfig (si on est en environnement Xwindows).
Les commandes à passer pour compiler le noyau sont les suivantes :
cd /usr/src/linux
make xconfig
make dep
make clean
make zlilo
mv /usr/src/linux/arch/i386/boot/zImage /boot/[Link]

On copie obligatoirement le nouveau noyau dans le répertoire


/boot, et c’est là qu’il sera activé.
make modules
mv /lib/modules/2.0.36-3 /lib/modules/[Link]
sauvegarde l’ancienne librairie de modules
make modules_install
vi /etc/[Link]

SC 14 UNIX RESEAU
UNIX RESEAU

INSTALLATION D'UNE CARTE RESEAU

Le fichier /etc/[Link]

boot=/dev/sda2
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
image=/boot/[Link]
label=linux
root=/dev/sda2
initrd=/boot/[Link]
append="ether=5,0x6400,eth0"
read-only
image=/boot/vmlinuz-2.0.36-3
label=[Link]
root=/dev/sda2
initrd=/boot/[Link]
read-only
other=/dev/sda1
label=dos
table=/dev/sda

Etapes d'installation d'une carte réseau (suite)

SC 15 UNIX RESEAU
UNIX RESEAU

Etape 3

Une fois le fichier [Link] modifié, il faut écrire ce fichier boot dans le MBR, pour cela il
est nécessaire de lancer la commande :
# lilo
Pour que le nouveau noyau soit pris en compte il est nécessaire de redémarrer le système !

Etape 4

Pour vérifier que le noyau prend en compte les interfaces réseaux, il suffit de vérifier durant
les messages de démarrage (ou grâce à l’instruction dmesg) la présence des lignes
suivantes :

SC 16 UNIX RESEAU
UNIX RESEAU

Extrais du message après l'exécution


de la commande "dmesg"

Vendor: PIONEER Model: CD-ROM DR-U12X Rev: 1.06


Type: CD-ROM ANSI SCSI revision: 02
Detected scsi CD-ROM sr0 at scsi0, channel 0, id 1, lun 0
(scsi0:0:1:0) Synchronous at 10.0 Mbyte/sec, offset 15.
sr0: scsi3-mmc drive: 12x/12x xa/form2 cdda tray
Uniform CDROM driver Revision: 2.55
SCSI device sda: hdwr sector= 512 bytes. Sectors= 4197405 [2049 MB] [2.0
GB]
sda: sda1 sda2
VFS: Mounted root (ext2 filesystem) readonly.
change_root: old root has d_count=1
Trying to unmount old root ... okay
Freeing unused kernel memory: 48k freed
Adding Swap: 72256k swap-space (priority -1)
ad1848/cs4248 codec driver Copyright (C) by Hannu Savolainen 1993-1996
cs4232: set synthio and synthirq to use the wavefront facilities.
YM3812 and OPL-3 driver Copyright (C) by Hannu Savolainen, Rob Hooft
1993-199
OPL3 not detected 81
ne.c:v1.10 9/23/94 Donald Becker (becker@[Link])
NE*000 ethercard probe at 0x300: 00 00 e8 36 ca 76
eth0: NE2000 found at 0x300, using IRQ 3.

SC 17 UNIX RESEAU
UNIX RESEAU

Reconnaissance de la carte par la couche réseau

Pour que votre système puisse dialoguer avec une autre machine, il est nécessaire que votre carte soit
connue de la couche réseau du noyau.
Deux commande sont nécessaires pour cela, une qui paramètre les interfaces et l'autre qui initialise la
table de routage:

La commande ifconfig permet d'associer une adresse IP à une interface et de la


mettre UP/DOWN (pour plus de détail voir page suivante )
# ifconfig (nom de l'interface) (adresse IP) ( option).
Il est toutefois important de signaler que la carte, après un reboot du système, ne
possédera plus d'adresse IP.
Pour éviter ce petit problème, il est important de remplir correctement les fichiers
suivant :
Le fichier /etc/sysconfig/network fourni des informations sur la
configuration réseau souhaitée. On peut utiliser les valeurs suivantes :
Le fichier/etc/sysconfig/network-scripts/ifcfg-eth0 fourni des
informations sur la configuration du périphérique souhaitée.
La commande route, quant à elle, permet d'ajouter ou de supprimer des entrées dans
la table de routage du noyau :

# route add -net [Link] netmask [Link] gw [Link]

La commande netstat permet de visualiser les tables de routage

# netstat -r

SC 18 UNIX RESEAU
UNIX RESEAU

CONFIGURATION DE LA COUCHE RESEAU

/etc/sysconfig/network

NETWORK = configuration du réseau ( yes/no)

HOSTNAME = Nom de la machine ([Link])

FORWARD_IPV4 = la machine renvoie les paquets (yes/no)

GATEWAY = l'adresse IP de la passerelle par défaut

GATEWAYDEV = nom de l'interface (ex : eth0)

/etc/sysc/onfig/network-scripts/ifcfg-eth0

DEVICE= nom du périphérique ( ex :eth0)


IPADDR= adresse IP de la carte (ex:[Link])
NETMASK= masque du sous réseau (ex:[Link])
NETWORK=l'adresse du réseau ( ex:[Link])
BROADCAST=l'adresse de broadcast (ex:[Link])
ONBOOT= le périphérique est activé au boot (yes/no)
USERCTL = les utilisateurs autres que root sont autorisés à contrôler ce périphériquec(yes/no)
BOOTPROTO = quel est le protocole de boot qui doit être utilisé ( none/bootp/dhcp)

SC 19 UNIX RESEAU
UNIX RESEAU

La commande ifconfig

La commande ifconfig possède bien plus de paramètres que nous n'en avons utilisé
jusqu'à présent. Sa syntaxe exacte est,:

ifconfig interface -[net|-host] {adresse} [parametres]

L'argument interface est bien sûr le nom de l'interface et adresse correspond à


l'adresse IP à lui assigner.
Ce peut être indifféremment une adresse exprimée en notation sur 4 octets ou un nom de
machine que ifconfig recherchera dans les fichiers
/etc/hosts et /etc/networks.
Les options -net et -host forcent la commande à considérer l'adresse comme un réseau
ou un hôte, respectivement.

Si ifconfig est invoquée uniquement avec le nom de l'interface, cette commande affiche
alors la configuration courante de l'interface en question. Sans aucun paramètre, elle
considérera toutes celles qui sont configurées.
Une option -a permet de lui faire afficher également les interfaces inactives.
Sur eth0, la sortie de ifconfig peut donner quelque chose comme ceci:

[root@nico /root]# ifconfig

eth0 Lien encap:Ethernet HWaddr 00:00:E8:36:CA:76


inet adr:[Link] Bcast:[Link]
Masque:[Link]
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Paquets Reçus:262251 erreurs:0 jetés:0 débordements:0
trames:0
Paquets transmis:184252 erreurs:0 jetés:0
débordements:0 carrier:0
collisions:31 lg file transmission:100
Interruption:3 Adresse de base:0x300

SC 20 UNIX RESEAU
UNIX RESEAU

COMMANDE IFCONFIG

Up
active une interface (est fait par défaut).
Down
Désactive une interface.
[-]arp
Active ou désactive le protocole de résolution d'adresses sur cette interface.
[-]allmulti
Active ou désactive la réception de tous les paquets multicast matériel (Ndt : Les
adresses multicast sont un genre d'adresses de diffusion limitées à un groupe de
machine qui n'ont pas nécessairement besoin de se trouver sur le même sous-
réseau). Le multicast matériel permet à des groupes d'hôtes de recevoir des paquets
adressés vers des destinations spéciales. Ce peut être important si vous utilisez des
applications comme la vidéoconférence, mais la plupart du temps on ne l'utilise pas.

mtu N
Ce paramètre permet de régler le MTU (Maximum Transfert Unit) sur le périphérique.
netmask <addr>
ce paramètre permet de fixer le masque de réseau.

irq <addr>
ce paramètre ne fonctionne qu'avec certains types de matériels, mais vous permet
d'en fixer l'IRQ.

[-]broadcast [addr]
Permet d'activer ou de désactiver l'acceptation de datagramme destiné à l'adresse de
diffusion.

(-)pointopoint [addr]
Permet de fixer l'adresse de la machine à l'extrémité d'un lien point-à-point comme
pour slip ou ppp.

[-]promisc
Passe l'interface en mode global promiscuous mode. Sur un réseau Ethernet (par
exemple), cela a pour effet de faire recevoir tous les paquets à l'interface, qu'ils soient
destinés à un autre hôte ou non. On peut ainsi analyser le trafic sur le réseau à l'aide
de filtres de paquets ou autres outils. Généralement, cette technique appelée
Ethernet snooping est une bonne méthode pour traquer certains problèmes réseau
quasi indétectables autrement.

SC 21 UNIX RESEAU
UNIX RESEAU

La commande netstat
Tournons-nous maintenant vers un outil presque indispensable pour tester la
configuration et l'activité du réseau, la commande netstat, qui est en fait une
collection de plusieurs outils rassemblés en un seul. Nous allons en détailler chaque
fonction.

Invoquée avec l'option -r, netstat affiche la table de routage du noyau sous la
même forme que la commande route que nous avons déjà vu.
[root@nico /root]# netstat -r
Table de routage IP du noyau
Destination Passerelle Genmask Indic MS Fenêtr irtt Ifac
S e e
[Link] * [Link] UH 0 0 0 Eth
27 5 0
[Link] [Link] [Link] UH 0 0 0 L0
5
[Link] [Link] [Link] UG 0 0 0 Eth
00 0
[Link] * [Link] U 0 0 0 Eth
0
[Link] [Link] [Link] UG 0 0 0 Eth0

La quatrième colonne indique les différents drapeaux qui caractérisent cette route:
G La route utilise une passerelle (gateway).
U L'interface est en service (up).
H On ne peut joindre qu'un simple hôte par cette route. C'est pas exemple le
cas pour l'entrée loopback [Link]
D Ce drapeau est positionné si l'entrée de la table a été générée par un message
ICMP de redirection.
M Positionné si l'entrée de la table a été modifiée par un message ICMP de
redirection.

SC 22 UNIX RESEAU
UNIX RESEAU

COMMANDE NETSTAT

syntaxe:
netstat [-venNcCF] [<Af>] -r netstat {-V|--version|-h|--help}
netstat [-vnNcaeol] [<Socket> ...]
netstat { [-venNac] -i | [-cnNe] -M | -s }

-r, --route affiche la table de routage


-i, --interfaces affiche la table d'interfaces
-g, --groups affiche les membres d'un groupe multicast
-s, --statistics affiche les statistiques réseau (comme SNMP)
-M, --masquerade affiche les connexions masquées
-v, --verbose mode verbeux
-n, --numeric ne résout pas les noms
-N, --symbolic résout les noms matériels
-e, --extend affiche plus d'information
-p, --programs affiche le nom du programme/PID des sockets
-c, --continuous listing continu
-l, --listeningaffiche les sockets du serveur à l'écoute
-a, --all, --listening affiche toutes les prises (défaut: connectés)
-o, --timers affiche les timers
-F, --fib display Forwarding Information Base (default)
-C, --cache affiche le cache de routage au lieu de FIB
<Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --netrom
<AF>=Utiliser '-A <af>' ou '--<af>' Défaut: inet
Liste les familles d'adresses possibles (supportant le routage):
inet (DARPA Internet) ax25 (AMPR AX.25) netrom (AMPR NET/ROM)
ipx (Novell IPX) ddp (Appletalk DDP)

SC 23 UNIX RESEAU
UNIX RESEAU

Interface "loopback"

L'interface `loopback' est un type spécial d'interface qui permet de vous connecter à
vous-même. Il y a plusieurs raisons pour faire cela, par exemple si vous voulez faire
des essais de logiciel réseau sans interférer avec quelqu'un d'autre sur votre réseau.
Par convention, l'adresse IP `[Link]' lui a été assignée. Aussi quelle que soit la
machine où vous êtes, si vous ouvrez une connexion telnet vers [Link] vous
atteindrez toujours l'hôte local.
Configurer l'interface loopback est simple et vous devez vous assurer de l'avoir fait
(mais notez que cette tâche est habituellement effectuée par les scripts standards
d'initialisation).

# ifconfig lo [Link]

Occasionnellement, vous rencontrerez aussi le nom localhost utilisé à la place de


cette adresse IP. Le programme ifconfig cherchera ce nom dans le fichier
/etc/hosts, où une entrée doit le déclarer comme étant le nom correspondant à
l'adresse [Link]
Pour voir l'état de l'interface loopback, nous pouvons utiliser la commande ifconfig

Aucune adresse de diffusion n'est positionnée, et il n'y en a de toutes façons pas


vraiment besoin avec cette interface si particulière.
Ensuite, vous devez tester le bon fonctionnement, par exemple en utilisant ping

SC 24 UNIX RESEAU
UNIX RESEAU

INTERFACE LOOPBACK

[root@nico /root]# ifconfig lo

lo Lien encap:Boucle locale


inet adr:[Link] Masque:[Link]
UP LOOPBACK RUNNING MTU:3924 Metric:1
Paquets Reçus:57 erreurs:0 jetés:0 débordements:0 trames:0
Paquets transmis:57 erreurs:0 jetés:0 débordements:0 carrier:0
collisions:0 lg file transmission:0

[root@nico /root]# ping [Link]


PING [Link] ([Link]): 56 data bytes
64 bytes from [Link]: icmp_seq=0 ttl=255 time=0.5 ms
64 bytes from [Link]: icmp_seq=1 ttl=255 time=0.4 ms
64 bytes from [Link]: icmp_seq=2 ttl=255 time=0.4 ms
--- [Link] ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.4/0.4/0.5 ms

SC 25 UNIX RESEAU
UNIX RESEAU

Fichier /etc/hosts

Le fichier /etc/hosts est l'endroit où vous mettez les noms et les adresses IP des
hôtes locaux.
Si vous mettez un hôte dans ce fichier, alors vous n'avez pas à interroger le serveur
de nom de domaine pour obtenir son adresse IP.
L'inconvénient est que vous devez tenir votre fichier à jour si l'adresse de cet hôte a
changé.
Dans un système bien administré les seuls noms d'hôtes qui apparaissent
habituellement sont l'interface loopback, et le nom des hôtes locaux.

# /etc/hosts
[Link] localhost loopback
[Link] [Link]

Vous pouvez spécifier plus d'un nom d'hôte, comme montré dans la première
entrée (qui est standard pour l'interface loopback).

SC 26 UNIX RESEAU
UNIX RESEAU

FICHIER /ETC/HOSTS

[root@nico /root]# more /etc/hosts

[Link] Localhost. [Link]

[Link] nicolas [Link]

[Link] gigix gigi.afpa_champs.fr

[Link] patrick pat.afpa_champs.fr

[Link] stephane stef.afpa_champs.fr

SC 27 UNIX RESEAU
UNIX RESEAU

Fichier /etc/services

Le fichier /etc/services est une simple base de données qui associe des noms
compréhensibles par l'homme à des ports service compréhensibles par la machine.
Son format est tout à fait simple. Le fichier est un fichier texte dont chaque ligne
représente une entrée de la base de données. Chaque entrée comprend trois
champs séparés par des caractères espace ou tabulation.
Ces champs sont :
nom port/protocole alias # commentaire
nom
un simple mot qui représente le service décrit.
port/protocole
ce champ est divisé en deux.
port
un nombre qui spécifie le numéro de port où le service désigné sera disponible.
La plupart des services ont des numéros assignés. Ils sont décrits dans la
RFC-1340.
protocole
c'est soit tcp soit udp.
Il est important de noter qu'une entrée comme 18/tcp est très différente de 18/udp et
qu'il n'y a pas de raisons techniques que le même service existe sur les deux.
Normalement le bon sens prévaut et c'est vraiment pour un service particulier
disponible à la fois sur tcp et udp que vous verrez une entrée pour les deux .
alias
Autre nom qui peut être utilisé pour désigner ce service.
Tout texte apparaissant après le caractère `#' est ignoré et traité comme
commentaire.

SC 28 UNIX RESEAU
UNIX RESEAU

FICHIER /ETC/SERVICES

# /etc/services:
# $Id: services,v 1.4 1997/05/20 19:41:21 tobias Exp $
#
# Network services, Internet style
#
# Note that it is presently the policy of IANA to assign a single well-known
# port number for both TCP and UDP; hence, most entries here have two entries
# even if the protocol doesn't support UDP operations.
# Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports
# are included, only the more common ones.

Daytime 13/udp Tcpmux 1/tcp # TCP port service multiplexer


Echo 7/tcp
Echo 7/udp
Discard 9/tcp sink null
Discard 9/udp sink null
Systat 11/tcp users
Daytime 13/tcp

Netstat 15/tcp
Qotd 17/tcp quote
Msp 18/tcp # message send protocol
Msp 18/udp # message send protocol
Chargen 19/tcp ttytst source
Chargen 19/udp ttytst source
ftp-data 20/tcp
ftp 21/tcp
fsp 21/udp fspd
ssh 22/tcp # SSH Remote Login Protocol
ssh 22/udp # SSH Remote Login Protocol
telnet 23/tcp
# 24 - private
smtp 25/tcp mail
# 26 - unassigned
time 37/tcp timserver
time 37/udp timserver
rlp 39/udp resource # resource location
nameserver 42/tcp name # IEN 116
whois 43/tcp nicname
re-mail-ck 50/tcp # Remote Mail Checking Protocol
re-mail-ck 50/udp # Remote Mail Checking Protocol
domain 53/tcp nameserver # name-domain server
domain 53/udp nameserver
mtp 57/tcp # deprecated
bootps 67/tcp # BOOTP server
bootps 67/udp
bootpc 68/tcp # BOOTP client
bootpc 68/udp
tftp 69/udp
gopher 70/tcp # Internet Gopher
gopher 70/udp
rje 77/tcp netrjs
finger 79/tcp

SC 29 UNIX RESEAU
UNIX RESEAU

Fichier /etc/protocols

Le fichier /etc/protocols est une base de données qui donne la relation des
numéros id de protocole avec leurs noms. Il est utilisé par les programmeurs pour
leur permettre de spécifier les protocoles par leur nom dans les programmes et
aussi par quelques programmes tels que tcpdump pour pouvoir afficher en sortie
des noms au lieu de chiffres. La syntaxe générale de ce fichier est :

nom du protocole numéro alias

SC 30 UNIX RESEAU
UNIX RESEAU

FICHIER /ETC/PROCOLS

# /etc/protocols:
# $Id: protocols,v 1.1 1995/02/24 01:09:41 imurdock Exp $
# Protocoles Internet (IP)
# d'après: @(#)protocols 5.1 (Berkeley) 4/17/89
# Mise à jour pour NetBSD basee sur la RFC 1340, Assigned
Numbers (July 1992).
ip 0 IP # internet protocol, pseudo protocol number
icmp 1 ICMP # internet control message protocol
igmp 2 IGMP # Internet Group Management
ggp 3 GGP # gateway-gateway protocol
ipencap 4 IP-ENCAP # IP encapsulated in IP (officially ``IP'')
st 5 ST # ST datagram mode
tcp 6 TCP # transmission control protocol
egp 8 EGP # exterior gateway protocol
pup 12 PUP # PARC universal packet protocol
udp 17 UDP # user datagram protocol
hmp 20 HMP # host monitoring protocol
xns-idp 22 XNS-IDP # Xerox NS IDP
rdp 27 RDP # "reliable datagram" protocol
iso-tp4 29 ISO-TP4 # ISO Transport Protocol class 4
xtp 36 XTP # Xpress Tranfer Protocol
ddp 37 DDP # Datagram Delivery Protocol
idpr-cmtp 39 IDPR-CMTP # IDPR Control Message
Transport
rspf 73 RSPF # Radio Shortest Path First.
vmtp 81 VMTP # Versatile Message Transport
ospf 89 OSPFIGP # Open Shortest Path First IGP
ipip 94 IPIP # Yet Another IP encapsulation
encap 98 ENCAP # Yet Another IP encapsulation

SC 31 UNIX RESEAU
UNIX RESEAU

Fichier /etc/networks

Le fichier /etc/networks a une fonction similaire au fichier /etc/hosts. Il fournit une


simple base de données de noms de réseau avec des adresses. Son format diffère
en ce qu'il n'y a que deux champs par ligne, et que ces champs sont codés comme
ceci :

Nom du réseau adresse de réseau

Un exemple :

loopnet [Link]
localnet [Link]
amprnet [Link]

Lorsque vous utilisez une commande comme route, si une destination est un
réseau, et que ce réseau a une entrée dans le fichier /etc/networks la commande
affichera alors le nom du réseau en lieu et place de son adresse.

SC 32 UNIX RESEAU
UNIX RESEAU

FICHIER /ETC/NETWORKS

Nico # Less /etc/networks

labo1 [Link]

labo2 [Link]

labo3 [Link]

labo4 [Link]

SC 33 UNIX RESEAU
UNIX RESEAU

Le super serveur inetd

Souvent, les services réseau sont assurés par des petits programmes (daemon) qui
ouvrent certains ports et attendent des connexions.

Lorsque la connexion se produit, le "daemon" crée un processus fils qui accepte la


connexion, pendant que le processus père continue d'écouter sur le port en attente
d'autres requêtes.

Ce principe oblige à avoir en mémoire tous les programmes en mémoire, ce qui


signifie une mauvaise exploitation des ressources machine.

Par conséquent, pratiquement tous les serveurs UNIX emploient un "super serveur"
qui crée des sockets pour un certain nombre de services et les écoute toutes en
même temps.
Lorsqu'une machine distante demande une connexion, le super serveur s'en
aperçoit et exécute le daemon spécifié pour ce port.

Le super serveur inetd ( internet daemon) est lancé lors du démarrage du système
et prend la liste des services qu'il doit gérer dans un fichier [Link]

SC 34 UNIX RESEAU
UNIX RESEAU

FICHIER /ETC/[Link]

#
# Version: @(#)/etc/[Link] 3.10 05/27/93
# Authors: Original taken from BSD UNIX 4.3/TAHOE.
# Fred N. van Kempen, <waltje@[Link]>
# Modified for Debian Linux by Ian A. Murdock <imurdock@[Link]>
# Modified for RHS Linux by Marc Ewing <marc@[Link]>
# <service_name> <sock_type> <proto> <flags> <user> <server_path> <args>
#
# Echo, discard, daytime, and chargen are used primarily for testing.
# To re-read this file after changes, just do a 'killall -HUP inetd'
#
#echo stream tcp nowait root internal
#echo dgram udp wait root internal
#discard stream tcp nowait root internal
#discard dgram udp wait root internal
#daytime stream tcp nowait root internal
#daytime dgram udp wait root internal
#chargen stream tcp nowait root internal
#chargen dgram udp wait root internal
#time stream tcp nowait root internal
#time dgram udp wait root internal
#
# These are standard services.
#
ftp stream tcp nowait root /usr/sbin/tcpd [Link] -l -a
telnet stream tcp nowait root /usr/sbin/tcpd [Link]
#
# Shell, login, exec, comsat and talk are BSD protocols.
#
#shell stream tcp nowait root /usr/sbin/tcpd [Link]
#login stream tcp nowait root /usr/sbin/tcpd [Link]
#exec stream tcp nowait root /usr/sbin/tcpd [Link]
#comsat dgram udp wait root /usr/sbin/tcpd [Link]
#talk dgram udp wait root /usr/sbin/tcpd [Link]
#ntalk dgram udp wait root /usr/sbin/tcpd [Link]
#dtalk stream tcp waut nobody /usr/sbin/tcpd [Link]
#
# Pop and imap mail services et al
#
#pop-2 stream tcp nowait root /usr/sbin/tcpd ipop2d
pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d
#imap stream tcp nowait root /usr/sbin/tcpd imapd
#

SC 35 UNIX RESEAU
UNIX RESEAU

Le super serveur inetd (suite)

Signification de chacun des champs du fichier [Link]

service
Donne le nom du service. Il doit être traduit en numéro de port, en le recherchant
dans le fichier /etc/services.
Type
Spécifie un type de socket, soit stream (pour les protocoles orientés connexion) ou
dgram pour les protocoles sans connexion). Les services basés sur TCP doivent par
conséquent toujours utiliser le mot clé stream, alors que ce sera dgram pour ceux
basés sur UDP.
protocol
Donne le protocole de transport employé par ce service. Ce doit être un protocole
valide, déclaré dans le fichier protocols, décrit un peu plus loin.
wait
Cette option ne s'applique qu'aux sockets dgram. Ce peut être soit wait, soit nowait.
Dans le cas de wait, inetd n'exécute qu'un seul serveur à la fois pour le port en
question. Sinon, il continuera immédiatement l'écoute après avoir lancé le service.
Cette possibilité est très utile pour les serveurs qui lisent tous les datagrammes qui
arrivent, puis se terminent. La plupart des serveurs RPC sont de ce type et doivent
par conséquent être utilisés avec le mot clé wait.
Les sockets stream doivent toujours employer nowait.
Utilisateur
Il s'agit de l'identification utilisateur sous lequel le processus doit être exécuté. Ce
sera souvent root, le superutilisateur, mais quelques services peuvent nécessiter
différents comptes. Ici, c'est toujours une bonne idée d'appliquer le principe des
privilèges minimaux, qui déclare que vous ne devez pas exécuter une commande
sous un compte privilégié si ce n'est pas nécessaire pour qu'elle fonctionne
correctement. Par exemple, les serveurs NNTP de News Usenet fonctionneront
sous l'utilisateur news, et les services pouvant poser des problèmes de sécurité
(comme tftp ou finger) sont souvent sous l'utilisateur nobody.
Serveur
Donne le chemin d'accès complet au programme serveur qui doit être exécuté. Les
services internes sont repérés par le mot clé internal.
ligne-de-commandes
Il s'agit de la ligne de commandes à passer au serveur. Elle inclut l'argument~0,
c'est-à-dire le nom de la commande. Généralement, ce sera le nom du programme,
sauf s'il a un comportement différent selon le nom sous lequel il est invoqué.
Pour les services internes, ce champ est vide.

SC 36 UNIX RESEAU
UNIX RESEAU

#
# Version: @(#)/etc/[Link] 3.10 05/27/93
# Authors: Original taken from BSD UNIX 4.3/TAHOE.
# Fred N. van Kempen, <waltje@[Link]>
# Modified for Debian Linux by Ian A. Murdock <imurdock@[Link]>
# Modified for RHS Linux by Marc Ewing <marc@[Link]>
# <service_name> <sock_type> <proto> <flags> <user> <server_path> <args>
#
# Echo, discard, daytime, and chargen are used primarily for testing.
# To re-read this file after changes, just do a 'killall -HUP inetd'
#
#echo stream tcp nowait root internal
#echo dgram udp wait root internal
#discard stream tcp nowait root internal
#discard dgram udp wait root internal
#daytime stream tcp nowait root internal
#daytime dgram udp wait root internal
#chargen stream tcp nowait root internal
#chargen dgram udp wait root internal
#time stream tcp nowait root internal
#time dgram udp wait root internal
#
# These are standard services.
#
ftp stream tcp nowait root /usr/sbin/tcpd [Link] -l -a
telnet stream tcp nowait root /usr/sbin/tcpd [Link]
#
# Shell, login, exec, comsat and talk are BSD protocols.
#
#shell stream tcp nowait root /usr/sbin/tcpd [Link]
#login stream tcp nowait root /usr/sbin/tcpd [Link]
#exec stream tcp nowait root /usr/sbin/tcpd [Link]
#comsat dgram udp wait root /usr/sbin/tcpd [Link]
#talk dgram udp wait root /usr/sbin/tcpd [Link]
#ntalk dgram udp wait root /usr/sbin/tcpd [Link]
#dtalk stream tcp waut nobody /usr/sbin/tcpd [Link]
#
# Pop and imap mail services et al
#
#pop-2 stream tcp nowait root /usr/sbin/tcpd ipop2d
pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d
#imap stream tcp nowait root /usr/sbin/tcpd imapd
#

SC 37 UNIX RESEAU
UNIX RESEAU

La sécurité avec TCP WRAPPER

Principe

Un Tcp Wrapper (emballeur TCP) est un outil générique qui permet de réserver
l'utilisation de certains services à un nombre restreint d'utilisateurs.

Il s'intercale entre le daemon internet et le serveur, relayant ou non les requêtes sur
la base de règles spécifiées par l'administrateur du réseau.

Exemple sans Tcp-Wrapper

ftp stream tcp nowait root /usr/sbin/[Link] [Link] -l -a

Exemple avec Tcp-Wrapper

ftp stream tcp nowait root /usr/sbin/[Link] [Link] -l -a

Dans le deuxième exemple "tcpd" intercepte les appels de ftp, décidant du


lancement du serveur [Link].

Toutes les connexions sont enregistrées dans un fichier d'audit /var/log/secure

Les fichiers /etc/[Link] et /etc/[Link] regroupent les règles appliquées aux


requêtes.

Tcpd explore dans un premier temps le fichier [Link], puis le fichier [Link],
jusqu'à ce qu'il trouve une correspondance entre la machine et le service.

Un accés accordé par [Link] ne peut pas être mis en cause dans [Link]

SC 38 UNIX RESEAU
UNIX RESEAU

TCP WRAPPER

FONCTIONNEMENT SANS TCP-WRAPPER

FONCTIONNEMENT AVEC TCP-WRAPPER

SC 39 UNIX RESEAU
UNIX RESEAU

Les entrées dans le fichier d'accès ressemblent à ceci :

Services : host [commande]

Services
Est une liste de noms valides dans /etc/services ou encore le mot clé ALL (tout).
Pour désigner tous les services sauf finger et tftp, vous pouvez mettre "ALL
EXCEPT finger, tftp."
host
Est une liste de noms de machines ou d'adresses~IP ou encore les mots-clés ALL,
LOCAL ou UNKNOWN (inconnu).ALL indique n'importe quelle machine alors que
LOCAL désigne uniquement celles dont le nom ne contient pas de point.
Généralement, seules les machines locales, dont le nom est obtenu par une
recherche dans /etc/hosts n'ont pas de domaine ajouté à leur nom, donc pas de
point.
UNKNOWN désigne tous les hôtes dont la recherche de nom ou d'adresse a
échoué. Un nom commençant par un point correspond à tous les hôtes dont le
domaine est identique à cette chaîne. Par exemple,
.afpa_champs.fr désignera aussi bien [Link] que [Link]-
[Link].
Il est possible aussi de traiter les adresses IP réseau et sous-réseau; consultez la
page de manuel hosts_access(5)} pour en savoir plus.

Pour interdire l'accès à finger et tftp à tout le monde sauf aux machines locales,
mettez ce qui suit dans /etc/[Link], et laissez vide le fichier letc/[Link].

[Link], [Link]: ALL EXCEPT LOCAL,.[Link]

Le champ facultatif commande peut contenir une commande shell à appeler lorsque
l'entrée correspond. C'est très utile pour poser des pièges permettant de mettre en
évidence les éventuels intrus :

[Link]: ALL EXCEPT LOCAL, .[Link]


echo "Requete de %d@%h" >> /var/log/[Link];
if [ %h != "[Link]" ]; then
finger -l @%h >> /var/log/[Link] \
fi

SC 40 UNIX RESEAU
UNIX RESEAU

# [Link] This file describes the names of the hosts which are
# allowed to use the local INET services, as decided
# by the '/usr/sbin/tcpd' server.
[Link] : LOCAL, .[Link]
Fichier /etc/[Link]

# [Link] This file describes the names of the hosts which are
# *not* allowed to use the local INET services, as decided
# by the '/usr/sbin/tcpd' server.
#
# The portmap line is redundant, but it is left to remind you that
# the new secure portmap uses [Link] and [Link]. In particular
# you should know that NFS uses portmap!
ALL : ALL
Fichier [Link]

[root@nico /etc]# tcpdchk -v


Using network configuration file: /etc/[Link]
>>> Rule /etc/[Link] line 6:
daemons: [Link]
clients: LOCAL .[Link]
access: granted
>>> Rule /etc/[Link] line 9:
daemons: ALL
clients: ALL
access: denied
Vérification de la syntaxe

root@nico /etc]# tcpdmatch [Link] nico [root@nico /etc]# tcpdmatch [Link] nico
warning: nico: hostname alias warning: nico: hostname alias
warning: (official name: [Link]- warning: (official name: [Link]-
[Link]) [Link])
client: hostname [Link] client: hostname [Link]
client: address [Link] client: address [Link]
server: process [Link] server: process [Link]
matched: /etc/[Link] line 6 matched: /etc/[Link] line 9
access: granted access: denied

Vérification des règles de filtrage

SC 41 UNIX RESEAU
UNIX RESEAU

Le protocole TELNET

Le protocole telnet permet de faire fonctionner notre machine en terminal virtuel. Il peut
être utilisé pour se connecter de machine UNIX à machine UNIX ou Non UNIX.

La commande interactive telnet permet de communiquer avec une autre machine utilisant
le protocole telnet.
En mode commande, telnet nous donne le prompt suivant :

telnet>

Si la commande telnet est directement suivie d'un nom de machine ou d'une adresse IP,
telnet réalise une connexion directe sans nous donner le prompt.

La commande telnet ne support pas le mode block, et il est impossible de faire fonctionner
cette commande en background

Avec la commande telnet il est possible de spécifier le numéro de port du serveur

Exemple

telnet nico 25

nico correspond au nom de la machine


25 correspond au port smtp (service transport pour la messagerie internet)

SC 42 UNIX RESEAU
UNIX RESEAU

COMMANDE TELNET

[root@nico /]# telnet


telnet> ?
Commands may be abbreviated. Commands are:

close close current connection


logout forcibly logout remote user and close the connection
display display operating parameters
mode try to enter line or character mode ('mode ?' for more)
open connect to a site
quit exit telnet
send transmit special characters ('send ?' for more)
set set operating parameters ('set ?' for more)
unset unset operating parameters ('unset ?' for more)
status print status information
toggle toggle operating parameters ('toggle ?' for more)
slc set treatment of special characters

z suspend telnet
environ change environment variables ('environ ?' for more)
telnet>

[root@nico /]# telnet nico


Trying [Link]...
Connected to [Link].
Escape character is '^]'.
Linux Mandrake release 6.1 (Cassini)
Kernel 2.2.11-2mdk on an i586
login: stephane
Password:
Last login: Mon Feb 7 14:42:10 from stef
You have mail.
[stephane@nico stephane]$

[root@nico /]# telnet nico 25


Trying [Link]...
Connected to [Link].
Escape character is '^]'.
220 [Link] ESMTP Exim 3.00 #1 Tue, 08 Feb 2000 12:18:13 +0100

SC 43 UNIX RESEAU
UNIX RESEAU

Le protocole FTP

La commande ftp permet de transférer des fichiers entre machines via le réseau.

Il y a deux méthodes pour se connecter à une machine,


La première consiste à spécifier le nom ou le numéro IP du host distant :

ftp nico ou ftp [Link]

La deuxième méthode nécessite deux étapes :


- on lance la commande ftp, cette dernière nous renvoie le prompt "ftp>"
- Puis il est nécessaire d'ouvrir la connexion
ftp> open nico ou [Link]

l'ouverture de la connexion ne signifie pas que le transfert de fichier est possible, il est
nécessaire de se "logger" sur la machine avec un nom de compte et un mot de passe.
Trois méthodes sont possibles :
1 Auto-login validé et pas de fichier .netrc (ou le fichier est vide). La
commande ftp utilise le nom du compte de la machine local comme
identifiant sur la machine distante. La machine distante affichera le
prompt du login mais il suffira de taper uniquement sur la touche
"return".
2 Auto-login validé et le fichier .netrc correctement configuré dans votre
répertoire d'accueil ( home directory)
machine nico login toto password titi
Le mot de passe n'est pas crypté et les droits sur le fichier sont 600
3 Auto-login désactivé avec l'option -n, permet de se connecter sur la
machine distante sans fournir le prompt de login et du password, il est
nécessaire d'utiliser la commande user pour se connecter sur un
compte de la machine distante.
Operations possibles sur les répertoires et fichiers
- Changer le nom d'un répertoire (ou le nom d'un fichier)sur la machine
distante
- Changer de répertoire sur la machine locale et distante
- Lister le contenu d'un répertoire sur la machine distante
- Interroger la machine distante sur l'emplacement de l'arborescence
- Créer un répertoire
- Retirer un répertoire
- Copier un fichier sur la machine distante (ou vers la machine locale)

SC 44 UNIX RESEAU
UNIX RESEAU

COMMANDE FTP

[root@nico /]# ftp nico


CONNECTED TO [Link].
220 [Link] FTP SERVER (BEROFTPD 1.3.4(1) SAT MAY 1 16:04:03 CEST
1999) READY.
NAME (NICO:ROOT):
331 PASSWORD REQUIRED FOR ROOT.
PASSWORD:
230 USER ROOT LOGGED IN.
REMOTE SYSTEM TYPE IS UNIX.
USING BINARY MODE TO TRANSFER FILES.
FTP> ?
COMMANDS MAY BE ABBREVIATED. COMMANDS ARE:

! DEBUG MDIR SENDPORT SITE


$ DIR MGET PUT SIZE
ACCOUNT DISCONNECT MKDIR PWD STATUS
APPEND EXIT MLS QUIT STRUCT
ASCII FORM MODE QUOTE SYSTEM
BELL GET MODTIME RECV SUNIQUE
BINARY GLOB MPUT REGET TENEX
BYE HASH NEWER RSTATUS TICK
CASE HELP NMAP RHELP TRACE
CD IDLE NLIST RENAME TYPE
CDUP IMAGE NTRANS RESET USER
CHMOD LCD OPEN RESTART UMASK
CLOSE LS PROMPT RMDIR VERBOSE
CR MACDEF PASSIVE RUNIQUE ?

Fichier .netrc : machine nico login stephane password toto

-rw------- 1 stephane mail 46 Feb 8 14:30 .netrc


________________________________________________________________________________

stephane@nico stephane]$ ftp nico


Connected to [Link].
220 [Link] FTP server (BeroFTPD 1.3.4(1) Sat May 1 16:04:03 CEST 1999) ready.
331 Password required for stephane.
230 User stephane logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

SC 45 UNIX RESEAU
UNIX RESEAU

Notions d'équivalence
L'équivalence permet d'assurer une connexion sans mot de passe sur un site serveur
distant. L'équivalence est mise en place sur le serveur par l'administrateur ou les
utilisateurs.

Il existe deux possibilités pour réaliser l'équivalence, l'une est mise en place par
l'administrateur exclusivement via le fichier /etc/[Link] et l'autre par chacun des
utilisateurs via le fichier $HOME/.rhosts.

Equivalence avec le fichier [Link]


Chaque machine serveur dispose d'un fichier /etc/[Link] contenant les informations
suivantes :

Nom de machine nom de l'utilisateur

Exemple :
Fichier /etc/[Link] de la machine stef
Nico stephane
Cet exemple montre que la machine Nico et l'utilisateur stephane aura accés à tous les
comptes utilisateurs de la machine stef sans mot de passe.

Equivalence avec le fichier $HOME/.rhosts (sur le serveur)

Le format est identique à celui de /etc/[Link], mais ne permet pas l'accès à certains
comptes utilisateurs.
Ordre de recherche, le serveur commence par chercher dans /etc/[Link], si la
réponse est négative il va voir dans le fichier $HOME/.rhosts

SC 46 UNIX RESEAU
UNIX RESEAU

NOTIONS D'EQUIVALENCE

SC 47 UNIX RESEAU
UNIX RESEAU

Exemple :

1 l'utilisateur "gigi" de la machine cliente "FRODON" peut se connecter sur la machine


"NICO", sur le compte "gigi" et sur le compte "pat" (.rhosts) sans mot de passe. La
connexion sur un autre compte nécessite un mot de passe

2 L'utilisateur "pat" de la machine "HOEDIC" peut se connecter sans mot de passe sur
tous les comptes (gigi,stef,pat) de "NICO" (sauf root).

SC 48 UNIX RESEAU
UNIX RESEAU

SC 49 UNIX RESEAU
UNIX RESEAU

Commande rlogin

rlogin est un programme émulateur de terminal utilisant les services Berkley entre deux
machines UNIX.
Rlogin n'est pas une commande interactive comme telnet

SC 50 UNIX RESEAU
UNIX RESEAU

COMMANDE RLOGIN

SC 51 UNIX RESEAU
UNIX RESEAU

Commande rcp

Rcp permet d'effectuer un transfert de fichier entre machines distantes.


Rcp permet de transférer des fichiers et des arborescences

L'option -r est obligatoire pour la recopie d'un répertoire, dans ce cas la destination doit
obligatoirement être un répertoire, s'il n'existe pas il est crée, de même que les sous
répertoires.

SC 52 UNIX RESEAU
UNIX RESEAU

COMMANDE RCP

NOM DE FICHIER

< nom de machine > : <chemin absolu du fichier>

exmple :

Copie du fichier local [Link] sur la machine nico


rcp [Link] nico:[Link]

Copie du fichier [Link] sur le compte stephane sur la machine nico


rcp [Link] stephane@nico:[Link]

Copy du fichier [Link] de la machine nico sous le répertoire local tmp

rcp nico:[Link] /tmp

SC 53 UNIX RESEAU
UNIX RESEAU

Les appels de procédures distantes (RPC)

RPC, l'ensemble "Remote Procedure Call (appel de procédure distante), fournit un


mécanisme très général pour la réalisation d'applications client-serveur.
RPC a été développé par Sun Microsystems et consiste en une collection d'outils et de
bibliothèques de fonctions. Parmi les applications les plus importantes reposant sur RPC,
citons NFS (Network File System)et NIS (Network Information System).

Un serveur RPC est fait d'un ensemble de procédures qu'un client appelle en lui envoyant
une requête RPC, ainsi que les paramètres de cette procédure. Le serveur appellera la
fonction pour le client, et lui renverra sa valeur de retour, s'il y en a une.
Afin d'être indépendant de l'architecture des machines mises en jeu, toutes les données
échangées doivent être converties dans un format universel, chaque ordinateur faisant la
conversion inverse pour les adapter à son format interne lorsqu'il les reçoit. Ce format est
appelé XDR (External Data Representation).
Parfois, certaines améliorations d'une application RPC introduisent des modifications
incompatibles dans l'interface d'appel de procédure. Bien sûr, changer simplement le
serveur empêcherait tous les programmes attendant encore le comportement original de
fonctionner. Par conséquent, les programmes RPC se voient assigner un numéro de
version, généralement à partir de 1, qui est incrémenté à chaque nouvelle version de
l'interface. Souvent, un serveur peut proposer plusieurs versions simultanément, les clients
indiquent quelle implémentation du service ils désirent utiliser par ce numéro de version
dans leurs requêtes.

La communication réseau entre serveurs et clients RPC est un peu particulière. Un


serveur RPC offre un ou plusieurs ensembles de procédures, chacun étant appelé un
programme et identifié de manière unique par un numéro de programme. Une liste
contenant la correspondance entre les noms de services et les numéros de programmes
est en principe disponible dans le fichier /etc/rpc.
Sur les réseaux TCP/IP, les auteurs de RPC furent confrontés au problème de faire
correspondre un service réseau générique aux numéros de programmes. Ils décidèrent
que chaque serveur proposerait à la fois un port TCP et UDP pour chaque programme et
chaque version. Généralement, les applications RPC utiliseront UDP pour envoyer des
données, et ne prendront TCP que si les données à transférer ne tiennent pas dans un
seul datagramme UDP.
Bien sûr, les clients doivent avoir un moyen de trouver à quel port correspond un numéro
de programme donné. Un fichier de configuration serait inadapté, comme les applications
RPC n'utilisent pas de ports réservés, il n'y aurait aucune garantie qu'un port utilisé à
l'origine pour notre application de base de données n'ait pas été pris par quelque autre
processus. Par conséquent, les applications RPC prennent n'importe quel port possible et
l'enregistrent par le biais du démon portmapper. Il agit comme un concierge pour tous les
serveurs RPC en fonctionnement sur sa machine. Un client désirant contacter un service
avec un numéro de programme donné demandera d'abord au portmapper de la machine
serveur, qui lui indiquera les ports TCP et UDP par lesquels le service peut être atteint.

SC 54 UNIX RESEAU
UNIX RESEAU

REMOTE PROCEDURE CALL (RPC)

#
# rpc
#
portmapper 100000 portmap sunrpc rpcbind
rstatd 100001 rstat rup perfmeter rstat_svc
rusersd 100002 rusers
nfs 100003 nfsprog
ypserv 100004 ypprog
mountd 100005 mount showmount
ypbind 100007
walld 100008 rwall shutdown
yppasswdd 100009 yppasswd
etherstatd 100010 etherstat
rquotad 100011 rquotaprog quota rquota
sprayd 100012 spray
3270_mapper 100013
rje_mapper 100014
selection_svc 100015 selnsvc
database_svc 100016
rexd 100017 rex
alis 100018
sched 100019
llockmgr 100020
nlockmgr 100021
[Link] 100022
statmon 100023
status 100024
bootparam 100026
ypupdated 100028 ypupdate
keyserv 100029 keyserver
sunlink_mapper 100033
tfsd 100037
nsed 100038
nsemntd 100039
showfhd 100043 showfh
ioadmd 100055 [Link]
NETlicense 100062
sunisamd 100065
debug_svc 100066 dbsrv
ypxfrd 100069 [Link]
bugtraqd 100071
kerbd 100078
event 100101 [Link] # SunNet Manager
logger 100102 [Link] # SunNet Manager

Fichier /etc/rpc

SC 55 UNIX RESEAU
UNIX RESEAU

Cette méthode a l'inconvénient d'introduire un point faible, un peu comme le fait le démon
inetd pour les services Berkeley standard. Mais ici, c'est encore pire car lorsque le
portmapper s'arrête pour une raison quelconque, toutes les informations sont perdues,;
ce qui signifie que vous devez relancer manuellement chaque serveur, ou réamorcer
complètement la machine.
Sous linux, le portmapper s'appelle portmap et se trouve dans /sbin. Il ne demande
aucune configuration particulière, il suffit de s'assurer qu'il est bien lancé au démarrage du
système, par exemple depuis le fichier rc3.d.

SC 56 UNIX RESEAU
UNIX RESEAU

!/bin/sh
#
# portmap Start/Stop RPC portmapper
#
# chkconfig: 345 11 89
# description: The portmapper manages RPC connections, which are used by \
# protocols such as NFS and NIS. The portmap server must be \
# running on machines which act as servers for protocols which \
# make use of the RPC mechanism.
# processname: portmap

# Source function library.


. /etc/rc.d/init.d/functions

# Get config.
. /etc/sysconfig/network

# Check that networking is up.


if [ ${NETWORKING} = "no" ]
then
exit 0
fi

[ -f /sbin/portmap ] || exit 0

# See how we were called.


case "$1" in
start)
echo -n "Starting portmapper: "
daemon portmap
echo
touch /var/lock/subsys/portmap
;;
stop)
echo -n "Stopping portmap services: "
killproc portmap
echo
rm -f /var/lock/subsys/portmap
;;
status)
status portmap
;;
restart|reload)
$0 stop
$0 start
;;
*)
echo "Usage: portmap {start|stop|status|restart|reload}"
exit 1
esac
exit 0

SC 57 UNIX RESEAU
UNIX RESEAU

Network File System (NFS)


Ce système de fichier permet de partager des fichiers et des répertoires à travers un
réseau.
Initialement développé par Sun Microsystem, il est aujourd'hui pratiquement géré par
toutes les plates-formes UNIX et autres
NFS possède un grand nombre d'avantages :
- Il réduit les besoins en volume de stockage sur la machine locale
- Il simplifie la gestion centralisée (mise à jour de fichier centralisé)
- Il permet aux utilisateurs d'utiliser les commandes unix qu'ils connaissent
Toute fois NFS crée beaucoup de problèmes de sécurité bien connus des hackers qui
peuvent facilement les exploiter pour obtenir l'accès (read,write et remove) a tous vos
fichiers.
NFS fonctionne grâce à plusieurs daemons :
Nfsd : il tourne sur les serveurs NFS, ce daemon répond aux requêtes NFS
des clients
Mountd : Il traite les demandes de montage des processus clients, il est executé
sur le serveur
lockd : Il gère les requêtes de verrou de fichiers, le client et le serveur font
tourner ce daemon. Les clients lancent des requêtes pour obtenir des
verrous sur les fichiers et les serveurs les attribuent
statd : Il est nécessaire à lockd pour lui permettre d'utiliser certains de ses
services d'observation. Il fonctionne à la fois sur le client et sur le
serveur.
Tous ces daemons sont lancés à partir du script /etc/rc.d/init.d/nfs.

Pour partager des systèmes de fichiers il est nécessaire de configurer le fichier


/etc/exports. IL contrôle les fichiers et les répertoires partagés, les machines qui
peuvent y accéder et quels types d'accès sont autorisés.

Pour que les daemons nfsd et mountd prennent en compte les modifications du fichier
/etc/export, il est nécessaire d'utiliser la commande "exportfs" qui va mettre à jour le
fichier /var/lib/nfs/xtab

Le client peut monter le système de fichier au moyen du fichier /etc/fstab lors de


l'amorçage ou de façon intéractive avec la commande mount

SC 58 UNIX RESEAU
UNIX RESEAU

NFS
Vérification du bon fonctionnement des
daemons

[root@nico /etc]# rpcinfo -p


program no_version protocole no_port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper fichier /etc/exports du serveur
100011 1 udp 616 rquotad
100011 2 udp 616 rquotad / master(rw) trusty(rw,no_root_squash)
100024 1 udp 606 status /projects proj*.[Link](rw)
100024 1 tcp 608 status /usr *.[Link](ro) @trusted(rw)
100005 1 udp 625 mountd /home/joe pc001(rw,all_squash,anonuid=150,anongid=100)
100005 1 tcp 627 mountd /pub (ro,insecure,all_squash)
100005 2 udp 630 mountd /stef galadriel(ro) pat(rw)
100005 2 tcp 632 mountd /home/gigi *.[Link] (ro)
100003 2 udp 2049 nfs
100021 1 udp 1024 nlockmgr
100021 3 udp 1024 nlockmgr
100021 1 tcp 1024 nlockmgr
100021 3 tcp 1024 nlockmgr

fichier /var/lib/nfs/xtab du serveur

/stef [Link](ro,async,wdelay,secure,root_squash,no_all_squash,mapping=identity,anonuid=-
2,anongid=-2)

fichier /etc/fstab du client

/dev/sda2 / ext2 defaults 11


/dev/sda1 swap swap defaults 00
/dev/fd0 /mnt/floppy auto sync,user,noauto,nosuid,nodev,unhide 0 0
/dev/cdrom /mnt/cdrom auto user,noauto,nosuid,exec,nodev,ro 0 0
none /proc proc defaults 00
none /dev/pts devpts mode=0622 00
nico:/stef /roseline nfs user,exec,dev,suid,ro,rsize=1024,wsize=1024 1 1
~

Montage du système de fichier depuis le client


[stephane@galadriel stephane]$ df

Filesystem 1024-blocks Used Available Capacity Mounted on


/dev/sda1 4059377 647102 3202227 17% /

[stephane@galadriel stephane]$ mount /roseline


[stephane@galadriel stephane]$ df

Filesystem 1024-blocks Used Available Capacity Mounted on


/dev/sda1 4059377 647102 3202227 17% /
nico:/stef 1981000 594814 1283772 32% /roseline

SC 59 UNIX RESEAU
UNIX RESEAU

Routage sous Unix


Toute implémentation de TCP/IP possède des possibilités de routage statique et
dynamique
Le routage statique est réalisé par l'utilisation de la commande "route"

Le routage dynamique peut être mis en œuvre par deux daemons :

Routed ( protocole RIP)

Gated ( protocole RIPv1, RIPv2, OPSF,BGP etc)

SC 60 UNIX RESEAU
UNIX RESEAU

ROUTAGE SOUS UNIX

SC 61 UNIX RESEAU
UNIX RESEAU

Commande route

La commande "route" manipule la table de routage IP du noyau. Son utilisation première


consiste à configurer des routes statiques vers des hôtes ou des réseaux via une
interface, après sa configuration par le programme ifconfig(8).

Le "metric" durant la configuration de la route statique, il est possible d'indiquer le nombre


de passerelles à traverser pour atteindre le destinataire
Exemple de routes statiques :

route add -net [Link]


Ajoute l'entrée loopback normale, en utilisant le masque [Link] (réseau de classe A,
selon l'adresse de destination) et associée avec l'interface "lo" (en supposant que ce
périphérique a été correctement paramètré avec ifconfig(8)).

route add -net [Link] netmask [Link] dev eth0


Ajoute une route vers le réseau 192.56.76.x via "eth0". Le masque de classe C n'est pas
vraiment nécessaire ici car 192.* est une adresse IP de classe C. Le mot "dev" peut être
omis.

route add default nico


Ajoute une route par défaut (qui sera utilisée si aucune autre route ne convient). Tous les
paquets empruntant cette route passeront par "nico". Le périphérique qui sera
effectivement utilisé pour cette route dépend de la façon dont on atteint "nico" - la route
statique vers "nico" devra être préalablement paramétrée.

route add [Link] netmask [Link] dev eth0


Ceci est une commande mal documentée et les gens savent ce qu'il faut faire? Ceci force
toutes les routes IP des classes D (multicast) à passer par "eth0". C'est la configuration
correcte, normale pour un noyau supportant le multicast.

route add [Link] netmask [Link] reject


Installe une route 'rejetée' pour le réseau privé "10.x.x.x."

SC 62 UNIX RESEAU
UNIX RESEAU

COMMANDE ROUTE

Le contenu des tables de routage du noyaus est affiché en colonnes comme suit
Destination Le réseau ou hôte destination.
Gateway L'adresse de la passerelle ou '*' si indéfini.
Genmask Le masque de réseau pour le réseau destinataire; '[Link]'
pour un hôte et '[Link]' pour la route par défaut ( default ).
Indicateurs
Les indicateurs possibles sont
U (la route est active = up)
H (la cible est un hôte)
G (utilise comme passerelle)
R (rétablit la route pour le routage dynamique)
D (dynamiquement configurée par le démon ou par redirect)
M (modifiée par le démon de routage ou par redirect)
! (rejète la route)
Metric La 'distance' à la cible (habituellement comptée en hops). Ce n'est pas
utilisé par les noyaux récents, mais peut-être requis par certains
démons de routage.
Ref Nombre de références à cette route. (Pas utilisé dans le noyau Linux.)
Iface Interface vers laquelle les paquets empruntant cette route seront
envoyés.
MSS Taille de segment maximum par défaut pour les connexions TCP sur
cette route.
Window Taille de fenêtre par défaut pour les connexions TCP sur cette route.
Irtt RTT Initial (Round Trip Time). Le noyau utilise ceci pour essayer les
meilleurs paramètres protocolaires TCP sans attendre de réponse
(éventuellement tardive).
HH (seulement caché)
Le nombre d'entrées ARP et de routes cachées faisant référence au
cache d'en-tête matériel pour la route en cache. Ce sera la valeur -1
si aucune adresse matérielle n'est nécessaire pour l'interface de la
route cachée ([Link]. lo).
Arp (seulement caché)
Indique si oui ou non l'adresse matérielle pour la route en cache est
encore à jour.

SC 63 UNIX RESEAU
UNIX RESEAU

Daemon routed

C'est un daemon routeur standard fourni avec le package INET, si on travail en milieu
hétérogène, on peut être amené à utiliser d'autres daemons de routage en complément ou
à la place de routed.

Selon les options passées à la commande routed, ce daemon peut être passif (uniquement
à l'écoute des information de routage; ne diffuse rien sur le réseau) ou actif ( diffuse ses
informations locales de routage et écoute les autres)

- Si routed est lancé sans option sur une machine n'ayant qu'une interface
interne active, il sera passif
- Si routed est lancé sans option sur une machine ayant au moins deux
interfaces internes actives, il sera actif.
- Quelque soit la configuration, la panoplie d'options de routed permet de le
forcer en mode passif ou actif
Sur toute machine où est lancé routed, ce dernier est à l'écoute sur la socket 520 UDP.
UDP étant un protocole non connecté, il n'y a pas de paquets de confirmation d'appel, ni
d'acquittement émis par les daemons routed passifs, ces daemons ne sont responsables
d'encombrement réseau.

Dans tous les cas le daemon routed recherche les interfaces up et écoute les messages
de mise à jour RIP
Dans le mode actif,il transmet un message request, sur chaque interface Ethernet en
mode broadcast et répond aux messages request reçus du réseau.

SC 64 UNIX RESEAU
UNIX RESEAU

COMMANDE ROUTED

SYNTHAXE

routed [-d] [-g] [-q] [-s] [-t] [logfile]

-s Diffusion systématique des informations de routage

-q Mode "quiet" c'est l'inverse de l'option -s

-d permet le debug

-g route par défaut ( typiquement utilité vers une connexion


internet)

-t Tous les messages transmis apparaissent sur la sortie


standard

SC 65 UNIX RESEAU
UNIX RESEAU

Daemon gated

GateD est un logiciel libre développé à la base par des universitaires américains et dont le
développement est aujourd’hui confié au GateD Consortium. C’est un logiciel tournant sur la
plupart des machines UNIX est dont la fonction est de permettre le routage dynamique grâce à
une base de données construite à partir d’informations échangées par des protocoles de routage.
Il supporte de nombreux protocoles : RIP V1 et V2, OSPF, BGP et EGP.
Sa configuration est également aisée, tout au moins pour les fonctions utilisées dans le cadre
d'une interconnexion simple.

Pour tester un fichier de configuration, il existe une instruction : gated –c qui parcourt la
configuration et renvoie les erreurs éventuelles (qui sont généralement des problèmes de
syntaxe…).

Pour lancer, arrêter ou relancer le démon GateD, on utilise l’instruction gdc (start|stop|restart).

SC 66 UNIX RESEAU
UNIX RESEAU

COMMANDE GATED

# Configuration du routeur ATHOS


# Declaration des interfaces en mode passif
#
interfaces {
interface all passive;
};
# L'identifiant du routeur est l'adresse de l'interface eht0
#
routerid [Link];
#
# desactivation du routage RIP activé par défaut
rip no;
#
# Configuration OSPF
ospf yes {
#
# Le fichier /tmp/[Link] contient toutes les infos de OSPF
#
traceoptions "/tmp/[Link]" spf hello request ack update dd;
#
# Definition du backbone
#
# Il contient les interfaces 1 & 2 (reliées aux autres routeurs)
backbone {
interface eth1 {
priority 100;
# La priorité de 100 est élevée, Athos sera élu DR
enable;
};
interface eth2 {
priority 100;
enable;
};
};
# Definition de l'aire OSPF 1 (corresond a tout ce qui se trouve au dela de eth0)
#
area 1 {
interface eth0 {
priority 10;
enable;
};
};
};

SC 67 UNIX RESEAU
UNIX RESEAU

Domain Name System

Le D.N.S, Domain Name System, est le mécanisme d’identification des machines par des noms
symboliques. Il convertit donc les adresses IP en noms mnémoniques représentant les hôtes, les
réseaux, et aussi les alias de mail.
Il est exploité par presque tous les services d’application, car les utilisateurs préfèrent utiliser des noms
symboliques. Lorsqu’une application TCP/IP rencontre un nom d’hôte, elle envoie une requête à un
résolveur de nom. Il est situé sur la station de travail d’où la requête est émise.

Le système D.N.S fonctionne sur le principe requête/réponse (query/response) et s’appuie sur


le protocole de transport UDP, qui est bien adapté à ce principe, puisqu’il ne perd pas de temps
à maintenir une connexion pour la transmission de la requête. Les serveurs DNS attendent les
requêtes sur le port 53.
L’utilisation la plus courante de ces mécanismes est faite sur Internet, pour les applications HTTP et
SMTP. Dans ce dernier cas il sert à indiquer le serveur de mail utilisé pour gérer les adresses e-mail.

L’implémentation majoritaire de D.N.S est BIND (Berkeley Internet Domain Name) initialement
développée pour la plate-forme BSD Unix. Elle est à présent disponible sur la plupart des
environnements Unix, où on la retrouve sous l’appellation named (name daemon).

les concepts

Le DNS associe trois concepts :

 L’espace de nom de domaine : désigne une arborescence identifiant une série d’hôtes et
fournissant les informations sur eux. Chaque nœud de l’arborescence possède une base de
données sur les hôtes dont il est responsable : ce sont toutes les informations consultables depuis
le D.N.S .

 Le serveur de nom : stocke et met à jour les données dans l’espace de nom de domaine. Il
dispose d’informations complètes sur son domaine de compétence. Ces informations sont divisées
en zone, qui peuvent être distribuées parmi les différents serveurs de nom afin de fournir un service
secondaire à une zone . Chaque serveur de nom connaît les autres serveurs responsables de
zones différentes. Si l’on demande une conversion située dans une zone dont le serveur est
responsable, celui-ci renvoie directement la réponse. En revanche, si l’identification ne peut se faire
dans sa zone, le serveur interroge les autres serveurs de nom recensés.

 Le convertisseur : c’est une routine qui extrait des informations du serveur de nom pour répondre
aux requêtes au sujet d’un hôte dans l’espace de nom de domaine.

SC 68 UNIX RESEAU
UNIX RESEAU

DOMAIN NAME SYSTEM (DNS)

Le D.N.S utilise un système de nom hiérarchique à structure arborescente. A la racine de l’arbre se


trouve le domaine racine dont le nom est un point (.). Sous cette racine (voir figure1 ci-dessous), on
trouve les domaines de premier niveau. Ces domaines permettent de regrouper les noms de domaines.

SC 69 UNIX RESEAU
UNIX RESEAU

Les organisations peuvent librement définir des sous-domaines, mais il est alors de leur ressort de
mettre en place des DNS afin de résoudre les noms de ces sous-domaines.
Plusieurs serveurs DNS peuvent être utilisés pour le même domaine afin d’équilibrer la charge, de
minimiser le trafic sur le réseau et d’assurer un service continu en cas e défaillance d’une machine.

Les serveurs DNS doivent résoudre les noms des hôtes de leur domaine. Un DNS secondaire de
domaine doit connaître l’adresse IP du serveur primaire à contacter afin de résoudre les requêtes.

SC 70 UNIX RESEAU
UNIX RESEAU

Types de serveurs

 Serveur cache:

Utilise le programme de serveur de noms, mais ne possède


aucun fichier de base de données, il apprend les réponses à
toutes les requêtes provenant des serveurs distants. Il
conserve les réponses dans son cache pour répondre aux
futures requêtes.

 Serveur de noms primaire :

il maintient la base de données de la zone dont il a l'autorité


administrative. Il charge les informations du domaine à partir
de fichiers sur le disque

 Serveur de noms secondaire :

il obtient les données de la zone via un autre serveur de nom


qui a l'autorité administrative. Il interroge périodiquement le
serveur primaire et met à jour sa base de données (transfert
de fichier de zone).

Pour une zone, il y a en général un serveur de nom primaire et plusieurs


secondaires. La redondance de serveurs permet la continuité du service
en cas de défaillance du primaire ou d'un secondaire.

SC 71 UNIX RESEAU
UNIX RESEAU

Mise en place du resolver

La première étape pour utiliser le DNS est la configuration de la résolution sur le serveur afin de
convertir des noms.

Le fichier [Link]

La résolution locale est configurée à l'aide du fichier [Link] qui se trouve dans le répertoire /etc.
Ce fichier indique au convertisseur/resolver quels services sont disponibles et dans quel ordre les
appliquer:

Soit le DNS, le fichier hosts ou encore le NIS par exemple.

Note : il est conseillé de spécifier le fichier etc/hosts sur la machine locale dans la recherche de
résolution. Si les serveurs de noms ne sont pas accessibles, on pourra au moins convertir les noms de
machines présents dans ce fichier.

SC 72 UNIX RESEAU
UNIX RESEAU

FICHIER /etc/[Link]

OPTIONS DE CONFIGURATION POUR : [Link]

bind lance une requête au serveur DNS


order Spécifie l'ordre dans pour convertir le nom.
lequel les différents host Cherche le nom dans le fichier host
mécanismes de s local
résolution de nom nis Utilise le protocole NIS (Network
doivent être appliqués Information System pour convertir le
nom
multi Avec on ou off comme argument. Utilisé avec les requêtes hosts afin
de savoir si un hôte peut avoir plusieurs adresses IP. N'affecte pas les
requêtes DNS, NIS
trim Argument : nom de domaine. Enlève le nom de domaine avant de
chercher le nom dans etc/hosts.
alert argument: on /off. Activée, chaque tentative de spoofing enregistrée
avec syslog
nospoof Argument: on. Evite le "spoofing" (incohérence) d'adresses IP. Le nom
renvoyé est converti afin de vérifier qu'il correspond à l'adresse
demandée.

SC 73 UNIX RESEAU
UNIX RESEAU

Le fichier /etc/[Link]

Une fois que le comportement général du convertisseur a été configuré, nous avons besoin de
configurer des informations pour la partie DNS du convertisseur.

Le fichier /etc/[Link] détermine la façon dont le convertisseur utilise le DNS pour convertir les
noms d'hôtes. Il spécifie les serveurs DNS à contacter (et leur ordre) lors de la résolution de noms. Il
fournit aussi le nom de domaine de la machine locale.

SC 74 UNIX RESEAU
UNIX RESEAU

Fichier /etc/[Link]

OPTIONS DE CONFIGURATION POUR : [Link]

domain Indique le nom de domaine local de cet hôte.

Spécifie l'adresse IP d'un serveur DNS à contacter afin de convertir un


nameserver nom. Un maximum de trois serveurs peut être indiqué. Ils sont
interrogés dans l'ordre précisé.
search Liste de domaines à essayer si aucun domaine n'est spécifié dans la
requête d'un nom d'hôte.

Note : L'argument de l'option nameserver doit être l'adresse IP du serveur DNS.

SC 75 UNIX RESEAU
UNIX RESEAU

Le serveur de nom
Le serveur de nom DNS sous Linux est fourni par le démon named. En général, ce démon est appelé
au démarrage et trouve ses informations de configuration dans un ensemble de fichiers de
configuration. Normalement, named tourne jusqu’à ce que l’on éteigne la machine. Une fois lancé et
initialisé, il attend les requêtes DNS sur le port de réseau spécifié dans etc/services.

Le fichier [Link]

Le premier fichier lu lors de l’exécution de named est etc/[Link]. Il constitue la clé des autres
fichiers de configuration utilisés.
Le fichier [Link] du serveur configure le serveur primaire pour le domaine [Link]
et configure le DNS en secondaire pour le domaine [Link]. Il précise le chemin des fichiers de
travail de named : /var/named/ , et l’option de configuration de cache pour ce serveur. Elle doit être
présente sur chaque machine fonctionnant comme serveur de nom. Elle permet de charger les
informations de serveur root à partir de ce fichier.

Le fichier [Link] a changé de nom et de forme de puis Les dernières versions de Bind
Le fichier [Link]
Ce fichier est généralement de très petite taille (quelques octets) et ne contient que des pointeurs vers
les fichiers de référence.
Voici ici un exemple de fichier /etc/[Link],:

zone "." {
type hint;
file "/var/named/afpa/[Link]";
};
zone "[Link]" {
type master;
file "/var/named/afpa/127.0.0";
};
zone "[Link]" {
type master;
file "/var/named/afpa/192168.0";
};
zone "[Link]" {
type master;
file "/var/named/afpa/[Link]";
};
zone "[Link]" {
type slave;
file "/var/named/afpa/[Link]";
master {
[Link];
};
};
La première partie sert à la résolution inversée des noms. Cela permet de connaître le nom d'un PC à
partir de son adresse IP. La deuxième partie sert à la résolution de noms du domaine [Link].

Note : l’entrée cache est très importante. Sans elle, aucun cache n’est activé sur le serveur de noms
local et cela risque d’affecter les performances lors de la recherche de noms.

SC 76 UNIX RESEAU
UNIX RESEAU

Fichier /etc/[Link]

OPTIONS DE CONFIGURATION POUR : [Link]

directory Spécifie le répertoire où se trouvent les fichiers de zones DNS.

primary Utilise comme argument un nom de domaine et un nom de fichier.


Cette option définit named comme source pour le domaine spécifié
et lui ordonne de charger les informations à partir du fichier en
argument.
secondary Demande à named d’être le serveur secondaire pour le domaine
spécifié. Utilise un nom de domaine, une liste d’adresse, et un nom
de fichier comme arguments. named essaie de transférer les
informations sur les zones depuis les hôtes indiqués dans la liste et
les garde dans le fichier en argument.
cache Etablit les informations de cache pour named. Utilise un nom de
domaine et un nom de fichier comme arguments. Normalement, le
nom de domaine est spécifié comme point. Ce fichier contient
également des informations sur les serveurs de noms root pour
l’Internet par exemple.
forwarders Utilise une liste de serveurs de noms comme arguments. Commande
au serveur local de contacter les serveurs listés s’il est incapable de
convertir une adresse à partir de ses propres informations.
slave Convertit le serveur de nom local en serveur local. Les requêtes sont
envoyées vers les serveurs indiqués à l’option forwarders.

SC 77 UNIX RESEAU
UNIX RESEAU

Les fichiers de base de données et d'enregistrement


Dans le fichier [Link] nous avons listé ces différents fichiers en argument comme les fichiers
contenant les informations sur notre domaine [Link] et sur le domaine [Link]
où nous sommes DNS secondaire. Les noms sont fixés arbitrairement, mais de façon à se rappeler la
fonction de chacun d’eux.

Le fichier [Link]

Le fichier [Link] contient les informations sur les hôtes dans la zone d’autorité [Link]-
[Link].

Avant d’aborder ce fichier dans le détail, il est indispensable de connaître les différents types
d’enregistrement utilisés et leur signification.

SC 78 UNIX RESEAU
UNIX RESEAU

TYPES D’ENREGISTREMENT
TYPE DESCRIPTION

Enregistrement d’adresse qui lie un nom d’hôte et une adresse. Il n’y a


A qu’un enregistrement A par hôte, ces informations sont considérées
comme référence.
Toute liaison de nom d’hôte ou adresse doit être entrée à l’aide de
CNAME.
CNAME Associe un alias au nom d’un hôte (celui précisé dans l’enregistrement
A).
HINFO Fournit des informations sur un hôte. Ce champ garde les infos sur le
matériel et les logiciels pour un hôte donné.
MX Etablit un enregistrement d’échange mail.

Pointe vers un serveur de nom pour une autre zone. Le champ de


NS ressources NS contient le nom DNS du serveur. Un enregistrement A
doit aussi être spécifié afin de lier le nom d’hôte à l’adresse du serveur
de noms.
PTR Associe des adresses à des noms, comme dans le domaine in-
[Link]. Le nom d’hôte doit être le nom de la machine.
SOA Indique au serveur de noms que tous les enregistrements qui suivent se
rapportent à ce domaine. SOA signifie Start Of Authority. Le champ de
données est encadré par des parenthèses et contient les entrées
suivantes :
origin Nom du serveur DNS primaire pour le domaine. C’est un
nom de domaine absolu qui se termine par un point.
en secondes
en secondes

contact Adresse e-mail du responsable qui gère le domaine.


secondes

serial Numéro de version du fichier. Il doit être incrémenté à


chaque modification du fichier.
refresh Période durant laquelle le serveur secondaire attend avant
de vérifier l’enregistrement SOA du serveur primaire.
(environ une journée)
retry Période durant laquelle le serveur secondaire attend avant
d’essayer à nouveau une requête au primaire s’il n’est pas
accessible. (fixée à quelques minutes)
expire Période durant laquelle le serveur secondaire attend avant
de rejeter les infos de zone s’il n’a pu contacter le primaire.
(environ trente jours)
minimum Valeur ttl (time of live) par défaut : durée de validité des
informations dans cet enregistrement.

SC 79 UNIX RESEAU
UNIX RESEAU

Ce fichier initialise le serveur dd comme serveur de nom ayant autorité sur le domaine [Link]-
[Link] avec l’entrée IN SOA, désigne le nom d’hôte avec NS, donne la description de la machine
avec l’entrée HINFO, et contient ensuite la base de données des noms d’hôtes pour ce domaine.

L’entrée CNAME crée un alias entre la machine geo et le terme www. On voit tout de suite l’utilité
d’une telle option, l’hôte geo étant serveur WEB.

NOTE : La plupart des erreurs proviennent d’un problème de syntaxe dans ce fichier. Il faut faire très
attention aux points pour désigner le nom de domaine, et éviter absolument les espaces en début de
ligne.

SC 80 UNIX RESEAU
UNIX RESEAU

fichier [Link]

SC 81 UNIX RESEAU
UNIX RESEAU

Le fichier [Link]

Ce fichier ressemble beaucoup au [Link] sauf qu’il effectue l’opération inverse. Il associe des
adresses aux noms d’hôte.
L’enregistrement SOA est le même que celui du fichier [Link] mais les adresses listées
correspondent à la résolution inverse.

L’enregistrement NS donne le serveur de nom pour le domaine (dd). Il est suivi des enregistrements de
résolutions d’adresses inverses, sous forme PTR qui donnent le numéro d’hôte (la partie de l’adresse
qui n’est pas donnée dans la valeur [Link]) et le nom d’hôte correspondant.

SC 82 UNIX RESEAU
UNIX RESEAU

fichier [Link]

SC 83 UNIX RESEAU
UNIX RESEAU

Le fichier [Link]

Comme nous l’avons déjà vu, la fonction cache de named est importante. Le fichier [Link] se
contente de répertorier les serveurs de noms root des divers domaines, ainsi que leurs adresses IP. Il
contient quelques indicateurs spéciaux qui signalent à named qu’il s’agit de serveurs root.

Ce fichier contient normalement la liste et une description de tous les serveurs de noms du monde qui
se trouvent à la racine (au plus haut niveau) de la hiérarchie des DNS pour l’Internet.

Le serveur racine indiquée dans ce fichier est le serveur de nom primaire de la zone [Link] :
galadriel.

Ceci évite une surcharge du réseau par les DNS lors des requêtes de résolution. En effet , ceux-ci
cherchent systématiquement à contacter les serveurs root présent dans ce fichier par défaut (voir ci-
dessous) qui ne sont bien sûr, en l’absence de connexion sur Internet, pas disponible. Les entrées de
ces serveurs racines sont donc mises en commentaire.

SC 84 UNIX RESEAU
UNIX RESEAU

fichier [Link]

SC 85 UNIX RESEAU
UNIX RESEAU

Vérification de la configuration du daemon "named"

Une fois modifiés et enregistrés, les fichiers de configuration doivent être pris en compte par named : il
faut donc redémarrer le daemon. Ceci se fait par la commande ndc restart. (existent aussi ndc stop et
ndc start)

Le meilleur outil de mise au point est la commande nslookup, qui permet de tester la résolution
d’adresses en nom d’hôtes, et également la résolution inverse.

La commande set debug est certainement celle qui donne le plus d’informations quand une requête est
effectuée. Elle permet de tracer la ‘request/reply’ faite au serveur de nom pour tous les hôtes du réseau
et permet de corriger les erreurs.

La commande nslookup utilisée dans le cadre d’une connexion Internet permet d’interroger les
serveurs de noms du réseau.

SC 86 UNIX RESEAU
UNIX RESEAU

Commande "nslookup"

SC 87 UNIX RESEAU

Vous aimerez peut-être aussi