Guide complet sur le réseau UNIX
Guide complet sur le réseau UNIX
SC 2 UNIX RESEAU
UNIX RESEAU
SC 3 UNIX RESEAU
UNIX RESEAU
SOMMAIRE
SOMMAIRE 4
HISTORIQUE 7
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
NFS 59
COMMANDE ROUTE 63
COMMANDE ROUTED 65
COMMANDE GATED 67
SC 5 UNIX RESEAU
UNIX RESEAU
HISTORIQUE
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
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
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.
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
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 :
SC 8 UNIX RESEAU
UNIX RESEAU
PRESENTATION XDR
RESEAU IP IP IP
SC 9 UNIX RESEAU
UNIX RESEAU
SERVICES BERKELEY
Les services Berkeley sont utilisés pour communiquer entre systèmes UNIX
comme HPUX, VAX, SUN,LINUX..
SERVICES SUN
SC 10 UNIX RESEAU
UNIX RESEAU
PRESENTATION XDR
RESEAU IP IP IP
SC 11 UNIX RESEAU
UNIX RESEAU
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
SC 13 UNIX RESEAU
UNIX RESEAU
SC 14 UNIX RESEAU
UNIX 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
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
SC 17 UNIX RESEAU
UNIX RESEAU
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:
# netstat -r
SC 18 UNIX RESEAU
UNIX RESEAU
/etc/sysconfig/network
/etc/sysc/onfig/network-scripts/ifcfg-eth0
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,:
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:
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 }
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]
SC 24 UNIX RESEAU
UNIX RESEAU
INTERFACE LOOPBACK
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
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.
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 :
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
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
labo1 [Link]
labo2 [Link]
labo3 [Link]
labo4 [Link]
SC 33 UNIX RESEAU
UNIX RESEAU
Souvent, les services réseau sont assurés par des petits programmes (daemon) qui
ouvrent certains ports et attendent des connexions.
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
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
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.
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
SC 39 UNIX RESEAU
UNIX RESEAU
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].
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 :
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]# 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
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
Exemple
telnet nico 25
SC 42 UNIX RESEAU
UNIX RESEAU
COMMANDE TELNET
z suspend telnet
environ change environment variables ('environ ?' for more)
telnet>
SC 43 UNIX RESEAU
UNIX RESEAU
Le protocole FTP
La commande ftp permet de transférer des fichiers entre machines via le réseau.
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
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.
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.
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 :
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
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
exmple :
SC 53 UNIX RESEAU
UNIX RESEAU
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.
SC 54 UNIX RESEAU
UNIX RESEAU
#
# 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
# Get config.
. /etc/sysconfig/network
[ -f /sbin/portmap ] || exit 0
SC 57 UNIX RESEAU
UNIX RESEAU
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
SC 58 UNIX RESEAU
UNIX RESEAU
NFS
Vérification du bon fonctionnement des
daemons
/stef [Link](ro,async,wdelay,secure,root_squash,no_all_squash,mapping=identity,anonuid=-
2,anongid=-2)
SC 59 UNIX RESEAU
UNIX RESEAU
SC 60 UNIX RESEAU
UNIX RESEAU
SC 61 UNIX RESEAU
UNIX RESEAU
Commande route
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
-d permet le debug
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
SC 67 UNIX RESEAU
UNIX RESEAU
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.
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
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
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:
SC 71 UNIX RESEAU
UNIX RESEAU
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:
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]
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]
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]
SC 77 UNIX RESEAU
UNIX RESEAU
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
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
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