13/12/2002Ciefa Poly-informatique Firewalls. 13/12/2002Ciefa Poly-informatique Plan du cours...
-
Upload
laurentine-chauveau -
Category
Documents
-
view
106 -
download
1
Transcript of 13/12/2002Ciefa Poly-informatique Firewalls. 13/12/2002Ciefa Poly-informatique Plan du cours...
13/12/2002 Ciefa Poly-informatique
Firewalls
13/12/2002 Ciefa Poly-informatique
Plan du cours
Présentation générale
Firewall avec IPChains
Firewall avec IPTables (NetFilter)
13/12/2002 Ciefa Poly-informatique
Partie 1
Présentation générale
Firewall avec IPChains
Firewall avec IPTables (NetFilter)
13/12/2002 Ciefa Poly-informatique
Définition théorique
Firewall Logiciel de contrôle d’accès au niveau du réseau
Divers niveaux de filtrage Liaison (adresse MAC, …) Réseau (en têtes IP, IPX, … et type/code ICMP) Transport (ports TCP/UDP) Filtrage adaptatif (« statefull inspection ») ou dynamique Session (« circuit level gateway », SOCKS) Application (relais applicatifs – « application proxys ») Combinaison….
13/12/2002 Ciefa Poly-informatique
Définition pratique Mais pratiquement :
Fonctionnalité principale : filtrage IP Fonctionnalité supplémentaire svt présente : traduction d’adresses
et de ports
Filtrage IP Idée : contrôler les paquets IP autorisés à atteindre un hôte Intérêt : sécuriser un hôte de façon globale (au niveau réseau)
Traduction d’adresses et de ports Idée : réécrire les en-têtes des paquets Intérêt : faire face à la pénurie d’adresses routables sur l’Internet.
13/12/2002 Ciefa Poly-informatique
Avantages des firewalls
Gestion de la sécurité concentrée
Configuration peu sensible à l’échelle du périmètre de sécurité
Capacité d’audit du trafic réseau
Traces supplémentaires pour certains incidents
Concentrer la maintenance à quelques heures/jours sur une ou plusieurs machines plutôt qu’un parc
13/12/2002 Ciefa Poly-informatique
Inconvénients des firewalls
Goulet d’étranglement réseau
Point névralgique de l’architecture de sécurité
Complexe : Connaissance nécessaire des protocoles filtrés (TCP/IP, HTTP,
… mais aussi FTP, SQL, …)
Compréhension du fonctionnement du pare-feu (interface entre les divers niveaux de filtrage, traduction d’adresse…)
13/12/2002 Ciefa Poly-informatique
Firewalls libres Netfilter
Filtre de paquets du noyau Linux 2.4 Successeur d’IPChains (Linux 2.2) Développé par Paul Russell
IP Filter Filtre de paquets fonctionnant sous Unix libres et propriétaires Intégré dans FreeBSD et NetBSD Conçu et développé par Darren Reed
Packet Filter Filtre de paquets dans OpenBSD (à partir de la version 3.0) Conçu par Daniel Hartmeier
13/12/2002 Ciefa Poly-informatique
Filtrage IP standard Critères
Interface réseau : entrée ou sortie Adresses IP (source et destination) : hôte ou sous-réseau Champs de l’en-tête IP :
Fragmentation TOS et TTL Options IP
Protocoles de niveau 4 : TCP, UDP et ICMP Ports source et destination (TCP et UDP) Drapeaux (TCP) Types et codes (ICMP)
Actions Laisser passer (ACCEPT) Bloquer (DENY ou DROP) Rejeter (REJECT) => message ICMP ou segment TCP avec drapeau RST
13/12/2002 Ciefa Poly-informatique
Filtrage à états (statefull) Principe :
Filtrage dynamique, en conservant des états pour les connexions en cours Seuls des paquets correspondants à un état pré-existant sont acceptés
Intérêt : Simplifie l’écriture des règles de filtrage Améliore la sécurité, en n’autorisant que le trafic effectivement licite
Protocoles : TCP
Segments appartenant à une connexion TCP en cours UDP
Datagrammes en réponse à un datagramme UDP émis Messages ICMP d’erreur
ICMP Messages ICMP en réponse à un message ICMP émis
13/12/2002 Ciefa Poly-informatique
Filtrage à états : mise en oeuvre
Mise en œuvre : Création d’un état lors de la traversée du premier paquet Mémorisation de paramètres identifiant de façon unique une connexion Validation des paquets par comparaison des états courants Expiration des états après un temps paramétrable
Paramètres conservés : Adresses source et destination Ports source et destination Type, code, identifiant et numéro de séquence (ICMP)
TCP : S’assurer que des segments TCP font partie d’une connexion en cours est
complexe Real Stateful TCP Packet Filtering in IPFilter
=> http://home.iae.nl/users/guido/papers/tcp_filtering.ps.gz
13/12/2002 Ciefa Poly-informatique
Traduction d’adresses et de ports (NAT)
Traduction d’adresses Uni-directionnelle
Traduction en sortie d’adresses (typiquement) privées en adresse(s) publique(s)
Possibilité de changer le port source Bi-directionnelle
Traduction d’une adresse (typiquement) publique en une phrase (typiquement) privée et réciproquement
Redirection de ports Redirection d’un port en entrée vers un autre, en modifiant l’adresse
de destination ou non
Mise en oeuvre : Fonctionnalités présentes dans Netfilter, IPFilter, Packet Filter Ne sont pas détaillées ici
13/12/2002 Ciefa Poly-informatique
Zone démilitarisée (DMZ)
Firewall
ppp0 – 213.11.32.10
Internet
eth0 – 213.11.32.50
eth1 – 192.168.1.1
LAN – 192.168.0.0/16
213.11.32.20
Apache DNS Lotus
213.11.32.30 213.11.32.40
DMZ
13/12/2002 Ciefa Poly-informatique
Zone démilitarisée (DMZ) : règles
On ne peut pas initier de connexion depuis Internet vers le LAN directement.
Le contraire est possible, souvent en camouflant les adresses du réseau interne (masquerade sous Linux, ou NAT, …)
LAN : stratégie de sécurisation par réseau (sécurisation du point d’accès). Le firewall est alors un élément de cloisonnement.
DMZ : stratégie de sécurisation par hôte : chaque serveur est configuré et sécurisé en fonction des services qu’il supporte.
13/12/2002 Ciefa Poly-informatique
Partie 2
Présentation générale
Firewall avec IPChains
Firewall avec IPTables (NetFilter)
13/12/2002 Ciefa Poly-informatique
FireWall avec IP-Chains
Possibilités
Principe de base
Options
Mise en service
13/12/2002 Ciefa Poly-informatique
IPChains : possibilités (1/2)
ipchains est l'un des systèmes de filtrage utilisable sur les noyaux 2.2
Il est dérivé de ipfw un système présent sur d'autres Unix
Il est très puissant : Comptage de traffic Blocage de traffic non souhaité Masquage d'adresses (n : 1) Détournement vers un service local
13/12/2002 Ciefa Poly-informatique
Chaque règle sélectionne les paquets sur les critères : Adresse IP source du paquet Adresse IP destination du paquet Type de protocole (TCP, UDP, ICMP) Port de protocle adressé (source, destination) Interface IP traversée Type de paquet (connexion, transfert)
Chaque règle permet les actions suivantes : Autorisation du paquet Destruction du paquet Rejet du paquet avec message d'erreur Détournement du paquet sur un serveur local
IPChains : possibilités (2/2)
13/12/2002 Ciefa Poly-informatique
ipchains s'organise par chaînes Une chaîne est un ensemble de règles, qui déterminent ce qui
devrait arriver à un certain type de paquet réseau. Il existe 3 chaînes fixes :
Input : pour les paquets arrivant Forward : pour les paquets redirigés vers un autre hôte Output : pour les paquets transmis par la filtre
Les règles de chaque chaîne dépendent de leur ordre. Quand un paquet arrive, il est comparé aux règles de la chaîne pertinente, depuis la première jusqu’à la dernière.
Ipchains CMD [chain] [rule-spec|num] [options]
=>Ex : ipchains –A input –i eth0 -s 192.168.0.1 –p TCP –j DENY
IPChains : principe de base
13/12/2002 Ciefa Poly-informatique
Cibles (option –j => paquet envoyé sur cible) : ACCEPT DENY REJECT (=> icmp) MASQ (option CONFIG_IP_MASQUERADE nécessaire)
Commandes : -A (= ajouter) -D (= supprimer) -R (= remplacer) -C (= vérifier)
Options : -p [!] protocol =>icmp, tcp, udp, all -s [!] addr ([!] port) => adresse source (-d pour destination) -i [!] interface -j target => s’il y a correspondance, paquet envoyé vers cette cible
IPChains : options
13/12/2002 Ciefa Poly-informatique
IPChains : mise en service Un support noyau est obligatoire (présent de base maintenant) Il faut insérer des options :
"Network firewalls" ( CONFIG_FIREWALL=y ) "IP: firewalling" ( CONFIG_IP_FIREWALL=y )
En standard sur noyaux 2.1.x et 2.2.x
Les règles peuvent être éditées dynamiquement Il faut sauvegarder une version de filtrage Il faut installer la version sauvegardée au boot Ne pas oublier :
De mettre les filtres avant d'activer les interfaces réseau De mettre les filtres avant d'activer le routage de paquets IP
13/12/2002 Ciefa Poly-informatique
Partie 3
Présentation générale
Firewall avec IPChains
Firewall avec IPTables (NetFilter)
13/12/2002 Ciefa Poly-informatique
FireWall avec IP-Tables
IPChains vs IPTables
Principe de base
Options
Nouveauté
Exemple
13/12/2002 Ciefa Poly-informatique
IPTables vs IPChains
iptables est l'un des systèmes de filtrage utilisable sur les noyaux 2.4 (et les dernières versions du noyau 2.3)
Il est une évolution de la commande ipchains afin de clarifier certains points (comme le forwarding entre interfaces).
Il incorpore les fonctionnalités de différentes commandes issues de ipchains et ipfwadm => regroupe toutes les fonctionnalités Linux relatives au filtrage de paquets.
13/12/2002 Ciefa Poly-informatique
iptables s'organise par tables Chaque table contient une série de chaînes de règles. Il existe 3 tables principales :
Filtre : contient les chaînes INPUT, FORWARD et OUTPUT (table par défaut) NAT : s’occupe de la conversion d’adresse de réseau. Contient les chaînes
PREROUTING, OUTPUT et POSTROUTING. Mangle : permet une modification des paquets à la volée. Contient les
chaînes PREROUTING et OUTPUT. Les règles de chaque chaîne dépendent de leur ordre. Quand un
paquet arrive, il est comparé aux règles de la chaîne pertinente appartenant à la table pertinente, depuis la première jusqu’à la dernière.
iptables [-t table] CMD [chain] [rule-spec|num] [options]
=>Ex : iptables –t filter –A input –i eth0 -s 192.168.0.1 –p TCP –j DENY
IPTables : principe de base
13/12/2002 Ciefa Poly-informatique
Cibles (option –j => paquet envoyé sur cible) : Cibles de ipchains… SNAT (=> adresse source convertie => dans chaîne POSTROUTING de table NAT) DNAT (=> adresse dest. Convertie => dans chaîne PREROUTING de table NAT) LOG (nécessité d’avoir chargé le module concerné dans le noyau)
Commandes : Commandes de ipchains… -N (--new-chain), -X (--delete-chain) -F (--flush) => supprime toutes les règles de la chaîne et de la table concernée
Options : Options de ipchains… -i [!] interface =>spécifie l’interface de réception => chaînes INPUT, FORWARD et
PREROUTING -o [!] interface =>spécifie l’interface d’expédition => chaînes OUTPUT, FORWARD
et POSTROUTING [!] –syn =>spécifie que cette règle ne devrait satisfaire que des paquets TCP que
s’ils initient la connexion
IPTables : options
13/12/2002 Ciefa Poly-informatique
Capacité de créer des règles de comparaison fondées sur les états des paquets => due au module state
Syntaxe : iptables –m state –state [!] [state, state,…]
Etats possibles : NEW : compare les paquets n’appartenant à aucune connexion en cours ESTABLISHED : compare les paquets appartenant à une connexion déjà ouverte RELATED : compare les paquets qui appartiennent à une autre connexion, par
exemple les messages ICMP d’erreur, ou le trafic lié au fonctionnement d’un protocole applicatif (ftp data => modes passif ou actif)…
INVALID : compare les paquets qui n’ont aucun sens dans le contexte de la connexion existante, ou ceux qui n’ont pu être reçus pour une raison quelconque.
IPTables : nouveauté
13/12/2002 Ciefa Poly-informatique
Le firewall et le réseau interne peuvent tout faire, pas Internet. Les adresses du réseau interne sont masquées pour sortir vers Internet.
IFACE=eth0 # Masque en sortie l’interface eth0
iptables -t nat -A POSTROUTING -o $IFACE -j MASQUERADE # Crée une chaîne qui bloque tout tentative de connexion de l’extérieur
iptables -N block iptables -A block -m state --state INVALID -j DROP iptables -A block -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A block -m state --state NEW -i ! $IFACE -p icmp --icmp-type echo-request -j ACCEPT iptables -A block -m state --state NEW -i ! $IFACE -p udp -j ACCEPT iptables -A block -m state --state NEW -i ! $IFACE -p tcp --syn -j ACCEPT iptables -A block -i $IFACE -m limit --limit 3/s -j LOG --log-prefix "Bad packet from $IFACE:" iptables -A block -i ! $IFACE -m limit --limit 3/s -j LOG --log-prefix "Bad packet not from $IFACE: "
iptables -A block -j DROP # Fais correspondre les chaînes INPUT et FORWARD avec cette chaîne
iptables -A INPUT -j block
iptables -A FORWARD -j block # Active le forwarding IP : echo 1 > /proc/sys/net/ipv4/ip_forward
IPTables : exemple
13/12/2002 Ciefa Poly-informatique
IPChains, IPTables vs FW-1Argument pour comparer et critiquer les firewall propriétaires (ex Fw-1 de Cisco) et les firewall libres : le caractère « statefull »
Entre un firewall type kernel 2.2 (ipchain) et un firewall type kernel 2.4 (iptable), il n'y a pas de comparaison. Ce que l'on appelle communément désormais "statefull", qui consiste a traiter les flux en fonction de leur état (state), connecté, en relation ... FAIT TOUTE LA DIFFERENCE.
On ne peut pas comparer FW-1 et linux-2.2 pour cette raison. Un firewall qui ne se souvient pas des états des connexions est obligé de laisser entrer tous les ports hauts (1025-65535) pour laisser passer les réponses aux requêtes émises par les clients du réseau interne, ce qui représente beaucoup de tracas en terme de sécurité.
=> linux-2.2 est comparable aux routeurs avec acl de cisco. cisco ne les vends pas en temps que "firewall".
=> linux-2.4 est concurrent de FW-1 (checkpoint) et des pix (cisco). Il est sans doute même meilleur car plus configurable.
=> donc attention, "statefull" n'est pas juste un argument marketing