1 / 37

Firewall et sécurité d'un réseau personnel sous Linux

Introduction I Rappels sur les réseaux IP II Sécurité de base III Netfilter / Iptables IV Outils et liens Conclusion. Firewall et sécurité d'un réseau personnel sous Linux. Olivier ALLARD-JACQUIN. I Rappels sur les réseaux IP. Adresses IP Ports Masque de sous-réseau Réseaux IP

stian
Télécharger la présentation

Firewall et sécurité d'un réseau personnel sous Linux

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. Introduction I Rappels sur les réseaux IP II Sécurité de base III Netfilter / Iptables IV Outils et liens Conclusion Firewall et sécurité d'un réseau personnel sous Linux Olivier ALLARD-JACQUIN

  2. I Rappels sur les réseaux IP • Adresses IP • Ports • Masque de sous-réseau • Réseaux IP • Passerelle • Type de trame • La poignée de main (hand check) • Interface réseau

  3. Adresses IP • Adresse IP obligatoire pour se connecter sur un réseau IP • Adresse UNIQUE pour un réseau • 4 nombres : 0 ->255 • Ex : 56.2.68.147 • 3 classes d'adresses privées : • Classe A : 10.x.y.z • Classe B : 172.x.y.z • Classe C : 192.168.x.y (*) Adresse IP <=> Immeuble (*) 16 <= x <= 31

  4. Les ports • Nécessaire pour communiquer • IN / OUT / IN ou OUT • Logiciels serveurs ou client • 65535 ports / machines : • 0 à 1024: serveurs • 32768 à 61000: client • Exemple : Logiciel <=> Utilisateur Port <=> fenètre

  5. Masque de sous-réseaux • Grouper les machines • 4 nombres : 0, 128, 192, 224, 240, 248, 252, 254, 255 • Exemple : 255.255.255.0 • Nombre max d'adresse IP • Pour les classes privées : • Classe A : 255.0.0.0 • Classe B : 255.255.0.0 • Classe C : 255.255.255.0 Masque de sous réseau<=> Quartier

  6. Réseau IP • Combinaison adresse IP / Masque de sous-réseau • Exemples : • 192.168.0.0 / 255.255.255.0 • 192.168.0.0 / 24 • Pour les classes privées : • Classe A : 10.x.y.z / 8 • Classe B : 172.x.y.z / 16 • Classe C : 192.168.x.y / 24 (*) (*) 16 <= x <= 31 Réseau IP<=> Barrière

  7. Passerelle • Les réseaux sont isolés entre eux • Seule sortie : La passerelle / gateway • 1 adresse IP (ex : 192.168.0.254) • Se charge de trouver le destinataire Passerelle <=> Garde barrière

  8. Type de trames • Différents types de transmission d'informations : • TCP • UDP • ICMP • ... Type de trames <=> Type de courrier

  9. La poignée de mains • Valable pour TCP • 3 étapes : • SYN • ACK + SYN • ACK • Le dialogue peut débuter La poignée de mains <=> Engager la conversation

  10. Interfaces réseaux • Carte réseau : eth0, eth1, ... • Modem : ppp0, ppp1, .... • Loopback : lo • 1 ou plus adresses IP par interface : • eth0 192.168.0.1 • eth0:0 192.168.1.1 • eth0:1 192.168.2.1

  11. II Sécurité de base • Présentation du réseau • Outils d'analyse et de détection • Démons, serveurs et démons de service • Risques • Fermeture des ports • Bilan

  12. Présentation du réseau • Paradise : • paradise.sky.net • eth0 : 192.168.0.2/24 • Phoenix : • phoenix0.sky.net • eth0 : 192.168.0.1/24 • phoenix1.sky.net • eth1 : 10.0.0.1/8 • Pirate : • pirate.internet.net • eth0 : 10.0.0.66/8 • web.internet.net • eth:0:0 : 10.0.0.200/8

  13. Outils d'analyse et de détection • Intrus / administrateur: Même combat, mêmes outils • Outils : • Nmap • Tcpdump • Ethereal • Netstat • Lsof • Ping • Traceroute

  14. Démons, serveurs et démons de service • Démons : cron, dm, xfs, random, alsa ... • Serveurs : Apache, Bind, MySQL, Samba ... • Démon de service: Inetd / Xinetd • Méta démon de surveillance et de contrôle d'accès • Gère des services : telnet, proftpd, pop, cvs, time ...

  15. Risques et protections simples • Risques : • Saturation • Vol / suppression de données • Exécution de code arbitraire • Prise de contrôle à distance • Protections simples : • Utilisateur • Prison / jail (chroot) • User mode kernel

  16. Fermeture des ports • Arrêter les services inutiles • Contrôler les accès : • Gérer les démons : /etc/init.d/* • Contrôle des démons : /etc/rc3.d/ et /etc/rc5.d/

  17. Bilan • Pas de contrôle sur l'ICMP • Scan toujours utilisable • IP Spoofing

  18. III Netfilter / Iptables • Pré-requis • Vue générale de Netfilter • Chaînes, règles et iptables • Les tables • Un premier script simple • Le suivi de connexion (conntrack) • IP masquerading • Log (LOG / ULOG) • Firewall applicatif

  19. Pré-requis • Kernel 2.4.x ou supérieur • rpm / urpmi / apt iptables • Compilation du kernel CONFIG_MODULES : Y CONFIG_PACKET : Y CONFIG_NETFILTER : Y CONFIG_UNIX : Y CONFIG_INET : Y CONFIG_IP_ADVANCED_ROUTER : Y CONFIG_IP_NF_CONNTRACK : M CONFIG_IP_NF_FTP : M CONFIG_IP_NF_IRC : M CONFIG_IP_NF_IPTABLES : M CONFIG_IP_NF_FILTER : M CONFIG_IP_NF_NAT : M CONFIG_IP_NF_MATCH_LIMIT : M CONFIG_IP_NF_MATCH_STATE : M CONFIG_IP_NF_TARGET_MASQUERADE : M CONFIG_IP_NF_TARGET_REDIRECT : M CONFIG_IP_NF_TARGET_LOG : M CONFIG_IP_NF_TARGET_ULOG : M

  20. Vue générale de Netfilter • Netfilter : Rien à voir avec le firewall sous Windows • Netfilter : 5 crochets (hook) dans la pile réseau • Une chaîne et des règles par crochet

  21. Chaînes, règles et iptables • Règles : Conditions de passage des paquets réseau • Chaînes : Conteneur de règles • Chaînes prédéfinies et chaînes utilisateur : Même combat • Iptables : Le maître des règles

  22. La table Filter • 3 chaînes : • INPUT : Paquets rentrants vers des processus locaux • OUTPUT : Paquets sortant des processus locaux • FORWARD : Paquets passant d'une interface à l'autre

  23. La table NAT • 3 chaînes : • PREROUTING : Paquets rentrants dans la couche réseau • POSTROUTING : Paquets sortants de la couche réseau • OUTPUT : Paquets sortants des processus locaux

  24. La table Mangle • Mangle : Mutilation des paquets ... • Application : QoS (Quality of Service)

  25. Iptables • Manipulation des tables : • -t (table) • Manipulation des chaînes : • -F (Flush) -X (eXtra) -P (default Policy) -N (New) -A (Append) -D (Delete) -L (Liste) • Cible : • -j (Jump) • Critères : • -i (Input) -o (Output) -s (Source) -d (destination) -p (protocole) -sport (Source port) -dport (destination port) • Spécial : • -m (module) –state (Status) -log (Log)

  26. Un premier script simple • Supprimer toutes les règles : iptables -t filter -F iptables -t filter -X • Détruire tout par défaut : iptables -t filter -P INPUT DROP iptables -t filter -P OUTPUT DROP iptables -t filter -P FORWARD DROP • Autoriser avec parcimonie : iptables -t filter -A OUTPUT -o eth1 -p tcp --dport 80 -j ACCEPT iptables -t filter -A OUTPUT -o eth1 -p tcp --dport 443 -j ACCEPT iptables -t filter -A INPUT -i eth1 -p tcp --sport 80 -j ACCEPT iptables -t filter -A INPUT -i eth1 -p tcp --sport 443 -j ACCEPT

  27. Le suivi de connexion (conntrack) • Problème : nmap -g 80 • Modules conntrack • Connexions: • NEW • ESTABLISHED • RETATED (Ex : FTP) • INVALID iptables -A OUTPUT -o eth1 -s 10.0.0.1 -p all -m state --state ! INVALID -j ACCEPT iptables -A INPUT -i eth1 -d 10.0.0.1 -p all -m state --state RELATED,ESTABLISHED -j ACCEPT • Netfilter = trou noir <=> Protection absolue ?

  28. IP masquerading (masquage IP) • Paradise sur Internet ? • Table NAT • Voie montante • Voie descendante • Modules NAT • Clef de sortie iptables -A FORWARD -i eth0 -o eth1 -s 192.168.0.0/24 -m state --state ! INVALID -j ACCEPT iptables -A FORWARD -i eth1 -o eth0 -d 192.168.0.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/24 -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward Clef de sortie

  29. Log (LOG / ULOG) iptables -A INPUT -p all -j LOG --log-prefix DefautlDropIN iptables -A OUTPUT -p all -j LOG --log-prefix DefautlDropOUT • Log avant destruction : • Log et destruction : iptables -N LogDrop iptables -A LogDrop -j LOG –log-prefix LogAndDrop iptables -A LogDrop -j DROP • Séparer les LOG. Une solution, ULOG : modprobe ipt_ULOG iptables -N LogDrop iptables -A LogDrop -j ULOG --ulog-prefix LogAndDrop iptables -A LogDrop -j DROP

  30. Firewall applicatif Exemple: FireFlier (http://fireflier.sourceforge.net/) • Firewall applicatif : Filtrage IP par application • Intérêt • ip_queue / LIBIPQ • Exemple : • Fireflier

  31. IV Outils et liens • Interfaces à iptables • Distributions spécialisées • Netfilter_cfg • Liens

  32. Interfaces à iptables • Freshmeat: • KNetfilter • ... ... ... http://freshmeat.net/browse/151/ http://freshmeat.net/projects/knetfilter/

  33. Distributions spécialisées • IPCop • floppyfw • BBIagent • Linux rooter (RIP) • ... ... ... http://www.ipcop.org http://www.zelow.no/floppyfw/ http://www.bbiagent.net/en/index.html http://www.linuxrouter.org/

  34. Netfilter_cfg • Script bash • Support de multiples interfaces locales • Connexion externe : RTC / ADSL / passerelle • Supporte : Conntrack / IP masquerading • LOG / ULOG / Filtrage de logs • Gestion de serveurs : TO / FTP / ... • Evolutif

  35. Liens 1 • Documentation du créateur de Netfilter (Rusty Russell): • http://www.netfilter.org/unreliable-guides/ (en Français) • Christian Caleca • http://christian.caleca.free.fr/netfilter/ • IpTables par l'exemple • http://lea-linux.org/reseau/iptables.php3 • Olivier Allard-Jacquin • olivieraj.free.fr

  36. Liens 2 • Recherche de sécurité : • Nessus : http://www.nessus.org/ • SATAN : http://www.fish.com/satan/ • Audit externe : • PcFlank : http://www.pcflank.com/ • DSLreports : http://www.dslreports.com/scan • Références: • Linux : http://www.linuxsecurity.com/ • Plus globales : http://www.securityfocus.com/

  37. Conclusion • Sécurité informatique ? • Ne jamais sous estimer les intrus • Modèle à plusieurs couches • Règles d'or : • fermer les démons inutiles • restreindre les accès à ceux restant • Netfilter / iptables + conntrack + log • 1 : Initialisation des tables • 2 : DROP par défaut • 3 : ACCEPT au compte goûte

More Related