Compare commits

...

9 commits

6 changed files with 402 additions and 0 deletions

View file

@ -0,0 +1,120 @@
---
title: "Administration réseaux : Le firewall et le NAT"
date: 2022-02-07
tags: ["IPv4", "iptables", ']
categories: ["Administration Réseaux", "Cours"]
---
## Historique
* 1990 ipfwadm: creation des tables `INPUT`, `OUTOUT`, `FORWARD`. Support de
TCP, UDP et ICMP.
* ipchains: evolution de ipfwadm, ajout du supportd'`IP` et des chaines. Les
paquets pouvaient passer plusieurs fois par les tables lors du NAT
* 2004 iptables: ajout des tables `filter`, `nat`, `mangle`
* 2012 nftables: supression des commandes satellites (gestion de l'arp). Ajout
de flexibilité (creation de tables, regles avec plusieurs actions ...)
* now BPF: machine virtuelle dans le noyau pour gérerle filtrage
## IPTable
### table
Regroupement de règles ayant un but commun: filter pour le filtrage, nat pour la
translation d'adresses et mangle pour le marquage de paquets:
* filter
* OUTPUT
* INPUT
* NAT
* nat
* POSTROURING
* PREROUTING
* OUTPUT
### La translation d'adresse
#### Dans le cas du NAT statique
```
# paquet sortant
# On fait la modification du paquet le plus tard possible
iptables -t nat -A POSTROUTING -s <@A> -j SNAT --to-source <@P>
# paquet entrant
# On fait la modification le plus tot possible
iptables -t nat -A PREROUTING -d <@P>-j DNAT --to-destination <@A>
```
#### Dans le cadre du NAT dynamique
```
# Paquets sortants
iptables -t nat -A POSTROUTING -s <@Net_priv> -o eth1 -j MASQUERADE
```
Il est possible de faire plusieurs commande `MASQUERADE` si l'on a plusieurs
sorties et plusieurs réseau interne par exemple
Maitenant si on veut rendre une machne accessible de l'exterieur sur le port 80
par exemple :
```
iptables -t nat-A PREROUTING -p tcp --dport 80 -d<@IP_gateway> -j DNAT --to <@>
```
## Le pare-feu
Premiere ligne de defense de notre infrastructure. Philosophie generale: ce qui
vient de l'exterieur n'est pas de confiance, ce qui sort de notre reseau l'est.
Les services accessibles depuis l'exterieurs (serveur web par ex.) sont
positionnés dans une DMZ.
### Les polices par defaut d'iptable
* ACCEPT
* DROP
* REJECT
On preferera utiliser `DROP` que `REJECT` : non seulement on donne des
information sur la machine, mais en plus on consomme de la ressource (trame ICMP
envoyee en retour).
### technique avancée
Il est possible de limiter les connexions vers le serveur web à 10 par minutes
```
iptables -A FORWARD -p tcp --dport 80 -d <@srv_web> -m limit --limit 10/m -j
ACCEPT
```
Il est aussi possible de filtrer les paquets en fonction de leur état. Via le
tuple `<@source, @destination, src_port, dest_port>` le pare-feu est en mesure
de stocker l'état de la connexion. Elle peut être de 3 formes:
* NEW (paquet `SYN` reçu du client)
* ESTABLISHED (`SYN + ACK` complet -- poignée de main terminée)
* RELATED (connexion relative à une déjà établie)
* INVALID
```
# autoriser les nouvelles connexions en HTTP
iptables -A FORWARD -p tcp --dport 80 -d <@srv_web> -m state --state NEW, ESTABLISHED
# On peut factoriser tous les established, on ne peut de toutes manière pas
# passer en ESTABLISHED dans passer avant par un NEW
iptables -A FORWARD -m state --state ESTABLISHED -j ACCEPT
```
#### INVALID: le cas du scan de port
Une premiere facon de faire du scan avec la methodedu `SYNScan` : on envoie des
syn sur un ensemblede ports.
Il est aussi possile de faire du `NULLScan`: On envoie un segment TCP avec tous
les champs mis à `null` Si le port est ouvert alors il n'y aura pas de reponse,
S'il est ferme, le serveur renvoie un `RST-ACK`
`INVALID` permet donc de gérer le cas du `NullScan` explicitement.

View file

@ -0,0 +1,71 @@
---
title: "Administration réseaux : IPv6"
date: 2022-02-07
tags: ["IPv6", "adresses", "autoconfiguration"]
categories: ["Administration Réseaux", "Cours"]
---
IPv6 propose 3 type d'adresses:
* link local -> autoconfig -> voisinage prefix `FE80`
* unique local -> ip locale, en cour d'abandon
* global
L'addresse *link local* est en qque sorte une methode de remplacement d'ARP,
* adresses Unicast -> 1 vers 1
* adresses Multicast -> 1 vers +
* adresses Anycast -> vers une des machines, en general le plus proche
## NDP Neighbour Discovery protocol
ARP est banni d'IPV6, on va utiliser une series de protocoles qui prennent la
forme de messages ICMPv6.
Quatres types de paquet ICMP sont utilisés:
* Router sollicitation
* Router advertisement
* Neighbour Sollicitation
* Neighbour Advertisement
1. Bob demande l'addr d'Alice : B -> Network Solicitation -> A
2. Alice repond à Bob : A -> Network Advertisement -> B
## Adresses multicast
* tous les nœuds dans un segment ff02::1
* tous les routeurs dasn un segent ff02::2
* cas particulier *solicited-node*
### envoi d'un multicast
Je veux envoyé un paquet en multicast vers un groupe contenant le nœud s
l'adresse est 2001:XXXX::daa0:6e09. L'adresse de multicast de
type solicited-node sera construite avec les 24 dernier bits de l'adesse
unicast, ici `a0:6e09` : *fe02::1::ffa0:5e09*.
Lorsque le paquet est envoyé, l'adresse MAC de destination sera 33:33
## SLAAC stateless Address AutoConfiguration
### Phase 1
Generation d'adresse de liaison locale avec detection des doublons : on envoie
une solicitaion avec l'adresse visée: une reponse signifie alors qu'
**elle est deja utilisee**. Cette adresse est locale: pas de sortie sur
internet.
### Phase 2
Annonce du routeur: le nœud envoie une solicitation au routeur pour inciter les
routeurs sur le lien a lui envoyer des annonces de routeurs. En reponse le(s)
routeur(s) annonce(nt) les routes et prefixes.
L'hôte génère son adresse globale avec le prefixe fourni.
## Path MTU
la fragmentation des paquets trop gros se fait par l'emetteur et non plus par un
routeur. L'emetteur est averti par un paquet ICMPv6.

View file

@ -0,0 +1,65 @@
---
title: "Administration réseaux : authentification et stockage"
date: 2022-03-08
tags: ["stockage", "authentification"]
categories: ["Administration Réseaux", "Cours"]
---
## Gestion du stockage
Une fois les utilisateurs authentifiés avec LDAP, il faut pouvoir gerer leur
stockage. deux principaux services:
* NFS (Unix, Linux)
* CIFS/SMB (Windows)
Cote systeme d'expoitation, le descripteur de fichier passe pas un VFS (Virtual
File system). C'est une couche d'abstraction qui utilisen ensuite des modules en
fonction des systèmes de fichiers (NTFS, ext4 etc.).
Les modules accèdent au matériel via le Bloc Device Pager. Lui-même contenant
des modules en fonction de la technologie sous-jacente (SATA, SAS, SCSI, NVMe).
Ces éléments manipulent des blocs. Le blocs représentent l'unité minimale de
manipulation de la donnéee sur un périphérique de stockage.
Pour les stockage réseaux, on rajoute un module dans VFS. Celui-ci ne pointe pas
vers le Bloc Device Pager mais vers le réseau.
## Organisation du stockage
on distingue 3 technologies de stockage :
* DAS -- Direct Access Storage -- typiquement les disques sur notre machine
* NAS -- Network Attached Storage -- typiquement NFS, SMB
* SAN -- Storage Area Network
Il existe un equivalent du modèle OSI pour le stockage: SNIA.
## Redondance -- RAID
Afin d'être tolérant à la panne, il est oportun d'utiliser le RAID *Redundant
Array of Inexpensive Disks*. Il y a trois modes de fonctionnements
* Aggrégat (stripping)
* Mirroir (mirorring)
* Parité
Les niveau de RAID sont numérotés de 0 (striping) à 6 en passant par le 4 (un
disque de parité) et le 5 (blocs de parité répartis sur l'ensemble des disques).
## Retour sur le NAS / SAN
Le NAS se base sur des services exposant du stockage via TCP / IP (voir UDP/ IP)
il n'y a pas de limitation de distance mais des problèmes de latences / débits.
Il n'y a pas toujours de notion de sécurité.
Le SAN est spécialisé stockage sur du matériel et des technologies dédiés:
Fibre Channel. Les distances doivent rester faible mais le débit conséquent.
## Focus sur NFS
Le fonctionnement de NFS utilise les RPC (Remote Procedures Call). Un annuaire
des procédures disponibles est disponible dans le `RPC Bind`. NFS ne n'occupe
pas des droits, il se basse sur l'UID fourni par le client.Il est cependant
possible de mapper l'UID 1 (root) vers un autre utilisateur sur le serveur
(généralement `niobody`)

View file

@ -0,0 +1,56 @@
---
title: "Administration réseaux : Le DNS"
date: 2022-03-08
tags: ["Serveur de nom", "enregistrement"]
categories: ["Administration Réseaux", "Cours"]
---
Le DNS réponds à la question *quel est l'adresse IP de tel machine?*. Il utilise
principalment UDP sur le port 53. Il fonctionne en arbre: on contacte les
serveur racines, qui donne les serveurs qui gèrent le premier niveau (le .fr par
exemple). Ceux-ci vont donner le serveur DNS du second niveau (u-bordeaux.fr) et
ainsi de suite.
## les entités
La notion importante dans DNS est la **zone**. Elle représente une partie de
l'arbre gérée par une entité.
## Quels type de requêtes?
* Quelle est l'adresse IP? `A` et `AAAA`
* Quel est le nom de machine? `PTR`
* Quels sont les serveurs de nom? `NS`
* Quel sont les serveurs de courriels? `MX`
* Quelles sont toutes les informations sur le domaine? `AXFR`
## Modes de fonctionnement
### mode iteratif
Lorsqu'on lui pose une question et qu'il n'a pas de réponse, le serveur renvoie
vers un autre.
### mode récursif
Lorsque le serveur n'a pas la réponse, le serveur consulte lui même d'autres
serveurs afin de donner lui-même la réponse au client.
### autorité
Un serveur détenant une zone fait autorité sur celle-ci, la réponse contient
alors un champ le mentionnant. Ce fonctionnement permet de différencier les
réponses d'un serveur faisant autorité et d'un serveur puisant dans son cache.
## Problèmes liés au DNS
### DNS Cache Poisoning
Jusqu'en 2008, le port source des requêtes DNS était toujours le même quel que
soit l'implémentation. Une attaque était alors plus simple: il suffisait de
deviner l'identifiant de requête codé sur 16bits.
Une version plus récente de cette attaque, datant de l'été 2021utilise les
compteurs globaux des trames UDP afin de deviner le port source. Cette attaque
utilise aussi les réponse serveur lors d'un port invalide

View file

@ -0,0 +1,26 @@
---
title: "Administration réseaux : DHCP"
date: 2022-03-15
tags: ["Serveur de nom", "enregistrement"]
categories: ["Administration Réseaux", "Cours"]
---
*Dynamic Host Configuration Protocol*. Lors de son arrivée sur un reseaux une
machine doit contacter un serveur lui fournissant les paramétrages réseaux
(adresse IO, passerelle, serveur DNS...)
## 3 modes de fonctionnement:
* manuel: l'administrateur décide quele adresse IP est liée à quelle IP
* affectation automatique: attribution permanente d'une IP à la première
connexion de la machine
* dynamique: attribution d'un bail sur une adresse IP
## Déroulement de l'obtention des paramètres
1. Une trame de broadcast est envoyée sur une adresse speciale par le client
255.255.255.255. Le
2. serveur repond par une trame DHCP offer
3. le client fait son choix en envoi une trame DHCP Request
4. le serveur confirme par un DHCP Ack
5. lors du départ du client, il envoie une trame DHCP Release

View file

@ -0,0 +1,64 @@
---
title: "Administration réseaux : le courriel"
date: 2022-03-15
tags: ["SMTP", "IMAP", "chiffrement"]
categories: ["Administration Réseaux", "Cours"]
---
## Que se passe-t-il lors de l'envoie d'un courriel
4 entités interviennent
* MTA : Mail Transmission Agent
* MSA :
* MDA : Mail Delivery Agent
* MUA : Mail User Agent
C'est au MTA qu'incombe la transmission du courriel envoyé par le MUA. Il
utilise le DNS, et notamment le champ MX afin de déterminer le serveur vers
lequel envoyer le courriel. Ces échanges se font en utilisant le protocole SMTP
Le courriel est donc transmis par le MTA vers le MUA qui stocke le message dans
l'espace alloué à l'utilisateur.
Le MUA consulte ensuite le courriel le plus souvent à l'aide du protocole IMAP.
Les protocoles régissants la gestion ds courriels **sont très ancien et non
sécurisés de base**. On leur ajoute une couche de sécurité via le protocole TLS.
Cependant si on est en mesure de controler les serveurs que l'on administre, les
courriels peuvent passer par des serveurs relais **hors de notre portée** et
donc potentiellement sans chiffrement.
## Stockage du courriel sur le MDA
Il esxiste deux façons de stocker les courriels sur les MDA:
* mailbox : les courriels sont stockés séquentiellement dans un gros fichiers
* maildir : un fichier par message.
## Le protocole SMTP
SMTP est un protocole texte : les commandes sont envoyés aux serveur sous forme
de texte. Afin d'inclure des fichiers binaires en tant que pièces jointes, une
transformation est nécessaire : la passer en **base64**.
Côté MUA, il faut savoir de quel type de fochoer il s'agit. Cette information
est incluse au forman **MIME** pour *Multi-Purpose Internet Mail Extensions*
## Le protocole S/MIME
La faible sécurité des protocoles aut0our su courrier electonique pourr
l'utilisation de protocoles permettant la sécurisation et la confidentialité du
message.
On va donc utiliser de la cryptographie asymétrique pour sécuriser le contenu du
message. *S/MIME* utilise les certificat x509 pour chiffrer / signer les
messages. on peut donner 4 propriété our les messages utilisant S/MIME :
1. confidentialité
2. authenticité
3. intégrité
4. non-repudiabilité.
Dans la vraie vie, le chiffrement se fait avec une clé qui est chiffrée à son
tour par les clé publique des différents destinataires.