Filtrage
Transcription
Filtrage
Filtrage IP Statique Filtrage statique: Pourquoi ? C'est un des moyens de limiter les flux entre différents réseaux Les concepts du filtrage de paquets(1) Analyse des entêtes d'un paquet : – – – – – – – Protocole Adresse source Adresse destination Port source ( UDP / TCP ) type ( ICMP) Port destination ( UDP / TCP ) type ( ICMP) Indicateurs ( TCP Syn Ack ...) Mac Adresses Les concepts du filtrage de paquets(2) En fonction de règles préétablies , il prend une décision. Trois possibilités – Accepter le paquet ( le laisser passer ) – Refuser le paquet ( répondre que ce n’est pas possible ) – Rejeter le paquet ( faire comme si il n’était jamais arrivé ) Filtrage : mécanisme Les règles sont explorées dans l’ordre La première règle rencontrée qui correspond au paquet est appliquée Elles sont apliquées sur une interface en entrée ou en sortie La référence est toujours le centre de l’équipement de filtrage Commandes de filtrage (cisco/foundry) access-list acl_num {permit|deny} {ip|icmp|tcp| udp|proto:n°} ip-src m-src [expr] ip-dest mdest [expr] [established] [log] Acl_num entre 1 et 99 pour les acl simples, de 100 à 199 pour les acl étendues m-src et m-dest sont des masques qui permettent de d’écrire un ensemble d’addresses à partir de ip-src et ip-dest ( indépendants des masques de réseaux) (Mot clef host et any à partir de V11) Expr : pour tcp et udp {eq|ne|ge|le|gt|lt|range} numéro de port established : uniquement pour tcp permet de laisser passer les réponses aux connexions initiées de l'intérieur log : garder une trace de l'arrivée du paquet Commandes de filtrage (Enterasys ) acl acl_name {permit|deny} {ip|icmp|tcp|udp| protocol num} ip-src m-src ip-dest m-dest [expr-src] [expr-dest] [established] [log] m-src et m-dest sont des masques qui permettent de d’écrire un ensemble d’adresses à partir de ip-src et ip-dest ( indépendants des masques de réseaux ) ou en notation CIDR Expr : pour tcp et udp {=|!=|>|>=|<|<=} numéro de port ou bien portinf-portsup established : uniquement pour tcp permet de laisser passer les réponses aux connexions initiées de l’intérieur log : garder une trace de l'arrivée du paquet Commandes de filtrage NETFILTER iptables iptables [-t filter] -F chaine (vide une chaine) [-t filter] -P chaine {DROP|ACCEPT} (politique ) iptables [-t filter] -N chaine (création d'une chaine) iptables [-t filter] -L ( listes les regles ) iptables [-t filter] -X (remet à zéro les compteurs) iptables [-t filter] -A {INPUT,OUTPUT,FORWARD,chaine} -p [!] protocol -i [!] interface -o [!] interface -s [!] adr_src[/msk_src] --sport [!][port:[port]] -d [!] adr_dest[/msk_dest] --dport [!] [port:[port]] -j {DROP|REJECT|ACCEPT|LOG|RETURN|chaine} [! --syn ] est l'équivalent du established de cisco IPTABLES (Syntaxe) iptables [-t filter] -A (INPUT,OUTPUT,FORWARD,chaîne) [ -p protocol ] [ -s source] [ -d destination ] [ -i interface] [ -o interface] [--sport port] [--dport port] [--tcpflags SYN,RST,ACK] [ --icmp-type number] -j (ACCEPT,REJECT,DROP,LOG,RETURN,chaîne) Le filtrage c'est simple MAIS ... La difficulté c’est : – – – – – La définition des matrices de flux Qu'est ce qui est vital ? Qu'est ce qui est utile ? Qu'est ce qui est dangereux ? Connaissance des protocoles utilisées Simple mais ... (suite) Pour répondre à ces questions il faut : – Analyser son réseau pour voir les échanges – Savoir comment fonctionnent les protocoles Ports utilisés protocole Sens de l'initialisation de la connexion Bien définir ses matrices de flux Beaucoup de rigueur dans la gestion des règles Filtrage au niveau des machines Permet un renfort de la sécurité au niveau d’une machine Un certain nombre d'unix supporte le filtrage Linux via iptables *BSD via ipfilter,pf Solaris , AIX , HP-UX ... via ipfilter ou bien netfilter Des produits existent aussi pour les windows Filtrage statique : Conclusion Avantage Concept et syntaxe simple Sécurisation relativement efficace mais complétement insuffisante en entrée de site Inconvénients Attention à l’ordre (l’ACL du vendredi soir ;-) Nécessite une surveillance attentive des logs Pas de support de certains protocoles sans ouvrir de grosses brèches dans le filtrage ports dynamiques : netmeeting … connexions initiées depuis l’extérieur (ftp, X11, …) => Filtrage dynamique Filtrage dynamique Linux noyau >= 2.4 netfilter : Iptables Cisco propose les CBAC (IOS Firewall) *BSD avec IPFilter Packet-filter Beaucoup de Pare-Feu utilise du filtrage dynamique Principe Fonctionnement Configuration Exemple de configuration IOS Firewall Différence entre filtrage statique et dynamique Le filtrage statique analyse les paquets indépendamment les uns des autres Pour tcp seul les flags sont regardés pour « established » Le filtrage dynamique introduit la notion de session (Aussi bien en TCP qu’en UDP) un flux de retour sera autorisé uniquement si on a déjà « vu passer un paquet similaire » dans l’autre sens Principe On ne laisse rien rentrer (sauf vers nos serveurs) On contrôle le trafic sortant pour en déduire ce qu’il faut laisser entrer On garde dans une table toutes les nouvelles connexions sortantes jusqu’à une fin de session ou bien un timeout Pour TCP un paquet sortant avec un syn Pour UDP s'il est le premier paquet sortant contenant une adresse et un port non récent On autorise un paquet à rentrer que si la connexion est déjà dans la table. L’entrée est retirée de la table à la fin de session pour tcp ou bien sur timeout pour les autres protocoles support des protocoles appliquant des créations de canaux multiples résultants d'une négociation dans un canal de contrôle (A condition que le système dispose d’un module de suivi pour ce type de connexion) (ftp , h323, r-commandes … ) Exemples pop Réseau interne Réseau externe client port 1024 serveur port 110 client port 1024 serveur port 110 pop client port 1024 serveur port 110 icmp port-unreachable Ping icmp echo-request icmp echo-reply Exemple : ftp non passif FTP est dans le sens interne-externe le client FTP se trouve à l'intérieur le serveur dans le réseau externe Avec du filtrage statique , ouvrir les ports supérieurs à 1023 en tcp pour le port client à partir du port 20 du serveur Avec du filtrage dynamique, on n'a plus d'ouverture Un Suivi de session sur ftp est associé à l'entrée interne du dispositif de filtrage Netmeeting Les protocoles utilisés par Netmeeting TCP,UDP, T120, H.323 (RTP, RTCP) sur des ports dynamiques port TCP 1503 (pour T.120) port TCP 1720 (H.323 call setup) port TCP 389 (Internet Locator Server) port TCP 522 (User Location Server) port TCP 1731 (Audio Call control) IP Filter – filtrage IP BSD Linux Iptables Disponible sur *BSD et Solaris Filtrage dynamique (à états) Permet le NAT/PAT Permet de créer des traces Cisco IOS Firewall Filtrage Dynamique Authentification et habilitation dynamiques des utilisateurs détection d'attaques de deny de service ( syn flooding, port scanning, packet injection) détection des intrusions (59 signatures) avec réaction possible dropper des paquets envoyés par l'attaqueur inspection des numéros de séquence des connections TCP détection d'attaque smtp (détecte les commandes smtp invalides) blocage des applets JAVA compatibilité avec l'encryption CISCO (VPN) et IPSEC IPTABLES (1) Les chaînes prédéfinies : interface vers machine locale : machine locale vers interface : d’une interface à une autre Les cibles possibles INPUT OUTPUT FORWARD ACCEPT REJECT avec choix de retour ICMP, TCP Reset DROP RETURN continue à la règle suivante LOG avec choix de messages Filtrage d’état NEW ESTABLISHED RELATED INVALID IPTABLES (2) Chaînes utilisateurs Modules spécifiques ( Par défaut sur une mandriva 2007) Permet d’améliorer les performances en diminuant le nombre d’access-list pour un paquet ip_conntrack_amanda.ko.gz ip_conntrack_ftp.ko.gz ip_conntrack_h323.ko.gz (Multimedia) ip_conntrack_irc.ko.gz ip_conntrack_pptp.ko.gz (VPN PPTP) ip_conntrack_proto_gre.ko.gz (VPN PPTP) ip_conntrack_tftp.ko.gz ip_conntrack_sip.ko.gz ( Téléphonie IP) Filtrage sur addresses MAC IPTABLES (3) Construction d’une règle Une chaîne d’application Etat -m state --state NEW Motifs d’identification -A INPUT Udp/Tcp/icmp, Ports-AdressesIP source/destination Décision -j ACCEPT IPTABLES (Syntaxe) iptables [-t filter] -A [INPUT,OUTPUT,FORWARD,chaîne] [ -p protocol ] [ -s source] [ -d destination] [ -i interface] [ -o interface] [--sport port] [--dport port] [--tcpflags SYN,RST,ACK,PUSH,URG] [ --icmp-type number] [-m state --state NEW,INVALID, ESTABLISHED, RELATED ] [ -m limit --limit n/s ] -j (ACCEPT,REJECT,DROP,RETURN,LOG,chaîne) IPTABLES (Exemple) Exemples iptables -A INPUT \ -p tcp \ -m state --state NEW \ --sport 1024:65535 \ -d 192.168.1.1 \ --dport 993 \ -j ACCEPT filtrage iptables d’un poste client environnement nis-nfs-dhcp iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -i eth0 -p udp --sport 67:68 --dport 67:68 -j ACCEPT iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT iptables -A INPUT -p icmp -m limit --limit 1/s --icmp-type echo-request -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT iptables -A INPUT -m state --state RELATED -j ACCEPT iptables -A INPUT -p tcp --dport 113 -m state --state NEW -j REJECT --reject-with tcp-reset iptables -A INPUT -m state --state INVALID,NEW -j LOG iptables -A INPUT -m state --state INVALID,NEW -j DROP Pour que ftp fonctionne dans les 2 modes ne pas oublier de charger le module modprobe ip_conntrack_ftp CBAC: Les protocoles supportés TCP/UDP Application telnet, http, tftp, snmp ftp Passif et actif multimedia H323 ,CuSeeMee , RealAudio, StreamWorks, VDOLive Mail (SMTP protocol Inspection) Détecte certaines commandes invalides pour les relais externes Remote procedure call (rpc) Inspecte les requêtes Portmap pour ouvrir les ports nécessaires BSD R-commandes Permet l’ouverture de tous les ports secondaires ORACLE Idem pour Oracle Configurations Configuration CBAC Définir les règles d'inspection spécifient quel trafic IP sera inspecté (niveau application) par les CBAC nécessaire de configurer l'inspection au niveau de la couche application et éventuellement au niveau de TCP ou d'UDP (surtout pour H.323) ip inspect name nom_cbac protocol Exemple CBAC: ftp ! CBAC positionné ip inspect name monsite ftp ! interface FastEthernet0/0 !réseau interne ip address 192.168.230.2 255.255.255.0 ip inspect monsite in no ip directed-broadcast ! interface FastEthernet2/0 !réseau externe ip address 152.81.34.1 255.255.255.0 ip access-group 102 in ! no access-list 102 access-list 102 deny ip any any log Conclusion CBAC L’IOS Firewall: Routeur Cisco 800, UBR900, 1600, 1720, 2500, 2600, 3600, 7100, 7200, RSM et 7500 permet de renforcer considérablement la sécurité d'un site les connexions tcp ou udp initialisées depuis l'intérieur du site peuvent être inspectées, et les ouvertures seront donc dynamiques une solution, sur du matériel existant bien souvent, “ tout en un ” combinant sécurité, détection des intrusions, authentification des utilisateurs, fonction VPN et routage multiprotocole Conclusion Filtrage Dynamique Aujourd’hui, le filtrage statique n’est plus suffisant en entrée de site, il faut aller vers des solutions de filtrage dynamique Ne pas hésiter aussi à l’employer sur les serveurs accessibles de l'extérieur ( Web,ftp,dns,…) et les postes clients (Surtout les portables qui peuvent être connecté à n’importe quels réseaux)
Documents pareils
Filtrage Dynamique - Formation Permanente
Pour que ftp fonctionne dans les 2 modes ne pas oublier de charger le module
modprobe ip_conntrack_ftp