Transparents du cours (format PDF)

Transcription

Transparents du cours (format PDF)
Administration système UNIX
T HIERRY B ESANÇON – P HILIPPE W EILL
2007 – 2008 / version 10.0
Partie 3 – Volume 1 / 3
Université Pierre et Marie Curie
Formation Permanente
4, place Jussieu
75252 Paris Cedex 05
web : http://www.fp.upmc.fr
Les animateurs de ce cours peuvent être joints aux adresses suivantes :
[email protected]
[email protected]
Ce cours est disponible au format PDF sur le web à l’URL :
http://www.formation.jussieu.fr/ars/2007-2008/UNIX/cours/
Si vous améliorez ce cours, merci de m’envoyez vos modifications ! :-)
Des énoncés de TP et leurs corrigés sont disponibles sur le web à l’URL :
http://www.formation.jussieu.fr/ars/2007-2008/UNIX/tp/
Copyright (c) 1997-2008 by [email protected]
This material may be distributed only subject to the terms and conditions set forth in the Open Publication Licence, v1.0 or later (the latest version is available at http://www.opencontent.org/openpub/).
"...the number of UNIX installations has grown to 10, with more expected..."
- Dennis Ritchie and Ken Thompson, June 1972
1 Technologie Ethernet (IEEE 802.3x)
Chapitre 1
Technologie Ethernet (IEEE 802.3x)
c
T.Besançon
(version 10.0)
Notes de la page 2 :
Administration Unix
ARS 2007–2008 Tôme 3
2 / 707
1 Technologie Ethernet (IEEE 802.3x)
1.1 Principe du CSMA/CD
Chapitre 1 • Technologie Ethernet (IEEE 802.3x)
§1.1 • Principe du CSMA/CD
Le principe d’Ethernet : Carrier Sence Multiple Access / Collision Detect
(CSMA/CD)
2 cas de figure :
1
Emission dans le cas du câble libre
2
Collision lorsque deux stations émettent simultanément
c
T.Besançon
(version 10.0)
Notes de la page 3 :
Administration Unix
ARS 2007–2008 Tôme 3
3 / 707
1 Technologie Ethernet (IEEE 802.3x)
1.1 Principe du CSMA/CD
Emission dans le cas du câble libre
c
T.Besançon
(version 10.0)
Notes de la page 4 :
Administration Unix
ARS 2007–2008 Tôme 3
4 / 707
1 Technologie Ethernet (IEEE 802.3x)
1.1 Principe du CSMA/CD
Collision lorsque deux stations émettent simultanément
c
T.Besançon
(version 10.0)
Notes de la page 5 :
Administration Unix
ARS 2007–2008 Tôme 3
5 / 707
1 Technologie Ethernet (IEEE 802.3x)
1.2 Format d’une adresse Ethernet
Chapitre 1 • Technologie Ethernet (IEEE 802.3x)
§1.2 • Format d’une adresse Ethernet
Format d’une adresse Ethernet : 6 octets écrits sous la forme hexadécimale
« xx:yy:zz:rr:ss:tt » avec :
partie « xx:yy:zz » : elle identifie un constructeur
partie « rr:ss:tt » : elle identifie un appareil chez le constructeur
Liste des constructeurs : liste des OUI (Organizationally Unique
Identifiers) : http://standards.ieee.org/regauth/oui/
Il existe une adresse de broadcast Ethernet : « ff:ff:ff:ff:ff:ff »
Toutes les machines du segment Ethernet sont censées écouter le paquet.
c
T.Besançon
(version 10.0)
Notes de la page 6 :
Administration Unix
ARS 2007–2008 Tôme 3
6 / 707
1 Technologie Ethernet (IEEE 802.3x)
1.3 Format d’une trame Ethernet
Chapitre 1 • Technologie Ethernet (IEEE 802.3x)
§1.3 • Format d’une trame Ethernet
Trame Ethernet == Paquet Ethernet
62 bits
Taille de la trame : 18 octets
d’entête + au maximum 1500
octets de données = 1518 octets
Série alternée de 0 et de 1
2 bits
Série de 2 bits à 1
6 bytes
Adresse de destination
6 bytes
Adresse de l’émetteur
2 bytes
Longueur du paquet (standard 802.3)
Type du paquet (standard Ethernet)
La capacité de 1500 octets est
appelée MTU (Maximum
Transmission Unit).
de 46 bytes
à
Données
1500 bytes
4 bytes
Frame Check Sequence
c
T.Besançon
(version 10.0)
Notes de la page 7 :
Il existe des Jumbo frames : trame
de 9000 octets de données. Souvent
non supporté par les équipements
réseau. A éviter.
Administration Unix
ARS 2007–2008 Tôme 3
7 / 707
1 Technologie Ethernet (IEEE 802.3x)
1.4 Address Resolution Protocol (ARP)
Chapitre 1 • Technologie Ethernet (IEEE 802.3x)
§1.4 • Address Resolution Protocol (ARP)
RFC 826
Le protocole ARP apporte la réponse à « comment dialoguer avec une
autre machine IP du même brin Ethernet sans connaitre au préalable son
adresse Ethernet ».
Synthétiquement le protocole fonctionne ainsi :
Je suis la machine d’adresse IP IP1 et d’adresse Ethernet MAC1.
Ecoutez moi tous sur le brin Ethernet. Je veux dialoguer avec la
machine d’adresse IP IP2. Que la machine avec cette adresse IP me
communique son adresse Ethernet MAC2.
J’ai bien entendu. Je suis la machine avec IP2. Voici mon adresse
Ethernet MAC2.
Les autres machines en profitent pour noter la réponse.
c
T.Besançon
(version 10.0)
Notes de la page 8 :
Administration Unix
ARS 2007–2008 Tôme 3
8 / 707
1 Technologie Ethernet (IEEE 802.3x)
1.5 Table ARP : commande arp, /proc/net/arp
Chapitre 1 • Technologie Ethernet (IEEE 802.3x)
§1.5 • Table ARP : commande arp, /proc/net/arp
Syntaxe : « arp -a » ou « arp -an »
Exemple :
% arp -a
Net to Media Table: IPv4
Device
IP Address
Mask
Flags
Phys Addr
------ -------------------- --------------- ----- --------------eri0
solaris.example.org 255.255.255.255 SP
00:03:ba:0f:15:35
c
T.Besançon
(version 10.0)
Notes de la page 9 :
Administration Unix
ARS 2007–2008 Tôme 3
9 / 707
1 Technologie Ethernet (IEEE 802.3x)
1.5 Table ARP : commande arp, /proc/net/arp
Autre façon d’obtenir la table ARP d’une machine LINUX :
% cat /proc/net/arp
IP address
HW type
134.157.46.254
0x1
192.168.4.18
0x1
c
T.Besançon
(version 10.0)
Notes de la page 10 :
Flags
0x2
0x2
HW address
00:02:7E:21:F7:9C
00:48:54:6B:E5:B0
Administration Unix
Mask
*
*
ARS 2007–2008 Tôme 3
Device
eth0
eth3
10 / 707
1 Technologie Ethernet (IEEE 802.3x)
1.6 Réglages ARP : commande arp
Chapitre 1 • Technologie Ethernet (IEEE 802.3x)
§1.6 • Réglages ARP : commande arp
Syntaxes de la commande « arp » :
1
« arp -a » pour lister les adresses MAC connues
2
« arp -d hostname » pour effacer une adresse MAC du cache ARP
3
« arp -s hostname adresse-ethernet » pour mettre en cache
une adresse MAC
Pourquoi les options 2 et 3 ?
c
T.Besançon
(version 10.0)
Notes de la page 11 :
Administration Unix
ARS 2007–2008 Tôme 3
11 / 707
1 Technologie Ethernet (IEEE 802.3x)
1.6 Réglages ARP : commande arp
Exemple : configuration initiale d’un boitier ethernet / parallèle (ou USB)
pour une imprimante :
On connait l’adresse MAC du boitier (par exemple impression sur
l’imprimante moyennant une combinaison de touche) ; par exemple
« 11:22:33:44:55:66 »
On associe alors cette adresse MAC à une adresse IP sur la machine
où l’on se trouve : « arp -s 192.168.1.1 11:22:33:44:55:66 »
On peut alors se connecter en IP pour finir de configurer le boitier
c
T.Besançon
(version 10.0)
Notes de la page 12 :
Administration Unix
ARS 2007–2008 Tôme 3
12 / 707
1 Technologie Ethernet (IEEE 802.3x)
1.7 Surveillance ARP : commande arpwatch
Chapitre 1 • Technologie Ethernet (IEEE 802.3x)
§1.7 • Surveillance ARP : commande arpwatch
http://www.arpwatch.org
ARPWATCH surveille les échanges du protocole ARP et stocke les
adresses échangées.
A completer...
Attention : forte utilisation des switches désormais ⇒ difficile d’écouter les
paquets qui ne nous sont pas destinés
c
T.Besançon
(version 10.0)
Notes de la page 13 :
Administration Unix
ARS 2007–2008 Tôme 3
13 / 707
1 Technologie Ethernet (IEEE 802.3x)
1.8 (Windows : : purge du cache ARP : netsh)
Chapitre 1 • Technologie Ethernet (IEEE 802.3x)
§1.8 • (Windows : : purge du cache ARP : netsh)
Une machine WINDOWS utilise un cache ARP comme n’importe quelle
autre machine faisant de l’IP.
On peut purger le cache ARP par la commande
« netsh interface ip delete arpcache ».
c
T.Besançon
(version 10.0)
Notes de la page 14 :
Administration Unix
ARS 2007–2008 Tôme 3
14 / 707
1 Technologie Ethernet (IEEE 802.3x)
1.9 Reverse Address Resolution Protocol (RARP)
Chapitre 1 • Technologie Ethernet (IEEE 802.3x)
§1.9 • Reverse Address Resolution Protocol (RARP)
(en anglais Reverse Address Resolution Protocol)
Le protocole répond à « je suis la machine d’adresse Ethernet MAC1 ; qui
peut me donner mon adresse IP ? ».
Exemple de telles machines :
stations UNIX sans disque (dite diskless)
terminaux X, clients légers
imprimantes réseau
webcams réseau
boitiers ethernet/USB ou ethernet/parallèle pour imprimante
c
T.Besançon
(version 10.0)
Notes de la page 15 :
Administration Unix
ARS 2007–2008 Tôme 3
15 / 707
1 Technologie Ethernet (IEEE 802.3x)
1.10 RARP : rarpd
Chapitre 1 • Technologie Ethernet (IEEE 802.3x)
§1.10 • RARP : rarpd
Démon « rarpd »
Il utilise le fichier « /etc/ethers » :
08:00:20:03:2f:15
08:00:20:04:03:b4
08:00:20:02:fc:d2
valerian.lpt.ens.fr
bill.lpt.ens.fr
chang.lpt.ens.fr
Obsolète
c
T.Besançon
(version 10.0)
Notes de la page 16 :
Administration Unix
ARS 2007–2008 Tôme 3
16 / 707
1 Technologie Ethernet (IEEE 802.3x)
1.11 RARP : BOOTP, bootpd
Chapitre 1 • Technologie Ethernet (IEEE 802.3x)
§1.11 • RARP : BOOTP, bootpd
Le protocole BOOTP est plus complet que RARPD.
Il permet en plus de spécifier des paramètres de boot.
Démon « bootpd »
Le démon « bootpd » se lance :
soit en mode autonome :
% ps -ax | grep bootp
314 ?? Is
0:00.01 /usr/libexec/bootpd
soit via « inetd » :
bootps dgram
udp wait
c
T.Besançon
(version 10.0)
Notes de la page 17 :
root
/usr/libexec/bootpd
Administration Unix
bootpd
ARS 2007–2008 Tôme 3
17 / 707
1 Technologie Ethernet (IEEE 802.3x)
1.11 RARP : BOOTP, bootpd
Il faut renseigner le fichier « /etc/bootptab » (fichier par défaut mais
c’est configurable à volonté) :
fermion.lpt.ens.fr:\
:tc=.default:\
:ht=ethernet:\
:ha=0x008096023370:\
:ip=129.199.122.72:\
:hd=/hds/netOS/image:\
:bf=X.hds:
Obsolète
c
T.Besançon
(version 10.0)
Notes de la page 18 :
Administration Unix
ARS 2007–2008 Tôme 3
18 / 707
1 Technologie Ethernet (IEEE 802.3x)
1.12 RARP : DHCP, dhcpd, dhcpd.conf, dhclient
Chapitre 1 • Technologie Ethernet (IEEE 802.3x)
§1.12 • RARP : DHCP, dhcpd, dhcpd.conf, dhclient
DHCP : Dynamic Host Configuration Protocol
RFC 2131 et RFC 2132
« http://www.lip6.fr/pub/rfc/rfc/rfc2131.txt »
« http://www.lip6.fr/pub/rfc/rfc/rfc2132.txt »
Port TCP 67 (port d’écoute du serveur)
Port TCP 68 (port de réponse du serveur)
c
T.Besançon
(version 10.0)
Notes de la page 19 :
Administration Unix
ARS 2007–2008 Tôme 3
19 / 707
1 Technologie Ethernet (IEEE 802.3x)
1.12 RARP : DHCP, dhcpd, dhcpd.conf, dhclient
On distingue :
le serveur DHCP : à l’écoute sur
ses interfaces réseau, il distribue
par son autorité des adresses IP
résidant dans des plages
DHCP
SERVER
le DHCP relay agent : il sait router
les paquets IP du protocole DHCP
entre un client et un serveur
le client DHCP : il utilise le
protocole DHCP pour découvrir
son adresse IP et d’autres
paramètres réseau ou autres
paramètres (dits DHCP options ;
par exemple le serveur NTP)
c
T.Besançon
(version 10.0)
Notes de la page 20 :
Administration Unix
DHCP agent
DHCP
CLIENT
ARS 2007–2008 Tôme 3
20 / 707
1 Technologie Ethernet (IEEE 802.3x)
1.12 RARP : DHCP, dhcpd, dhcpd.conf, dhclient
Protocole DHCP
Principe :
CLIENT
DHCP
SERVEUR
DHCP
DHCPDISCOVER (broadcast)
DHCPOFFER (unicast)
DHCPREQUEST (broadcast)
DHCPACK (unicast)
c
T.Besançon
(version 10.0)
Notes de la page 21 :
Administration Unix
ARS 2007–2008 Tôme 3
21 / 707
1 Technologie Ethernet (IEEE 802.3x)
1.12 RARP : DHCP, dhcpd, dhcpd.conf, dhclient
Principe :
1
Une machine démarre dans l’état « INIT »
2
Elle cherche un serveur DHCP en envoyant un paquet
« DHCPDISCOVER ».
3
Un ou plusieurs serveurs DHCP répondent par un paquet
« DHCPOFFER » contenant une adresse IP et des options DHCP.
4
Le client sélectionne un serveur DHCP parmi ceux qui ont répondu.
Par exemple, le premier.
5
Le client broadcaste un paquet « DHCPREQUEST » spécifiant l’adresse
IP retenue.
6
Le serveur retenu répond au client en lui envoyant un paquet
« DHCPACK ».
7
Après, le client posséde l’adresse IP pour un laps de temps appelé
lease.
c
T.Besançon
(version 10.0)
Notes de la page 22 :
Administration Unix
ARS 2007–2008 Tôme 3
22 / 707
1 Technologie Ethernet (IEEE 802.3x)
1.12 RARP : DHCP, dhcpd, dhcpd.conf, dhclient
Lorsqu’une machine qui a obtenu une adresse IP via DHCP reboote, elle
ne recommence pas exactement les étapes ci-dessus. Elle commence dans
l’état « INIT-REBOOT ». Elle envoie un paquet « DHCPREQUEST »
reprenant l’adresse précédemment acquise. En cas de disponibilité de
l’adresse, le serveur répond par « DHCPACK ». En cas de non disponibilité
(par exemple, le portable a changé de réseau), un serveur DHCP répond
par « DHCPNACK ». A ce moment-là, la machine reprend à l’étape 1 de
ci-dessus.
Mécanisme de détection de duplicate IP address :
le serveur DHCP envoie un paquet « ICMP Echo » ; en cas de
réponse, le serveur propose une autre adresse
le client DHCP envoie un paquet « ARP » ; en cas de réponse, le client
envoie un paquet « DHCPDECLINE » ; le serveur proposera alors une
nouvelle adresse
c
T.Besançon
(version 10.0)
Notes de la page 23 :
Administration Unix
ARS 2007–2008 Tôme 3
23 / 707
1 Technologie Ethernet (IEEE 802.3x)
1.12 RARP : DHCP, dhcpd, dhcpd.conf, dhclient
Faiblesses du protocole DHCP
Denial of Service possible ; « DHCPDISCOVER » puis « DHCPNAK »
jusqu’à épuisement des numéros libres sur le serveur DHCP par
exemple
single point of failure ; pas de mécanisme de serveur DHCP de secours
pas d’authentification du client au serveur et vice-versa
inadéquation de l’adresse MAC comme Client Identifier ; par exemple
un portable et un dock, une carte PCMCIA réseau
c
T.Besançon
(version 10.0)
Notes de la page 24 :
Administration Unix
ARS 2007–2008 Tôme 3
24 / 707
1 Technologie Ethernet (IEEE 802.3x)
1.12 RARP : DHCP, dhcpd, dhcpd.conf, dhclient
ISC DHCP
« http://www.isc.org/products/DHCP/ »
« ftp://ftp.isc.org/isc/dhcp/dhcp-3.0pl1.tar.gz »
Version 3 : supporte le Dynamic DNS Update, l’authentification DHCP
Peut répondre à des requêtes BOOTP.
Fichier de configuration : en général « /etc/dhcp.conf »
En cas de modification au fichier de configuration, il faut arrêter le démon
« dhcpd » et le relancer (par exemple « /etc/rc.d/dhcp restart »).
Pas de « SIGHUP » pour le reconfigurer on the fly.
c
T.Besançon
(version 10.0)
Notes de la page 25 :
Administration Unix
ARS 2007–2008 Tôme 3
25 / 707
1 Technologie Ethernet (IEEE 802.3x)
1.12 RARP : DHCP, dhcpd, dhcpd.conf, dhclient
Exemple de « /etc/dhcpd.conf » :
ddns-update-style
always-reply-rfc1048
none;
on;
option
option
option
option
option
192.168.1.1;
"jardiniers.org";
255.255.255.0;
192.168.1.255;
192.168.1.1;
domain-name-servers
domain-name
subnet-mask
broadcast-address
log-servers
subnet 192.168.1.0 netmask 255.255.255.0 {
range
192.168.1.200 192.168.1.210;
default-lease-time
120;
max-lease-time
180;
}
host gutenberg {
# Apple 12/640
hardware ethernet
fixed-address
}
c
T.Besançon
(version 10.0)
Notes de la page 26 :
08:00:07:24:46:59;
192.168.1.2;
Administration Unix
ARS 2007–2008 Tôme 3
26 / 707
1 Technologie Ethernet (IEEE 802.3x)
1.12 RARP : DHCP, dhcpd, dhcpd.conf, dhclient
Le serveur écrit les leases sur disque : « /var/run/dhcpd.leases » ;
ancienne base « dhcpd.leases~ »
Exemple de « /var/run/dhcpd.leases » :
#
#
#
#
#
#
#
All times in this file are in UTC (GMT), not your local timezone.
This i
not a bug, so please don’t ask about it.
There is no portable way to
store leases in the local timezone, so please don’t request this as a
feature.
If this is inconvenient or confusing to you, we sincerely
apologize.
Seriously, though - don’t ask.
The format of this file is documented in the dhcpd.leases(5) manual page.
This lease file was written by isc-dhcp-V3.0.1rc6
lease 192.168.1.210 {
starts 0 2002/09/08 22:57:10;
ends 0 2002/09/08 22:59:10;
binding state active;
next binding state free;
hardware ethernet 00:04:76:48:4f:65;
}
c
T.Besançon
(version 10.0)
Notes de la page 27 :
Administration Unix
ARS 2007–2008 Tôme 3
27 / 707
1 Technologie Ethernet (IEEE 802.3x)
1.12 RARP : DHCP, dhcpd, dhcpd.conf, dhclient
Sur Red Hat Linux, on peut dire à la machine de configurer son adresse
réseau via DHCP au niveau de
« /etc/sysconfig/network-scripts/ifcfg-eth0 » :
DEVICE = eth0
IPADDR = 0.0.0.0
NETMASK = 255.255.255.0
NETWORK =
BROADCAST = 0.0.0.255
GATEWAY = none
ONBOOT = yes
DYNAMIC = dhcp
Une machine UNIX utilisant DHCP fait tourner « dhclient »
c
T.Besançon
(version 10.0)
Notes de la page 28 :
Administration Unix
ARS 2007–2008 Tôme 3
28 / 707
1 Technologie Ethernet (IEEE 802.3x)
1.12 RARP : DHCP, dhcpd, dhcpd.conf, dhclient
Possibilité d’avoir une configuration du comportement DHCP du client au
moyen du fichier « /etc/dhclient.conf ». Par exemple :
timeout 60;
retry 60;
reboot 10;
select-timeout 5;
initial-interval 2;
reject 192.33.137.209;
interface "ep0" {
send host-name "andare.fugue.com";
send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;
send dhcp-lease-time 3600;
supersede domain-name "fugue.com rc.vix.com home.vix.com";
prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, host-name;
...
c
T.Besançon
(version 10.0)
Notes de la page 29 :
Administration Unix
ARS 2007–2008 Tôme 3
29 / 707
1 Technologie Ethernet (IEEE 802.3x)
1.12 RARP : DHCP, dhcpd, dhcpd.conf, dhclient
Suite :
...
require subnet-mask, domain-name-servers;
script "/sbin/dhclient-script";
media "media 10baseT/UTP", "media 10base2/BNC";
}
alias {
interface "ep0";
fixed-address 192.5.5.213;
option subnet-mask 255.255.255.255;
}
c
T.Besançon
(version 10.0)
Notes de la page 30 :
Administration Unix
ARS 2007–2008 Tôme 3
30 / 707
1 Technologie Ethernet (IEEE 802.3x)
1.12 RARP : DHCP, dhcpd, dhcpd.conf, dhclient
Options DHCP pour clients Microsoft
Cf : « http://www.microsoft.com/windows2000/en/server/help/\
default.asp?url=/windows2000/en/server/help/\
sag_DHCP_add_OptionsMsVendorSpecific.htm »
c
T.Besançon
(version 10.0)
Notes de la page 31 :
Administration Unix
ARS 2007–2008 Tôme 3
31 / 707
1 Technologie Ethernet (IEEE 802.3x)
1.12 RARP : DHCP, dhcpd, dhcpd.conf, dhclient
Outils satellites pour DHCP
Quelques outils :
logiciel « dhcpdump » :
« http://www.mavetju.org/download/dhcpdump-1.4.tar.gz »
logiciel « dhcping » :
« http://www.mavetju.org/download/dhcping-1.2.tar.gz »
# ./dhcping -c 195.220.117.6 -s 195.220.117.22 -h 8:0:20:cf:62:12
Got answer from: 195.220.117.22
c
T.Besançon
(version 10.0)
Notes de la page 32 :
Administration Unix
ARS 2007–2008 Tôme 3
32 / 707
1 Technologie Ethernet (IEEE 802.3x)
1.13 Mode promiscuous
Chapitre 1 • Technologie Ethernet (IEEE 802.3x)
§1.13 • Mode promiscuous
En théorie une carte réseau n’écoute que les paquets qui lui sont destinés.
Si une carte Ethernet est en mode promiscuous, elle peut capturer des
paquets qui ne lui sont pas destinés.
Sur LINUX, la commande « ifconfig » indique l’état promiscuous.
A completer...
Sur SOLARIS, la commande « ifconfig » n’indique pas l’état
promiscuous.
# snoop -d eri0
Using device /dev/eri (promiscuous mode)
c
T.Besançon
(version 10.0)
Notes de la page 33 :
Administration Unix
ARS 2007–2008 Tôme 3
33 / 707
1 Technologie Ethernet (IEEE 802.3x)
1.14 Capture de trames Ethernet : librairie libpcap
Chapitre 1 • Technologie Ethernet (IEEE 802.3x)
§1.14 • Capture de trames Ethernet : librairie libpcap
(en anglais library packet capture)
Cf « http://www.tcpdump.org »
C’est une bibliothèque de programmation C spécialisée dans la capture de
paquets réseau.
Elle repose sur un driver réseau présent dans le noyau, le packet filter BPF.
c
T.Besançon
(version 10.0)
Notes de la page 34 :
Administration Unix
ARS 2007–2008 Tôme 3
34 / 707
1 Technologie Ethernet (IEEE 802.3x)
1.15 Capture de trames Ethernet : tcpdump
Chapitre 1 • Technologie Ethernet (IEEE 802.3x)
§1.15 • Capture de trames Ethernet : tcpdump
Cf http://www.tcpdump.org
C’est le logiciel de référence en ce qui concerne l’analyse des trames IP
circulant sur un réseau. Il est bâti au dessus de la libpcap qui fait tout le
travail en fait. C’est juste de l’enrobage au dessus de libpcap.
En cas de problème réseau, on utilisera ce logiciel si l’origine du problème
n’est pas évidente.
Exemple :
#
#
#
#
tcpdump
tcpdump
tcpdump
tcpdump
-s
-s
-s
-s
1500
1500
1500
1500
host www.example.com
arp
icmp
dst sgbd.example.com port 5432
# tcpdump -s 1500 -w fichier
# tcpdump -s 1500 -r fichier
c
T.Besançon
(version 10.0)
Notes de la page 35 :
Administration Unix
ARS 2007–2008 Tôme 3
35 / 707
1 Technologie Ethernet (IEEE 802.3x)
1.16 Capture de trames Ethernet : wireshack (ethereal)
Chapitre 1 • Technologie Ethernet (IEEE 802.3x)
§1.16 • Capture de trames Ethernet : wireshack (ethereal)
http://www.wireshack.com
Ancien nom : « ethereal » (http://www.ethereal.com)
C’est un logiciel graphique d’analyse des trames IP circulant sur un réseau.
On l’utilise conjointement à tcpdump :
1
on demande à « tcpdump » d’enregistrer les trames :
« tcpdump -s 1500 -w enregistrement »
2
on demande à « ethereal » de relire a posteriori ce fichier
d’enregistrement :
« ethereal enregistrement »
c
T.Besançon
(version 10.0)
Notes de la page 36 :
Administration Unix
ARS 2007–2008 Tôme 3
36 / 707
1 Technologie Ethernet (IEEE 802.3x)
c
T.Besançon
(version 10.0)
Notes de la page 37 :
1.16 Capture de trames Ethernet : wireshack (ethereal)
Administration Unix
ARS 2007–2008 Tôme 3
37 / 707
1.17 (Windows : : capture de trames Ethernet :
1 Technologie Ethernet (IEEE 802.3x) wireshack.exe)
Chapitre 1 • Technologie Ethernet (IEEE 802.3x)
§1.17 • (Windows : : capture de trames Ethernet : wireshack.exe)
A completer...
c
T.Besançon
(version 10.0)
Notes de la page 38 :
Administration Unix
ARS 2007–2008 Tôme 3
38 / 707
1 Technologie Ethernet (IEEE 802.3x)
1.18 Wake On Lan
Chapitre 1 • Technologie Ethernet (IEEE 802.3x)
§1.18 • Wake On Lan
Sur les machines modernes, la carte réseau reste alimentée électriquement
⇒ la carte réseau peut alors démarrer la carte mère sur réception de
paquets réseau spéciaux et démarrer l’OS = Wake On Lan
c
T.Besançon
(version 10.0)
Notes de la page 39 :
Administration Unix
ARS 2007–2008 Tôme 3
39 / 707
1 Technologie Ethernet (IEEE 802.3x)
c
T.Besançon
(version 10.0)
Notes de la page 40 :
1.18 Wake On Lan
Administration Unix
ARS 2007–2008 Tôme 3
40 / 707
1 Technologie Ethernet (IEEE 802.3x)
Manifestement dépend aussi du
driver de la carte réseau :
1.18 Wake On Lan
Manifestement dépend aussi de la
bonne qualité du driver de la carte
réseau :
Salle de TP de la Formation
Permanente
Carte mère ASUS P4P800X
Boot de Windows ; shutdown
propre ⇒ WOL possible
Boot de Mandriva 2006 ;
shutdown propre ⇒ WOL
impossible
c
T.Besançon
(version 10.0)
Notes de la page 41 :
Administration Unix
ARS 2007–2008 Tôme 3
41 / 707
1 Technologie Ethernet (IEEE 802.3x)
1.18 Wake On Lan
Comment contacter une machine ?
Envoi d’un paquet Ethernet spécial :
paquet UDP à destination du port discard le plus souvent
contenu du paquet UDP (dit magic sequence) :
6 fois 0xFF
16 fois l’adresse Ethernet
Par exemple, pour réveiller la carte d’adresse « 01:02:03:04:05:06 » :
FFFFFFFFFFFF010203040506010203040506010203040506010203040506
010203040506010203040506010203040506010203040506010203040506
010203040506010203040506010203040506010203040506010203040506
010203040506010203040506
c
T.Besançon
(version 10.0)
Notes de la page 42 :
Administration Unix
ARS 2007–2008 Tôme 3
42 / 707
1 Technologie Ethernet (IEEE 802.3x)
1.18 Wake On Lan
Logiciels :
« wakeonlan » :
http://gsd.di.uminho.pt/jpo/software/wakeonlan/
« wakeonlan » : http://www.moldaner.de/wakeonlan/
(« java -jar wakeonlan.jar -i 192.168.0.255 01:02:03:04:05:06 »
c
T.Besançon
(version 10.0)
Notes de la page 43 :
Administration Unix
ARS 2007–2008 Tôme 3
43 / 707
2 Protocole IP
Chapitre 2
Protocole IP
c
T.Besançon
(version 10.0)
Notes de la page 44 :
Administration Unix
ARS 2007–2008 Tôme 3
44 / 707
2 Protocole IP
2.1 Adresses IP v4
Chapitre 2 • Protocole IP
§2.1 • Adresses IP v4
Quelques caractéristiques :
protocole IP version 4
adresse IP sur 4 octets « a.b.c.d »
a, b, c, d sont compris entre 0 et 255 et écrits en base 10 pour éviter
des erreurs
% man 3 inet
...
All numbers supplied as ‘‘parts’’ in a ‘.’ notation may be decimal, octal, or hexadecimal, as specified in the C language (i.e., a leading 0x
or 0X implies hexadecimal; otherwise, a leading 0 implies octal; otherwise, the number is interpreted as decimal).
...
des organismes attribuent des lots d’adresses aux sociétés (pour la
France « http://www.afnic.asso.fr »)
notion de classes d’adresses mais devient obsolète
c
T.Besançon
(version 10.0)
Notes de la page 45 :
Administration Unix
ARS 2007–2008 Tôme 3
45 / 707
2 Protocole IP
Classe
2.1 Adresses IP v4
Format des adresses
7 bits
A
0
24 bits
netid
hostid
0.0.0.0 à 127.255.255.255
14 bits
B
1
16 bits
netid
0
hostid
128.0.0.0 à 191.255.255.255
21 bits
C
1
1
8 bits
netid
0
hostid
192.0.0.0 à 223.255.255.255
28 bits
D
1
1
1
multicast groupid
0
224.0.0.0 à 239.255.255.255
27 bits
E
1
1
1
1
0
(reserved for future use)
240.0.0.0 à 247.255.255.255
c
T.Besançon
(version 10.0)
Notes de la page 46 :
Administration Unix
ARS 2007–2008 Tôme 3
46 / 707
2 Protocole IP
2.2 IP v6
Chapitre 2 • Protocole IP
§2.2 • IP v6
Total address space allocated
1.6e+09
1.4e+09
Addresses allocated
1.2e+09
1e+09
8e+08
6e+08
4e+08
2e+08
83
84
c
T.Besançon
(version 10.0)
Notes de la page 47 :
85
86
87
88
Year
Administration Unix
89
90
91
92
93
ARS 2007–2008 Tôme 3
47 / 707
2 Protocole IP
2.2 IP v6
Total address space allocated
5e+09
4.5e+09
4e+09
Addresses allocated
3.5e+09
3e+09
2.5e+09
2e+09
1.5e+09
1e+09
5e+08
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 00 01 02 03 04 05 06 07 08 09
Year
c
T.Besançon
(version 10.0)
Notes de la page 48 :
Administration Unix
ARS 2007–2008 Tôme 3
48 / 707
2 Protocole IP
2.2 IP v6
Epuisement prévu des numéros IP ⇒ création de IP v6.
Voir exposé de Yves Legrandgérard.
c
T.Besançon
(version 10.0)
Notes de la page 49 :
Administration Unix
ARS 2007–2008 Tôme 3
49 / 707
2 Protocole IP
2.2 IP v6
From: James Carlson <[email protected]>
To: [email protected]
Subject: Re: (IPng) GENERAL IPNG ISSUES
Date: Mon, 26 Sep 94 07:29:53 -0400
>> PS why do people say that 16 bytes is enough to address the people
>> on the entire planet squillions of times over when addresses relate
>> to location geography?
16 bytes is 2^128 = 340,282,366,920,938,463,463,374,607,431,768,211,456.
This is a humorously large address space. Taking a SWAG at the size
of the Earth, about 201,062,400 square miles, this comes to around
1,692,421,690,584,308,470,720,406,239,216 addresses per square mile of
Earth’s surface, or about 421,578,297,421,497,485,189 addresses per
square inch.
Even if we chop off three bytes to indicate galaxy, solar system and
planet, we’d still have 25,128,024 addresses per square *mil* here on
Earth. Pathology will never be the same after every microbe has its
own address...
c
T.Besançon
(version 10.0)
Notes de la page 50 :
Administration Unix
ARS 2007–2008 Tôme 3
50 / 707
2 Protocole IP
2.3 Encapsulation des paquets
Chapitre 2 • Protocole IP
§2.3 • Encapsulation des paquets
Trame Ethernet
header
Ethernet
c
T.Besançon
(version 10.0)
Notes de la page 51 :
data
Administration Unix
trailer
Ethernet
ARS 2007–2008 Tôme 3
51 / 707
2 Protocole IP
2.3 Encapsulation des paquets
Trame Ethernet
Trame ARP
header
Ethernet
c
T.Besançon
(version 10.0)
Notes de la page 52 :
trailer
Ethernet
Administration Unix
ARS 2007–2008 Tôme 3
52 / 707
2 Protocole IP
2.3 Encapsulation des paquets
Trame Ethernet
Trame IP
header
Ethernet
c
T.Besançon
(version 10.0)
Notes de la page 53 :
trailer
Ethernet
Administration Unix
ARS 2007–2008 Tôme 3
53 / 707
2 Protocole IP
2.3 Encapsulation des paquets
Trame Ethernet
Trame IP
header
Ethernet
trailer
Ethernet
header
IP
c
T.Besançon
(version 10.0)
Notes de la page 54 :
Trame UDP
Administration Unix
ARS 2007–2008 Tôme 3
54 / 707
2 Protocole IP
2.3 Encapsulation des paquets
Trame Ethernet
Trame IP
header
Ethernet
trailer
Ethernet
header
IP
c
T.Besançon
(version 10.0)
Notes de la page 55 :
Trame TCP
Administration Unix
ARS 2007–2008 Tôme 3
55 / 707
2 Protocole IP
2.3 Encapsulation des paquets
Trame Ethernet
Trame IP
header
Ethernet
trailer
Ethernet
header
IP
c
T.Besançon
(version 10.0)
Notes de la page 56 :
Trame ICMP
Administration Unix
ARS 2007–2008 Tôme 3
56 / 707
2 Protocole IP
2.4 Adresse spéciale : adresse de loopback
Chapitre 2 • Protocole IP
§2.4 • Adresse spéciale : adresse de loopback
Interface virtuelle de loopback d’adresse IP « 127.0.0.1 »
Permet de faire des connexions réseau avec soi-même.
c
T.Besançon
(version 10.0)
Notes de la page 57 :
Administration Unix
ARS 2007–2008 Tôme 3
57 / 707
2 Protocole IP
2.5 Netmask
Chapitre 2 • Protocole IP
§2.5 • Netmask
Le problème : comment la station A construit-elle les paquets Ethernet
pour dialoguer avec la machine B, où que soit la station B ?
La difficulté : si B n’est pas sur le même réseau que A, il faut construire un
paquet avec pour adresse Ethernet de destination l’adresse Ethernet du
routeur et non pas avec l’adresse Ethernet de B.
La solution : A et B sont sur le même réseau physique si IP(A) et IP(B)
partagent une même propriété. En l’occurence si
IP(A) & netmask(A) = IP(B) & netmask(A)
c
T.Besançon
(version 10.0)
Notes de la page 58 :
Administration Unix
ARS 2007–2008 Tôme 3
58 / 707
2 Protocole IP
2.6 Adresse de broadcast
Chapitre 2 • Protocole IP
§2.6 • Adresse de broadcast
Chaque machine IP écoute un paquet IP avec l’adresse de broadcast pour
adresse de destination et répond peut-être suivant le type du paquet.
c
T.Besançon
(version 10.0)
Notes de la page 59 :
Administration Unix
ARS 2007–2008 Tôme 3
59 / 707
2 Protocole IP
2.7 Configuration d’adresse IP : ifconfig
Chapitre 2 • Protocole IP
§2.7 • Configuration d’adresse IP : ifconfig
(en anglais interface configuration)
La commande « ifconfig » sert à régler les paramètres des cartes réseau :
# ifconfig le0 inet 134.157.253.1
# ifconfig le0 netmask 0xffffff80
# ifconfig le0 broadcast 134.157.253.127
# ifconfig -a
lo0: flags=849<UP,LOOPBACK,RUNNING,MULTICAST> mtu 8232
inet 127.0.0.1 netmask ff000000
le0: flags=863<UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST> mtu 1500
inet 134.157.253.1 netmask ffffff80 broadcast 134.157.253.127
ether 8:0:20:83:12:4a
c
T.Besançon
(version 10.0)
Notes de la page 60 :
Administration Unix
ARS 2007–2008 Tôme 3
60 / 707
2 Protocole IP
2.7 Configuration d’adresse IP : ifconfig
Sur une machine Linux, les cartes réseau ont pour noms « eth0 »,
« eth1 », « eth2 », etc.
Sur une machine Linux, la paramètrage réseau de la carte « eth0 » se
trouve au niveau du fichier
« /etc/sysconfig/network-scripts/ifcfg-eth0 » (ainsi de suite
pour les autres interfaces) :
DEVICE=eth0
BOOTPROTO=static
BROADCAST=134.157.46.255
IPADDR=134.157.46.129
NETMASK=255.255.255.128
NETWORK=134.157.46.128
ONBOOT=yes
GATEWAY=134.157.46.254
TYPE=Ethernet
USERCTL=no
PEERDNS=no
La commande « dmesg » renvoie la liste des interfaces.
c
T.Besançon
(version 10.0)
Notes de la page 61 :
Administration Unix
ARS 2007–2008 Tôme 3
61 / 707
2 Protocole IP
2.7 Configuration d’adresse IP : ifconfig
Sur une machine SOLARIS, les cartes réseau ont des noms dépendant du
type de carte. Par exemple « le0 », « eri0 », « qfe0 » + « qfe1 » +
« qfe2 » + « qfe3 » (carte quad port 10/100), etc.
Sur une machine SOLARIS, la paramètrage réseau de la carte XYZ se
trouve au niveau du fichier /etc/hostname.XYZ :
-rw-r--r--
1 root root
19 Dec
4 01:35 /etc/hostname.eri0
qui contient le hostname associé à la carte : hostname → adresse réseau
via « /etc/host »
Broadcast, netmask déduits
La commande « dmesg » renvoie la liste des interfaces.
c
T.Besançon
(version 10.0)
Notes de la page 62 :
Administration Unix
ARS 2007–2008 Tôme 3
62 / 707
2 Protocole IP
2.8 Configuration d’adresses IP virtuelles : ifconfig
Chapitre 2 • Protocole IP
§2.8 • Configuration d’adresses IP virtuelles : ifconfig
Sur une machine Linux, si la carte réseau s’appelle par exemple « eth0 »,
alors les adresses virtuelles utiliseront les interfaces réseau virtuelles de
noms « eth0:0 », « eth0:1 », « eth0:2 », etc.
Sur une machine Linux, la paramètrage réseau de l’adresse virtuelle
« eth0:0 » se trouve au niveau du fichier
« /etc/sysconfig/network-scripts/ifcfg-eth0:0 » (ainsi de suite
pour les autres interfaces) :
DEVICE=eth0:0
BOOTPROTO=static
BROADCAST=134.157.46.255
IPADDR=134.157.46.130
NETMASK=255.255.255.128
NETWORK=134.157.46.128
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
PEERDNS=no
c
T.Besançon
(version 10.0)
Notes de la page 63 :
Administration Unix
ARS 2007–2008 Tôme 3
63 / 707
2 Protocole IP
2.8 Configuration d’adresses IP virtuelles : ifconfig
Sur une machine SOLARIS, si la carte réseau s’appelle par exemple
« eri0 », alors les adresses virtuelles utiliseront les interfaces réseau
virtuelles de noms « eri0:1 », « eri0:2 », « eri0:3 », etc.
Sur une machine SOLARIS, la paramètrage réseau d’une interface
virtuelle « eri0:1 » se trouvera donc au niveau du fichier
« /etc/hostname.eri0:1 » :
-rw-r--r--
1 root root
19 Dec
4 01:35 /etc/hostname.eri0:1
qui contient le hostname associé à l’interface virtuelle :
hostname → adresse réseau via « /etc/host »
Broadcast, netmask déduits
Manuellement « ifconfig eri0 addif 192.168.0.1/prefix up »
c
T.Besançon
(version 10.0)
Notes de la page 64 :
Administration Unix
ARS 2007–2008 Tôme 3
64 / 707
2 Protocole IP
2.9 (Windows : : ipconfig.exe)
Chapitre 2 • Protocole IP
§2.9 • (Windows : : ipconfig.exe)
La commande « ipconfig.exe » permet de connaitre en mode ligne de
commande la configuration réseau des interfaces.
A completer...
c
T.Besançon
(version 10.0)
Notes de la page 65 :
Administration Unix
ARS 2007–2008 Tôme 3
65 / 707
2 Protocole IP
2.10 (Windows 98 : : winipcfg.exe)
Chapitre 2 • Protocole IP
§2.10 • (Windows 98 : : winipcfg.exe)
La commande « winipcfg.exe » permet de connaitre en mode graphique
la configuration réseau des interfaces.
A completer...
c
T.Besançon
(version 10.0)
Notes de la page 66 :
Administration Unix
ARS 2007–2008 Tôme 3
66 / 707
2 Protocole IP
2.11 (Windows : : netsh.exe)
Chapitre 2 • Protocole IP
§2.11 • (Windows : : netsh.exe)
La commande « netsh » permet de configurer en mode ligne de
commande beaucoup d’aspects réseau.
A completer...
c
T.Besançon
(version 10.0)
Notes de la page 67 :
Administration Unix
ARS 2007–2008 Tôme 3
67 / 707
2 Protocole IP
2.12 Adresses privées : RFC 1918
Chapitre 2 • Protocole IP
§2.12 • Adresses privées : RFC 1918
RFC 1918
Adresses privées :
« 10.0.0.0/8 »
« 172.16.0.0/12 »
« 192.168.0.0/16 »
Adresses utilisables sur des réseaux sans interconnexion avec Internet.
c
T.Besançon
(version 10.0)
Notes de la page 68 :
Administration Unix
ARS 2007–2008 Tôme 3
68 / 707
2 Protocole IP
2.13 Connexions IP
Chapitre 2 • Protocole IP
§2.13 • Connexions IP
Rappel (voir cours réseaux) :
Une connexion IP est constituée des éléments suivants :
une adresse IP source
un numéro de port source sur la machine de départ
une adresse IP de destination
un numéro de port sur la machine de destination
protocole TCP ou UDP
c
T.Besançon
(version 10.0)
Notes de la page 69 :
Administration Unix
ARS 2007–2008 Tôme 3
69 / 707
2 Protocole IP
2.13 Connexions IP
En pratique il y a 3 catégories de port :
Les Well Known Ports de 0 à 1023
Les Registered Ports de 1024 à 49151
Les Dynamic and/or Private Ports de 49152 à 65535
Attention :
Sur UNIX, la fonction C obtenant un port source < 1024 ne
fonctionne que pour l’UID 0.
Sur Windows, la fonction C obtenant un port source < 1024
fonctionne quel que soit l’UID
c
T.Besançon
(version 10.0)
Notes de la page 70 :
Administration Unix
ARS 2007–2008 Tôme 3
70 / 707
2 Protocole IP
2.14 Fichier /etc/services
Chapitre 2 • Protocole IP
§2.14 • Fichier /etc/services
Le fichier « /etc/services » mentionne des triplets (numéro de port,
protocole, nom du service).
On peut obtenir un triplet officiellement pour un programme à soi auprès
de l’IANA « http://www.iana.org/assignments/port-numbers »
Le fichier « /etc/services » sert à convertir un port numérique en un
nom symbolique plus parlant. Voir les fonctions C « getservbyname() »,
« getservbyport() », « getservent() ».
ATTENTION : Le fichier « /etc/services »
n’indique pas les services réseau activés sur la
machine.
c
T.Besançon
(version 10.0)
Notes de la page 71 :
Administration Unix
ARS 2007–2008 Tôme 3
71 / 707
2 Protocole IP
2.14 Fichier /etc/services
Extrait d’un fichier « /etc/services » :
...
chargen
chargen
ftp-data
ftp-data
ftp
ftp
ssh
ssh
telnet
telnet
smtp
smtp
...
19/tcp
19/udp
20/tcp
20/udp
21/tcp
21/udp
22/tcp
22/udp
23/tcp
23/udp
25/tcp
25/udp
c
T.Besançon
(version 10.0)
Notes de la page 72 :
ttytst source
#Character Generator
ttytst source
#Character Generator
#File Transfer [Default Data]
#File Transfer [Default Data]
#File Transfer [Control]
#File Transfer [Control]
#Secure Shell Login
#Secure Shell Login
mail
mail
#Simple Mail Transfer
#Simple Mail Transfer
Administration Unix
ARS 2007–2008 Tôme 3
72 / 707
2 Protocole IP
2.15 Liste des ports réseau actifs : netstat -a, netstat -an
Chapitre 2 • Protocole IP
§2.15 • Liste des ports réseau actifs : netstat -a, netstat -an
La commande « netstat -a » renvoie la liste des connexions réseau
établies ou en attente d’établissement de connexion. Les noms affichés
proviennent de « /etc/services » :
% netstat -a
Active Internet connections (including servers)
Proto Recv-Q Send-Q Local Address
Foreign Address
tcp4
0
0 *.ssh
*.*
tcp46
0
0 *.ssh
*.*
udp4
0
0 *.syslog
*.*
udp6
0
0 *.syslog
*.*
udp4
0
0 *.bootpc
*.*
Active UNIX domain sockets
...
c
T.Besançon
(version 10.0)
Notes de la page 73 :
Administration Unix
(state)
LISTEN
LISTEN
ARS 2007–2008 Tôme 3
73 / 707
2 Protocole IP
2.15 Liste des ports réseau actifs : netstat -a, netstat -an
La commande « netstat -an » renvoie la liste des connexions réseau
établies ou en attente d’établissement de connexion, sans les traduire en
noms via « /etc/services ». Ils sont affichés sous forme numérique :
% netstat -an
Active Internet connections (including servers)
Proto Recv-Q Send-Q Local Address
Foreign Address
tcp4
0
0 *.22
*.*
tcp46
0
0 *.22
*.*
udp4
0
0 *.514
*.*
udp6
0
0 *.514
*.*
udp4
0
0 *.68
*.*
Active UNIX domain sockets
...
c
T.Besançon
(version 10.0)
Notes de la page 74 :
Administration Unix
(state)
LISTEN
LISTEN
ARS 2007–2008 Tôme 3
74 / 707
2 Protocole IP
2.16 (Windows : : Liste des ports réseau actifs : netstat.exe)
Chapitre 2 • Protocole IP
§2.16 • (Windows : : Liste des ports réseau actifs : netstat.exe)
Même principe sur UNIX :
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\Documents and Settings\ars>netstat -an | more
Active Connections
Proto
TCP
TCP
TCP
TCP
TCP
TCP
TCP
TCP
TCP
TCP
UDP
UDP
...
Local Address
0.0.0.0:25
0.0.0.0:80
0.0.0.0:135
0.0.0.0:443
0.0.0.0:445
0.0.0.0:1025
127.0.0.1:1027
192.168.1.1:139
192.168.2.1:139
192.168.8.1:139
0.0.0.0:445
0.0.0.0:500
c
T.Besançon
(version 10.0)
Notes de la page 75 :
Foreign Address
0.0.0.0:0
0.0.0.0:0
0.0.0.0:0
0.0.0.0:0
0.0.0.0:0
0.0.0.0:0
0.0.0.0:0
0.0.0.0:0
0.0.0.0:0
0.0.0.0:0
*:*
*:*
Administration Unix
State
LISTENING
LISTENING
LISTENING
LISTENING
LISTENING
LISTENING
LISTENING
LISTENING
LISTENING
LISTENING
ARS 2007–2008 Tôme 3
75 / 707
2 Protocole IP
2.17 Liste des connexions réseau : lsof
Chapitre 2 • Protocole IP
§2.17 • Liste des connexions réseau : lsof
(en anglais List of open files)
ftp://vic.cc.purdue.edu/pub/tools/unix/lsof/
« lsof » permet de connaître les filedescriptors ouverts sur une machine
UNIX. Cela comprend les connexions réseau.
Par exemple, pour voir quels processus utilisent la partition « /var/run » :
% lsof /var/run
COMMAND
PID
USER
lpd
410 daemon
dhcpd
12548
root
c
T.Besançon
(version 10.0)
Notes de la page 76 :
FD
6u
6w
TYPE DEVICE SIZE/OFF
NODE NAME
VREG
0,1
4 2193737 /var/run (swap)
VREG
0,1
469 1571881 /var/run (swap)
Administration Unix
ARS 2007–2008 Tôme 3
76 / 707
2 Protocole IP
2.17 Liste des connexions réseau : lsof
Par exemple pour voir qui utilise une certaine connexion TCP :
% lsof -i tcp:32771
COMMAND PID USER
FD
inetd
320 root
18u
TYPE
DEVICE SIZE/OFF NODE NAME
IPv4 0x3000200f350
0t0 TCP *:32771 (LISTEN)
Par exemple pour voir qui utilise une certaine connexion UDP :
% lsof -i [email protected]:3853
COMMAND PID USER
FD
TYPE
DEVICE SIZE/OFF NODE NAME
ss_logd 232 root
3u IPv4 0x30001d961c0
0t0 UDP localhost:3853 (Idl
(format « [protocol][@hostname|hostaddr][:service|port] »)
c
T.Besançon
(version 10.0)
Notes de la page 77 :
Administration Unix
ARS 2007–2008 Tôme 3
77 / 707
2 Protocole IP
2.18 Commande de connexion : telnet
Chapitre 2 • Protocole IP
§2.18 • Commande de connexion : telnet
Syntaxe : telnet host
Exemples d’utilisation :
connexion à une machine UNIX
connexion à une imprimante
connexion à un équipement réseau
etc.
A chaque fois que ce sera possible, préférer une connexion shell
distante en utilisant SSH.
c
T.Besançon
(version 10.0)
Notes de la page 78 :
Administration Unix
ARS 2007–2008 Tôme 3
78 / 707
2 Protocole IP
2.18 Commande de connexion : telnet
Autre syntaxe importante : telnet host port
Exemples d’utilisation :
connexion manuelle à un serveur POP
connexion manuelle à un serveur IMAP
connexion manuelle à un serveur HTTP
etc.
Non remplaçable par SSH.
c
T.Besançon
(version 10.0)
Notes de la page 79 :
Administration Unix
ARS 2007–2008 Tôme 3
79 / 707
2 Protocole IP
2.18 Commande de connexion : telnet
Exemple : connexion à une machine UNIX
% telnet server.example.com
Trying 1.2.3.4...
Connected to server.example.com.
Escape character is ’^]’.
SunOS 5.7
login: besancon
Password: XXXXXXXX
Last login: Sun Oct 12 15:18:22 from ppp-3
Sun Microsystems Inc.
SunOS 5.5
Generic November 1995
server%
c
T.Besançon
(version 10.0)
Notes de la page 80 :
Administration Unix
ARS 2007–2008 Tôme 3
80 / 707
2 Protocole IP
2.18 Commande de connexion : telnet
Exemple : connexion à une imprimante
% telnet hp4100.example.com
Trying 1.2.3.4...
Connected to hp4100.example.com.
Escape character is ’^]’.
HP JetDirect
Password: XXXXXXXX
You are logged in
Please type "?" for HELP, or "/" for current settings
> /
===JetDirect Telnet Configuration===
Firmware Rev.
: G.08.49
MAC Address
: 00:30:c1:0a:45:b2
Config By
: USER SPECIFIED
c
T.Besançon
(version 10.0)
Notes de la page 81 :
Administration Unix
ARS 2007–2008 Tôme 3
81 / 707
2 Protocole IP
IP Address
:
Subnet Mask
:
Default Gateway :
Syslog Server
:
Idle Timeout
:
Set Cmnty Name :
Host Name
:
Default Get Cmnty
DHCP Config
:
Passwd
:
IPX/SPX
:
DLC/LLC
:
Ethertalk
:
Banner page
:
2.18 Commande de connexion : telnet
1.2.3.4
255.255.255.0
1.2.3.254
Not Specified
90 Seconds
Not Specified
Not Specified
: Enabled
Disabled
Enabled
Disabled
Disabled
Enabled
Disabled
> exit
EXITING WITHOUT SAVING ANY ENTRIES
> Connection closed by foreign host.
c
T.Besançon
(version 10.0)
Notes de la page 82 :
Administration Unix
ARS 2007–2008 Tôme 3
82 / 707
2 Protocole IP
2.18 Commande de connexion : telnet
Exemple : interruption d’une connexion par Ctrl-] (Control crochet
fermant)
% telnet obsolete.example.com
Trying 1.2.3.4...
Connected to obsolete.example.com.
Escape character is ’^]’.
telnet login: besancon
Password: XXXXXXXX
Login incorrect
login:
^] <-- taper Ctrl-]
telnet> quit
Connection closed.
c
T.Besançon
(version 10.0)
Notes de la page 83 :
Administration Unix
ARS 2007–2008 Tôme 3
83 / 707
2 Protocole IP
2.18 Commande de connexion : telnet
Exemple : tentative de connexion à une machine sans telnet
% telnet notelnet.example.com
Trying 1.2.3.4...
telnet: connect to address 1.2.3.4: Connection refused
telnet: Unable to connect to remote host
c
T.Besançon
(version 10.0)
Notes de la page 84 :
Administration Unix
ARS 2007–2008 Tôme 3
84 / 707
2 Protocole IP
2.18 Commande de connexion : telnet
Humour
Faire « telnet towel.blinkenlights.nl »
c
T.Besançon
(version 10.0)
Notes de la page 85 :
Administration Unix
ARS 2007–2008 Tôme 3
85 / 707
2 Protocole IP
2.19 (Windows : : Commande de connexion : telnet.exe)
Chapitre 2 • Protocole IP
§2.19 • (Windows : : Commande de connexion : telnet.exe)
Programme « telnet.exe » :
c
T.Besançon
(version 10.0)
Notes de la page 86 :
Administration Unix
ARS 2007–2008 Tôme 3
86 / 707
3 Routage IP par défaut
Chapitre 3
Routage IP par défaut
c
T.Besançon
(version 10.0)
Notes de la page 87 :
Administration Unix
ARS 2007–2008 Tôme 3
87 / 707
3 Routage IP par défaut
3.1 Notion de routage
Chapitre 3 • Routage IP par défaut
§3.1 • Notion de routage
Routage : acheminement des paquets IP à leur destination selon un
chemin déterminé par la destination
Cas le plus simple : routage par défaut : tous les paquets IP sont
acheminés vers un routeur qui les transmet plus loin.
Les autres cas : protocoles spécialisés : ROUTED, BGP, OSPF, etc. (voir
cours réseau)
Un cas très spécial : routage selon l’adresse IP source : policy based
routing
Attention : souvent un hack au niveau de l’OS !
c
T.Besançon
(version 10.0)
Notes de la page 88 :
Administration Unix
ARS 2007–2008 Tôme 3
88 / 707
3 Routage IP par défaut
3.2 Relation entre routage IP et paquets ethernet
Chapitre 3 • Routage IP par défaut
§3.2 • Relation entre routage IP et paquets ethernet
E
T
H
ETH = 11:22:33:44:55:66
IP = 1.1.1.1
machine A
ETH src = 11:22:33:44:55:66
ETH dest = AA:BB:CC:11:11:11
I
P
IP src = 1.1.1.1
IP dest = 2.2.2.2
IP data
ETH = AA:BB:CC:11:11:11
IP = 1.1.1.254
I
P
IP src = 1.1.1.1
IP dest = 2.2.2.2
ROUTEUR
IP data
ETH = AA:BB:CC:22:22:22
IP = 2.2.2..254
E
T
H
machine B
ETH = 77:88:99:00:AA:BB
IP = 2.2.2.2
c
T.Besançon
(version 10.0)
Notes de la page 89 :
Administration Unix
ETH src = AA:BB:CC:22:22:22
ETH dest = 77:88:99:00:AA:BB
I
P
IP src = 1.1.1.1
IP dest = 2.2.2.2
IP data
ARS 2007–2008 Tôme 3
89 / 707
3 Routage IP par défaut
3.3 Configuration du routage LINUX : route
Chapitre 3 • Routage IP par défaut
§3.3 • Configuration du routage LINUX : route
La commande « route » sert à configurer le routage.
# route add default gw 134.157.253.126
gw = gateway = routeur
Sur une machine LINUX, se reporter au fichier
« /etc/sysconfig/network » :
NETWORKING=yes
FORWARD_IPV4=false
HOSTNAME=pcars5.formation.jussieu.fr
DOMAINNAME=formation.jussieu.fr
NISDOMAIN=real.world
GATEWAY=134.157.253.126
GATEWAYDEV=eth0
c
T.Besançon
(version 10.0)
Notes de la page 90 :
Administration Unix
ARS 2007–2008 Tôme 3
90 / 707
3 Routage IP par défaut
3.4 Configuration du routage SOLARIS : route
Chapitre 3 • Routage IP par défaut
§3.4 • Configuration du routage SOLARIS : route
La commande « route » sert à configurer le routage.
# route add default 134.157.253.126
Sur une machine SOLARIS, se reporter au fichier « /etc/defaultrouter » :
134.157.253.126
c
T.Besançon
(version 10.0)
Notes de la page 91 :
Administration Unix
ARS 2007–2008 Tôme 3
91 / 707
3 Routage IP par défaut
3.5 (Windows : : route.exe)
Chapitre 3 • Routage IP par défaut
§3.5 • (Windows : : route.exe)
A completer...
c
T.Besançon
(version 10.0)
Notes de la page 92 :
Administration Unix
ARS 2007–2008 Tôme 3
92 / 707
3 Routage IP par défaut
3.6 Routage : netstat
Chapitre 3 • Routage IP par défaut
§3.6 • Routage : netstat
La commande « netstat -r » renvoie la table de routage d’une machine
UNIX :
% netstat -rn
Routing Table:
Destination
-------------------255.255.255.255
134.157.253.0
224.0.0.0
default
127.0.0.1
Gateway
Flags Ref
Use
Interface
-------------------- ----- ----- ------ --------134.157.253.1
UGH
0
0
134.157.253.1
U
3 227555 le0
134.157.253.1
U
3
0 le0
134.157.253.126
UG
0 230176
127.0.0.1
UH
0 28650 lo0
c
T.Besançon
(version 10.0)
Notes de la page 93 :
Administration Unix
ARS 2007–2008 Tôme 3
93 / 707
3 Routage IP par défaut
3.7 (Windows : : netstat.exe)
Chapitre 3 • Routage IP par défaut
§3.7 • (Windows : : netstat.exe)
Même principe sur UNIX :
C:\Documents and Settings\ars>netstat -rn
Route Table
===========================================================================
Interface List
0x1 ........................... MS TCP Loopback interface
0x2 ...00 50 56 c0 00 02 ...... VMware Virtual Ethernet Adapter for VMnet2
0x3 ...00 50 56 c0 00 08 ...... VMware Virtual Ethernet Adapter for VMnet8
0x4 ...00 50 56 c0 00 01 ...... VMware Virtual Ethernet Adapter for VMnet1
0x5 ...00 90 4b 64 10 88 ...... Dell TrueMobile 1400 Dual Band WLAN Mini-PCI Card - P
0x6 ...00 0d 56 ad cc be ...... Broadcom 440x 10/100 Integrated Controller - Packet S
===========================================================================
===========================================================================
Active Routes:
Network Destination
Netmask
Gateway
Interface Metric
127.0.0.0
255.0.0.0
127.0.0.1
127.0.0.1
1
192.168.1.0
255.255.255.0
192.168.1.1
192.168.1.1
20
192.168.1.1 255.255.255.255
127.0.0.1
127.0.0.1
20
192.168.1.255 255.255.255.255
192.168.1.1
192.168.1.1
20
192.168.2.0
255.255.255.0
192.168.2.1
192.168.2.1
20
192.168.2.1 255.255.255.255
127.0.0.1
127.0.0.1
20
c
T.Besançon
(version 10.0)
Notes de la page 94 :
Administration Unix
ARS 2007–2008 Tôme 3
94 / 707
3 Routage IP par défaut
3.7 (Windows : : netstat.exe)
192.168.2.255 255.255.255.255
192.168.2.1
192.168.2.1
20
192.168.8.0
255.255.255.0
192.168.8.1
192.168.8.1
20
192.168.8.1 255.255.255.255
127.0.0.1
127.0.0.1
20
192.168.8.255 255.255.255.255
192.168.8.1
192.168.8.1
20
224.0.0.0
240.0.0.0
192.168.1.1
192.168.1.1
20
224.0.0.0
240.0.0.0
192.168.2.1
192.168.2.1
20
224.0.0.0
240.0.0.0
192.168.8.1
192.168.8.1
20
255.255.255.255 255.255.255.255
192.168.1.1
192.168.1.1
1
255.255.255.255 255.255.255.255
192.168.2.1
192.168.2.1
1
255.255.255.255 255.255.255.255
192.168.8.1
192.168.8.1
1
255.255.255.255 255.255.255.255
192.168.8.1
6
1
255.255.255.255 255.255.255.255
192.168.8.1
5
1
===========================================================================
Persistent Routes:
None
c
T.Besançon
(version 10.0)
Notes de la page 95 :
Administration Unix
ARS 2007–2008 Tôme 3
95 / 707
3 Routage IP par défaut
3.8 Test de connectivité : ping
Chapitre 3 • Routage IP par défaut
§3.8 • Test de connectivité : ping
La commande « ping » teste si une machine répond au niveau réseau.
% ping localhost
localhost is alive
On peut parfois pinger l’adresse de broadcast :
% /usr/sbin/ping -s 134.157.253.127 1
PING 134.157.253.127: 1 data bytes
9 bytes from sunars1.formation.jussieu.fr (134.157.253.1): icmp_seq=0.
9 bytes from sunars2.formation.jussieu.fr (134.157.253.2): icmp_seq=0.
9 bytes from sunars4.formation.jussieu.fr (134.157.253.4): icmp_seq=0.
9 bytes from sunars3.formation.jussieu.fr (134.157.253.3): icmp_seq=0.
9 bytes from r-formation.formation.jussieu.fr (134.157.253.126): icmp_seq=0.
9 bytes from sunars1.formation.jussieu.fr (134.157.253.1): icmp_seq=1.
9 bytes from sunars2.formation.jussieu.fr (134.157.253.2): icmp_seq=1.
9 bytes from sunars4.formation.jussieu.fr (134.157.253.4): icmp_seq=1.
9 bytes from sunars3.formation.jussieu.fr (134.157.253.3): icmp_seq=1.
9 bytes from r-formation.formation.jussieu.fr (134.157.253.126): icmp_seq=1.
^C
----134.157.253.127 PING Statistics---2 packets transmitted, 10 packets received, 5.00 times amplification
c
T.Besançon
(version 10.0)
Notes de la page 96 :
Administration Unix
ARS 2007–2008 Tôme 3
96 / 707
3 Routage IP par défaut
3.9 Test de connectivité : fping, hping
Chapitre 3 • Routage IP par défaut
§3.9 • Test de connectivité : fping, hping
Autres utilitaires parents de PING :
FPING : http://fping.sourceforge.net
HPING : http://www.hping.org
c
T.Besançon
(version 10.0)
Notes de la page 97 :
Administration Unix
ARS 2007–2008 Tôme 3
97 / 707
3 Routage IP par défaut
3.10 (Windows : : ping.exe)
Chapitre 3 • Routage IP par défaut
§3.10 • (Windows : : ping.exe)
Même principe sur UNIX :
C:\Documents and Settings\ars>ping 127.0.0.1
Pinging 127.0.0.1 with 32 bytes of data:
Reply
Reply
Reply
Reply
from
from
from
from
127.0.0.1:
127.0.0.1:
127.0.0.1:
127.0.0.1:
bytes=32
bytes=32
bytes=32
bytes=32
time<1ms
time<1ms
time<1ms
time<1ms
TTL=128
TTL=128
TTL=128
TTL=128
Ping statistics for 127.0.0.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
c
T.Besançon
(version 10.0)
Notes de la page 98 :
Administration Unix
ARS 2007–2008 Tôme 3
98 / 707
3 Routage IP par défaut
3.11 Test de connectivité : traceroute
Chapitre 3 • Routage IP par défaut
§3.11 • Test de connectivité : traceroute
La commande « traceroute » permet de tester si une machine est
joignable. Elle renvoie les intermédiaires réseau qui route notre
acheminement vers la machine distante.
Syntaxe : « traceroute machine »
% traceroute ftp.lip6.fr
traceroute to nephtys.lip6.fr (195.83.118.1), 30 hops max, 40 byte packets
1 yacht (129.199.96.254) 0 ms 0 ms 0 ms
2 renater (129.199.1.10) 2 ms 1 ms 1 ms
3 195.221.127.61 (195.221.127.61) 3 ms 1 ms 1 ms
4 195.221.126.1 (195.221.126.1) 2 ms 1 ms 1 ms
5 195.221.126.78 (195.221.126.78) 2 ms 1 ms 1 ms
6 jussieu.rap.prd.fr (195.221.126.33) 2 ms 2 ms 2 ms
7 nephtys.lip6.fr (195.83.118.1) 2 ms 2 ms 2 ms
Le nombre d’intermédiaires n’est pas proportionnel à l’éloignement
géographique de la machine destination.
c
T.Besançon
(version 10.0)
Notes de la page 99 :
Administration Unix
ARS 2007–2008 Tôme 3
99 / 707
3 Routage IP par défaut
3.12 (Windows : : tracert.exe)
Chapitre 3 • Routage IP par défaut
§3.12 • (Windows : : tracert.exe)
A completer...
c
T.Besançon
(version 10.0)
Notes de la page 100 :
Administration Unix
ARS 2007–2008 Tôme 3
100 / 707
4 Domain Name Server (DNS)
Chapitre 4
Domain Name Server (DNS)
c
T.Besançon
(version 10.0)
Notes de la page 101 :
Administration Unix
ARS 2007–2008 Tôme 3
101 / 707
4 Domain Name Server (DNS)
4.1 Principes du DNS
Chapitre 4 • Domain Name Server (DNS)
§4.1 • Principes du DNS
Impossibilité pratique de maintenir à jour les fichiers « /etc/hosts ».
⇒ remplacement par un mécanisme d’annuaire réparti dont chacun gère
sa entrée propre : le Domain Name Server
Particularités de la base de données du DNS :
répartie
petite
avec une faible fréquence de changements des données
hiérarchisée
accès en consultation uniquement ; pas de requête de modification
c
T.Besançon
(version 10.0)
Notes de la page 102 :
Administration Unix
ARS 2007–2008 Tôme 3
102 / 707
4 Domain Name Server (DNS)
4.2 Zone DNS
Chapitre 4 • Domain Name Server (DNS)
§4.2 • Zone DNS
zone DNS : reflet de l’aspect réparti et hiérarchisé du DNS
partie contigüe de l’arbre
une zone parente délègue une zone fille à un ou plusieurs serveurs
d’informations (nameservers) sur la zone fille
.
com
net
fr
lycos
jussieu
formation
216-pc01
c
T.Besançon
(version 10.0)
Notes de la page 103 :
Administration Unix
aero
www
216-pc02
ARS 2007–2008 Tôme 3
103 / 707
4 Domain Name Server (DNS)
4.3 Requête d’interrogation du DNS
Chapitre 4 • Domain Name Server (DNS)
§4.3 • Requête d’interrogation du DNS
Le DNS est bâti selon un modèle client – serveur
Cf logiciel DNSTRACER sur http://www.mavetju.org
c
T.Besançon
(version 10.0)
Notes de la page 104 :
Administration Unix
ARS 2007–2008 Tôme 3
104 / 707
4 Domain Name Server (DNS)
4.3 Requête d’interrogation du DNS
Le DNS utilise des root nameservers :
Pour assurer un service fiable, une zone est servie par un nameserver
primaire et plusieurs nameservers secondaires de secours qui se
synchronisent entre eux.
c
T.Besançon
(version 10.0)
Notes de la page 105 :
Administration Unix
ARS 2007–2008 Tôme 3
105 / 707
4 Domain Name Server (DNS)
4.3 Requête d’interrogation du DNS
Principe de mémorisation des informations passées recueillies pour
accélérer les réponses aux requêtes.
L’information a une date de péremption (TTL = Time To Live).
Le serveur qui mémorise un record DNS n’a pas autorité dessus.
Chaque enregistrement de la base de données a :
une classe ; la plus courante : IN (Internet)
un type : A, PTR, NS, SOA, MX, CNAME, . . .
et est donc de la forme :
(classe, type, clé, valeur, TTL)
Une requête ressemble alors à :
(classe,
(classe,
type,
*,
c
T.Besançon
(version 10.0)
Notes de la page 106 :
clé,
clé,
?,
?,
?)
?)
Administration Unix
ARS 2007–2008 Tôme 3
106 / 707
4 Domain Name Server (DNS)
4.4 Implémentation : BIND, named
Chapitre 4 • Domain Name Server (DNS)
§4.4 • Implémentation : BIND, named
URL : http://www.isc.org/products/BIND/
Démon « named »
Fichier de configuration « /etc/named.conf » (en général).
Directory « /etc/namedb » stockant les fichiers de zone (en général).
c
T.Besançon
(version 10.0)
Notes de la page 107 :
Administration Unix
ARS 2007–2008 Tôme 3
107 / 707
4 Domain Name Server (DNS)
4.4 Implémentation : BIND, named
Exemple 1 :
Pour connaitre la version de « named » :
% dig ns.example.com version.bind chaos txt
; <<>> DiG 8.2 <<>> ns.example.com version.bind chaos txt
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUERY SECTION:
;;
version.bind, type = TXT, class = CHAOS
;; ANSWER SECTION:
version.bind.
;;
;;
;;
;;
0S CHAOS TXT
"bind 9"
Total query time: 3 msec
FROM: client.example.com to SERVER: default -- 192.168.1.1
WHEN: Mon Sep 30 00:20:19 2002
MSG SIZE sent: 30 rcvd: 49
c
T.Besançon
(version 10.0)
Notes de la page 108 :
Administration Unix
ARS 2007–2008 Tôme 3
108 / 707
4 Domain Name Server (DNS)
4.4 Implémentation : BIND, named
Exemple 2 :
Pour connaitre la version de « named » :
% dig dmi.ens.fr version.bind chaos txt
; <<>> DiG 9.2.1 <<>> dmi.ens.fr version.bind chaos txt
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63986
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 5, ADDITIONAL: 4
;; QUESTION SECTION:
;dmi.ens.fr.
IN
A
;; ANSWER SECTION:
dmi.ens.fr.
172800
IN
A
129.199.96.11
;; AUTHORITY SECTION:
ens.fr.
ens.fr.
ens.fr.
ens.fr.
ens.fr.
172800
172800
172800
172800
172800
IN
IN
IN
IN
IN
NS
NS
NS
NS
NS
oseille.ens.fr.
dmi.ens.fr.
ext.lri.fr.
ns2.nic.fr.
clipper.ens.fr.
c
T.Besançon
(version 10.0)
Notes de la page 109 :
Administration Unix
ARS 2007–2008 Tôme 3
109 / 707
4 Domain Name Server (DNS)
;; ADDITIONAL SECTION:
ext.lri.fr.
ns2.nic.fr.
clipper.ens.fr.
oseille.ens.fr.
;;
;;
;;
;;
290218
285943
172800
172800
IN
IN
IN
IN
4.4 Implémentation : BIND, named
A
A
A
A
129.175.15.4
192.93.0.4
129.199.129.1
129.199.98.16
Query time: 831 msec
SERVER: 127.0.0.1#53(127.0.0.1)
WHEN: Mon Sep 30 00:19:28 2002
MSG SIZE rcvd: 210
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48476
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;version.bind.
;; ANSWER SECTION:
version.bind.
;;
;;
;;
;;
0
CH
TXT
CH
TXT
"9.2.1"
Query time: 42 msec
SERVER: 127.0.0.1#53(127.0.0.1)
WHEN: Mon Sep 30 00:19:28 2002
MSG SIZE rcvd: 48
c
T.Besançon
(version 10.0)
Notes de la page 110 :
Administration Unix
ARS 2007–2008 Tôme 3
110 / 707
4 Domain Name Server (DNS)
4.5 F.root-servers.net (vieille version)
Chapitre 4 • Domain Name Server (DNS)
§4.5 • F.root-servers.net (vieille version)
OBSOLÈTE mais laissé pour se faire une idée
c
T.Besançon
(version 10.0)
Notes de la page 111 :
Administration Unix
ARS 2007–2008 Tôme 3
111 / 707
4 Domain Name Server (DNS)
4.5 F.root-servers.net (vieille version)
(cf http://www.isc.org/servicespublic/F-root-server.html)
The Internet Software Consortium is proud to operate one of 13 root DNS
servers as a public service to the Internet. The ISC has operated
« F.root-servers.net » for the IANA (http://www.iana.org/)
since 1993. F (http://f.root-servers.org) answers more than 272
million DNS queries per day, making it one of the busiest DNS servers in
the world. In fact, it is often the busiest root nameserver on the Internet.
F is a virtual server made up of multiple (currently two) HP AlphaServers,
donated to us by HP’s Western Research Laboratory
(http://www.research.digital.com/wrl/). Each server is a HP
ES40 AlphaServer with 4 500mhz CPUs and 8Gig of RAM, and runs ISC
BIND 8.3.2 as its DNS server.
c
T.Besançon
(version 10.0)
Notes de la page 112 :
Administration Unix
ARS 2007–2008 Tôme 3
112 / 707
4 Domain Name Server (DNS)
4.5 F.root-servers.net (vieille version)
The servers are hosted at PAIX.net, Inc. (http://www.paix.net/) in
Palo Alto, California and are connected to the Internet via fdx Fast
Ethernet connections which are provided by UUNET
(http://www.uu.net/), Teleglobe (http://www.teleglobe.com/),
and MFN (http://www.mfn.com/).
For more information on the root DNS system, see : BCP 40 (RFC2870) Operational guidelines for Root Name Servers
(http://www.isi.edu/in-notes/rfc2870.txt).
c
T.Besançon
(version 10.0)
Notes de la page 113 :
Administration Unix
ARS 2007–2008 Tôme 3
113 / 707
4 Domain Name Server (DNS)
4.6 F.root-servers.net (à jour)
Chapitre 4 • Domain Name Server (DNS)
§4.6 • F.root-servers.net (à jour)
(cf http://www.isc.org/ops/f-root)
2 nœuds globaux, plus de trente nœuds locaux répartis dans divers pays.
c
T.Besançon
(version 10.0)
Notes de la page 114 :
Administration Unix
ARS 2007–2008 Tôme 3
114 / 707
4 Domain Name Server (DNS)
4.7 Utilitaire rndc
Chapitre 4 • Domain Name Server (DNS)
§4.7 • Utilitaire rndc
Syntaxe : rndc [options] cmd
Il contrôle le fonctionnement de « named » à distance via TCP
(« rndc.conf » contient des clefs d’accès).
« status »
« dumpdb »
« reload »
« stats »
« trace/notrace »
« start »
« stop »
« halt »
« restart »
c
T.Besançon
(version 10.0)
Notes de la page 115 :
status de NAMED
dumpe la base et le cache dans
« /var/tmp/named_dump.db »
recharge les zones primaires et secondaires
dumpe les statistiques dans
« /var/tmp/named.stats »
gestion du niveau de trace dans
« /var/tmp/named.run »
démarre NAMED
arrête NAMED en sauvant les
mises à jour en cours
arrête NAMED froidement
arrête et redémarre NAMED
Administration Unix
ARS 2007–2008 Tôme 3
115 / 707
4 Domain Name Server (DNS)
4.8 Fichier /etc/resolv.conf
Chapitre 4 • Domain Name Server (DNS)
§4.8 • Fichier /etc/resolv.conf
Consultation des nameservers indiqués via le fichier
« /etc/resolv.conf »
Exemple de fichier « /etc/resolv.conf » :
domain formation.jussieu.fr
search formation.jussieu.fr jussieu.fr
nameserver 134.157.253.1
nameserver 134.157.0.129
Attention :
Au plus 3 lignes « nameserver ».
Tous les UNIX ne comprennent pas la directive « search ».
c
T.Besançon
(version 10.0)
Notes de la page 116 :
Administration Unix
ARS 2007–2008 Tôme 3
116 / 707
4 Domain Name Server (DNS)
4.9 Interrogation manuelle DNS : nslookup
Chapitre 4 • Domain Name Server (DNS)
§4.9 • Interrogation manuelle DNS : nslookup
Syntaxe : nslookup [options] à-résoudre
% nslookup www.playboy.com
Server: sunars1.formation.jussieu.fr
Address: 134.157.253.1
Non-authoritative answer:
Name:
www.playboy.com
Address: 206.251.29.10
La machine est dans le cache du DNS parce qu’elle a déjà été résolue dans
un passé récent.
Cet utilitaire tombe en désuétude.
c
T.Besançon
(version 10.0)
Notes de la page 117 :
Administration Unix
ARS 2007–2008 Tôme 3
117 / 707
4 Domain Name Server (DNS)
4.10 Interrogation manuelle DNS : dig
Chapitre 4 • Domain Name Server (DNS)
§4.10 • Interrogation manuelle DNS : dig
C’est le remplaçant de « nslookup ». Il est très low level.
Syntaxe : dig [options] à-résoudre
Quelques flags utilisés :
flag « QR » : Query
flag « AA » : Authoritative
Answer
flag « TC » : TCP
flag « RD » : Recursion Desired
flag « RA » : Recursion
Available
flag « AD » : Authentic Data
(DNSSEC)
c
T.Besançon
(version 10.0)
Notes de la page 118 :
flag « CD » : Checking Disabled
(DNSSEC)
1 1 1 1 1 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
ID
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|QR|
Opcode |AA|TC|RD|RA| Z|AD|CD|
RCODE
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
QDCOUNT
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
ANCOUNT
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
NSCOUNT
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
ARCOUNT
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
Administration Unix
ARS 2007–2008 Tôme 3
118 / 707
4 Domain Name Server (DNS)
4.10 Interrogation manuelle DNS : dig
Exemple 1 : récursivité jusqu’à la racine
% dig +trace www.formation.jussieu.fr
; <<>> DiG 9.2.1 <<>> +trace www.formation.jussieu.fr
;; global options: printcmd
. 3600000 IN NS K.ROOT-SERVERS.NET.
. 3600000 IN NS L.ROOT-SERVERS.NET.
. 3600000 IN NS M.ROOT-SERVERS.NET.
. 3600000 IN NS A.ROOT-SERVERS.NET.
. 3600000 IN NS B.ROOT-SERVERS.NET.
. 3600000 IN NS C.ROOT-SERVERS.NET.
. 3600000 IN NS D.ROOT-SERVERS.NET.
. 3600000 IN NS E.ROOT-SERVERS.NET.
. 3600000 IN NS F.ROOT-SERVERS.NET.
. 3600000 IN NS G.ROOT-SERVERS.NET.
. 3600000 IN NS H.ROOT-SERVERS.NET.
. 3600000 IN NS I.ROOT-SERVERS.NET.
. 3600000 IN NS J.ROOT-SERVERS.NET.
;; Received 244 bytes from 127.0.0.1#53(127.0.0.1) in 5 ms
fr.
fr.
fr.
fr.
172800
172800
172800
172800
IN
IN
IN
IN
NS
NS
NS
NS
DNS.CS.WISC.EDU.
NS1.NIC.fr.
NS3.NIC.fr.
DNS.INRIA.fr.
c
T.Besançon
(version 10.0)
Notes de la page 119 :
Administration Unix
ARS 2007–2008 Tôme 3
119 / 707
4 Domain Name Server (DNS)
4.10 Interrogation manuelle DNS : dig
fr. 172800 IN NS NS2.NIC.fr.
fr. 172800 IN NS DNS.PRINCETON.EDU.
fr. 172800 IN NS NS-EXT.VIX.COM.
fr. 172800 IN NS NS3.DOMAIN-REGISTRY.NL.
;; Received 373 bytes from 193.0.14.129#53(K.ROOT-SERVERS.NET) in 273 ms
jussieu.fr.
jussieu.fr.
jussieu.fr.
;; Received
345600 IN
345600 IN
345600 IN
166 bytes
NS shiva.jussieu.fr.
NS cendrillon.lptl.jussieu.fr.
NS soleil.uvsq.fr.
from 128.105.2.10#53(DNS.CS.WISC.EDU) in 337 ms
www.formation.jussieu.fr. 172800 IN CNAME serveur.formation.jussieu.fr.
serveur.formation.jussieu.fr. 172800 IN A 134.157.46.129
formation.jussieu.fr. 172800 IN NS cendrillon.lptl.jussieu.fr.
formation.jussieu.fr. 172800 IN NS shiva.jussieu.fr.
formation.jussieu.fr. 172800 IN NS soleil.uvsq.fr.
;; Received 204 bytes from 134.157.0.129#53(shiva.jussieu.fr) in 217 ms
On voit bien le mécanisme de consultations des différents nameservers.
c
T.Besançon
(version 10.0)
Notes de la page 120 :
Administration Unix
ARS 2007–2008 Tôme 3
120 / 707
4 Domain Name Server (DNS)
4.10 Interrogation manuelle DNS : dig
Exemple 2 : consultation à la nslookup
% dig www.formation.jussieu.fr
; <<>> DiG 9.2.1 <<>> www.formation.jussieu.fr
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62679
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 3, ADDITIONAL: 3
;; QUESTION SECTION:
;www.formation.jussieu.fr. IN A
;; ANSWER SECTION:
www.formation.jussieu.fr. 172790 IN CNAME serveur.formation.jussieu.fr.
serveur.formation.jussieu.fr. 172789 IN A 134.157.46.129
;; AUTHORITY SECTION:
formation.jussieu.fr. 172789 IN NS cendrillon.lptl.jussieu.fr.
formation.jussieu.fr. 172789 IN NS shiva.jussieu.fr.
formation.jussieu.fr. 172789 IN NS soleil.uvsq.fr.
c
T.Besançon
(version 10.0)
Notes de la page 121 :
Administration Unix
ARS 2007–2008 Tôme 3
121 / 707
4 Domain Name Server (DNS)
4.10 Interrogation manuelle DNS : dig
;; ADDITIONAL SECTION:
shiva.jussieu.fr. 74075 IN A 134.157.0.129
soleil.uvsq.fr. 222426 IN A 193.51.24.1
cendrillon.lptl.jussieu.fr. 172790 IN A 134.157.8.24
;;
;;
;;
;;
Query time: 5 msec
SERVER: 127.0.0.1#53(127.0.0.1)
WHEN: Thu Aug 29 00:22:06 2002
MSG SIZE rcvd: 204
c
T.Besançon
(version 10.0)
Notes de la page 122 :
Administration Unix
ARS 2007–2008 Tôme 3
122 / 707
4 Domain Name Server (DNS)
4.10 Interrogation manuelle DNS : dig
Exemple 3 : réponse en cas d’erreur
% dig cerise
; <<>> DiG 9.2.1 <<>> cerise
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 45146
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;cerise. IN A
;; AUTHORITY SECTION:
. 10800 IN SOA A.ROOT-SERVERS.NET. NSTLD.VERISIGN-GRS.COM. 2002082801 1800 900 604800
;;
;;
;;
;;
Query time: 206 msec
SERVER: 127.0.0.1#53(127.0.0.1)
WHEN: Thu Aug 29 00:22:13 2002
MSG SIZE rcvd: 98
c
T.Besançon
(version 10.0)
Notes de la page 123 :
Administration Unix
ARS 2007–2008 Tôme 3
123 / 707
4 Domain Name Server (DNS)
4.10 Interrogation manuelle DNS : dig
Exemple 4 : précision du type du record
Première fois :
% dig www.crlv.org SOA
; <<>> DiG 8.2 <<>> www.crlv.org SOA
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUERY SECTION:
;;
www.crlv.org, type = SOA, class = IN
;; AUTHORITY SECTION:
crlv.org.
;;
;;
;;
;;
2H IN SOA
ns.easynet.fr. hostmaster.easynet.fr. (
2001020101
; serial
1H
; refresh
30M
; retry
4W
; expiry
2H )
; minimum
Total query time: 14 msec
FROM: apollinaire.paris4.sorbonne.fr to SERVER: default -- 195.220.107.3
WHEN: Thu Aug 29 15:06:22 2002
MSG SIZE sent: 30 rcvd: 90
c
T.Besançon
(version 10.0)
Notes de la page 124 :
Administration Unix
ARS 2007–2008 Tôme 3
124 / 707
4 Domain Name Server (DNS)
4.10 Interrogation manuelle DNS : dig
Deuxième fois :
% dig www.crlv.org SOA
; <<>> DiG 8.2 <<>> www.crlv.org SOA
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUERY SECTION:
;;
www.crlv.org, type = SOA, class = IN
;; AUTHORITY SECTION:
crlv.org.
;;
;;
;;
;;
1h55m43s IN SOA
ns.easynet.fr.
2001020101
1H
30M
4W
2H )
hostmaster.easynet.fr. (
; serial
; refresh
; retry
; expiry
; minimum
Total query time: 13 msec
FROM: apollinaire.paris4.sorbonne.fr to SERVER: default -- 195.220.107.3
WHEN: Thu Aug 29 15:10:39 2002
MSG SIZE sent: 30 rcvd: 98
c
T.Besançon
(version 10.0)
Notes de la page 125 :
Administration Unix
ARS 2007–2008 Tôme 3
125 / 707
4 Domain Name Server (DNS)
4.11 Record de type PTR
Chapitre 4 • Domain Name Server (DNS)
§4.11 • Record de type PTR
On peut aussi interroger un nameserver pour résoudre des adresses :
% /usr/sbin/nslookup 193.252.79.61
Server: sunars1.formation.jussieu.fr
Address: 134.157.253.1
Name:
www.liberation.fr
Address: 193.252.79.61
A rapprocher de :
% /usr/sbin/nslookup -query=ptr 61.79.252.193.in-addr.arpa
Server: sunars1.formation.jussieu.fr
Address: 134.157.253.1
Non-authoritative answer:
61.79.252.193.in-addr.arpa
name = www.liberation.fr
Authoritative answers can be found
79.252.193.in-addr.arpa nameserver
79.252.193.in-addr.arpa nameserver
ns1.fth.net
internet address =
ns2.fth.net
internet address =
c
T.Besançon
(version 10.0)
Notes de la page 126 :
from:
= ns1.fth.net
= ns2.fth.net
193.252.251.253
193.252.69.217
Administration Unix
ARS 2007–2008 Tôme 3
126 / 707
4 Domain Name Server (DNS)
4.11 Record de type PTR
.
arpa
fr
jussieu
in−addr
formation
134
sunars1
157
134.157.253.1
253
Assurer
la coherence
1
sunars1.formation.jussieu.fr
Une faute courante : oublier de mettre à jour l’entrée relative à l’adresse
IP de la machine.
c
T.Besançon
(version 10.0)
Notes de la page 127 :
Administration Unix
ARS 2007–2008 Tôme 3
127 / 707
4 Domain Name Server (DNS)
4.12 Fichier /etc/nsswitch.conf
Chapitre 4 • Domain Name Server (DNS)
§4.12 • Fichier /etc/nsswitch.conf
Certains systèmes UNIX permettent de spécifier quelles méthodes de
résolution utiliser (DNS, « /etc/hosts », NIS) ainsi que l’ordre
d’enchaînement des méthodes.
Sur Linux et Solaris, cf « /etc/nsswitch.conf » :
...
hosts:
...
files nisplus nis dns
ou
...
hosts:
...
xfn nisplus dns [NOTFOUND=return] files
c
T.Besançon
(version 10.0)
Notes de la page 128 :
Administration Unix
ARS 2007–2008 Tôme 3
128 / 707
4 Domain Name Server (DNS)
4.13 Délégation d’une partie de classe C
Chapitre 4 • Domain Name Server (DNS)
§4.13 • Délégation d’une partie de classe C
RFC 2317
http://www.lip6.fr/pub/rfc/rfc/rfc2317.txt.gz
Avis : Mécanisme astucieux mais un peu compliqué à mettre en œuvre en
pratique.
c
T.Besançon
(version 10.0)
Notes de la page 129 :
Administration Unix
ARS 2007–2008 Tôme 3
129 / 707
4 Domain Name Server (DNS)
4.13 Délégation d’une partie de classe C
WebDNS
Logiciel WebDNS : http://www-crc.u-strasbg.fr/webdns/
Principe : générer les données via une vraie base de données avec toutes
les possibilités fines associées (par exemple une personne peut avoir le
droit SQL de modifier un et un seul record DNS dans la base SQL)
Logiciel non réservé aux sous classes C. En utilisation sur le campus de
Jussieu par exemple.
Avis : Approche très tendance pour résoudre un problème de fond dans le
principe du DNS lors de vrais déployements.
Avis 2 : Nouvel exemple de couplage à une base de données.
c
T.Besançon
(version 10.0)
Notes de la page 130 :
Administration Unix
ARS 2007–2008 Tôme 3
130 / 707
4 Domain Name Server (DNS)
4.13 Délégation d’une partie de classe C
Serveur Web (client PostgreSQL)
HTTP/HTTPS
Internet
PostgreSQL
DNS
named.boot
PostgreSQL
Base
de
données
fichiers
de
zones
Serveur de données (PostgreSQL)
c
T.Besançon
(version 10.0)
Notes de la page 131 :
Administration Unix
Serveur DNS (client PostgreSQL)
ARS 2007–2008 Tôme 3
131 / 707
4 Domain Name Server (DNS)
4.14 Nom de machine : hostname
Chapitre 4 • Domain Name Server (DNS)
§4.14 • Nom de machine : hostname
Caractères autorisés : cf RFC 952 et RFC 1123
En résumé :
lettres majuscules
lettres minuscules
chiffres
caractère « - »
http://www.lip6.fr/pub/rfc/rfc/rfc952.txt.gz
http://www.lip6.fr/pub/rfc/rfc/rfc1123.txt.gz
c
T.Besançon
(version 10.0)
Notes de la page 132 :
Administration Unix
ARS 2007–2008 Tôme 3
132 / 707
4 Domain Name Server (DNS)
4.15 WHOIS
Chapitre 4 • Domain Name Server (DNS)
§4.15 • WHOIS
WHOIS ≡ base de données des informations relatives à l’attribution des
plages d’adresses IP et des noms de domaines.
Exemple d’un protocole Internet loupé car les implémentations ne sont pas
compatibles entre elles. RFC 954, port TCP 43
Protocole exploitable par la commande « whois ».
Syntaxe : « whois [ -h server-whois ] adresse-ou-domaine »
c
T.Besançon
(version 10.0)
Notes de la page 133 :
Administration Unix
ARS 2007–2008 Tôme 3
133 / 707
4 Domain Name Server (DNS)
4.15 WHOIS
Quelques serveurs WHOIS :
rs.internic.net
whois.nic.fr ou via un interface WWW :
http://www.afnic.asso.fr/cgi-bin/whois
whois.ripe.net
c
T.Besançon
(version 10.0)
Notes de la page 134 :
Administration Unix
ARS 2007–2008 Tôme 3
134 / 707
4.16 (Windows : : ipconfig /displaydns, ipconfig
4 Domain Name Server (DNS) /flushdns)
Chapitre 4 • Domain Name Server (DNS)
§4.16 • (Windows : : ipconfig /displaydns, ipconfig /flushdns)
Une machine WINDOWS utilise un cache interne pour les requêtes DNS.
On peut afficher le cache interne par la commande
« ipconfig /displaydns ».
On peut purger le cache interne par la commande
« ipconfig /flushdns ».
c
T.Besançon
(version 10.0)
Notes de la page 135 :
Administration Unix
ARS 2007–2008 Tôme 3
135 / 707
4 Domain Name Server (DNS)
4.17 Espace de confiance
Chapitre 4 • Domain Name Server (DNS)
§4.17 • Espace de confiance
c
T.Besançon
(version 10.0)
Notes de la page 136 :
Administration Unix
ARS 2007–2008 Tôme 3
136 / 707
4 Domain Name Server (DNS)
4.18 Un peu de documentation
Chapitre 4 • Domain Name Server (DNS)
§4.18 • Un peu de documentation
cours réseau ARS
Cf http://www.isc.org/ et ftp://ftp.isc.org/isc/bind/
Cf http://www.cri.fr/ZoneCheck/
Cf http://www.univ-rennes1.fr/DNSRENATER/
Cf ftp://ftp.univ-rennes1.fr/pub/reseau/dns/exemple/
RFC 2317 «Classless IN-ADDR.ARPA delegation»
http://www.uninett.no/navn/domreg.html
ftp://ftp.jussieu.fr/jussieu/doc/local/dnsmail.ps.Z
http://www.cri.ensmp.fr/people/keryell/cours
DNS and BIND, 4th Edition, By Paul Albitz & Cricket Liu, 4th
Edition April 2001, O’Reilly & Associates, Inc. 622 pages, $44.95
c
T.Besançon
(version 10.0)
Notes de la page 137 :
Administration Unix
ARS 2007–2008 Tôme 3
137 / 707
5 SSH
Chapitre 5
SSH
c
T.Besançon
(version 10.0)
Notes de la page 138 :
Administration Unix
ARS 2007–2008 Tôme 3
138 / 707
5 SSH
5.1 Introduction
Chapitre 5 • SSH
§5.1 • Introduction
Voir cours de Frédérique BONGAT.
c
T.Besançon
(version 10.0)
Notes de la page 139 :
Administration Unix
ARS 2007–2008 Tôme 3
139 / 707
6 Courrier électronique
Chapitre 6
Courrier électronique
c
T.Besançon
(version 10.0)
Notes de la page 140 :
Administration Unix
ARS 2007–2008 Tôme 3
140 / 707
6 Courrier électronique
6.1 Composantes du système du courrier électronique
Chapitre 6 • Courrier électronique
§6.1 • Composantes du système du courrier électronique
C’est un système complexe dont la complexité croît sans cesse.
Il a de fortes interactions avec Internet, avec les Intranets.
De nombreuses implémentations sont disponibles (X400, SMTP, Microsoft
Exchange, etc.).
Le système est modulaire, son bon fonctionnement reposant sur des
descriptions publiquement disponibles des détails des différents protocoles.
c
T.Besançon
(version 10.0)
Notes de la page 141 :
Administration Unix
ARS 2007–2008 Tôme 3
141 / 707
6 Courrier électronique
6.1 Composantes du système du courrier électronique
Réseau
Destinataire du
courrier non local
Transmission au
facteur local
Courriers à destination
d’un utilisateur local
MTA
MDA
Distribution personnalisée
Emission d’un courrier
Boîte
aux lettres
Consultation des courriers
MUA
c
T.Besançon
(version 10.0)
Notes de la page 142 :
Administration Unix
ARS 2007–2008 Tôme 3
142 / 707
6 Courrier électronique
6.1 Composantes du système du courrier électronique
Terminologie :
MTA (Mail Transfer Agent — agent de routage)
En fonction de l’adresse de destination, il passe le message à un
certain agent de transport.
Plusieurs MTA existent : Sendmail, Postfix
MDA (Mail Delivery Agent — agent de transport)
Il reçoit un message, une destination et se charge de l’acheminement.
Il est spécialisé dans un type d’acheminement.
(synonyme mailer )
MUA (Mail User Agent — agent utilisateur)
Il sert à la composition des messages qu’il envoie à l’agent de routage.
c
T.Besançon
(version 10.0)
Notes de la page 143 :
Administration Unix
ARS 2007–2008 Tôme 3
143 / 707
6 Courrier électronique
6.1 Composantes du système du courrier électronique
• Normes utilisées :
RFC 822, description du format des messages
RFC 821, description du protocole SMTP (Simple Mail Transfer
Protocol)
RFC 974, description de l’interaction d’un MTA avec le DNS
RFC 1035
RFC 1123
Attention : documents techniques hermétiques à la lecture compliquée
Cf « ftp://ftp.lip6.fr/pub/rfc/rfc/ »
• Les problèmes de mail sont à adresser à « postmaster ».
Les MTA font l’hypothèse que cette adresse existe.
Cette adresse doit être lue par un humain.
c
T.Besançon
(version 10.0)
Notes de la page 144 :
Administration Unix
ARS 2007–2008 Tôme 3
144 / 707
6 Courrier électronique
6.2 Sendmail
Chapitre 6 • Courrier électronique
§6.2 • Sendmail
SENDMAIL :
Conçu en 1982, par Eric Allman (<[email protected]>)
Site officiel « http://www.sendmail.org/ »
Principal logiciel pour router les courriers des systèmes UNIX répandus
Souple, puissant
Sait s’adapter aux nouveaux standards (aspects multimedia)
Syntaxe difficile
Outils annexes simplifiant la configuration : par exemple kit jussieu
« ftp://ftp.jussieu.fr/jussieu/sendmail/kit/kit-5.3.4.tar.Z
« ftp://ftp.jussieu.fr/jussieu/sendmail/kit/doc-kit-5.3.4.p
c
T.Besançon
(version 10.0)
Notes de la page 145 :
Administration Unix
ARS 2007–2008 Tôme 3
145 / 707
6 Courrier électronique
6.3 Sendmail plugins : MILTER
Chapitre 6 • Courrier électronique
§6.3 • Sendmail plugins : MILTER
SENDMAIL s’occupe de router les mails.
Donc :
hors de question de compliquer le code par un antivirus
hors de question de compliquer le code par un antispam
hors de question de compliquer le code par. . .
Bref, hors de question de compliquer le code par n’importe quoi qui n’a
pas de rapport avec le routage de mails.
Par contre, possibilité d’interfacer SENDMAIL à des fonctionnalités
externalisées grâce à l’API « MILTER » fourni par les développeurs de
SENDMAIL.
Cf http://www.milter.org/ pour de la documentation ou des plugins.
c
T.Besançon
(version 10.0)
Notes de la page 146 :
Administration Unix
ARS 2007–2008 Tôme 3
146 / 707
6 Courrier électronique
6.3 Sendmail plugins : MILTER
MILTER = communication entre SENDMAIL et des programmes externes
via des sockets UNIX.
c
T.Besançon
(version 10.0)
Notes de la page 147 :
Administration Unix
ARS 2007–2008 Tôme 3
147 / 707
ocal
6 Courrier électronique
6.4 Postfix
Chapitre 6 • Courrier électronique
§6.4 • Postfix
« http://www.postfix.org »
Futur successeur de SENDMAIL certainement dans quelques années.
Une réflexion sur SENDMAIL a conduit à écrire postfix sous une forme
non monolithique. Plusieurs démons vont s’occuper chacun d’une tâche
bien précise et n’utilisent pour cela que le minimum de privilèges système
limitant le risque de piratage :
rewrite
"sendmail"
maildrop
pickup
Internet
smtpd
RBL
access
cleanup
canonical
c
T.Besançon
(version 10.0)
Notes de la page 148 :
incoming
active
virtual
deferred
Administration Unix
transport
aliases
.forward
resolve
local
mailbox
qmgr
smtp
Internet
relocated
pipe
UUCP, etc
ARS 2007–2008 Tôme 3
148 / 707
6 Courrier électronique
6.4 Postfix
Le fichier de configuration est une succession d’affectation de valeurs à des
variables.
Approche radicalement différente de celle de SENDMAIL plus proche
d’une programmation de la configuration.
Approche de postfix identique à celle du kit jussieu pour SENDMAIL (ou
vice versa).
Possibilité de modifier on the fly le comportement de postfix.
Par exemple à l’établissement d’une connexion PPP ou lors de sa cloture,
on peut depuis le script PPP dire à postfix d’échanger les mails
maintenant avec l’extérieur.
Avec SENDMAIL, il faudrait arrêter SENDMAIL, mettre en place une
nouvelle configuration « sendmail.cf », relancer SENDMAIL, ensemble
de manœuvres lourdes.
c
T.Besançon
(version 10.0)
Notes de la page 149 :
Administration Unix
ARS 2007–2008 Tôme 3
149 / 707
6 Courrier électronique
6.5 Postfix plugins
Chapitre 6 • Courrier électronique
§6.5 • Postfix plugins
Il existe un mécanisme à MILTER de SENDMAIL dans POSTFIX.
Utilisation de sockets UNIX aussi.
c
T.Besançon
(version 10.0)
Notes de la page 150 :
Administration Unix
ARS 2007–2008 Tôme 3
150 / 707
6 Courrier électronique
6.6 Boites aux lettres : folders
Chapitre 6 • Courrier électronique
§6.6 • Boites aux lettres : folders
Deux formats classiques de folders sous UNIX :
folder MBOX
c
T.Besançon
(version 10.0)
Notes de la page 151 :
folder MAILDIR
Administration Unix
ARS 2007–2008 Tôme 3
151 / 707
6 Courrier électronique
6.7 Boites aux lettres : folder MBOX
Chapitre 6 • Courrier électronique
§6.7 • Boites aux lettres : folder MBOX
Un fichier stocke tous les mails reçus du MDA et manipulés par les MUA :
Classiquement « /var/mail/$USERNAME ».
⇒ Problèmes de verrouillage du fichier lors des lectures/écritures, de
manipulation de grosses boites aux lettres, etc.
c
T.Besançon
(version 10.0)
Notes de la page 152 :
Administration Unix
ARS 2007–2008 Tôme 3
152 / 707
6 Courrier électronique
6.7 Boites aux lettres : folder MBOX
Structure d’un mail :
From [email protected] Mon Nov 19 21:27:41 2001
Return-Path: <[email protected]>
Received: from localhost (localhost [127.0.0.1])
by apollinaire.paris4.sorbonne.fr (8.11.6/8.11.6) with ESMTP id fAJKRfY03543
for <Thierry.Besancon@localhost>; Mon, 19 Nov 2001 21:27:41 +0100 (MET)
Received: from sorbon.sorbonne.fr [195.220.107.3]
by localhost with POP3 (fetchmail-5.9.4)
for Thierry.Besancon@localhost (single-drop); Mon, 19 Nov 2001 21:27:41+0100
Received: from neodata.com ([206.27.153.2])
by sorbon.sorbonne.fr (8.11.0/jtpda-5.3.3) with ESMTP id fAJKQnO06486
for <[email protected]>; Mon, 19 Nov 2001 21:26:50+0100 (
Received: from bennett (bennett.neo.comm.eds.com [192.85.230.134])
by neodata.com (8.10.2+Sun/8.9.1) with ESMTP id fAJKRBK17328;
Mon, 19 Nov 2001 13:27:11 -0700 (MST)
Received: by bennett (8.8.8+Sun/SMI-SVR4)
id NAA14733; Mon, 19 Nov 2001 13:26:57 -0700 (MST)
Date: Mon, 19 Nov 2001 13:26:57 -0700 (MST)
From: [email protected]
X-Gnus-Mail-Source: directory:~/Mail/incoming/
Message-Id: <200111192026.NAA14733@bennett>
To: [email protected]
Subject: NEW ORDER
Suite sur transparent suivant
c
T.Besançon
(version 10.0)
Notes de la page 153 :
Administration Unix
ARS 2007–2008 Tôme 3
153 / 707
6 Courrier électronique
6.7 Boites aux lettres : folder MBOX
Structure d’un mail (suite) :
X-AntiVirus: scanned for viruses by AMaViS 0.2.1 (http://amavis.org/)
X-UIDL: Tjg!!<n*"!6i+"!J@O!!
Status: RO
X-Content-Length: 299
SYS ADMIN appreciates your inquiry and welcomes the opportunity to serve
your needs.
En résumé :
une ligne commencant par « From » (attention à l’espace suivant le
From)
autres entêtes
une ligne blanche marquant la fin des entêtes et le début du corps du
mail
corps du mail
une ligne blanche après le corps du mail
c
T.Besançon
(version 10.0)
Notes de la page 154 :
Administration Unix
ARS 2007–2008 Tôme 3
154 / 707
6 Courrier électronique
6.7 Boites aux lettres : folder MBOX
Structure d’un mail (suite) :
Attention : si le corps du message contient une ligne commencant par
« From », la ligne est transformée en « >From ». Pourquoi ?
c
T.Besançon
(version 10.0)
Notes de la page 155 :
Administration Unix
ARS 2007–2008 Tôme 3
155 / 707
6 Courrier électronique
6.7 Boites aux lettres : folder MBOX
Le format folder MBOX est manipulable par plusieurs MUA.
Le MUA le plus simple pour cela est la commande « Mail » (ou « mail »
ou « mailx »).
% Mail
"/var/mail/besancon": 4 messages 4 new
>N 1 [email protected] Thu Aug 24 01:45
32/1175
N 2 [email protected] Fri Aug 25 01:45
32/1175
N 3 [email protected] Sat Aug 26 01:45
32/1175
N 4 [email protected]
Mon Aug 28 00:27
44/1624
---> 4
From [email protected] Mon Aug 28 00:27:00 2006
Date: Mon, 28 Aug 2006 00:24:59 +0200 (MEST)
To: [email protected]
Subject: Account details for besancon at drupal
MIME-Version: 1.0
Content-transfer-encoding: 8Bit
From: [email protected]
Output from "cron" comm
Output from "cron" comm
Output from "cron" comm
Account details for bes
besancon,
Thank you for registering at drupal. You may now log in to http://drupal.imj
c
T.Besançon
(version 10.0)
username: besancon
password: urM87U9eFi
Notes de la page 156 :
Administration Unix
ARS 2007–2008 Tôme 3
156 / 707
6 Courrier électronique
6.8 Boites aux lettres : folder MAILDIR
Chapitre 6 • Courrier électronique
§6.8 • Boites aux lettres : folder MAILDIR
Un fichier stocke un seul mail.
⇒ Plus de problème de verrouillage du fichier lors des lectures/écritures.
http://www.courier-mta.org/mbox-vs-maildir/
c
T.Besançon
(version 10.0)
Notes de la page 157 :
Administration Unix
ARS 2007–2008 Tôme 3
157 / 707
6 Courrier électronique
6.8 Boites aux lettres : folder MAILDIR
En résumé :
une ligne commencant par « From » (attention à l’espace suivant le
From)
autres entêtes
une ligne blanche marquant la fin des entêtes et le début du corps du
mail
corps du mail
Attention :
si le corps du message contient une ligne commencant par « From »,
la ligne n’est pas transformée. Pourquoi ?
pas de ligne blanche après le corps du mail. Pourquoi ?
c
T.Besançon
(version 10.0)
Notes de la page 158 :
Administration Unix
ARS 2007–2008 Tôme 3
158 / 707
6 Courrier électronique
6.8 Boites aux lettres : folder MAILDIR
Comment stocker les mails au format MAILDIR ?
⇒ La structure d’un folder MAILDIR appelé « FOLDER » implique
plusieurs répertoires :
« FOLDER/new »
« FOLDER/cur » (cur pour current)
« FOLDER/tmp »
Le MDA place un nouveau mail d’abord par le répertoire « FOLDER/tmp »
temporairement le temps de calculer un nom de fichier unique.
Le nouveau mail est ensuite placé dans le répertoire « FOLDER/new » par
le MDA.
La lecture d’un mail entraine son déplacement de « FOLDER/new » vers
« FOLDER/cur » avec ajout d’un suffixe indiquant les opérations faites par
le MUA sur le mail.
c
T.Besançon
(version 10.0)
Notes de la page 159 :
Administration Unix
ARS 2007–2008 Tôme 3
159 / 707
6 Courrier électronique
6.8 Boites aux lettres : folder MAILDIR
Le nom du fichier stockant un mail doit être unique et en général a le
format « time.pid.host ». Voir :
http://www.qmail.org/man/man5/maildir.html
http://cr.yp.to/proto/maildir.html
Par exemple :
1185708514.M707068P58898V0700FF01I06974E18_1.mail.
.example.com,S=989 :2,S avec :
1185708514 = temps depuis l’origine en secondes ;
ctime(1185708514) = Sun Jul 29 13:28:34 2007
M707068 = compteur en microsecondes de « gettimeofday() »
P58898 = process ID du MDA
V0700FF01 = UNIX device number
I06974E18 = UNIX inode number
mail.example.com = nom de la machine UNIX du MDA
S=989 = taille du mail en octets
1185188613.000035.mbox:2,RS ; ici c’est le résultat d’une
conversion par le programme MB2MD
c
T.Besançon
(version 10.0)
Notes de la page 160 :
Administration Unix
ARS 2007–2008 Tôme 3
160 / 707
6 Courrier électronique
6.8 Boites aux lettres : folder MAILDIR
Après manipulation par le MUA, on ajoute un suffixe « :2,flags » avec
flag :
flag « P » (Passed) = mail resent/forwarded/bounced
flag « R » (Replied) = mail répondu
flag « S » (Seen) = mail lu
flag « T » (Trashed) = mail mis à la poubelle
flag « D » (Draft) = mail brouillon
flag « F » (Flagged) = mail taggé pour usage ultérieur
Par exemple :
1185708514.M707068P58898V0700FF01I06974E18_1.mail.
example.com,S=989 :2,S
1185188613.000035.mbox :2,RS
c
T.Besançon
(version 10.0)
Notes de la page 161 :
Administration Unix
ARS 2007–2008 Tôme 3
161 / 707
6 Courrier électronique
6.8 Boites aux lettres : folder MAILDIR
Possibilité de folders MAILDIR imbriqués. Par exemple :
ce qui donnera sous UNIX les
répertoires
« .system.sa-blacklist/ »,
« .system.sa-false-negative/ »,
« .system.sa-false-positive/ »,
« .system.sa-whitelist/ »
(avec les classiques sous-répertoires
« cur », « new » et « tmp »)
c
T.Besançon
(version 10.0)
Notes de la page 162 :
Administration Unix
ARS 2007–2008 Tôme 3
162 / 707
6 Courrier électronique
6.8 Boites aux lettres : folder MAILDIR
On peut convertir un folder MBOX vers un folder MAILDIR :
http://batleth.sapeinti-sat.org/projects/mb2md.html
c
T.Besançon
(version 10.0)
Notes de la page 163 :
Administration Unix
ARS 2007–2008 Tôme 3
163 / 707
6 Courrier électronique
6.9 Protocole de consultation : POP
Chapitre 6 • Courrier électronique
§6.9 • Protocole de consultation : POP
SMTP
Serveur
de
mails
POP
download des mails
Client
POP
Mail folders
c
T.Besançon
(version 10.0)
Notes de la page 164 :
Administration Unix
ARS 2007–2008 Tôme 3
164 / 707
6 Courrier électronique
6.9 Protocole de consultation : POP
POP ≡ Post Office Protocol ; RFC ? ? ?
Port POP : 110
Port POP + SSL : 995
c
T.Besançon
(version 10.0)
Notes de la page 165 :
Administration Unix
ARS 2007–2008 Tôme 3
165 / 707
6 Courrier électronique
6.10 Protocole de consultation : IMAP
Chapitre 6 • Courrier électronique
§6.10 • Protocole de consultation : IMAP
SMTP
Serveur
de
mails
IMAP
Mail folders
download des entetes des mails
download des corps des mails sur demande
Client
IMAP
c
T.Besançon
(version 10.0)
Notes de la page 166 :
Administration Unix
ARS 2007–2008 Tôme 3
166 / 707
6 Courrier électronique
6.10 Protocole de consultation : IMAP
RFC 2060 (protocole IMAP4rev1), RFC 2086 (ACL, extension de IMAP4),
RFC 2087 (quota, extension de IMAP4)
Port IMAP : 143
Port IMAP + SSL : 993
c
T.Besançon
(version 10.0)
Notes de la page 167 :
Administration Unix
ARS 2007–2008 Tôme 3
167 / 707
6 Courrier électronique
6.11 Comparaison de session POP et IMAP xxx
Chapitre 6 • Courrier électronique
§6.11 • Comparaison de session POP et IMAP xxx
Comparatif de session POP et IMAP : (extrait de
http://cri.univ-lyon2.fr/doc/ImapMaisCEstTresSimple.html)
% telnet pop.example.com 110
+OK POP3 server ready
USER pdupont
+OK Name is a valid mailbox
PASS XXXXXXXX
+OK Maildrop locked and ready
LIST
+OK scan listing follows
1 169
2 811
3 813
c
T.Besançon
(version 10.0)
Notes de la page 168 :
%
*
.
.
telnet imap.example.com 143
OK IMAP4 server ready
LOGIN pdupont XXXXXXXX
OK User logged in
.
*
*
*
*
*
*
.
.
*
*
*
.
SELECT INBOX
FLAGS (Answered Flagged Draft Deleted Seen)
OK [PERMANENTFLAGS (Answered Flagged Draft
3 EXISTS
3 RECENT
OK [UNSEEN 1]
OK [UIDVALIDITY 901006906]
OK [READ-WRITE] Completed
UID FETCH 1:* RFC822.SIZE
1 FETCH (UID 1425 RFC822.SIZE 169)
2 FETCH (UID 1426 RFC822.SIZE 811)
3 FETCH (UID 1427 RFC822.SIZE 813)
OK Completed
Administration Unix
ARS 2007–2008 Tôme 3
168 / 707
6 Courrier électronique
6.11 Comparaison de session POP et IMAP xxx
RETR 1
+OK Message follows
Return-Path: <[email protected]>
From: [email protected]
To: [email protected]
Subject: essai chien chapeau
. UID FETCH 1425 BODY[]
* 1 FETCH (FLAGS (Recent Seen) UID 1425 BODY[
Return-Path: <[email protected]>
From: [email protected]
To: [email protected]
Subject: essai chien chapeau
essai chien chapeau
.
essai chien chapeau
. OK Completed
DELE 1
+OK message deleted
QUIT
+OK
Connection closed by foreign host.
c
T.Besançon
(version 10.0)
Notes de la page 169 :
. UID STORE 1425 +FLAGS (Deleted)
* 1 FETCH (FLAGS (Recent Deleted Seen) UID 14
. OK Completed
. EXPUNGE
* 1 EXPUNGE
* 2 EXISTS
* 2 RECENT
. OK Completed
. LOGOUT
* BYE LOGOUT received
. OK Completed
Connection closed by foreign host.
Administration Unix
ARS 2007–2008 Tôme 3
169 / 707
6 Courrier électronique
6.12 Antivirus
Chapitre 6 • Courrier électronique
§6.12 • Antivirus
Plusieurs antivirus sont disponibles sous UNIX :
CLAMAV (gratuit) ; http://www.clamav.org
SOPHOS (commercial) ; http://www.sophos.com
nombreux autres logiciels commerciaux
c
T.Besançon
(version 10.0)
Notes de la page 170 :
Administration Unix
ARS 2007–2008 Tôme 3
170 / 707
6 Courrier électronique
6.13 Antispam
Chapitre 6 • Courrier électronique
§6.13 • Antispam
Plusieurs antispam sont disponibles sous UNIX :
BOGOFILTER (gratuit) ; http://bogofilter.sourceforge.net
DSPAM (gratuit) ; http://dspam.nuclearelephant.com
SPAMASSASSIN (gratuit) ; http://www.spamassassin.org
AMAVIS (gratuit) ; http://www.amavis.org
nombreux autres logiciels commerciaux
c
T.Besançon
(version 10.0)
Notes de la page 171 :
Administration Unix
ARS 2007–2008 Tôme 3
171 / 707
6 Courrier électronique
6.13 Antispam
Humour :
c
T.Besançon
(version 10.0)
Notes de la page 172 :
Administration Unix
ARS 2007–2008 Tôme 3
172 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
Chapitre 7
Gestionnaires de services réseau : inetd,
tcpd, xinetd
c
T.Besançon
(version 10.0)
Notes de la page 173 :
Administration Unix
ARS 2007–2008 Tôme 3
173 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.1 Rappel sur les connexions IP
Chapitre 7 • Gestionnaires de services réseau : inetd, tcpd, xinetd
§7.1 • Rappel sur les connexions IP
Rappel :
Une connexion IP est constituée de plusieurs éléments :
une adresse IP source
un numéro de port source sur la machine de départ
une adresse IP de destination
un numéro de port sur la machine de destination
protocole TCP ou UDP
Attention :
Sur UNIX, la fonction C obtenant un port source < 1024 ne
fonctionne que pour l’UID 0.
Sur Windows, la fonction C obtenant un port source < 1024
fonctionne quel que soit l’UID
c
T.Besançon
(version 10.0)
Notes de la page 174 :
Administration Unix
ARS 2007–2008 Tôme 3
174 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.2 Fichier /etc/services
Chapitre 7 • Gestionnaires de services réseau : inetd, tcpd, xinetd
§7.2 • Fichier /etc/services
Le fichier « /etc/services » mentionne des triplets (numéro de port,
protocole, nom du service).
Le fichier « /etc/services » sert à convertir un port numérique en un
nom symbolique plus parlant. Voir les fonctions C « getservbyname() »,
« getservbyport() », « getservent() ».
ATTENTION : Le fichier « /etc/services »
n’indique pas les services réseau activés sur la
machine.
c
T.Besançon
(version 10.0)
Notes de la page 175 :
Administration Unix
ARS 2007–2008 Tôme 3
175 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.2 Fichier /etc/services
On peut obtenir un triplet officiellement pour un programme à soi auprès
de l’IANA « http://www.iana.org/assignments/port-numbers »
En pratique il y a 3 catégories de triplets :
Les Well Known Ports sont ceux de 0 à 1023
Les Registered Ports sont ceux de 1024 à 49151
Les Dynamic and/or Private Ports sont ceux de 49152 à 65535
c
T.Besançon
(version 10.0)
Notes de la page 176 :
Administration Unix
ARS 2007–2008 Tôme 3
176 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.2 Fichier /etc/services
Extrait d’un fichier « /etc/services » :
...
chargen
chargen
ftp-data
ftp-data
ftp
ftp
ssh
ssh
telnet
telnet
smtp
smtp
...
19/tcp
19/udp
20/tcp
20/udp
21/tcp
21/udp
22/tcp
22/udp
23/tcp
23/udp
25/tcp
25/udp
c
T.Besançon
(version 10.0)
Notes de la page 177 :
ttytst source
#Character Generator
ttytst source
#Character Generator
#File Transfer [Default Data]
#File Transfer [Default Data]
#File Transfer [Control]
#File Transfer [Control]
#Secure Shell Login
#Secure Shell Login
mail
mail
#Simple Mail Transfer
#Simple Mail Transfer
Administration Unix
ARS 2007–2008 Tôme 3
177 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.3 Commandes netstat -a, netstat -an
Chapitre 7 • Gestionnaires de services réseau : inetd, tcpd, xinetd
§7.3 • Commandes netstat -a, netstat -an
La commande « netstat -a » affiche la liste des ports ouverts sur une
machine. Les noms affichés proviennent de « /etc/services » :
% netstat -a
Active Internet connections (including servers)
Proto Recv-Q Send-Q Local Address
Foreign Address
tcp4
0
0 *.ssh
*.*
tcp46
0
0 *.ssh
*.*
udp4
0
0 *.syslog
*.*
udp6
0
0 *.syslog
*.*
udp4
0
0 *.bootpc
*.*
Active UNIX domain sockets
...
c
T.Besançon
(version 10.0)
Notes de la page 178 :
Administration Unix
ARS 2007–2008 Tôme 3
(state)
LISTEN
LISTEN
178 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.3 Commandes netstat -a, netstat -an
La commande « netstat -an » affiche la liste des ports ouverts sur une
machine sans les traduire en noms via « /etc/services ». Ils sont
affichés sous forme numérique :
% netstat -an
Active Internet connections (including servers)
Proto Recv-Q Send-Q Local Address
Foreign Address
tcp4
0
0 *.22
*.*
tcp46
0
0 *.22
*.*
udp4
0
0 *.514
*.*
udp6
0
0 *.514
*.*
udp4
0
0 *.68
*.*
Active UNIX domain sockets
...
c
T.Besançon
(version 10.0)
Notes de la page 179 :
Administration Unix
ARS 2007–2008 Tôme 3
(state)
LISTEN
LISTEN
179 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.4 Gestionnaires de services réseau
Chapitre 7 • Gestionnaires de services réseau : inetd, tcpd, xinetd
§7.4 • Gestionnaires de services réseau
Une machine UNIX offre de nombreux services accessibles par le réseau.
Souvent les services réseau contactés durent peu de temps :
inutile de les faire tourner en permanence (consommation de
ressources)
on va les activer uniquement suite à une requête
On utilise alors un « gestionnaire de services » pour écouter les requêtes
pour certains services réseau et lancer ces services.
Plus particulièrement, le gestionnaire de services assure :
l’attente de connexions réseau sur certains ports
le lancement des services contactés
le comportement adapté au lancement de ces services
c
T.Besançon
(version 10.0)
Notes de la page 180 :
Administration Unix
ARS 2007–2008 Tôme 3
180 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.4 Gestionnaires de services réseau
Il existe plusieurs gestionnaires de services :
programme INETD
programme XINETD
Autre programme TCPD :
ce n’est pas un gestionnaire de services
c’est un contrôleur de services
c
T.Besançon
(version 10.0)
Notes de la page 181 :
Administration Unix
ARS 2007–2008 Tôme 3
181 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.5 Gestionnaire de services réseau : INETD
Chapitre 7 • Gestionnaires de services réseau : inetd, tcpd, xinetd
§7.5 • Gestionnaire de services réseau : INETD
Etape 1
host1.example.com
host2.example.com
client
inetd
réseau
c
T.Besançon
(version 10.0)
Notes de la page 182 :
Administration Unix
ARS 2007–2008 Tôme 3
182 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.5 Gestionnaire de services réseau : INETD
Etape 2
host1.example.com
host2.example.com
fork()
exec()
client
inetd
serveur
réseau
c
T.Besançon
(version 10.0)
Notes de la page 183 :
Administration Unix
ARS 2007–2008 Tôme 3
183 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.5 Gestionnaire de services réseau : INETD
Etape 3
host1.example.com
host2.example.com
client
inetd
serveur
réseau
c
T.Besançon
(version 10.0)
Notes de la page 184 :
Administration Unix
ARS 2007–2008 Tôme 3
184 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.6 INETD : fichier de configuration /etc/inetd.conf
Chapitre 7 • Gestionnaires de services réseau : inetd, tcpd, xinetd
§7.6 • INETD : fichier de configuration /etc/inetd.conf
Spécifique au gestionnaire de services « inetd ».
Son format est le suivant :
# Syntax for socket-based Internet services:
# service_name socket_type proto flags user server_pathname args
Par exemple :
...
ftp
telnet
...
stream
stream
tcp
tcp
c
T.Besançon
(version 10.0)
Notes de la page 185 :
nowait
nowait
root
root
/usr/sbin/in.ftpd
/usr/sbin/in.telnetd
Administration Unix
in.ftpd
in.telnetd
ARS 2007–2008 Tôme 3
185 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.6 INETD : fichier de configuration /etc/inetd.conf
La signification des champs est la suivante :
champ 1 : « service_name »
C’est le nom symbolique d’un service (cf « /etc/services »).
champ 2 : « socket_type »
C’est le type du socket réseau. C’est essentiellement « stream »,
« dgram ».
champ 3 : « proto »
C’est le protocole réseau utilisé : « tcp », « udp »
champ 4 : « flags »
Cela indique si l’on peut répondre à une requête du même type alors
que la première n’est pas terminée. On peut avoir : « wait »,
« nowait »
champ 5 : « user »
Nom de l’utilisateur sous lequel le programme tournera.
champ 6 : « server_pathname »
C’est le chemin absolu du programme à exécuter.
champ 7 : « args »
Ce sont les paramètres à donner lors du « execv() ».
c
T.Besançon
(version 10.0)
Notes de la page 186 :
Administration Unix
ARS 2007–2008 Tôme 3
186 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.6 INETD : fichier de configuration /etc/inetd.conf
Par exemple :
ftp
stream
tcp
nowait
root
/usr/sbin/in.ftpd in.ftpd -l
donnera
execv("/usr/sbin/in.ftpd", "in.ftpd", "-l", 0);
c
T.Besançon
(version 10.0)
Notes de la page 187 :
Administration Unix
ARS 2007–2008 Tôme 3
187 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.7 INETD : reconfiguration via SIGHUP
Chapitre 7 • Gestionnaires de services réseau : inetd, tcpd, xinetd
§7.7 • INETD : reconfiguration via SIGHUP
Inetd est lancé par les scripts de démarrage.
Si l’on modifie le fichier « /etc/inetd.conf », la modification est prise
en compte en envoyant le signal « SIGHUP » au processus inetd :
# ps -ax | grep inetd
173 ?
IW
2 0:00 inetd
19544 p2
S
2 0:00 grep inetd
# kill -HUP 173
c
T.Besançon
(version 10.0)
Notes de la page 188 :
Administration Unix
ARS 2007–2008 Tôme 3
188 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.8 INETD : problèmes
Chapitre 7 • Gestionnaires de services réseau : inetd, tcpd, xinetd
§7.8 • INETD : problèmes
INETD fonctionne très bien en pratique.
Il a un seul gros défaut : il ne gère aucun aspect de sécurité.
On aimerait au moins :
pouvoir filtrer l’accès à certains services
avoir des traces d’activation de certains services
Un remède : emploi du logiciel TCP WRAPPERS
http://ftp.porcupine.org/pub/security/tcp_wrappers_7.6.tar.gz
http://ftp.porcupine.org/pub/security/tcp_wrappers_7.6-ipv6.1.tar.gz
c
T.Besançon
(version 10.0)
Notes de la page 189 :
Administration Unix
ARS 2007–2008 Tôme 3
189 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.9 Gestionnaire de services réseau : TCP WRAPPERS
Chapitre 7 • Gestionnaires de services réseau : inetd, tcpd, xinetd
§7.9 • Gestionnaire de services réseau : TCP WRAPPERS
L’idée de TCP WRAPPERS : on va s’intercaler dans la chaîne de INETD.
host1.example.com
host2.example.com
client
inetd
réseau
c
T.Besançon
(version 10.0)
Notes de la page 190 :
Administration Unix
ARS 2007–2008 Tôme 3
190 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
host1.example.com
7.9 Gestionnaire de services réseau : TCP WRAPPERS
host2.example.com
fork()
exec()
client
inetd
tcpd
réseau
c
T.Besançon
(version 10.0)
Notes de la page 191 :
Administration Unix
ARS 2007–2008 Tôme 3
191 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
host1.example.com
7.9 Gestionnaire de services réseau : TCP WRAPPERS
host2.example.com
client
inetd
tcpd
réseau
c
T.Besançon
(version 10.0)
Notes de la page 192 :
Administration Unix
ARS 2007–2008 Tôme 3
192 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
host1.example.com
7.9 Gestionnaire de services réseau : TCP WRAPPERS
host2.example.com
fork()
exec()
client
inetd
tcpd
serveur
réseau
c
T.Besançon
(version 10.0)
Notes de la page 193 :
Administration Unix
ARS 2007–2008 Tôme 3
193 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
host1.example.com
7.9 Gestionnaire de services réseau : TCP WRAPPERS
host2.example.com
client
inetd
tcpd
serveur
réseau
c
T.Besançon
(version 10.0)
Notes de la page 194 :
Administration Unix
ARS 2007–2008 Tôme 3
194 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
host1.example.com
7.9 Gestionnaire de services réseau : TCP WRAPPERS
host2.example.com
client
inetd
serveur
réseau
c
T.Besançon
(version 10.0)
Notes de la page 195 :
Administration Unix
ARS 2007–2008 Tôme 3
195 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.9 Gestionnaire de services réseau : TCP WRAPPERS
La librairie des TCP WRAPPERS est maintenant intégrée à
beaucoup de produits (même sous WINDOWS...).
c
T.Besançon
(version 10.0)
Notes de la page 196 :
Administration Unix
ARS 2007–2008 Tôme 3
196 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.10 TCP WRAPPERS : modifications de /etc/inetd.conf
Chapitre 7 • Gestionnaires de services réseau : inetd, tcpd, xinetd
§7.10 • TCP WRAPPERS : modifications de /etc/inetd.conf
S’intercaler dans la chaîne de INETD nécessite de modifier le fichier
« /etc/inetd.conf »
Par exemple on passe de :
ftp
telnet
shell
login
stream
stream
stream
stream
tcp
tcp
tcp
tcp
nowait
nowait
nowait
nowait
root
root
root
root
/usr/etc/in.ftpd
/usr/etc/in.telnetd
/usr/etc/in.rshd
/usr/etc/in.rlogind
in.ftpd -l
in.telnetd
in.rshd
in.rlogind
stream
stream
stream
stream
tcp
tcp
tcp
tcp
nowait
nowait
nowait
nowait
root
root
root
root
/chemin/vers/tcpd
/chemin/vers/tcpd
/chemin/vers/tcpd
/chemin/vers/tcpd
in.ftpd -l
in.telnetd
in.rshd
in.rlogind
à
ftp
telnet
shell
login
c
T.Besançon
(version 10.0)
Notes de la page 197 :
Administration Unix
ARS 2007–2008 Tôme 3
197 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.10 TCP WRAPPERS : modifications de /etc/inetd.conf
Rappel sur l’interprétation d’une ligne de « inetd.conf » :
Par exemple :
ftp
stream
tcp
nowait
root
/chemin/vers/tcpd
in.ftpd -l
donnera
execv("/chemin/vers/tcpd", "in.ftpd", "-l", 0);
c
T.Besançon
(version 10.0)
Notes de la page 198 :
Administration Unix
ARS 2007–2008 Tôme 3
198 / 707
7.11 TCP WRAPPERS : contrôle d’accès, /etc/hosts.allow,
7 Gestionnaires de services réseau : inetd, tcpd, xinetd /etc/hosts.deny
Chapitre 7 • Gestionnaires de services réseau : inetd, tcpd, xinetd
§7.11 • TCP WRAPPERS : contrôle d’accès, /etc/hosts.allow, /etc/hosts.deny
Le principe du contrôle d’accès des TCP WRAPPERS :
1
On vérifie d’abord si la requête TCP est autorisée par le contenu de
« /etc/hosts.allow ».
Si oui, OK.
Si non, on passe à l’étape 2.
2
On vérifie si la requête TCP est interdite par le contenu de
« /etc/hosts.deny ».
Si oui, la requête est rejetée.
Si non, on passe à l’étape 3.
3
On accepte la requête TCP.
c
T.Besançon
(version 10.0)
Notes de la page 199 :
Administration Unix
ARS 2007–2008 Tôme 3
199 / 707
7.11 TCP WRAPPERS : contrôle d’accès, /etc/hosts.allow,
7 Gestionnaires de services réseau : inetd, tcpd, xinetd /etc/hosts.deny
Au niveau des fichiers « hosts.allow » et « hosts.deny », on peut
appliquer des règles de filtrage par service servi.
Voici un exemple de politique de connexion :
au niveau du fichier « /etc/hosts.allow » :
in.telnetd:
in.rlogind:
in.rshd:
.fr, 193.95.32.
.fr, 193.95.32.
.fr
au niveau du fichier « /etc/hosts.deny » :
in.telnetd:
in.rlogind:
in.rshd:
ALL
ALL
ALL
En français intelligible, ces fichiers indiquent que les connexions telnet,
rlogin, rsh ne sont autorisées que depuis des machines du domaine français
« .fr » et depuis un domaine de Tunisie (réseau d’adresse 193.95.32.).
c
T.Besançon
(version 10.0)
Notes de la page 200 :
Administration Unix
ARS 2007–2008 Tôme 3
200 / 707
7.11 TCP WRAPPERS : contrôle d’accès, /etc/hosts.allow,
7 Gestionnaires de services réseau : inetd, tcpd, xinetd /etc/hosts.deny
ATTENTION :
quand on interdit une machine, il faut l’interdire via son nom FQDN et via
son adresse IP (pour le cas où un nameserver serait injoignable on peut
ainsi bloquer quand même la machine).
c
T.Besançon
(version 10.0)
Notes de la page 201 :
Administration Unix
ARS 2007–2008 Tôme 3
201 / 707
7.11 TCP WRAPPERS : contrôle d’accès, /etc/hosts.allow,
7 Gestionnaires de services réseau : inetd, tcpd, xinetd /etc/hosts.deny
ATTENTION :
Ce n’est par parce que l’on active tcpd que l’on a
résolu tous les problèmes de sécurité et que l’on est
tranquille !
Il ne faut pas oublier que plein d’autres services ne passent pas
par l’intermédiaire de inetd.conf
Il faut surveiller les traces de fonctionnement renvoyées par
tcpd.
Il faut renseigner les fichiers hosts.allow et /etc/hosts.deny.
Il faut des démons sans trou de sécurité.
c
T.Besançon
(version 10.0)
Notes de la page 202 :
Administration Unix
ARS 2007–2008 Tôme 3
202 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.12 TCP WRAPPERS : programmation via libwrap.a
Chapitre 7 • Gestionnaires de services réseau : inetd, tcpd, xinetd
§7.12 • TCP WRAPPERS : programmation via libwrap.a
Les TCP WRAPPERS offrent aussi leur librairie de programmation :
« libwrap.a » et « tcpd.h »
Généralement installée en « /usr/local/lib/libwrap.a » et
« /usr/local/include/tcpd.h »
La librairie apporte la fonction C « host_access() »
On linkera avec cette librairie quand c’est nécessaire.
c
T.Besançon
(version 10.0)
Notes de la page 203 :
Administration Unix
ARS 2007–2008 Tôme 3
203 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.13 Gestionnaire de services réseau : XINETD
Chapitre 7 • Gestionnaires de services réseau : inetd, tcpd, xinetd
§7.13 • Gestionnaire de services réseau : XINETD
(en anglais extended inetd)
Cf http://www.xinetd.org/
Numérotation des versions un peu compliquée. . .
XINETD est une réécriture complète de INETD en incorporant plusieurs
aspects manquants dans INETD :
contrôle d’accès à la TCP WRAPPERS
accès horaires aux démons
traces syslog des connexions (échouées, abouties)
limitation du nombre d’instances de chaque démon
binding sur certaines adresses réseau
c
T.Besançon
(version 10.0)
Notes de la page 204 :
Administration Unix
ARS 2007–2008 Tôme 3
204 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.14 XINETD : fichier de configuration /etc/xinetd.conf
Chapitre 7 • Gestionnaires de services réseau : inetd, tcpd, xinetd
§7.14 • XINETD : fichier de configuration /etc/xinetd.conf
XINETD utilise le fichier « /etc/xinetd.conf », incompatible avec
« /etc/inetd.conf ».
Format du fichier :
defaults
{
attribut operateur valeur(s)
...
}
service toto
{
attribut operateur valeur(s)
...
}
Les opérateurs sont « = », « += » et « -= ».
Cf la documentation pour la liste complète des attributs.
c
T.Besançon
(version 10.0)
Notes de la page 205 :
Administration Unix
ARS 2007–2008 Tôme 3
205 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.14 XINETD : fichier de configuration /etc/xinetd.conf
A noter avec certaines versions de « xinetd » la possibilité d’avoir un
répertoire « /etc/xinetd.d » dans lequel on trouve un fichier par
service, portant le nom du service et contenant le réglage du service.
Par exemple « /etc/xinetd.d/ftpd »
c
T.Besançon
(version 10.0)
Notes de la page 206 :
Administration Unix
ARS 2007–2008 Tôme 3
206 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.15 XINETD : réglages par défaut
Chapitre 7 • Gestionnaires de services réseau : inetd, tcpd, xinetd
§7.15 • XINETD : réglages par défaut
Par exemple :
defaults
{
instances = 15
log_type = FILE /var/log/servicelog
log_on_success = HOST PID USERID DURATION EXIT
log_on_failure = HOST USERID RECORD
only_from =
disabled = shell login exec comsat telnet ftp tftp finger
disabled += time daytime chargen servers services xadmin
}
Ici la ligne « only_from = » interdit par défaut toutes les machines à se
connecter aux services. On autorisera ce qui est nécessaire au niveau du
bloc de configuration de chaque service.
c
T.Besançon
(version 10.0)
Notes de la page 207 :
Administration Unix
ARS 2007–2008 Tôme 3
207 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.16 XINETD : configuration d’un service
Chapitre 7 • Gestionnaires de services réseau : inetd, tcpd, xinetd
§7.16 • XINETD : configuration d’un service
Exemple pour le service « ftp » (cf « /etc/services ») :
service ftp
{
socket-type = stream
wait = no
user = root
server = /usr/sbin/in.ftpd
server_args = -l
instances = 4
access_times = 7:00-12:30 13:30-21:00
nice = 10
only_from = 192.168.1.0/24
}
c
T.Besançon
(version 10.0)
Notes de la page 208 :
Administration Unix
ARS 2007–2008 Tôme 3
208 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.17 XINETD : /etc/xinetd.conf : directive nice
Chapitre 7 • Gestionnaires de services réseau : inetd, tcpd, xinetd
§7.17 • XINETD : /etc/xinetd.conf : directive nice
Par exemple :
service ftp
{
socket-type = stream
wait = no
user = root
server = /usr/sbin/in.ftpd
server_args = -l
instances = 4
access_times = 7:00-12:30 13:30-21:00
nice = 10
only_from = 192.168.1.0/24
}
c
T.Besançon
(version 10.0)
Notes de la page 209 :
Administration Unix
ARS 2007–2008 Tôme 3
209 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.18 XINETD : /etc/xinetd.conf : directive access_times
Chapitre 7 • Gestionnaires de services réseau : inetd, tcpd, xinetd
§7.18 • XINETD : /etc/xinetd.conf : directive access_times
Par exemple :
service ftp
{
socket-type = stream
wait = no
user = root
server = /usr/sbin/in.ftpd
server_args = -l
instances = 4
access_times = 7:00-12:30 13:30-21:00
nice = 10
only_from = 192.168.1.0/24
}
c
T.Besançon
(version 10.0)
Notes de la page 210 :
Administration Unix
ARS 2007–2008 Tôme 3
210 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.19 XINETD : /etc/xinetd.conf : directives bind, id
Chapitre 7 • Gestionnaires de services réseau : inetd, tcpd, xinetd
§7.19 • XINETD : /etc/xinetd.conf : directives bind, id
Soit une machine avec 2 interfaces réseau d’adresses « 192.168.1.1 » et
« 192.168.2.1 » :
service ftp
{
id = ftp-public
bind = 192.168.1.1
socket-type = stream
wait = no
user = root
server = /usr/sbin/in.ftpd
server_args = -l
instances = 4
access_times = 7:00-21:00
nice = 10
only_from = 192.168.1.0/24
}
service ftp
{
id = ftp-private
bind = 192.168.2.1
socket-type = stream
wait = no
user = root
server = /usr/sbin/in.ftpd
server_args = -l
instances = 4
access_times = 7:00-21:00
nice = 10
only_from = 192.168.2.0/24
}
La directive « id » servira au niveau de SYSLOG à différencier les traces
de l’un ou l’autre de FTPD.
c
T.Besançon
(version 10.0)
Notes de la page 211 :
Administration Unix
ARS 2007–2008 Tôme 3
211 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.20 XINETD : /etc/xinetd.conf : directive redirect
Chapitre 7 • Gestionnaires de services réseau : inetd, tcpd, xinetd
§7.20 • XINETD : /etc/xinetd.conf : directive redirect
Par exemple :
service telnet
{
flags = REUSE
socket-type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
only_from = 192.168.1.0/24
redirect = 192.168.1.23
}
Et un « telnet » vers « 192.168.1.1 » renverra vers le démon
« telnetd » de « 192.168.1.23 ».
c
T.Besançon
(version 10.0)
Notes de la page 212 :
Administration Unix
ARS 2007–2008 Tôme 3
212 / 707
7.21 XINETD : /etc/xinetd.conf : tcpd et directive
7 Gestionnaires de services réseau : inetd, tcpd, xinetd NAMEINARGS
Chapitre 7 • Gestionnaires de services réseau : inetd, tcpd, xinetd
§7.21 • XINETD : /etc/xinetd.conf : tcpd et directive NAMEINARGS
Par exemple :
service ftp
{
flags = NAMEINARGS REUSE
socket-type = stream
wait = no
user = root
server = /usr/sbin/tcpd
server_args = /usr/sbin/in.ftpd -l
instances = 4
access_times = 7:00-12:30 13:30-21:00
nice = 10
only_from = 192.168.1.0/24
}
TCP WRAPPERS et XINETD ne sont pas antinomiques.
c
T.Besançon
(version 10.0)
Notes de la page 213 :
Administration Unix
ARS 2007–2008 Tôme 3
213 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.22 XINETD : /etc/xinetd.conf : directive chroot
Chapitre 7 • Gestionnaires de services réseau : inetd, tcpd, xinetd
§7.22 • XINETD : /etc/xinetd.conf : directive chroot
Par exemple :
service ftp
{
socket-type = stream
wait = no
user = root
server = /usr/sbin/chroot
server_args = /quelquepart/blockhaus/ftp /usr/sbin/in.ftpd -l
instances = 4
access_times = 7:00-12:30 13:30-21:00
nice = 10
only_from = 192.168.1.0/24
}
On est ainsi compartimenté à l’arborescence de
« /quelquepart/blockhaus/ftp » dont on ne peut pas sortir. Intérêt
pour la sécurité de la machine.
c
T.Besançon
(version 10.0)
Notes de la page 214 :
Administration Unix
ARS 2007–2008 Tôme 3
214 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.23 XINETD : reconfiguration, signaux
Chapitre 7 • Gestionnaires de services réseau : inetd, tcpd, xinetd
§7.23 • XINETD : reconfiguration, signaux
Sont supportés les signaux :
signal « SIGHUP » : sur sa réception, « xinetd » se reconfigure
signal « SIGTERM » : sur sa réception, « xinetd » se saborde
signal « SIGUSR1 » : sur sa réception, « xinetd » écrit le fichier
« /var/run/xinetd.dump »
c
T.Besançon
(version 10.0)
Notes de la page 215 :
Administration Unix
ARS 2007–2008 Tôme 3
215 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.24 Services internes inutiles
Chapitre 7 • Gestionnaires de services réseau : inetd, tcpd, xinetd
§7.24 • Services internes inutiles
Rappel : INETD et XINETD lancent des services réseau sur demande
Exemple avec INETD : extrait de « /etc/inetd.conf » :
ftp
stream
tcp
nowait
root
/usr/sbin/in.ftpd in.ftpd -l
donnera
execv("/usr/sbin/in.ftpd", "in.ftpd", "-l", 0);
Le service est fourni par un exécutable « externe ».
Mais le service peut être interne et être fourni directement par INETD ou
XINETD.
c
T.Besançon
(version 10.0)
Notes de la page 216 :
Administration Unix
ARS 2007–2008 Tôme 3
216 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.24 Services internes inutiles
Règle fondamentale : tous les services internes sont inutiles et doivent être
désactivés.
Par exemple, pour INETD : désactiver tous les services de type internal
dans « /etc/inetd.conf » :
#daytime stream
#daytime dgram
#time
stream
#time
dgram
#echo
stream
#echo
dgram
#discard stream
#discard dgram
#chargen stream
#chargen dgram
tcp
udp
tcp
udp
tcp
udp
tcp
udp
tcp
udp
c
T.Besançon
(version 10.0)
Notes de la page 217 :
nowait
wait
nowait
wait
nowait
wait
nowait
wait
nowait
wait
root
root
root
root
root
root
root
root
root
root
internal
internal
internal
internal
internal
internal
internal
internal
internal
internal
Administration Unix
ARS 2007–2008 Tôme 3
217 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.25 R-Services
Chapitre 7 • Gestionnaires de services réseau : inetd, tcpd, xinetd
§7.25 • R-Services
Plusieurs services lancés par INETD et XINETD sont connus sous le nom
de R-services (remote services) :
service RLOGIND : connexion interactive à un système distant
service RSHD : lancement d’une commande sur un système distant
service RCPD : recopie de fichiers locaux vers des fichiers distants ou
vice-versa
c
T.Besançon
(version 10.0)
Notes de la page 218 :
Administration Unix
ARS 2007–2008 Tôme 3
218 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.26 R-service rlogind, R-commande rlogin
Chapitre 7 • Gestionnaires de services réseau : inetd, tcpd, xinetd
§7.26 • R-service rlogind, R-commande rlogin
(en anglais remote login daemon, remote login)
En général, le R-service a pour chemin : « /usr/sbin/in.rlogind » ou
« /usr/sbin/rlogind ».
Syntaxe de la R-commande : rlogin [-l user] nom-de-machine
% rlogin -l besancon serveur.example.com
Password: XXXXXXXX
Last login: Mon Sep 15 09:42:58 from 195.220.212.130
Sun Microsystems Inc.
SunOS 5.5
Generic November 1995
server%
A chaque fois que ce sera possible, préférer une connexion en SSH
(ici avec « ssh »).
c
T.Besançon
(version 10.0)
Notes de la page 219 :
Administration Unix
ARS 2007–2008 Tôme 3
219 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.26 R-service rlogind, R-commande rlogin
Contrôles d’accès (1)
Deux fichiers contrôlent les accès :
fichier système « /etc/hosts.equiv »
fichier personnel « $HOME/.rhosts »
Syntaxe commune aux deux fichiers :
format 1 : « hostname »
format 2 : « hostname username »
Deux cas de figure lors d’une connexion :
une ligne à l’un des deux formats autorise la connexion et la
connexion se fait alors sans demande de mot de passe
aucune ligne n’autorise la connexion et il y a alors demande du mot
de passe de l’utilisateur local
c
T.Besançon
(version 10.0)
Notes de la page 220 :
Administration Unix
ARS 2007–2008 Tôme 3
220 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.26 R-service rlogind, R-commande rlogin
Possibilité de mettre « + » à la place de n’importe quel champ :
signification « n’importe quelle machine »
signification « n’importe quel utilisateur »
Voir fonction C « ruserok() ».
c
T.Besançon
(version 10.0)
Notes de la page 221 :
Administration Unix
ARS 2007–2008 Tôme 3
221 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.26 R-service rlogind, R-commande rlogin
Contrôles d’accès (2) : Format « hostname »
Signification : les utilisateurs de la machine « hostname » sont autorisés à
se connecter au système sous le même nom sans demande de mot de
passe.
Ce format est utilisable dans « /etc/hosts.equiv » et dans les fichiers
personnels « $HOME/.rhosts ».
c
T.Besançon
(version 10.0)
Notes de la page 222 :
Administration Unix
ARS 2007–2008 Tôme 3
222 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.26 R-service rlogind, R-commande rlogin
• Par exemple, si le fichier « /etc/hosts.equiv » contient :
cerise.example.com
cela permet à un utilisateur « martin » de se connecter en RLOGIN
depuis la machine « cerise.example.com » sous l’identité locale
« martin » sans demande de mot de passe.
• Par exemple, si l’utilisateur « jean » a le fichier « $HOME/.rhosts »
suivant :
cerise.example.com
cela permet à l’utilisateur « jean » de se connecter en RLOGIN depuis la
machine « cerise.example.com » sous l’identité locale « jean » sans
demande de mot de passe.
c
T.Besançon
(version 10.0)
Notes de la page 223 :
Administration Unix
ARS 2007–2008 Tôme 3
223 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.26 R-service rlogind, R-commande rlogin
Contrôles d’accès (3) : Format « hostname username »
Signification : l’utilisateur « username » de la machine « hostname » est
autorisé à se connecter au système sans demande de mot de passe.
Si ce format est utilisé dans « $HOME/.rhosts », alors cela autorise un
utilisateur distant à se connecter sous le nom d’un utilisateur local.
Si ce format est utilisé dans « /etc/hosts.equiv » alors cela autorise un
utilisateur distant à se connecter sous le nom de n’importe quel utilisateur
local.
c
T.Besançon
(version 10.0)
Notes de la page 224 :
Administration Unix
ARS 2007–2008 Tôme 3
224 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.26 R-service rlogind, R-commande rlogin
• Par exemple, si l’utilisateur « jean » a le fichier « $HOME/.rhosts »
suivant :
cerise.example.com martin
cela permet à l’utilisateur « martin » de se connecter en RLOGIN depuis
la machine « cerise.example.com » sous l’identité locale « jean » sans
demande de mot de passe.
• Par exemple, si le fichier « /etc/hosts.equiv » contient :
cerise.example.com jean
cela permet à l’utilisateur « jean » de se connecter en RLOGIN depuis la
machine « cerise.example.com » sous n’importe quelle identité locale
sans demande de mot de passe. DANGEREUX.
c
T.Besançon
(version 10.0)
Notes de la page 225 :
Administration Unix
ARS 2007–2008 Tôme 3
225 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.26 R-service rlogind, R-commande rlogin
Problèmes :
Attention au contenu de « /etc/hosts.equiv ».
SunOS 4.x.y fournissait un fichier contenant « + + ».
Attention aux connexions root via le réseau.
Il faut interdire les connexions root via le réseau parce qu’elles sont
anonymes.
⇒
Vérifier « /etc/ttys » (ou équivalent « /etc/securettys » . . .) et
minimaliser le nombre de terminaux sécurisés.
Vérifier « ~root/.rhosts ». C’est une cible privilégiée des pirates qui
essayent d’y écrire « + + ».
Il n’y a pas de traces des connexions locales.
Au mieux, tcpd informe d’où vient la connexion mais pas de l’identité
prise sur la machine locale.
Remède : utiliser le package logiciel logdaemon URL
« ftp://ftp.porcupine.org/pub/security/logdaemon-5.8.tar.gz »
c
T.Besançon
(version 10.0)
Notes de la page 226 :
Administration Unix
ARS 2007–2008 Tôme 3
226 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.27 R-service rshd, R-commande rsh
Chapitre 7 • Gestionnaires de services réseau : inetd, tcpd, xinetd
§7.27 • R-service rshd, R-commande rsh
(en anglais remote shell daemon, remote shell)
En général, le R-service a pour chemin : « /usr/sbin/in.rshd » ou
« /usr/sbin/rshd ».
Syntaxe de la R-commande : rsh -l username hostname command
% rsh -l besancon server.example.com date
Sun Oct 12 15:20:28 MET DST 2003
c
T.Besançon
(version 10.0)
Notes de la page 227 :
Administration Unix
ARS 2007–2008 Tôme 3
227 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.27 R-service rshd, R-commande rsh
Si l’on ne précise pas de commande, on lance un shell en interactif.
% rsh server.example.com
Sun Microsystems Inc.
SunOS 5.10
You have new mail.
server%
Generic January 2005
A chaque fois que ce sera possible, préférer une connexion en SSH
(ici avec « ssh »).
c
T.Besançon
(version 10.0)
Notes de la page 228 :
Administration Unix
ARS 2007–2008 Tôme 3
228 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.27 R-service rshd, R-commande rsh
Contrôles d’accès
Les contrôles d’accès se font comme page 220 (chapitre sur RLOGIND)
sauf pour un point :
soit la connexion en RSH est explicitement autorisée par les fichiers
« /etc/hosts.equiv » ou « $HOME/.rhosts » et la connexion se
fait alors sans demande de mot de passe
soit la connexion n’est pas explicitement autorisée et elle est alors
refusée et on ne demande pas de mot de passe.
% rsh -l besancon server.example.com date
permission denied
c
T.Besançon
(version 10.0)
Notes de la page 229 :
Administration Unix
ARS 2007–2008 Tôme 3
229 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.28 R-service rcpd, R-commande rcp
Chapitre 7 • Gestionnaires de services réseau : inetd, tcpd, xinetd
§7.28 • R-service rcpd, R-commande rcp
(en anglais remote copy daemon, remote copy )
En général, le R-service a pour chemin : « /usr/sbin/in.rcpd » ou
« /usr/sbin/rcpd ».
Plusieurs syntaxes de la R-commande :
distant vers local : rcp [-r] user@machine:filename path
local vers distant : rcp [-r] path user@machine:filename
c
T.Besançon
(version 10.0)
Notes de la page 230 :
Administration Unix
ARS 2007–2008 Tôme 3
230 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.28 R-service rcpd, R-commande rcp
% rcp [email protected]:ananas.txt .
% ls -l ananas
-rw-r--r-1 besancon ars
15 Oct 12 15:18 ananas.txt
% rcp ananas.txt [email protected]:/tmp/cerise.txt
% rsh -l besancon server.example.com ls -l /tmp/cerise.txt
-rw-r--r-1 besancon ars
15 Oct 12 15:22 /tmp/cerise.txt
A chaque fois que ce sera possible, préférer une connexion en SSH
(ici avec « scp »).
c
T.Besançon
(version 10.0)
Notes de la page 231 :
Administration Unix
ARS 2007–2008 Tôme 3
231 / 707
7 Gestionnaires de services réseau : inetd, tcpd, xinetd
7.28 R-service rcpd, R-commande rcp
Contrôles d’accès
Les contrôles d’accès se font comme page 220 (chapitre sur RLOGIND)
sauf pour un point :
soit la connexion en RCP est explicitement autorisée par les fichiers
« /etc/hosts.equiv » ou « $HOME/.rhosts » et la connexion se
fait alors sans demande de mot de passe
soit la connexion n’est pas explicitement autorisée et elle est alors
refusée et on ne demande pas de mot de passe.
% rcp ananas.txt [email protected]:/tmp/banane.txt
permission denied
c
T.Besançon
(version 10.0)
Notes de la page 232 :
Administration Unix
ARS 2007–2008 Tôme 3
232 / 707
8 Protocoles de transferts de fichiers FTP, TFTP
Chapitre 8
Protocoles de transferts de fichiers FTP,
TFTP
c
T.Besançon
(version 10.0)
Notes de la page 233 :
Administration Unix
ARS 2007–2008 Tôme 3
233 / 707
8 Protocoles de transferts de fichiers FTP, TFTP
8.1 Protocole FTP, ftp, ftpd
Chapitre 8 • Protocoles de transferts de fichiers FTP, TFTP
§8.1 • Protocole FTP, ftp, ftpd
(en anglais File Transfer Protocol)
Une connexion via FTP nécessite que le service FTP soit activé au niveau
de inetd.conf :
ftp
stream
tcp
nowait
root
/usr/sbin/in.ftpd in.ftpd -l
Au niveau de « /etc/services », on voit 2 ports assignés au protocole
FTP :
ftp-data
ftp
20/tcp
21/tcp
Deux protocoles FTP en fait :
FTP actif (mode par défaut sous Windows)
FTP passif (mode par défaut sous Linux)
c
T.Besançon
(version 10.0)
Notes de la page 234 :
Administration Unix
ARS 2007–2008 Tôme 3
234 / 707
8 Protocoles de transferts de fichiers FTP, TFTP
8.1 Protocole FTP, ftp, ftpd
FTP actif
CLIENT
FTP
SERVEUR
FTP
FTP control connection
High port 1
port 21
FTP data connection
High port 2
c
T.Besançon
(version 10.0)
Notes de la page 235 :
port 20
Administration Unix
ARS 2007–2008 Tôme 3
235 / 707
8 Protocoles de transferts de fichiers FTP, TFTP
8.1 Protocole FTP, ftp, ftpd
Le protocole FTP est «complexe» car c’est un dialogue bidirectionnel :
Un client FTP se connecte sur le
port 21 (« ftp » de
« /etc/services ») du serveur
FTP et ce port 21 sert à envoyer
des commandes au serveur FTP.
dès que toutes les données sont
transférées.
client
Si les commandes nécessitent que
des données soient reçues
(commandes « dir », « get » par
exemple) ou transmises (« put »
par exemple) au serveur, le client
envoie une commande « PORT »
au serveur indiquant un port sur
lequel le serveur va créer une
connexion depuis le port 20
(« ftp-data » de
« /etc/services »).
serveur
connexion
port 21
PORT 33085
port 21
DIR
port 21
data
port 20
port 33085
La connexion FTP-DATA est close
c
T.Besançon
(version 10.0)
Notes de la page 236 :
Administration Unix
ARS 2007–2008 Tôme 3
236 / 707
8 Protocoles de transferts de fichiers FTP, TFTP
8.1 Protocole FTP, ftp, ftpd
Exemple :
% ftp -v -d localhost
Connected to localhost.
220 cerise FTP server (SunOS 5.8) ready.
Name (localhost:besancon): besancon
---> USER besancon
331 Password required for besancon.
Password:
---> PASS XXXXXXXXX
230 User besancon logged in.
ftp> lcd /tmp
Local directory now /tmp
ftp> cd /etc
---> CWD /etc
250 CWD command successful.
ftp> get motd
---> PORT 127,0,0,1,129,61
200 PORT command successful.
---> RETR motd
150 ASCII data connection for motd (127.0.0.1,33085) (54 bytes).
226 ASCII Transfer complete.
local: motd remote: motd
55 bytes received in 0.00086 seconds (62.53 Kbytes/s)
ftp> quit
---> QUIT
221 Goodbye.
c
T.Besançon
(version 10.0)
Notes de la page 237 :
Administration Unix
ARS 2007–2008 Tôme 3
237 / 707
8 Protocoles de transferts de fichiers FTP, TFTP
8.1 Protocole FTP, ftp, ftpd
FTP passif
CLIENT
FTP
SERVEUR
FTP
FTP control connection
High port 1
port 21
FTP data connection
High port 2
c
T.Besançon
(version 10.0)
Notes de la page 238 :
High port 3
Administration Unix
ARS 2007–2008 Tôme 3
238 / 707
8 Protocoles de transferts de fichiers FTP, TFTP
8.1 Protocole FTP, ftp, ftpd
Règles pour un client FTP protégé par un firewall
Method
Source
Source Destination
Destination Connection
address
port
address
port
Allow outgoing control connections to server
Control
FTP client High
FTP server
21
New
channel or network
FTP server 21
FTP client or High
Established
network
Allow the client to establish data channels to remote server
Active
FTP server 20
FTP client or High
New
FTP
network
FTP client High
FTP server
20
Established
or network
Passive
FTP client High
FTP server
High
New
FTP
or network
FTP server High
FTP client or High
Established
network
c
T.Besançon
(version 10.0)
Notes de la page 239 :
Administration Unix
ARS 2007–2008 Tôme 3
239 / 707
8 Protocoles de transferts de fichiers FTP, TFTP
8.1 Protocole FTP, ftp, ftpd
Règles pour un serveur FTP protégé par un firewall
Method
Source
Source Destination
Destination Connection
address
port
address
port
Allow incoming control connections to server
Control
FTP client High
FTP server
21
New
channel or network
FTP server 21
FTP client or High
Established
network
Allow the server to establish data channels to remote client
Active
FTP server 20
FTP client or High
New
FTP
network
FTP client High
FTP server
20
Established
or network
Passive
FTP client High
FTP server
High
New
FTP
or network
FTP server High
FTP client or High
Established
network
c
T.Besançon
(version 10.0)
Notes de la page 240 :
Administration Unix
ARS 2007–2008 Tôme 3
240 / 707
8 Protocoles de transferts de fichiers FTP, TFTP
8.1 Protocole FTP, ftp, ftpd
Contrôle d’accès
Au niveau contrôle d’accès, les implémentations de base proposent :
le fichier « /etc/ftpusers » contient les noms des utilisateurs non
autorisés à utiliser ftp. « root » doit être exclus comme d’habitude.
le fichier « /etc/shells » contient les shells des utilisateurs
autorisés à utiliser ftp.
Moralité : pour interdire un utilisateur à utiliser FTP :
indiquer le login de la personne au niveau de « /etc/ftpusers »
faire en sorte que le shell de la personne ne soit pas dans
« /etc/shells »
Pour configurer un FTP anonyme, se reporter aux deux FAQ :
« ftp://ftp.lip6.fr/pub/doc/faqs/ftp-list/faq.gz »
« ftp://ftp.lip6.fr/pub/doc/faqs/computer-security/anonymous-ftp-faq.gz »
c
T.Besançon
(version 10.0)
Notes de la page 241 :
Administration Unix
ARS 2007–2008 Tôme 3
241 / 707
8 Protocoles de transferts de fichiers FTP, TFTP
8.1 Protocole FTP, ftp, ftpd
Implémentations de serveurs FTP
Outre les versions fournies par les constructeurs, il y a plusieurs démons du
domaine public plus performants :
« http://www.wu-ftpd.org/ »
« http://www.proftpd.org/ »
« http://vsftpd.beasts.org/ »
c
T.Besançon
(version 10.0)
Notes de la page 242 :
Administration Unix
ARS 2007–2008 Tôme 3
242 / 707
8 Protocoles de transferts de fichiers FTP, TFTP
8.2 Protocole TFTP, tftp, tftpd
Chapitre 8 • Protocoles de transferts de fichiers FTP, TFTP
§8.2 • Protocole TFTP, tftp, tftpd
TFTP : Trivial File Transfer Protocol
Une connexion via tftp nécessite que le service tftp soit activé au niveau de
inetd.conf :
tftp
dgram
udp
wait
root
/usr/etc/in.tftpd
in.tftpd -s /tftpboot
TFTP, c’est en gros FTP sans pouvoir lister les directories distants et ne
nécessitant pas de mot de passe pour récupérer ou déposer des fichiers !
En fait, celui qui utilise TFTP sait ce qu’il veut récupérer et n’a pas besoin
de lister le directory. Par exemple, récupération d’un fichier de
configuration pour :
terminal X
imprimante HP réseau
c
T.Besançon
(version 10.0)
Notes de la page 243 :
Administration Unix
ARS 2007–2008 Tôme 3
243 / 707
8 Protocoles de transferts de fichiers FTP, TFTP
8.2 Protocole TFTP, tftp, tftpd
On récupére les fichiers dans la sous arborescence /tftpboot.
Le danger : un démon tftpd mal configuré permet de récupérer tout fichier
hors de « /tftpboot ». Le fichier « /etc/passwd » par exemple.
⇒ vérifier les options de lancement.
Traditionnellement utiliser l’option « -s » au niveau de
« /etc/inetd.conf » :
tftp
dgram
udp
wait
c
T.Besançon
(version 10.0)
Notes de la page 244 :
root
/usr/etc/in.tftpd
Administration Unix
in.tftpd -s /tftpboot
ARS 2007–2008 Tôme 3
244 / 707
8 Protocoles de transferts de fichiers FTP, TFTP
8.2 Protocole TFTP, tftp, tftpd
A noter : il est parfois utile de faire le lien symbolique suivant :
# cd /tftpboot
# ln -s . tftpboot
car des requêtes portent parfois sur des noms du type
« /tftpboot/fichier ».
% cd /tftpboot
% ls -l
drwxr-xr-x 2 root
drwxr-sr-x 7 root
drwxr-sr-x 2 root
drwxr-sr-x 4 root
drwxr-sr-x 2 root
drwxr-xr-x 2 root
lrwxrwxrwx 1 root
drwxr-sr-x 3 root
wheel
wheel
wheel
wheel
wheel
wheel
wheel
wheel
c
T.Besançon
(version 10.0)
Notes de la page 245 :
1536
512
512
512
512
512
1
512
Jan 4 15:02 cisco/
Nov 10 1997 hds/
Sep 5 1996 hp/
Dec 5 1995 ncd/
Mar 19 1997 plaintree/
Aug 1 1997 sun/
May 8 1998 tftpboot -> .
Feb 9 1994 usr/
Administration Unix
ARS 2007–2008 Tôme 3
245 / 707
9 Remote Procedure Call (RPC)
Chapitre 9
Remote Procedure Call (RPC)
c
T.Besançon
(version 10.0)
Notes de la page 246 :
Administration Unix
ARS 2007–2008 Tôme 3
246 / 707
9 Remote Procedure Call (RPC)
9.1 Introduction
Chapitre 9 • Remote Procedure Call (RPC)
§9.1 • Introduction
Les Remote Procedure Calls (RPC) sont nés dans les années 1985 - 1990 :
diminution des coûts des matériels
augmentation des puissances de calcul
augmentation des capacités de stockage
Bref, passage à une informatique de systèmes répartis et de systèmes
distribués (utiliser le matériel le plus performant pour une tâche donnée,
accroître la disponibilité des systèmes).
c
T.Besançon
(version 10.0)
Notes de la page 247 :
Administration Unix
ARS 2007–2008 Tôme 3
247 / 707
9 Remote Procedure Call (RPC)
9.1 Introduction
Principe d’un programme classique :
% prog.exe
int main(int argc, char *argv[])
{
int n;
n = coucou();
int coucou()
{
return(33);
}
exit(0);
}
c
T.Besançon
(version 10.0)
Notes de la page 248 :
Administration Unix
ARS 2007–2008 Tôme 3
248 / 707
9 Remote Procedure Call (RPC)
9.1 Introduction
Principe d’un programme réparti utilisant une Remote Procedure Call
(RPC) :
% prog.exe
int main(int argc, char *argv[])
{
int n;
n = coucou();
int coucou()
{
return(33);
}
exit(0);
}
RESEAU
c
T.Besançon
(version 10.0)
Notes de la page 249 :
Administration Unix
ARS 2007–2008 Tôme 3
249 / 707
9 Remote Procedure Call (RPC)
9.2 Protocole External Data Representation (XDR)
Chapitre 9 • Remote Procedure Call (RPC)
§9.2 • Protocole External Data Representation (XDR)
Rappel sur les processeurs :
processeurs big endian
processeurs little endian
0x01020304 =
0x01
0x01020304 =
0x02
0x03
0x04
0x04
0x03
0x02
@ 0xNNNN + 3
@ 0xNNNN + 3
@ 0xNNNN +2
@ 0xNNNN +2
@ 0xNNNN + 1
@ 0xNNNN + 1
@ 0xNNNN
c
T.Besançon
(version 10.0)
Notes de la page 250 :
0x01
@ 0xNNNN
Administration Unix
ARS 2007–2008 Tôme 3
250 / 707
9 Remote Procedure Call (RPC)
9.2 Protocole External Data Representation (XDR)
Nécessité de choisir un encodage lors des échanges RPC !
⇒ Encodage big-endian retenu
Cf fonctions C « ntohs() » (network to host short), « ntohl() »
(network to host long), « htons() » (host to network short),
« htonl() » (host to network long).
⇒ Encodage des données plus générales (structures, tableaux, etc.) =
XDR
Les RPC utilisent massivement XDR.
c
T.Besançon
(version 10.0)
Notes de la page 251 :
Administration Unix
ARS 2007–2008 Tôme 3
251 / 707
9 Remote Procedure Call (RPC)
9.3 Modèle Client / Serveur RPC
Chapitre 9 • Remote Procedure Call (RPC)
§9.3 • Modèle Client / Serveur RPC
Les Remote Procedure Calls (RPC) utilisent un modèle client / serveur :
Le client est le processus qui appelle une procédure distante.
Le serveur est le processus qui réalise la Remote Procedure.
La communication se fait via TCP.
processus local
processus distant
CLIENT
PROCEDURE
STUB client
STUB serveur
RPC runtime
RPC runtime
API
RPC
c
T.Besançon
(version 10.0)
Notes de la page 252 :
Administration Unix
ARS 2007–2008 Tôme 3
252 / 707
9 Remote Procedure Call (RPC)
9.4 Localisation des procédures RPC : portmapper, rpcbind
Chapitre 9 • Remote Procedure Call (RPC)
§9.4 • Localisation des procédures RPC : portmapper, rpcbind
L’appel à la procédure distante nécessite de localiser la procédure distante
(numéro de port TCP) sur la machine distante.
Le processus « portmapper » (autre nom possible : « rpcbind ») joue le
rôle de serveurs de noms RPC. Il écoute sur le port TCP 111.
Principe :
une procédure distante s’enregistre auprès du portmapper
on demande au portmapper où se trouve la procédure
on appelle ensuite la procédure
Le processus « portmapper » (autre nom possible : « rpcbind ») doit
être démarré avant de lancer des processus enregistrant des RPC (voir
scripts de démarrage).
c
T.Besançon
(version 10.0)
Notes de la page 253 :
Administration Unix
ARS 2007–2008 Tôme 3
253 / 707
9 Remote Procedure Call (RPC)
9.4 Localisation des procédures RPC : portmapper, rpcbind
processus
portmapper
1
Ou se trouve ananas() v2 ?
port 111
4
2
ananas() v2 == port 3248
ananas(), v2 = port 3248
banane(), v2 = port 2147
banane(), v3 = port 2148
etc.
3
processus 927
5
c
T.Besançon
(version 10.0)
Notes de la page 254 :
port 3248
processus 958
port 2147
port 2148
procedure
ananas()
procedure
banane()
version 2
version 2, version 3
Administration Unix
ARS 2007–2008 Tôme 3
254 / 707
9 Remote Procedure Call (RPC)
9.5 Liste des procédures RPC : rpcinfo
Chapitre 9 • Remote Procedure Call (RPC)
§9.5 • Liste des procédures RPC : rpcinfo
(en anglais RPC information)
Syntaxe : « rpcinfo [-p] [-s] hostname »
Par exemple :
% rpcinfo -s
rpcinfo -s
program version(s)
100000 2,3,4
100021 4,3,2,1
100024 1
100001 4,3,2
100002 3,2
100011 1
100005 3,2,1
100003 4,3,2
100227 3,2
...
c
T.Besançon
(version 10.0)
Notes de la page 255 :
netid(s)
udp,tcp,ticlts,ticotsord,ticots
tcp,udp
ticots,ticotsord,ticlts,tcp,udp
udp,ticlts
udp,ticlts,tcp,ticotsord,ticots
udp,ticlts
ticots,ticotsord,tcp,ticlts,udp
tcp,udp
tcp,udp
Administration Unix
service
rpcbind
nlockmgr
status
rstatd
rusersd
rquotad
mountd
nfs
nfs_acl
ARS 2007–2008 Tôme 3
255 / 707
o
s
1
s
s
s
s
s
1
1
9 Remote Procedure Call (RPC)
% rpcinfo -p
program vers proto
100000
4
tcp
100000
3
tcp
100000
2
tcp
100000
4
udp
100000
3
udp
100000
2
udp
100021
1
udp
100021
2
udp
100021
3
udp
100021
4
udp
100021
1
tcp
100021
2
tcp
100021
3
tcp
100021
4
tcp
...
c
T.Besançon
(version 10.0)
Notes de la page 256 :
port
111
111
111
111
111
111
4045
4045
4045
4045
4045
4045
4045
4045
9.5 Liste des procédures RPC : rpcinfo
service
rpcbind
rpcbind
rpcbind
rpcbind
rpcbind
rpcbind
nlockmgr
nlockmgr
nlockmgr
nlockmgr
nlockmgr
nlockmgr
nlockmgr
nlockmgr
Administration Unix
ARS 2007–2008 Tôme 3
256 / 707
9 Remote Procedure Call (RPC)
9.6 Contrôle d’accès
Chapitre 9 • Remote Procedure Call (RPC)
§9.6 • Contrôle d’accès
Avec LINUX est apparu un contrôle d’accès au niveau de PORTMAP via
sa compilation avec la librairie des TCPWRAPPERS.
Les contrôles d’accès se font donc comme page 199 via
« /etc/hosts.allow ».
c
T.Besançon
(version 10.0)
Notes de la page 257 :
Administration Unix
ARS 2007–2008 Tôme 3
257 / 707
10 Partage de fichiers NFS
Chapitre 10
Partage de fichiers NFS
c
T.Besançon
(version 10.0)
Notes de la page 258 :
Administration Unix
ARS 2007–2008 Tôme 3
258 / 707
10 Partage de fichiers NFS
10.1 Introduction
Chapitre 10 • Partage de fichiers NFS
§10.1 • Introduction
NFS ≡ Network File System ≡ c’est l’accès de façon transparente pour
l’utilisateur à des fichiers résidants sur des machines distantes.
Actuellement, NFS version 2 la plus répandue.
NFS version 3 existe et est disponible mais il existe des incompatibilités
d’implémentations entre constructeurs.
NFS version 4 est en étude. Cf http://www.nfsv4.org ou
http://www.citi.umich.edu/projects/nfsv4/
c
T.Besançon
(version 10.0)
Notes de la page 259 :
Administration Unix
ARS 2007–2008 Tôme 3
259 / 707
10 Partage de fichiers NFS
10.2 Principes de NFS
Chapitre 10 • Partage de fichiers NFS
§10.2 • Principes de NFS
Client
Client routines
Serveur
System calls
System calls
VNODE / VFS
VNODE / VFS
NFS File system
RPC / XDR
RPC / XDR
Server routines
RPC / XDR
NFS File system
RPC / XDR
Reseau
c
T.Besançon
(version 10.0)
Notes de la page 260 :
Administration Unix
ARS 2007–2008 Tôme 3
260 / 707
10 Partage de fichiers NFS
10.2 Principes de NFS
On a deux aspects dans NFS : client NFS et serveur NFS.
Le client NFS fait tourner les démons « biod » (ou « nfsiod »),
« rpc.lockd » et « rpc.statd ».
Le serveur NFS fait tourner les démons « portmap » (ou
« rpcbind »), « mountd » (ou « rpc.mountd »), « nfsd »,
« rpc.statd » et « rpc.lockd ».
CLIENT NFS
# mount
SERVEUR NFS
% prog
rpc.statd
rpc.lockd
portmap (rpcbind)
portmap (rpcbind)
rpc.mountd
nfsd
rpc.statd
rpc.lockd
RESEAU
c
T.Besançon
(version 10.0)
Notes de la page 261 :
Administration Unix
ARS 2007–2008 Tôme 3
261 / 707
10 Partage de fichiers NFS
10.2 Principes de NFS
Montage NFS : filehandle
SERVEUR NFS
/home
rpc.mountd
autorisations
d’exportation :
/etc/exports
0
3
calcul du
filehandle
RESEAU
2
# mount server:/home /mnt
1
CLIENT NFS
c
T.Besançon
(version 10.0)
Notes de la page 262 :
4
/mnt
+
filehandle
(= fh0)
/
kernel
Administration Unix
ARS 2007–2008 Tôme 3
262 / 707
10 Partage de fichiers NFS
10.2 Principes de NFS
Ouverture d’un fichier NFS : utilisations des filehandles
SERVEUR NFS
Serveur NFS / port 2049
lookup(jardin, fh0)
fh1
lookup(cerise.txt, fh1)
fh2
kernel
RESEAU
% prog.exe
1
2 3 4 5
open(/mnt/jardin/cerise.txt)
kernel
CLIENT NFS
c
T.Besançon
(version 10.0)
Notes de la page 263 :
Administration Unix
ARS 2007–2008 Tôme 3
263 / 707
10 Partage de fichiers NFS
10.2 Principes de NFS
Lecture/Ecriture d’un fichier NFS : utilisations des filehandles
SERVEUR NFS
Serveur NFS / port 2049
read(fh2, 0, 1024)
read(fh2, ... , 1024)
kernel
RESEAU
2
% prog.exe
read() / write()
1
...
kernel
CLIENT NFS
c
T.Besançon
(version 10.0)
Notes de la page 264 :
Administration Unix
ARS 2007–2008 Tôme 3
264 / 707
10 Partage de fichiers NFS
10.2 Principes de NFS
Verrouillage NFS (1) : fonctionnement normal
SERVEUR NFS
/etc/sm
3
3
rpc.lockd
3
rpc.statd
2
RESEAU
rpc.lockd
CLIENT NFS
rpc.statd
1
fcntl() lockf()
% prog.exe
c
T.Besançon
(version 10.0)
Notes de la page 265 :
Administration Unix
ARS 2007–2008 Tôme 3
265 / 707
10 Partage de fichiers NFS
10.2 Principes de NFS
Verrouillage NFS (2) : reboot du client NFS
SERVEUR NFS
/etc/sm
3
2
rpc.lockd
2
rpc.statd
1
RESEAU
rpc.lockd
CLIENT NFS
c
T.Besançon
(version 10.0)
Notes de la page 266 :
rpc.statd
reboot du client NFS termine
Administration Unix
ARS 2007–2008 Tôme 3
266 / 707
10 Partage de fichiers NFS
10.2 Principes de NFS
Verrouillage NFS (3) : reboot du serveur NFS
SERVEUR NFS
reboot du serveur
NFS termine
/etc/sm
1
rpc.lockd
rpc.statd
4?
2
RESEAU
nouvelle demande
des verrous NFS ?
CLIENT NFS
rpc.lockd
rpc.statd
3
4?
perte des verrous NFS
% prog.exe
c
T.Besançon
(version 10.0)
Notes de la page 267 :
Administration Unix
ARS 2007–2008 Tôme 3
267 / 707
10 Partage de fichiers NFS
10.2 Principes de NFS
Suppression de fichier NFS ouvert
exemple.txt
.nfsXXXXXXXXXX
rm
read
write
c
T.Besançon
(version 10.0)
Notes de la page 268 :
Administration Unix
ARS 2007–2008 Tôme 3
268 / 707
10 Partage de fichiers NFS
10.3 Lancement de NFS
Chapitre 10 • Partage de fichiers NFS
§10.3 • Lancement de NFS
DIGITAL UNIX
On règle l’aspect NFS par la commande « nfssetup » qui modifie
alors le fichier « /etc/rc.config » :
...
NFS_CONFIGURED="1"
export NFS_CONFIGURED
NFSSERVING="1"
export NFSSERVING
NONROOTMOUNTS="1"
export NONROOTMOUNTS
NUM_TCPD="8"
export NUM_TCPD
NUM_UDPD="8"
export NUM_UDPD
NUM_NFSIOD="7"
export NUM_NFSIOD
NFSLOCKING="1"
export NFSLOCKING
...
c
T.Besançon
(version 10.0)
Notes de la page 269 :
Administration Unix
ARS 2007–2008 Tôme 3
269 / 707
10 Partage de fichiers NFS
10.3 Lancement de NFS
Linux
Au niveau de « /etc/sysconfig/network », on indique via la
variable « NETWORKING » si l’on veut les services réseau (dont NFS).
Le script de démarrage « /etc/rc.d/rc3.d/S15nfsfs » suivant la
valeur de NETWORKING lance ou pas un client NFS.
Le script de démarrage « /etc/rc.d/rc3.d/S60nfs » suivant la
valeur de NETWORKING et suivant l’existence de
« /etc/exports » lance ou pas un serveur NFS.
Solaris
La lecture de « /etc/init.d/nfs.client » renseigne sur la façon
de démarrer un client NFS.
La lecture de « /etc/init.d/nfs.server » apprend que la
machine démarre un serveur NFS s’il existe le fichier d’exportation
« /etc/dfs/dfstab ».
c
T.Besançon
(version 10.0)
Notes de la page 270 :
Administration Unix
ARS 2007–2008 Tôme 3
270 / 707
10 Partage de fichiers NFS
10.4 Exportation NFS, /etc/exports, /etc/dfs/dfstab
Chapitre 10 • Partage de fichiers NFS
§10.4 • Exportation NFS, /etc/exports, /etc/dfs/dfstab
Le partage de disques repose sur l’exportation par une machine
d’arborescences.
L’exportation peut être en read-only ou en read-write.
L’exportation se fait au niveau du fichier /etc/exports en général.
Suivant l’UNIX, la syntaxe n’est pas la même :
DIGITAL UNIX : fichier « /etc/exports » :
/var/spool/mail -access=client-nfs.example.com
Linux : fichier « /etc/exports » :
/home
/zip
client-nfs.example.com(rw)
client-nfs.example.com(rw)
Solaris : fichier « /etc/dfs/dfstab » :
# pathname
/export/home
c
T.Besançon
(version 10.0)
Notes de la page 271 :
resource fstype specific_options description
nfs
rw=.example.com
Administration Unix
ARS 2007–2008 Tôme 3
271 / 707
10 Partage de fichiers NFS
10.4 Exportation NFS, /etc/exports, /etc/dfs/dfstab
Comment faire prendre connaissance de modifications dans le fichier
« /etc/exports » (ou équivalent) ?
Méthode 1 : on ne fait rien ; le fichier « /etc/exports » est consulté
lors de toute demande de montage de disque.
Par exemple DIGITAL UNIX.
Méthode 2 : on envoie un signal au programme « mountd » gérant les
montages :
# kill -HUP ‘cat /var/run/mountd.pid‘
Par exemple Linux, FreeBSD.
Méthode 3 : une commande spécialisée existe : share, shareall
(unshare, unshareall) sur Solaris
# unshareall
# showmount -e
no exported file systems for serveur-nfs.example.com
# shareall
# showmount -e
export list for serveur-nfs.example.com:
/infosystems client-nfs.example.com
c
T.Besançon
(version 10.0)
Notes de la page 272 :
Administration Unix
ARS 2007–2008 Tôme 3
272 / 707
10 Partage de fichiers NFS
10.5 Exportation root NFS
Chapitre 10 • Partage de fichiers NFS
§10.5 • Exportation root NFS
Le problème principal est celui de l’équivalence root par NFS : quels droits
possède le root d’une machine cliente NFS sur les fichiers exportés par un
serveur NFS ?
Un fichier de droits « rw------- » sur le serveur NFS (où le root peut le
lire) peut-il être lu par root sur un client NFS ?
La réponse est fonction du contexte mais cela se paramètre au niveau de
« /etc/exports ». Une requête émanant de root sera sauf précision
contraire convertie au nom de l’utilisateur « nobody » :
% grep nobody /etc/passwd
nobody:*:65534:65534:Unprivileged user:/nonexistent:/sbin/nologin
(attention : parfois c’est l’utilisateur « nfsnobody » mais le principe reste
le même)
c
T.Besançon
(version 10.0)
Notes de la page 273 :
Administration Unix
ARS 2007–2008 Tôme 3
273 / 707
10 Partage de fichiers NFS
10.5 Exportation root NFS
Exemple de la conversion de l’UID lors de la requête (la partition montée
est exportée sans droit root NFS) :
# mount -t nfs serveur-nfs.example.com:/adm/backup/arch /mnt
# id
uid=0(root) gid=0(wheel) groups=0(wheel),1(daemon),2(kmem)
# cd /mnt
# df .
Filesystem
1024-blocks Used Available Capacity Mounted on
serveur-nfs.example.com:/adm/backup/arch
1572045 1377401
37440
97%
/mnt
# touch test.txt
# ls -l
total 0
-rw------1 root
daemon
75 Feb 3 15:01 motd
-rw-r--r-1 nobody
nogroup
0 Feb 3 14:59 test.txt
# cat motd
cat: motd: Permission denied
c
T.Besançon
(version 10.0)
Notes de la page 274 :
Administration Unix
ARS 2007–2008 Tôme 3
274 / 707
10 Partage de fichiers NFS
10.5 Exportation root NFS
Exportation avec root NFS
Mêmes fichiers que précédemment :
exemple sur DIGITAL UNIX :
/var/spool/mail -root=client.example.com,access=client.example.com
exemple sur Linux :
/var/spool/mail client.example.com(rw,no_root_squash)
exemple sur Solaris :
/export/home
-
c
T.Besançon
(version 10.0)
Notes de la page 275 :
nfs
rw=.example.com,root=client.example.com
Administration Unix
ARS 2007–2008 Tôme 3
275 / 707
10 Partage de fichiers NFS
10.5 Exportation root NFS
Exportation sans root NFS
Mêmes fichiers que précédemment :
exemple sur DIGITAL UNIX :
/var/spool/mail -access=client.example.com
exemple sur Linux :
/var/spool/mail client.example.com(rw,root_squash)
exemple sur Solaris :
...
/opt
/usr/local
/var/mail
-
c
T.Besançon
(version 10.0)
Notes de la page 276 :
nfs
nfs
nfs
rw=client.example.com
rw=.example.com
rw=.example.com
Administration Unix
ARS 2007–2008 Tôme 3
276 / 707
10 Partage de fichiers NFS
10.6 Règle de non transitivité NFS
Chapitre 10 • Partage de fichiers NFS
§10.6 • Règle de non transitivité NFS
Il n’y a pas de transitivité NFS.
Si A exporte « /partition » à B
Si B monte « /partition » en « /partition2 » et exporte
« /partition2 » à C
alors C n’a pas accès au contenu du « /partition » initial !
Sinon il n’y aurait aucune sécurité, aucun contrôle possible d’exportation.
c
T.Besançon
(version 10.0)
Notes de la page 277 :
Administration Unix
ARS 2007–2008 Tôme 3
277 / 707
10 Partage de fichiers NFS
10.7 Montage NFS manuel
Chapitre 10 • Partage de fichiers NFS
§10.7 • Montage NFS manuel
Syntaxe usuelle :
mount -t nfs serveur:/arborescence /point/montage
# mount -t nfs serveur-nfs.example.com:/export/home /mnt
# df /mnt
Filesystem
1k-blocks
Used Available Use% Mounted on
serveur-nfs.example.com:/export/home
1015695
566015
388739 59% /mnt
# umount /mnt
c
T.Besançon
(version 10.0)
Notes de la page 278 :
Administration Unix
ARS 2007–2008 Tôme 3
278 / 707
10 Partage de fichiers NFS
10.8 Montage NFS automatique
Chapitre 10 • Partage de fichiers NFS
§10.8 • Montage NFS automatique
Les montages automatiques se règlent au niveau de /etc/fstab (ou
équivalent) :
...
serveur-nfs.example.com:/export/home /mnt nfs hard,intr
...
0
0
La syntaxe est celle montrée ci dessus sur tous les systèmes UNIX utilisant
un fichier « /etc/fstab ».
Une fois le fichier « /etc/fstab » configuré, on peut faire les choses
suivantes :
1
Monter une partition distante bien précise :
# mount /users
2
Monter toutes les partitions distantes :
# mount -t nfs -v -a
c
T.Besançon
(version 10.0)
Notes de la page 279 :
Administration Unix
ARS 2007–2008 Tôme 3
279 / 707
10 Partage de fichiers NFS
10.9 Option de montage NFS soft
Chapitre 10 • Partage de fichiers NFS
§10.9 • Option de montage NFS soft
Option de montage « soft » : si pour une raison ou pour une autre, les
opérations RPC implantant la requête NFS viennent à échouer, cette
requête NFS échoue elle aussi.
On peut apparenter cette situation à celle d’un disque local tombant en
panne.
Une manifestation de ce problème est qu’il peut apparaître des blocs
remplis de caractères NULL dans des fichiers nouvellement écrits à travers
NFS sur une partition qui aura montré des problèmes.
c
T.Besançon
(version 10.0)
Notes de la page 280 :
Administration Unix
ARS 2007–2008 Tôme 3
280 / 707
10 Partage de fichiers NFS
10.10 Option de montage NFS hard
Chapitre 10 • Partage de fichiers NFS
§10.10 • Option de montage NFS hard
Option de montage « hard » : si pour une raison ou pour une autre, les
opérations RPC implantant la requête NFS viennent à échouer, cette
requête NFS est soumise à nouveau et cela jusqu’à ce qu’elle aboutisse.
On peut apparenter cette situation à celle d’un disque local très lent.
Pour éviter que dans le cas hard, la requête NFS ne soit transmise ad
vitam eternam, on peut faire le montage en mode hard,intr ce qui
autorise son interruption au clavier ou via des envois de signaux.
En pratique, on utilisera toujours les montages hard,intr pour les
montages des partitions auxquelles on accède en lecture/écriture.
c
T.Besançon
(version 10.0)
Notes de la page 281 :
Administration Unix
ARS 2007–2008 Tôme 3
281 / 707
10 Partage de fichiers NFS
10.11 Vérification des exportations : showmount
Chapitre 10 • Partage de fichiers NFS
§10.11 • Vérification des exportations : showmount
En cas de problème dans le montage NFS d’une partition on peut vérifier
d’abord si l’exportation indispensable est déjà assurée.
La commande à utiliser est « showmount -e » :
% showmount -e serveur-nfs.example.com
Export list for serveur-nfs.example.com:
/export/home .example.com
/opt
client-nfs.example.com
/usr/local
.example.com
/var/mail
.example.com
c
T.Besançon
(version 10.0)
Notes de la page 282 :
Administration Unix
ARS 2007–2008 Tôme 3
282 / 707
10 Partage de fichiers NFS
10.12 Vérification des exportations : rpcinfo
Chapitre 10 • Partage de fichiers NFS
§10.12 • Vérification des exportations : rpcinfo
On peut aussi vérifier à distance si le serveur NFS fait tourner le démon
mountd via la commande « rpcinfo ».
% rpcinfo -p serveur-nfs.example.com | grep mount
100005
1
udp 32843 mountd
100005
2
udp 32843 mountd
100005
3
udp 32843 mountd
100005
1
tcp 32798 mountd
100005
2
tcp 32798 mountd
100005
3
tcp 32798 mountd
c
T.Besançon
(version 10.0)
Notes de la page 283 :
Administration Unix
ARS 2007–2008 Tôme 3
283 / 707
10 Partage de fichiers NFS
10.13 Messages d’erreur NFS
Chapitre 10 • Partage de fichiers NFS
§10.13 • Messages d’erreur NFS
Un message d’erreur classique prend la forme :
NFS write error: on host serveur-nfs.example.com remote file
system full
Parfois c’est hermétique comme message :
NFS write error 60 on host nfs-client.example.com fh 716 1 a0000
cdbe 66b10eac a0000 1d00 5fdbece5
Pour le décoder, se reporter à « <sys/errno.h> ».
Ici on déduit :
#define ETIMEDOUT
c
T.Besançon
(version 10.0)
Notes de la page 284 :
60
/* Connection timed out */
Administration Unix
ARS 2007–2008 Tôme 3
284 / 707
10 Partage de fichiers NFS
10.14 Automounter
Chapitre 10 • Partage de fichiers NFS
§10.14 • Automounter
Les montages rencontrés jusqu’à présent sont permanents.
Un automounter rend les montages temporaires : un montage ne dure
guère que le temps nécessaire ; quand il est nécessaire, on monte la
partition distante que l’on démonte quand on n’en a plus besoin.
Il existe 3 automounters :
« automount » fourni par les constructeurs (et d’origine SUN)
« amd » ; version logiciel libre dont le développement stagne
ftp://ftp.cs.columbia.edu/pub/amd
« am-utils », bâti sur la base de « amd »
http://www.cs.columbia.edu/~ezk/am-utils/
c
T.Besançon
(version 10.0)
Notes de la page 285 :
Administration Unix
ARS 2007–2008 Tôme 3
285 / 707
10 Partage de fichiers NFS
10.15 Machines diskless
Chapitre 10 • Partage de fichiers NFS
§10.15 • Machines diskless
Une machine diskless est une machine UNIX sans disque dur local.
Principe :
1
La machine UNIX est mise sous tension.
2
La machine UNIX envoie sur le réseau son adresse ethernet (MAC
address). Par exemple via PXE sur des cartes réseau récentes.
3
La machine récupére son adresse IP et on lui indique où télécharger un
noyau et comment. Par exemple renseignements renvoyés par DHCP.
4
La machine télécharge le noyau. Par exemple par TFTP.
5
Le noyau monte par NFS la partition de « / ».
6
Le programme « init » prend la main et réalise les opérations de
montage des partitions indiquées dans « /etc/fstab ». Ici les
partitions seront donc montées par NFS.
c
T.Besançon
(version 10.0)
Notes de la page 286 :
Administration Unix
ARS 2007–2008 Tôme 3
286 / 707
11 Synchronisation de fichiers
Chapitre 11
Synchronisation de fichiers
c
T.Besançon
(version 10.0)
Notes de la page 287 :
Administration Unix
ARS 2007–2008 Tôme 3
287 / 707
11 Synchronisation de fichiers
11.1 Introduction
Chapitre 11 • Synchronisation de fichiers
§11.1 • Introduction
Contexte : deux ou plusieurs machines qui ne peuvent pas partager de
fichiers par NFS.
Exemples :
un ordinateur portable et une machine de bureau
deux ordinateurs reliés par une liaison intermittente comme une
liaison téléphonique PPP
etc.
La synchronisation manuelle est pénible à faire.
Plusieurs logiciels automatisent la synchronisation. Reste à les lancer au
bon moment (cf CRON) et à paramétrer ce que l’on doit synchroniser.
c
T.Besançon
(version 10.0)
Notes de la page 288 :
Administration Unix
ARS 2007–2008 Tôme 3
288 / 707
11 Synchronisation de fichiers
11.2 Synchronisation de fichiers UNIX via rdist
Chapitre 11 • Synchronisation de fichiers
§11.2 • Synchronisation de fichiers UNIX via rdist
RDIST est un programme de distribution de fichiers sur des machines
distantes, sur la base des dates de modification des fichiers source ou des
fichiers distants.
De plus en plus livrée en standard avec les différents UNIX mais lui
préférer quand même la version disponible à l’URL
http://www.magnicomp.com/rdist/ (anciennement :
ftp://ftp.usc.edu/pub/rdist/)
c
T.Besançon
(version 10.0)
Notes de la page 289 :
Administration Unix
ARS 2007–2008 Tôme 3
289 / 707
11 Synchronisation de fichiers
11.2 Synchronisation de fichiers UNIX via rdist
La commande « rdist » utilise un fichier de configuration appelé par
défaut « distfile » ou « Distfile »
Si le fichier ne s’appelle pas « distfile » ou « Distfile », il faut
utiliser l’option « -f » :
% rdist -f mon-distfile-a-moi
remote.example.com: updating host remote.example.com
...
De nombreuses options sont disponibles. Cf la documentation.
c
T.Besançon
(version 10.0)
Notes de la page 290 :
Administration Unix
ARS 2007–2008 Tôme 3
290 / 707
11 Synchronisation de fichiers
11.2 Synchronisation de fichiers UNIX via rdist
Exemple 1
Objectif : mettre à jour du fichier « /tmp/fichier.txt » d’une machine
distante nommée « remote.example.com » à partir du fichier local
« /tmp/fichier.txt » :
Solution : fichier « Distfile » contenant :
/tmp/fichier.txt -> remote.example.com
install ;
Utilisation et résultats :
% rdist
remote.example.com: updating host remote.example.com
remote.example.com: /tmp/fichier.txt: installing
remote.example.com: updating of remote.example.com finished
c
T.Besançon
(version 10.0)
Notes de la page 291 :
Administration Unix
ARS 2007–2008 Tôme 3
291 / 707
11 Synchronisation de fichiers
11.2 Synchronisation de fichiers UNIX via rdist
La mise à jour ci dessus est inconditionnelle. Elle ne fait pas de
comparaison de date. Pour activer la vérification des dates de
modification, il faut utiliser l’option « -y ».
% rdist -y
remote.example.com: updating host remote.example.com
remote.example.com: updating of remote.example.com finished
Notez les différence avec les résultats précédents.
c
T.Besançon
(version 10.0)
Notes de la page 292 :
Administration Unix
ARS 2007–2008 Tôme 3
292 / 707
11 Synchronisation de fichiers
11.2 Synchronisation de fichiers UNIX via rdist
Exemple 2 : macros
Objectif : mettre à jour les fichiers « /var/tmp/fichier.txt » et
« /var/tmp/fichier2.txt » des machines distantes nommées
« remote.example.com », « remote2.example.com » et
« remote3.example.com » à partir des fichiers locaux originaux
« /tmp/fichier.txt » et « /tmp/fichier2.txt ».
Soit le fichier « Distfile » contenant les lignes suivantes :
FILES = ( /tmp/fichier.txt /tmp/fichier2.txt )
HOSTS = ( remote.example.com remote2.example.com
remote3.example.com )
${FILES} -> ${HOSTS}
install /var/tmp ;
notify besancon ;
c
T.Besançon
(version 10.0)
Notes de la page 293 :
Administration Unix
ARS 2007–2008 Tôme 3
293 / 707
11 Synchronisation de fichiers
11.2 Synchronisation de fichiers UNIX via rdist
On constate :
on utilise des macros : « FILES », « HOSTS »
on met à jour des fichiers distants de paths différents des originaux
on envoie un mail une fois la mise à jour faite
c
T.Besançon
(version 10.0)
Notes de la page 294 :
Administration Unix
ARS 2007–2008 Tôme 3
294 / 707
11 Synchronisation de fichiers
11.2 Synchronisation de fichiers UNIX via rdist
Possibilité de ne mettre à jour qu’une machine du lot via l’option « -m » :
% rdist -m remote.example.com
remote.example.com: updating host remote.example.com
remote.example.com: /tmp/fichier.txt: installing
remote.example.com: /tmp/fichier2.txt: installing
remote.example.com: notify @remote.example.com ( besancon )
remote.example.com: updating of remote.example.com finished
c
T.Besançon
(version 10.0)
Notes de la page 295 :
Administration Unix
ARS 2007–2008 Tôme 3
295 / 707
11 Synchronisation de fichiers
11.2 Synchronisation de fichiers UNIX via rdist
Une seconde mise à jour donne :
% touch /tmp/fichier.txt
% rdist -y
remote.example.com: updating host remote.example.com
remote.example.com: /tmp/fichier.txt: updating
remote.example.com: notify @remote.example.com ( besancon )
remote.example.com: updating of remote.example.com finished
Notez le mot « updating » au lieu de « installing ».
c
T.Besançon
(version 10.0)
Notes de la page 296 :
Administration Unix
ARS 2007–2008 Tôme 3
296 / 707
11 Synchronisation de fichiers
11.2 Synchronisation de fichiers UNIX via rdist
Exemple 3 : directive special
Soit le fichier « Distfile » contenant les lignes suivantes :
/tmp/fichier.txt -> remote.example.com
install ;
special "uname -a" ;
Son exécution donne :
% rdist
remote.example.com:
remote.example.com:
remote.example.com:
remote.example.com:
remote.example.com:
updating host remote.example.com
/tmp/fichier.txt: installing
special "uname -a"
FreeBSD remote.example.com 4.6.1-RC2
updating of remote.example.com finished
On constate qu’une fois la mise à jour des fichiers réalisée, la commande
spécifiée par « special » est exécutée sur la machine distante.
c
T.Besançon
(version 10.0)
Notes de la page 297 :
Administration Unix
ARS 2007–2008 Tôme 3
297 / 707
11 Synchronisation de fichiers
11.2 Synchronisation de fichiers UNIX via rdist
exemple 4 : essai à blanc
L’option « -n » essaye à blanc le scenario de mise à jour mais ne réalise
pas la mise à jour en pratique.
Avec le fichier « Distfile » de l’exemple 1, on voit ainsi :
% rdist -n
updating host remote.example.com
install -onochkgroup,nochkowner,younger /tmp/fichier.txt
/tmp/fichier.txt
c
T.Besançon
(version 10.0)
Notes de la page 298 :
Administration Unix
ARS 2007–2008 Tôme 3
298 / 707
11 Synchronisation de fichiers
11.2 Synchronisation de fichiers UNIX via rdist
Exemple 5 : transport via SSH
On peut utiliser SSH comme protocole de transport avec la machine
distante au lieu de RSH.
Avec le fichier « Distfile » de l’exemple 1, on voit ainsi :
% rdist -P /usr/local/bin/ssh
remote.example.com: updating host remote.example.com
Enter passphrase for key ’/users/sri/besancon/.ssh/id_dsa’: XXXXXXXX
remote.example.com: /tmp/fichier.txt: installing
remote.example.com: updating of remote.example.com finished
c
T.Besançon
(version 10.0)
Notes de la page 299 :
Administration Unix
ARS 2007–2008 Tôme 3
299 / 707
11 Synchronisation de fichiers
11.3 Synchronisation de fichiers UNIX via rsync
Chapitre 11 • Synchronisation de fichiers
§11.3 • Synchronisation de fichiers UNIX via rsync
(en anglais Remote Synchronisation)
RSYNC est un protocole plus efficace que RDIST. Par exemple, on ne
transfère que les différences entre fichiers et non pas la totalité du fichier.
Pas encore installé en standard. Se reporter à
http://rsync.samba.org/
c
T.Besançon
(version 10.0)
Notes de la page 300 :
Administration Unix
ARS 2007–2008 Tôme 3
300 / 707
11 Synchronisation de fichiers
11.3 Synchronisation de fichiers UNIX via rsync
On utilise la commande de ces diverses façons :
rsync
rsync
rsync
rsync
rsync
rsync
[OPTION]...
[OPTION]...
[OPTION]...
[OPTION]...
[OPTION]...
[OPTION]...
SRC [SRC]... [USER@]HOST:DEST
[USER@]HOST:SRC DEST
SRC [SRC]... DEST
[USER@]HOST::SRC [DEST]
SRC [SRC]... [USER@]HOST::DEST
rsync://[USER@]HOST[:PORT]/SRC [DEST]
Il y a un mode de fonctionnement où un démon « rsyncd » est installé et
répond à des requêtes authentifiées ou non.
c
T.Besançon
(version 10.0)
Notes de la page 301 :
Administration Unix
ARS 2007–2008 Tôme 3
301 / 707
11 Synchronisation de fichiers
11.3 Synchronisation de fichiers UNIX via rsync
Exemple
Soit l’arborescence « /tmp/exemple » à synchroniser :
% ls -lR /tmp/exemple
/tmp/exemple/:
total 64
-rwxr-xr-x
1 besancon
-rwxr-xr-x
1 besancon
-rwxr-xr-x
1 besancon
drwxr-xr-x
2 besancon
adm
adm
adm
adm
/tmp/exemple/repertoire1:
total 16
-rwxr-xr-x
1 besancon adm
c
T.Besançon
(version 10.0)
Notes de la page 302 :
211
211
211
182
Aug
Aug
Aug
Aug
26
26
26
26
17:53
17:53
17:53
17:54
fichier1*
fichier2*
fichier3*
repertoire1/
211 Aug 26 17:53 fichier4*
Administration Unix
ARS 2007–2008 Tôme 3
302 / 707
11 Synchronisation de fichiers
11.3 Synchronisation de fichiers UNIX via rsync
La synchronisation avec une autre machine appelée
« remote.example.com » par la commande suivante :
% rsync \
--stats \
--rsh=/usr/local/bin/ssh \
--rsync-path=/usr/local/bin/rsync \
--archive \
--compress \
--verbose \
--cvs-exclude \
\
/tmp/exemple \
[email protected]:/tmp
c
T.Besançon
(version 10.0)
Notes de la page 303 :
Administration Unix
ARS 2007–2008 Tôme 3
303 / 707
11 Synchronisation de fichiers
11.3 Synchronisation de fichiers UNIX via rsync
La commande précédente affiche :
building file list ... done
exemple/
exemple/fichier1
exemple/fichier2
exemple/fichier3
exemple/repertoire1/
exemple/repertoire1/fichier4
Number of files: 6
Number of files transferred: 4
Total file size: 844 bytes
Total transferred file size: 844 bytes
Literal data: 844 bytes
Matched data: 0 bytes
File list size: 161
Total bytes written: 825
Total bytes read: 84
wrote 825 bytes read 84 bytes 606.00 bytes/sec
total size is 844 speedup is 0.93
c
T.Besançon
(version 10.0)
Notes de la page 304 :
Administration Unix
ARS 2007–2008 Tôme 3
304 / 707
11 Synchronisation de fichiers
11.4 Synchronisation de fichiers WINDOWS via FullSync.exe
Chapitre 11 • Synchronisation de fichiers
§11.4 • Synchronisation de fichiers WINDOWS via FullSync.exe
Programme FULLSYNC pour Windows.
http://fullsync.sourceforge.net/
Synchronisation de fichiers entre disques locaux
Synchronisation de fichiers entre disques locaux et réseau via FTP,
SFTP, SMB
Synchronisation unidirectionnelle sans effacement sur la destination
Synchronisation unidirectionnelle exacte
Synchronisation bidirectionnelle
Programmation à la CRON
c
T.Besançon
(version 10.0)
Notes de la page 305 :
Administration Unix
ARS 2007–2008 Tôme 3
305 / 707
11 Synchronisation de fichiers
c
T.Besançon
(version 10.0)
Notes de la page 306 :
11.4 Synchronisation de fichiers WINDOWS via FullSync.exe
Administration Unix
ARS 2007–2008 Tôme 3
306 / 707