GNU/Linux: Un Unix libre Routage et filtrage IP avec Linux. SCI Limoges Marcel Giry 1
Plan de la formation: 1-Notions de base sur TCP/IP : Rappels sur l'adressage IP Principes du routage IP Les protocoles associés à IP Rappels sur les connexions TCP et UDP Principe de base des gardes barrières Translation d'adresses, masquage d'adresses 2-Les outils de routage/filtrage sous Linux : fonctionnalités d'ipchains les principales commandes l'interface graphique easyfw 3-Configuration de base de Linux pour faire du routage: Installation/configuration des cartes réseau Configuration pour faire du routage (ipchains) Configurer le routage avec easyfw 4- Configuration de base de Linux pour faire du filtrage: Configuration pour faire du filtrage (ipchains) Configuration le filtrage avec easyfw Quelques exemples de filtrage de trafic 5- Configuration de base de Linux pour faire du masquage: Fonctions du noyau nécessaires au masquage ( Mandrake 6.1) Interface graphique easyfw Spécificités du masquage 6- Automatiser les procédures: scripts de démarrage utilisation du cron 7- Références: Marcel Giry 2
Notions de base sur TCP/IP: L'adressage IP : Routage et filtrage sous Linux Chaque machine d'un réseau IP est référencée par une adresse IP ( version 4) : codée sur 32 bits ( 4 octets) = @ip = #réseau + # machine notée sous la forme de 4 nombres séparés par des points ( ex : 192.93.116.1) Les réseaux TCP/IP sont rangés en 3 classes principales de A à C en fonction de la taille du champ numéro de réseau: classe A : 1 à 127.X.X.X classe B : 128 à 191.X.X.X classe C : 192 à 223.X.X.X Classe A 0xxx xxxx N machine 1 à 127.X.X.X Classe B 10xx xxxx N machine 128 à 191.X.X.X Classe C 110x xxxx N machine 192 à 223.X.X.X Classe D 1110 N groupe multicast 224 à 239.X.X.X Classe E 1111 0 réservées > 240.X.X.X N Réseau N Machine Les classes d'adresses IP Les numéros de réseau sont attribués par des organismes officiels. Pour l Europe, il s agit du RIPE ( Réseaux IP Européens ) qui lui-même délègue des tranches d adresses aux prestataires d accès à l Internet. Seuls restent disponibles des N de classe C Il existe des d adresses privées qui peuvent être librement utilisées pour des usages internes, sur des réseaux non raccordés à l Internet ( RFC 1918) : En classe A : En classe B : En classe C : 10.X.X.X 172.16.X.X à 172.31.X.X 192.168.X.X Marcel Giry 3
L'administrateur du réseau IP peut découper son réseau en plusieurs sous-réseaux : le champ "machine" est découpé en "sous-réseau+machine" @ réseau @ sous réseau @ machine Utilisation d un sous-réseau IP Exemples: Classe Nb bits @sous réseau Nb bits @ machine Masque réseau Nouvelle notation B 0 16 255.255.0.0 A.B.0.0/16 B 8 8 255.255.255.0 A.B.C.0/24 C 0 8 255.255.255.0 A.B.C.0/24 C 3 5 255.255.255.224 A.B.C.D/27 Les paquets IP qui sont véhiculés sur le réseau contiennent dans l'en-tête, entre autres informations, les source et destinataire des stations émettrices et destinatrices. source dest Marcel Giry 4
Principe du routage IP : Routage et filtrage sous Linux Un routeur IP est un équipement qui permet d'interconnecter deux (ou plus) réseaux (ou sous-réseaux) IP. Il possède au moins deux interfaces réseaux raccordées chacune aux réseaux IP à interconnecter. Le principal rôle du routeur est de rediriger les paquets IP qu'il reçoit sur l'une de ses interfaces, vers l'interface de sortie, en fonction de l'adresse du destinataire (destinataire). Pour cela il dispose d'une table de routage interne (tout comme les stations des utilisateurs qui ont dans leur table de routage la "passerelle par défaut" Exemple : Internet 164.12.13.1 164.12.13.2 Routeur 11.11.11.254 192.1.1.28 Réseau A 11.11.11.0 destination Stations réseau A 11.11.11.0/24 0.0.0.0/0 (default) Stations réseau B 192.1.1.0/24 0.0.0.0/0 (default) Routeur 11.11.11.0/24 192.1.1.0/24 0.0.0.0/0 (default) Exemple de routage Réseau B 192.1.1.0 Routeur (Gateway) Interface Néant Eth0 ( ou de eth0) 11.11.11.254 Eth0 Néant Eth0 ( ou de eth0) 192.1.1.28 Eth0 Néant Eth0 Néant Eth1 164.12.13.1 PPP0 ( ligne Internet) Marcel Giry 5
Les protocoles associés à IP : Routage et filtrage sous Linux Au dessus de la couche IP plusieurs protocoles sont utilisés ( TCP, UDP, ) pour véhiculer les données entre les applications (http, telnet, ftp, ). ICMP est un sous protocole de IP (niveau3) utilisé notamment pour tester l'accessibilité d'une machine ( ping) ou le route utilisé pour atteindre une machine (traceroute). 5-6-7 telnet ftp smtp http r... commands Applications spécifiques 4 TCP UDP 3 1-2 ISO Protocoles IP, ARP,ICMP couches physique et liaison Ethernet, IEEE 802.3, IEEE 802.5, Série PPP TCP -IP Un champ de l'entête IP permet de déterminer le type de protocole utilisé au niveau Transport (niveau 4) source dest TCP ou UDP Message TCP ou Message UDP Marcel Giry 6
Rappels sur les connexions TCP et UDP : Enfin au niveau supérieur les applicatifs utilisent des ports (TCP et/ou UDP). Coté destinataire les applicatifs serveurs utilisent des ports prédéfinis définis: ftpd : TCP 21 ( et 20 pour les données) telnetd : TCP 23 httpd : TCP 80 etc.. Coté émetteur, le logiciel client utilise un port utilisateur disponible. source dest TCP ou UDP P.source P.dest P.source P.dest Données de l application Données de l application Une connexion entre un processus client et un processus serveur est matérialisée par le couple de triplets [ (source, TCP/UDP, port source), (dest., TCP/UDP, port dest.) ] Applications Application Port source Application Port destination Transport TCP UDP TCP UDP Réseau IP, ARP, ICMP IP, ARP, ICMP Liaison Physique IEEE 802.x ATM FDDI PPP... Réseau IP IEEE 802.x ATM FDDI PPP... Modèle TCP/IP Marcel Giry 7
Principe de base des gardes barrières ( Firewall) On distingue essentiellement deux types de gardes barrières: les gardes barrières filtrants ( Filtering Firewalls) Ces gardes barrières sont en fait des routeurs qui filtrent certains paquets. Les filtres se présentent sous forme de listes d'accès (Access-Lists). Les filtres peuvent s'appliquer au niveau : - des adresses IP - du protocole encapsulé dans IP (ICMP, TCP, UDP, ) - des ports destinataires c'est-à-dire des applicatifs sollicités : (telnet, ftp, http, mail, news, irc, ) source dest TCP ou UDP P.source P.dest P.source P.dest Données de l application Données de l application Filtrage niveau IP Filtrage niveau applicatif Filtrage niveau protocole les gardes barrières mandataires ( Proxy Firewalls) Ces gardes barrières travaillent au niveau applicatif et accèdent au réseau extérieur pour le compte de l'usager final ( proxy telnet, proxy Web, ) Le proxy-web assure souvent en plus le rôle de cache-web pour diminuer le trafic vers l'extérieur (Squid sous Unix). Marcel Giry 8
Translation d'adresses, masquage d'adresses La translation d'adresse Réseau ( Nat) La translation d'adresse est utilisée pour pallier à une insuffisance d'adresses réseau officielles (par exemple raccorder un réseau interne de 1000 machines alors que l'on ne dispose que d'un réseau de classe C, soit 254 adresses). Dans l'exemple ci-dessous: - le réseau interne utilise des adresses privées de classe A (10.0.0.0/8) - le réseau externe utilise des adresses externes de classe C officielles attribuées par le prestataire (195.195.195.0/24) - la translation est statique sur les serveurs (www, ftp, ) et dynamique sur les autres machines. La translation se fait au niveau IP. Réseau IP 10.0.0.0/8 serveurs www 10.11.12.1 ftp 10.11.12.2 Table de translation 10.11.12.1 195.195.195.1 10.11.12.2 195.195.195.2 10.122.123.2 10.54.92.4 10.4.5.6. 195.195.195.15 195.195.195.16 195.195.195.17. www.truc.fr ftp.truc.fr Vu de l extérieur réseau IP 195.195.195.0 dynamique statique Postes clients Clients 10.0.0.x Réseau externe Translation d adresses IP par un routeur réseau IP d interconnexion Marcel Giry 9
Le masquage d'adresse réseau ( masquerading) Le masquage d'adresse est utilisé pour connecter un ensemble de machines à un réseau extérieur en utilisant l'adresse externe du routeur d'interconnexion. Dans l'exemple ci-dessous: - le réseau interne utilise des adresses privées de classe C (192.168.100.0/24) - le site ne dispose que d'une adresse externe, celle de l'interface du routeur vers le réseau d'interconnexion, attribuée par le prestataire ( 193.1.1.2/32) - seul le routeur est visible de l'extérieur ( pas de serveurs visibles de l'extérieur sur le réseau interne). Table de masquage 192.168.100.3, TCP, 2048 192.168.100.12, TCP, 2048 192.168.100.15, TCP, 2048 192.168.100.3, UDP, 512.... Réseau IP 192.168.100.0/24 193.1.1.2, TCP, 1012 193.1.1.2, TCP, 1013 193.1.1.2, TCP, 1018 193.1.1.2, UDP, 456.. Vu de l extérieur seul le routeur est accessible dynamique Postes clients 193.1.1.2 193.1.1.3 Réseau externe masquage d adresses IP par un routeur réseau IP d interconnexion Marcel Giry 10