1 / 29

Firewalls

Firewalls. Plan du cours. Présentation générale Firewall avec IPChains Firewall avec IPTables (NetFilter). Partie 1. Présentation générale Firewall avec IPChains Firewall avec IPTables (NetFilter). Définition théorique. Firewall Logiciel de contrôle d’accès au niveau du réseau

stan
Download Presentation

Firewalls

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Firewalls Ciefa Poly-informatique

  2. Plan du cours • Présentation générale • Firewall avec IPChains • Firewall avec IPTables (NetFilter) Ciefa Poly-informatique

  3. Partie 1 • Présentation générale • Firewall avec IPChains • Firewall avec IPTables (NetFilter) Ciefa Poly-informatique

  4. 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…. Ciefa Poly-informatique

  5. 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. Ciefa Poly-informatique

  6. 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 Ciefa Poly-informatique

  7. 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…) Ciefa Poly-informatique

  8. 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 Ciefa Poly-informatique

  9. 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 Ciefa Poly-informatique

  10. 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 Ciefa Poly-informatique

  11. 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 Ciefa Poly-informatique

  12. 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 Ciefa Poly-informatique

  13. Zone démilitarisée (DMZ) Internet ppp0 – 213.11.32.10 Firewall DMZ eth0 – 213.11.32.50 eth1 – 192.168.1.1 Apache DNS Lotus 213.11.32.20 213.11.32.30 213.11.32.40 LAN – 192.168.0.0/16 Ciefa Poly-informatique

  14. 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. Ciefa Poly-informatique

  15. Partie 2 • Présentation générale • Firewall avec IPChains • Firewall avec IPTables (NetFilter) Ciefa Poly-informatique

  16. FireWall avec IP-Chains • Possibilités • Principe de base • Options • Mise en service Ciefa Poly-informatique

  17. 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 Ciefa Poly-informatique

  18. IPChains : possibilités (2/2) • 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 Ciefa Poly-informatique

  19. IPChains : principe de base • 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 Ciefa Poly-informatique

  20. IPChains : options • 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 Ciefa Poly-informatique

  21. 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 Ciefa Poly-informatique

  22. Partie 3 • Présentation générale • Firewall avec IPChains • Firewall avec IPTables (NetFilter) Ciefa Poly-informatique

  23. FireWall avec IP-Tables • IPChains vs IPTables • Principe de base • Options • Nouveauté • Exemple Ciefa Poly-informatique

  24. 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. Ciefa Poly-informatique

  25. IPTables : principe de base • 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 Ciefa Poly-informatique

  26. IPTables : options • 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 Ciefa Poly-informatique

  27. IPTables : nouveauté • 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. Ciefa Poly-informatique

  28. IPTables : exemple • 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 Ciefa Poly-informatique

  29. IPChains, IPTables vs FW-1 Argument 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 Ciefa Poly-informatique

More Related