13/12/2002Ciefa Poly-informatique Firewalls. 13/12/2002Ciefa Poly-informatique Plan du cours...

29
13/12/2002 Ciefa Poly-informatique Firewalls

Transcript of 13/12/2002Ciefa Poly-informatique Firewalls. 13/12/2002Ciefa Poly-informatique Plan du cours...

Page 1: 13/12/2002Ciefa Poly-informatique Firewalls. 13/12/2002Ciefa Poly-informatique Plan du cours Présentation générale Firewall avec IPChains Firewall avec.

13/12/2002 Ciefa Poly-informatique

Firewalls

Page 2: 13/12/2002Ciefa Poly-informatique Firewalls. 13/12/2002Ciefa Poly-informatique Plan du cours Présentation générale Firewall avec IPChains Firewall avec.

13/12/2002 Ciefa Poly-informatique

Plan du cours

Présentation générale

Firewall avec IPChains

Firewall avec IPTables (NetFilter)

Page 3: 13/12/2002Ciefa Poly-informatique Firewalls. 13/12/2002Ciefa Poly-informatique Plan du cours Présentation générale Firewall avec IPChains Firewall avec.

13/12/2002 Ciefa Poly-informatique

Partie 1

Présentation générale

Firewall avec IPChains

Firewall avec IPTables (NetFilter)

Page 4: 13/12/2002Ciefa Poly-informatique Firewalls. 13/12/2002Ciefa Poly-informatique Plan du cours Présentation générale Firewall avec IPChains Firewall avec.

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….

Page 5: 13/12/2002Ciefa Poly-informatique Firewalls. 13/12/2002Ciefa Poly-informatique Plan du cours Présentation générale Firewall avec IPChains Firewall avec.

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.

Page 6: 13/12/2002Ciefa Poly-informatique Firewalls. 13/12/2002Ciefa Poly-informatique Plan du cours Présentation générale Firewall avec IPChains Firewall avec.

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

Page 7: 13/12/2002Ciefa Poly-informatique Firewalls. 13/12/2002Ciefa Poly-informatique Plan du cours Présentation générale Firewall avec IPChains Firewall avec.

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…)

Page 8: 13/12/2002Ciefa Poly-informatique Firewalls. 13/12/2002Ciefa Poly-informatique Plan du cours Présentation générale Firewall avec IPChains Firewall avec.

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

Page 9: 13/12/2002Ciefa Poly-informatique Firewalls. 13/12/2002Ciefa Poly-informatique Plan du cours Présentation générale Firewall avec IPChains Firewall avec.

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

Page 10: 13/12/2002Ciefa Poly-informatique Firewalls. 13/12/2002Ciefa Poly-informatique Plan du cours Présentation générale Firewall avec IPChains Firewall avec.

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

Page 11: 13/12/2002Ciefa Poly-informatique Firewalls. 13/12/2002Ciefa Poly-informatique Plan du cours Présentation générale Firewall avec IPChains Firewall avec.

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

Page 12: 13/12/2002Ciefa Poly-informatique Firewalls. 13/12/2002Ciefa Poly-informatique Plan du cours Présentation générale Firewall avec IPChains Firewall avec.

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

Page 13: 13/12/2002Ciefa Poly-informatique Firewalls. 13/12/2002Ciefa Poly-informatique Plan du cours Présentation générale Firewall avec IPChains Firewall avec.

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

Page 14: 13/12/2002Ciefa Poly-informatique Firewalls. 13/12/2002Ciefa Poly-informatique Plan du cours Présentation générale Firewall avec IPChains Firewall avec.

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.

Page 15: 13/12/2002Ciefa Poly-informatique Firewalls. 13/12/2002Ciefa Poly-informatique Plan du cours Présentation générale Firewall avec IPChains Firewall avec.

13/12/2002 Ciefa Poly-informatique

Partie 2

Présentation générale

Firewall avec IPChains

Firewall avec IPTables (NetFilter)

Page 16: 13/12/2002Ciefa Poly-informatique Firewalls. 13/12/2002Ciefa Poly-informatique Plan du cours Présentation générale Firewall avec IPChains Firewall avec.

13/12/2002 Ciefa Poly-informatique

FireWall avec IP-Chains

Possibilités

Principe de base

Options

Mise en service

Page 17: 13/12/2002Ciefa Poly-informatique Firewalls. 13/12/2002Ciefa Poly-informatique Plan du cours Présentation générale Firewall avec IPChains Firewall avec.

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

Page 18: 13/12/2002Ciefa Poly-informatique Firewalls. 13/12/2002Ciefa Poly-informatique Plan du cours Présentation générale Firewall avec IPChains Firewall avec.

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)

Page 19: 13/12/2002Ciefa Poly-informatique Firewalls. 13/12/2002Ciefa Poly-informatique Plan du cours Présentation générale Firewall avec IPChains Firewall avec.

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

Page 20: 13/12/2002Ciefa Poly-informatique Firewalls. 13/12/2002Ciefa Poly-informatique Plan du cours Présentation générale Firewall avec IPChains Firewall avec.

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

Page 21: 13/12/2002Ciefa Poly-informatique Firewalls. 13/12/2002Ciefa Poly-informatique Plan du cours Présentation générale Firewall avec IPChains Firewall avec.

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

Page 22: 13/12/2002Ciefa Poly-informatique Firewalls. 13/12/2002Ciefa Poly-informatique Plan du cours Présentation générale Firewall avec IPChains Firewall avec.

13/12/2002 Ciefa Poly-informatique

Partie 3

Présentation générale

Firewall avec IPChains

Firewall avec IPTables (NetFilter)

Page 23: 13/12/2002Ciefa Poly-informatique Firewalls. 13/12/2002Ciefa Poly-informatique Plan du cours Présentation générale Firewall avec IPChains Firewall avec.

13/12/2002 Ciefa Poly-informatique

FireWall avec IP-Tables

IPChains vs IPTables

Principe de base

Options

Nouveauté

Exemple

Page 24: 13/12/2002Ciefa Poly-informatique Firewalls. 13/12/2002Ciefa Poly-informatique Plan du cours Présentation générale Firewall avec IPChains Firewall avec.

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.

Page 25: 13/12/2002Ciefa Poly-informatique Firewalls. 13/12/2002Ciefa Poly-informatique Plan du cours Présentation générale Firewall avec IPChains Firewall avec.

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

Page 26: 13/12/2002Ciefa Poly-informatique Firewalls. 13/12/2002Ciefa Poly-informatique Plan du cours Présentation générale Firewall avec IPChains Firewall avec.

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

Page 27: 13/12/2002Ciefa Poly-informatique Firewalls. 13/12/2002Ciefa Poly-informatique Plan du cours Présentation générale Firewall avec IPChains Firewall avec.

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é

Page 28: 13/12/2002Ciefa Poly-informatique Firewalls. 13/12/2002Ciefa Poly-informatique Plan du cours Présentation générale Firewall avec IPChains Firewall avec.

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

Page 29: 13/12/2002Ciefa Poly-informatique Firewalls. 13/12/2002Ciefa Poly-informatique Plan du cours Présentation générale Firewall avec IPChains Firewall avec.

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