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

Filtrage Dynamique - Formation Permanente Pour que ftp fonctionne dans les 2 modes ne pas oublier de charger le module modprobe ip_conntrack_ftp

Plus en détail