Compilation (gcc) Gestion des utilisateurs et des groupes Montage des périphériques et des systèmes de fichiers Scripts Archivage et backup (crond) Commandes réseaux et fichiers de configuration 1. 2.
Services (démarrage-arrêt-fichiers) Le super démon xinetd Les services 1. 2. 3. 4. 5.
DNS NIS-NFS SAMBA Web Radius
Cours Administration avancé Séance 4
2
1
Configuration interface et routage statique
Cours Administration avancé Séance 4
3
Configuration d’une interface • On doit assigner à chaque interface (NIC: Network Interface Card) – une adresse IP – Un masque de sous réseau En IPv4: ifconfig eth0 192.168.0.1 netmask 255.255.255.0 En IPv6: ip -6 addr add 2001::1/64 dev eth0
Cours Administration avancé Séance 4
4
2
Rajout d’une route • •
Les routes de la table de routage sont réinitialisés à chaque démarrage. Le rajout d’une route consiste à rajouter une entrée dans la table de routage. Les informations à fournir sont: – –
Adresse réseau (adresse et masque) Prochain saut • •
Nom de l’interface pour une liaison point à point Adresse IP du prochain saut pour une liaison multipoint (Ethernet, Wi-Fi, etc.)
Affichage des tables de routage • En IPv4 – netstat –rn, route ou ip route
• En IPv6 – route --inet6 ou ip -6 route
Cours Administration avancé Séance 4
6
3
Interface graphique
Cours Administration avancé Séance 4
7
Les fichiers de configuration • Les effets des commandes précédentes sont éphémères. • Il existe un certain nombre de fichiers de configuration lu au démarrage ou régulièrement par le système permettant de fixer la configuration IP su système. • Configuration IP (lu à chaque démarrage du réseau) – Sous Debian/Ubuntu • /etc/network/interfaces (un fichier global)
– Sous RedHat • /etc/sysconfig/network-scripts/ifcfg-eth0 (un fichier par interface)
Cours Administration avancé Séance 4
8
4
Debian/Ubuntu: /etc/network/interfaces auto lo iface lo inet loopback
Interface activée lors de ifup -a Interface IP correspondant à l’interface de bouclage (loopback).
iface eth0 inet dhcp
Interface IP correspondant à l’interface physique eth0. Configuration par dhcp.
Interface IP correspondant à l’interface physique eth0. Configuration statique.
Cours Administration avancé Séance 4
9
Debian/Ubuntu: /etc/network/interfaces auto lo iface lo inet loopback iface eth0 inet static address 192.168.0.1 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.2 dns-nameservers 192.168.1.1 dns-search esgi.fr Permet l’exécution d’un script pre-up /etc/network/pre-up.d/script1 avant ou après l’activation post-up /etc/network/post-up.d/script2 d’une interface ou encore pre-down /etc/network/pre-down.d/script3 avant ou après la désactivation de l’interface. post-down /etc/network/post-down.d/script4
Cours Administration avancé Séance 4
10
5
Debian/Ubuntu: /etc/network/interfaces auto lo iface lo inet loopback iface eth0 inet static address 192.168.0.1 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.2 dns-nameservers 192.168.1.1 dns-search esgi.fr pre-up /etc/network/pre-up.d/script1 post-up /etc/network/post-up.d/script2 pre-down /etc/network/pre-down.d/script3 post-down /etc/network/post-down.d/script4 up route add -net 192.168.1.128 netmask 255.255.255.128 gw 192.168.1.2 up route add default gw 192.168.1.200 down route del default gw 192.168.1.200 down route del -net 192.168.1.128 netmask 255.255.255.128 gw 192.168.1.2
Peut être fait à l’activation/désactivation de l’interface. Peut-être directement une commande.
Cours Administration avancé Séance 4
11
Tunnel IPv4/IPv4 et IPv4/IPv6 • Tunnel ipv4/ipv4 ip tunnel add monTunnel mode gre remote @IP local @IP ttl 255 ip tunnel add monTunnel mode ipip remote @IP local @IP ttl 255 ip link set monTunnel up
• Tunnel ipv6/ipv4 ip tunnel add monTunnel mode sit remote @IP local @IP ttl 255 ip link set monTunnel up Cours Administration avancé Séance 4
6
Arrêter/Démarrez le réseau • ifup eth0: active une interface (ici eth0). Il lit le fichier /etc/network/interfaces • ifup –a: active toutes les interfaces notées « auto » dans le fichier /etc/network/interfaces • ifdown eth0 : désactive eth0. • ifdown -a : désactive toutes les interfaces du fichier /etc/network/interfaces • ifconfig eth0 up/down: active/désactive l’interface eth0 mais sans la lecture du fichier /etc/network/interfaces • /etc/init.d/networking start|stop|restart démarre/arrête/redémarre le réseau (ifup/ifdown –a sont utilisés).
13
Cours Administration avancé Séance 4
Forwarding IP • Un PC sous Linux n’est pas censé traiter un paquet si l’adresse destination ne correspond à aucune de ces interfaces. • Par défaut, un PC sous linux n’est pas un routeur (il n’achemine pas les paquets). • Pour changer ce comportement, il faut activer le forwarding (acheminement). • Il est relatif au protocole IPv4/IPv6 (et peut-être relatif à une interface). • Un pseudo-fichier permet d’interagir avec le système. Ce fichier contient 1 si le forwarding est activé et 0 sinon. echo 1 > /proc/sys/net/ipv4/ip_forward echo 1 > /proc/sys/net/ipv4/conf/all/forwarding echo 1 > /proc/sys/net/ipv6/conf/all/forwarding echo 0 > /proc/sys/net/ipv4/ip_forward echo 0 > /proc/sys/net/ipv6/conf/all/forwarding Cours Administration avancé Séance 4
14
7
Interaction avec le système • Linux prévoit une manière de modifier les paramètres du réseau par défaut. • Le répertoire /proc/sys/net/ contient des fichiers permettant d’interagir avec le système : – Modifier/voir la configuration du réseau – Consulter les différentes tables (routage, nat, etc.). 15
Cours Administration avancé Séance 4
Quelques exemples • Dans /proc/sys/net/ipv4 – icmp_echo_ignore_all : désactive le traitement des messages icmp echo. – ip_default_ttl : valeur par défaut du TTL (en général 64). – conf/all/accept_redirects : accepte les messages ICMP redirect – conf/all/send_redirects : envoi les messages ICMP redirect – conf/proxy_arp : indique si le routeur agit comme proxy ARP – etc.
• Dans /proc/net – route: la table de routage IPv4 – ipv6_route : la table de routage IPv6 – arp: contenu de la table arp Cours Administration avancé Séance 4
16
8
Commandes de bases: observation du réseau • • • • •
Netfilter • Netfilter: Sous-système du noyau en charge du filtrage (firewall) et de la translation d’adresse (NAT). • Il fournit une interface aux modules du noyau permettant de manipuler les paquets à différent étapes (les hooks) de leur traitement. Pre-routing Pre-routing
Route Route
Local_in Local_in
Ip_forward Ip_forward
Post-routing Post-routing
Route Route
Local_out Local_out
19
Cours Administration avancé Séance 4
Netfilter: hooks • Pre-routing: après réception du paquet et la vérification de base (non-tronqué – checksum) • Route (n’est pas un hook): décision de routage (interface local, acheminement ou rejet…) • Local_in: paquet destiné à la machine local. • Ip_forward: le paquet est destiné à une autre interface • Local_out: pour les paquets provenant de la machine locale. Appelé avant le routage. • Post_routing: après routage (qu’il provienne de la machine locale ou du réseau). Cours Administration avancé Séance 4
20
10
Netfilter: opérations • Les modules s’enregistrent pour écouter les paquets sur les différents hooks. • Les modules fixent une priorité. Les modules sont traités par ordre de priorité. Les modules examinent les paquets aux différents hooks. • Pour un paquet donné, les opérations possibles du module (elles sont effectuées par Netfilter pour le paquet en cours de traitement à la demande du module): – ACCEPT: continue sans modification – DROP: jette le paquet – STOLEN: le paquet est pris par le module (qui le traite), netfilter doit oublier ce paquet. – QUEUE: le paquet est passé dans le userspace.
21
Cours Administration avancé Séance 4
Filtrage (firewall) • iptables: module/commande permettant de manipuler les paquets ip sous linux. • Sur quel(s) hooks sont effectués les opérations de filtrages et le nat?
Pour chaque paquet, l’opération de filtrage n’est effectué qu’une seule fois: – – –
•
Source NAT: – –
•
Les paquets sont traités après le routage car seul l’adresse source sera modifié (on modifie l’adresse source du premier paquet). Local_in peut aussi être une accroche.
Destination NAT: – –
•
Local_in pour les paquets sortant de la machine locale. Local_out pour les paquets à destination de la machine locale. Ip_forward pour le paquets routé par la machine locale.
Les paquets sont traités avant le routage car l’adresse destination va être modifié (on modifie l’adresse destination du premier paquet). Local_out peut aussi être une accroche.
ConnTrack: le connection tracking est appliquée sur tous les hooks manipulés par le NAT (Src ou Dst). Il permet de modifier les paquets pour tous les paquets appartenant à la même connexion. Plus précisément: – –
NAT est utilisé pour les nouvelles connexions. ConnecTrack est utilisé pour les autres paquets.
Cours Administration avancé Séance 4
24
12
Port forwarding et Transparent proxy • Port forwading: implémentation particulière du Destination NAT. Indique que pour une adresse et un port donnée, l’adresse destination (et eventuellemnt le port) doit être modifié. • Transparent Proxy: implémentation particulière du destination NAT. Les connexions sur un port donné sont « interceptés » et redirigés (en local ou ailleurs). • Packet Mangling: changement des champs du paquet IP (par exemple le champ TOS). Peut être effectué sur tous les hooks. 25
Cours Administration avancé Séance 4
Iptables • iptables [-t table] –IAD chain rule table:nat, nat,filter filterou ou table: mangle. mangle. Suivantlalatable, table,les les Suivant hooksne nesont sontpas pas hooks lesmêmes. mêmes. les
Cours Administration avancé Séance 4
Typed’opération d’opérationàà Type effectuer effectuer (Ajouter/supprimer (Ajouter/supprimer unerègle). règle). une
Iptables: firewall • Principe de base: – Autoriser uniquement les communications explicitement autorisées – Empêcher les communications qui ont été explicitement interdites
• La table est filter • 2 règles : – Allow – Drop
• Les règles ont un ordre précis. Par défaut, la règle entrée la dernière est consultée la première.
27
Cours Administration avancé Séance 4
Iptables : firewall (2) • Autoriser uniquement les communications explicitement autorisées • Iptables –L permet de lister les règles en places. Par défaut tout est accepté: #iptables –L Chain INPUT (policy ACCEPT)
Règle par défaut qui est appliqué si aucune autre règle ne s’applique au paquet.
On modifie les paquets en sortie sur l’interface eth0 en changeant l’adresse source avec l’adresse (ici publique) 69.15.14.2 #iptables –t nat –A POSTROUTING–o eth1 –j SNAT --to 69.15.14.2-69.15.14.8
On peut aussi spécifier une plage d’adresses sources à utiliser.
On modifie les paquets en entrée sur l’interface eth1 avant le routage en changeant l’adresse destination avec l’adresse (ici privée) 10.1.1.1 #iptables –t nat –A PREROUTING –i eth1 --dport 80 –j DNAT --to 10.1.1.1:80
Tous les paquets (connexions) sur le port 80 sont redirigés à l’adresse 10.1.1.1 (utilisé pour le Port Forwarding).