Éléments de Sécurité sous Linux - NicoXnoise
Transcription
Éléments de Sécurité sous Linux - NicoXnoise
Éléments de Sécurité sous Linux ● Objectif: – ● Pare-feu sous GNU/Linux Contenu: – – Principes de base ● fonctionnement de Netfilter ● architecture: DMZ configuration ● par iptables ● par Shorewall ThierryR Salomon – GNU Free Documentation Licence Principe du pare-feu ● un pare-feu sert à filtrer les paquets réseau, en entrée ET en sortie ● les critères de filtrage sont divers, dont: ● – protocole (TCP, UDP, ICMP) et type de paquet dans le protocole – adresse IP source et/ou destination – port source et/ou destination – interface réseau entrante/sortante – état (nouveau, établit, relatif ou invalide): pare-feu « stateful » – différents éléments de qualité de service (QoS) les traitements sont divers: – accepté, rejeté, abandonné, transmis en espace utilisateur – redirection, masquerade (NAT) – logué ThierryR Salomon – GNU Free Documentation Licence Mise-en-oeuvre sous GNU/Linux ● ● ● ● le pare-feu sous GNU/Linux s'appelle Netfilter Les 4 premières couches du modèle OSI jusqu'à la pile TCP/IP sont implémentées dans le noyau Linux. Le filtrage des paquets est donc réalisé par le noyau Linux. Les fonctionnalités associées sont à compiler en statique ou en modules: – network paquet filter – packet socket la commande iptables permet de définir les règles de filtrage une par une que l'on peut ensuite enregistrer dans un fichier ou un script le logiciel Shorewall fournit une configuration plus symbolique: – par interfaces, zones, politique et règles – répertoire de configuration /etc/shorewall – guide: http://www.shorewall.net/shorewall_quickstart_guide.htm ThierryR Salomon – GNU Free Documentation Licence Schéma d'architecture ● les règles de filtrage sont organisées en 3 tables de chaînes: – filter: table par défaut, spécifie les critères de filtrage des paquets – nat: configure la translation d'adresse (masquerading, redirection de ports) – mangle: utilisée pour l'altération spécialisée des paquets ThierryR Salomon – GNU Free Documentation Licence exemple d'architecture ThierryR Salomon – GNU Free Documentation Licence exemple de configuration ● chaque paquet est évalué par rapport à chaque règle dans l'ordre – iptables -t nat -A PREROUTING -i ppp0 -p tcp –dport 80 -j DNAT –to 192.168.0.1 – iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE – il faut aussi activer le paquet forwarding dans le noyau en écrivant net.ipv4.conf.default.forwarding=1 dans /etc/sysctl.conf – iptables -N firewall – iptables -A firewall –m state –-state ESTABLISHED, RELATED, -j ACCEPT – iptables -A firewall –m state -–state NEW -i ! ppp0 -j ACCEPT – iptables -A firewall -p tcp –dport 80 -j ACCEPT – iptables -A firewal -j DROP – iptables -A INPUT -j firewall – iptables -A FORWARD -j firewall ThierryR Salomon – GNU Free Documentation Licence configuration par Shorewall ● Le fichier /etc/shorewall/zones définit les zones: – – – – ● – – – – IN_OPTIONS OUT_OPTIONS #SOURCE loc $FW net all DEST net net all all POLICY ACCEPT ACCEPT DROP REJECT LOG LEVEL LIMIT:BURST info info Le fichier /etc/shorewall/masq définit la translation d'adresse: – – ● TYPE OPTIONS firewall ipv4 ipv4 Le fichier /etc/shorewall/policy définit les politiques d'accès: – ● #ZONE fw net loc #INTERFACE ppp0 SUBNET eth0 ADDRESS PROTO PORT(S) IPSEC Le fichier /etc/shorewall/rules définit les règles particulières: – – – #ACTION DNAT ACCEPT SOURCE net loc DEST loc:192.168.0.1:80 $FW PROTO tcp all PORT(S) www domain ThierryR Salomon – GNU Free Documentation Licence DMZ ● ● ● une DMZ est une zone accessible de l'extérieur mais isolée du réseau local par un routeur pare-feu netfilter peut être utilisé pour configurer une DMZ: – il redirige les requêtes externes vers le sous-réseau de la DMZ – il bloque les accès direct de l'extérieur vers le réseau local – il bloque les accès de la DMZ vers le réseau local la DMZ n'est pas une zone ultraprotégée mais au contraire une zone ultra-vulnérable. On l'isole pour y confiner les intrusions. ThierryR Salomon – GNU Free Documentation Licence