Protocoles applicatifs: DNS, SMTP

Transcription

Protocoles applicatifs: DNS, SMTP
Schéma hiérarchique
✦
Domain Name
System
✦
✦
par noms de domaines
domaine: unité pour construction et gestion de noms
(comme rép. dans SGF)
hiérarchie de noms a une racine multiple : domaines de 1° niveau (TLD)
domaines génériques
com
org
edu
icann.org
microsoft.com sun.com
mit.edu
java.sun.com
✦
avant: fichier /etc/hosts
diffusé vers autres machines
depuis 1984: utilisation DNS
qui évite:
✦
congestion serveur unique
✦
maintenance centralisée
3
gouv.mc
cs.mit.edu
deptinfo.unice.fr
4
dans chaque domaine, noms attribués par autorité responsable
✦
✦
✦
✦
unice.fr
Attribution des noms
Relation nom-@IP-type-TTL
✦
domaines géographiques
fr
mc
✦
TLD par ISOC via groupe technique
domaines “publics” (com, org, net...) une seule autorité
centrale: ICANN
domaines “géographiques”: autorité nationale: AFNIC en France, Namebay à Monaco
pour les domaines inclus: autorités locales (entreprise,
administration,...)
6
Domaines et zones
Fonctionnement
✦
✦
✦
✦
✦
✦
✦
Domaine: unité de désignation (espace de noms)
✦
Zone: unité de gestion administrative (serveur de noms propre à la zone)
souvent, un domaine est une zone mais une zone
peut regrouper plusieurs domaines administrés en
commun
≥ 2 serveurs de nom par zone
✦
✦
performances et tolérance aux pannes
maintien table Resource Records (nom domaine-@IP) :
(nom, valeur, type, durée de vie)
recherche: soit serveur dns connaît l’@IP, soit il a l’adresse
d’un autre serveur qui peut la connaître.
✦
mode récursif
✦
mode itératif
7
9
Problème et principe
Fonctionnement
Donnée: nom symbolique d’une machine
Sortie: @IP de la machine
Principe:
✦ fonctionnement décentralisé
✦ hiérarchie de serveurs calquée sur hiérarchie de zone
✦ fonctionnement par
✦ caches (infos dupliquées)
✦ indicateurs (informations valides pdt tps donné)
✦ info accessible par ≠ voies et confirmée si nécessaire
✦ favorise tolérance aux fautes
8
(1) le client envoie sa requête DNS à un serveur récursif choisi dans le fichier /etc/resolv.conf. Le client
essaye au besoin plusieurs serveurs.
(2) si le serveur a autorité sur la zone du domaine de la requête (authoritative),il répond directement avec les
informations (gérées) localement
(3) sinon il va rechercher le serveur cible du domaine de la requête, il relaye la requête vers ce serveur et relaye
ensuite la réponse vers le client. Pour la recherche du serveur cible, on va :
(a) choisir un parent (connu localement) du domaine recherché : c’est ici soit la racine, soit le domaine
que l’on gère pour une requête concernant un descendant de ce domaine local.
(b) interroger successivement les serveurs (informations NS) pour parcourir la branche entre le serveur
parent et le serveur cible.
Cet algorithme simplifié possède deux modes de résolution : récursif et itératif. Le premier consiste à
demander à un serveur de résoudre complètement la requête et de renvoyer uniquement la réponse finale. Le
mode itératif consiste à demander à un serveur la meilleure information dont il dispose par rapport à la
question, c’est-à-dire soit la réponse soit la référence à un serveur « plus proche » de la réponse. On itère
ensuite de serveur en serveur.
10
Fonctionnement
✦
✦
Serveur racine
Accélération: serveurs mettent en cache
(nom,@IP) récemment résolus; rare de contacter
≥1 serveur
Autorités: tous les serveurs ne sont pas mis à jour
en permanence. Seuls certains le sont et font
autorité:
✦
✦
authoritative answer
non authoritative answer
contient noms de domaine du second niveau et
@IP correspondantes
unice.fr.
unice.fr.
unice.fr.
86400 IN
86400 IN
86400 IN
NS
NS
NS
taloa.unice.fr.
dns.inria.fr.
samoa.unice.fr.
✦
serveur racine largement dupliqué.
✦
plus serveur est haut, + il a de copies et + TTL est grand
11
13
Fonctionnement
Serveur de zone
2
smtp.unice.fr?
client
domaine
D
✦
r?
serveur
e.f r.
c
i
f
n
racine
.
u
e
tp.
nic
sm oa.u
tal
1
134.59.1.112
serveur 3
local à D sm
tp.
6
*.unice.fr.
5
un
ic
13
4.5
cache
e.f 4
r?
9.1
.11
2
✦
contient
le + proche
✦
(noms,adresse) d’hôtes des domaines de zone
taloa.unice.fr.
✦
[(noms,adresse) de serveurs de sous-domaines]
serveur
unice.fr
i3s.unice.fr.
✦
86400 IN
12
taloa.unice.fr.
SOA: start of authority (serveur racine)
smtp.unice.fr, 134.59.1.112
récursif ou Itératif ?
SOA
14
Contenu fichiers
// file db.admrx.test
$TTL
3600
@
(
IN
SOA
ns1.admrx.test.
1
3600
900
3600000
3600 )
@
IN
NS
// file db.1.168.192
$TTL
3600
root.admrx.test.
;
;
;
;
;
Format des messages
@
Serial
Refresh
Retry
Expire
Minimum
IN
IN
ns1.admrx.test.
SOA
NS
; Machine Names
11
IN
PTR
12
IN
PTR
1
IN
PTR
; Machine Names
// nom et adresses des hotes selon l'exemple ci-dessous:
ns1
IN
A
192.168.1.1
ns1.admrx.test. root.admrx.test.
20021111
; Serial
3600
; Refresh
900
; Retry
3600000 ; Expire
3600 ) ; Minimum
ns1.admrx.test.
(
✦
host1.admrx.test.
host2.admrx.test.
ns1.admrx.test.
et modifier le fichier resolv.conf:
search admrx.test unice.fr
nameserver 192.168.1.1
nameserver 134.59.130.1
✦
Les messages de requête et de réponse ont le
même format.
✦
soit au-dessus d’UDP
✦
soit au-dessus de TCP
sur le port 53 dans les 2 cas, TCP si la taille du
message dépasse 512 octets
PTR: pointeur vers une autre partie de l’espace des noms de domaine
15
✦
✦
✦
type: indique comment interpréter le champ valeur
A(AAAA): valeur @IPv4 (@IPv6)
NS: valeur nom de domaine d’un serveur de nom
✦ CNAME: nom canonique (si alias)
✦ MX: mail...
classe:
✦ IN (internet)
✦ CH (pour chaosnet LAN du MIT ‘70)
durée de vie: TTL (pour rafraîchir)
✦
✦
✦
✦
16
✦
✦
✦
id: nb de 16 bits pour
requête, réponse utilise le
même nb
flags:
✦ query or reply
✦ récursion demandée
✦ récursion disponible
✦ réponse authoritative
identification
flags
nombre questions
nombre de réponses
nombre de authority nombre de additional
questions (# variable)
réponses (# variable)
authority
additional
les 4 champs «nombre de» donnent le nombre
d’objets des 4 section suivantes
questions: RR incomplets {nom-dns,type,classe}
réponses, auth, add: RR complets:
{nom-dns,type,classe,(RDATA_LENGTH),RDATA}
18
12 octets
Contenu tables et RR
17
UDP
ethernet
0000
0010
0020
0030
0040
00
00
09
00
65
50
3b
01
00
02
56
65
cf
00
66
a7
dc
e1
00
72
4e
00
00
00
00
nb aut
nb rép
d0
00
35
00
00
00
40
00
04
01
22
11
27
73
00
41
f5
1f
6d
01
36
fe
10
74
00
86
54
70
id flags (query)
IPv4
40
3b
3a
05
08
09
01
75
00
60
00
6e
45
86
00
69
00
3b
01
63
.PV.N.."
.;e...@.
.....5.'
.......s
e.fr....
[email protected].
...;.`.;
..T:....
mtp.unic
.
Commande host
✦
type A
effectue requête (@IP à partir du nom ou inverse)
✦
host example.com [ns.alternatif.ex]
✦
host -t type example.com
✦
nb add
nb quest
class IN
04 73
4
✦
✦
✦
a : adresse
✦
mx : champ mail
✦
ns: serveur de noms
✦
cname: nom cannique
✦
soa: start of authority
6d 74 70 05 75 6e 69 63 65 02 66 72 00
s m t p
5
u n i c e
2
f r
0
✦
l’option -a affiche tous les champs
✦
l’option -6 effectue une requête IPv6
19
22
Résolution de nom
Commande dig
✦
✦
l’option -t à valeurs dans
effectue requête (@IP à partir du nom; requête inverse avec option -x)
✦
dig example.com
✦
options
tout hôte connaît @IP de serveurs de noms
adresses fournies aux utilisateurs par FAI
inscrites à la main dans les tables de configuration
pour l’accès à internet
✦
20
✦
+trace : effectue requêtes itératives
✦
+short : réponse courte
✦
+ nssearch : cherche soa: start of authority
✦
+all : affiche tous les champs
✦
+nocomment : retire les champs commentaires
✦
mx : champ mail
✦
AAAA effectue une requête IPv6
serveur alternatif par dig @ns.alternatif.ex example.com
23
Le mail en 1980
Fichiers unix correspondants
✦
fichiers consultés lors de requêtes, pour trouver
l’adresse d’une machine ou d’un serveur dns
✦
✦
✦
/etc/hosts: donne la correspondance entre noms
canoniques et adresses IP (locales)
✦
✦
/etc/resolv.conf: fournit les adresses de serveurs dns
(jusqu’à 6):
protocole de transfert de fichier;
première ligne = adresse destinataire
limitations
✦
pas diffusion à un groupe
✦
nameserver 134.59.1.7 # IP du serveur dns
✦
pas de structuration interne
✦
domain unice.fr # nom du domaine local
✦
peu d’intégration Interface/transmission
Toute réponse dhcp écrase /etc/resolv.conf
✦
envoi autre chose que du texte impossible
24
Arpanet 1982
Mail
✦
conception système + élaboré (par étudiants)
✦
devenus des normes
✦
transmission dans RFC 821
✦
format message RFC 822 (puis 2821 et 2822)
✦
vainqueur du X.400 CCITT (trop complexe)
Architecture
✦
✦
agent utilisateur (MUA): lecture et envoi;
programmes locaux interagissant avec le
système de messagerie par CLI ou GUI
agent de transfert (MTA): acheminement;
processus démons assurant le transport
agent de dépôt (MDA): lien avec BAL
utilisateur
Schéma général
✦
composition
transfert: processus d’acheminement
automatique de l’émetteur vers le destinataire
✦
notification: mail remis, rejeté ou perdu?
✦
affichage: lecture des messages
✦
disposition: traitement mail (lire, détruire,
enregistrer...)
Enveloppe vs contenu
à: Bruno Martin
Adresse
Priorité
Chiffrement
de:
Adresse
Objet
Texte
Enveloppe
Message
Encapsulation
✦
✦
En-tête
Mail composé des sous-systèmes:
Corps
✦
Fonctions de base
Format de message RFC 822
En-tête
To:
Cc:
Bcc:
From:
Sender:
Received:
Return-path:
Description
@DNS
auteur
@messagerie expéditeur
info sur chaque MTA
identifie chemin retour
Format de message RFC 822
En-tête
Date:
Reply-To:
Message-Id:
In-Reply-To:
References:
Keywords:
Subject:
X-...
Description
MIME (RFC 1341 2045..2049)
✦
Multipurpose Internet Mail Extension
✦
prend en charge
n° réf. unique mail
id mail précédent
autres ids pertinents
✦
pour usage privé
✦
caractères accentués ou non latins
✦
messages non textuels
par ajout d’une structure au corps du message et
de règles de codage tout en utilisant le format
RFC822
En-têtes
En-tête
Quoted-printable
Description
N° version
Mime-version
✦
descr. contenu
Content-Description
id. unique
Content-Id
Content-Transfert-Encoding
type et format contenu
base64
6 bits
6 bits
6 bits
QP remédie à ce problème, en procédant par:
✦
Un octet correspondant à un caractère imprimable de l'ASCII
est représenté tel quel
Un octet qui ne correspond pas à un caractère imprimable de
l'ASCII est représenté par un signe égal, suivi de son numéro
en hexadécimal.
Exemple: "é" en latin-9 par 233 en QP "E9"
Schéma général
6 bits
✦
chaque paquet de 6 bits= 1 caractère ASCII
✦
A=0..Z=25 a=26..z=51 0..9 +=52 /=63
✦
== dernier groupe ne contient que 8 bits
✦
= dernier groupe ne contient que 16 bits
b64(ex=101,120)= ‘ZXg=‘ =25,23,32,63
01100101,01111000 = ‘ex’
011001,010111,1000.00,- - - - - - = ‘ZXg=‘
format de codage de données sur 8 bits, qui utilise exclusivement
les caractères alphanumériques ASCII (7 bits).
✦
méthode encapsulation (5+1)
Content-type
✦
Transfert de messages
Rejet message par MTA
✦
✦
✦
✦
MTA se charge de l’acheminement des mails
MUA construit message et le transmet au MTA
qui utilise certains des champs d’en-tête pour
construire l’enveloppe effective
✦
✦
MTA = smtpd, serveur de mails, IP identifiée
dans DNS par MX-record
✦
Réception MTA
✦
en provenance de:
✦
✦
MUA: FAI propose un service de MTA
permettant au MUA d’envoyer tous ses mails
par son MTA
MTA: la plupart des MTA servent à
retransmettre dans un réseau les messages
reçus en ajoutant un champ “Received”
serveur non concerné: config MTA n’accepte que
les mails expédiés depuis le réseau du FAI
non-respect des normes: si le mail est non
conforme ou en cas de non respect du smtp
expéditeur black-listé: serveur réputés utilisés par
spammers sont black-listés et certains MTA
rejettent les mails provenant de ces serveurs
notification rejet n’est plus systématique
Transfert
✦
✦
mails non rejetés sont transférés au MTA du
destinataire par smtp
si le MTA est le MTA traitant le mail, il est
transféré à un MDA (ou traité directement) par
protocole LMTP (local mail transfer proto)
✦
dépend du serveur; pour certains, MTA=MDA
✦
Mise à jour du “Return-Path”
smtp
Session SMTP
Conversation (simplifiée)
Codes de retour
2xx
commande exécutée sans erreur
3xx
demande en cours d’exécution
4xx erreur temporaire; ré-essayer + tard
5xx
demande invalide et non traitée
http://www.greenend.org.uk/rjk/tech/smtpreplies.html
Rôle du MX-record
✦
✦
✦
✦
MTA expéditeur fait requête sur le champ MX
du DNS de chaque destinataire
Serveur secondaire
✦
≥2 MTA par réseau (primaire et secondaire)
✦
secondaire = store and forward
En réponse, il obtient une liste ordonnée de
serveurs de mails dans chaque domaine
MTA établit session smtp avec un des serveurs
✦
prend le relai en cas de pb
✦
ne fournit pas tjs le service
✦
Si pas de MX, MTA fait une requête sur le Arecord (@IPv4)
Requête MX
mise en attente message jusqu’au redémarrage
du primaire
Indisponibilité
✦
MTA1 transfère vers MTA2 indisponible
✦
MTA1 met mail en file attente
✦
re-tente la transmission plusieurs fois
✦
Après un nb d’essais infructueux (ou d’un time
out), le message est rejeté
MTA classiques
✦
Open relay
85% des mails sont gérés par:
✦
sendmail
✦
postfix
✦
exim
✦
Microsoft exchange server
✦
✦
✦
✦
sinon= open relay qui accepte n’importe qui
Remède
✦
✦
FAI limitent usage MTA aux machines de son
seul domaine
tous implémentent un démon smtp
Spammers’ technique
✦
raisons historiques: pas authentification
expéditeur (falsification possible)
utilisent les “relais ouverts”
✦
ajout d’une extension SMTP-AUTH
✦
ne réussit pas à s’imposer; utilisation limitée
utilisent le MX-serveur secondaire
✦
SMTP normal= pas d’authentification de
l’utilisateur
pas les mêmes techniques anti spam
✦
recherches en cours, par groupe de travail AntiSpam Research Group de l’IRTF.
Schéma général
Les plus classiques
✦
Post Office Protocol (tcp 110)
✦
Internet Message Access Protocol (tcp 143)
✦
[webmail]
✦
MDA
✦
Rôle:
✦
distribution courrier dans les BAL utilisateurs
✦
filtres différents
✦
les utiliser dans leur version sécurisée (pop3s 995
et imaps 993)
POP
IMAP
single access
multiple access
transfert sur client
conservé sur serveur
actions sur client
actions sur serveur
folders sur client
folders sur serveur
anti-spam, anti-virus, personnalisés

Documents pareils