Professional Documents
Culture Documents
Firewalls
Firewalls
Plan
●
Présentation Générale
●
Architectures
●
Firewalls matériels
●
Firewalls logiciels professionnels
●
Firewalls personnels
2
Présentation
3
Qu’est-ce qu’un Firewall ?
●
Un firewall est plus un concept qu’un matériel
ou un logiciel
●
Filtre le trafic entre réseaux à différents
niveaux de confiance
●
Met en oeuvre une partie de la politique de
sécurité
Qu’est-ce qu’un Firewall ?
Système physique ou logique servant
d’interface entre un ou plusieurs réseaux
Analyse les
informations des
couches 3, 4 et 7
Pourquoi utiliser un Firewall ?
Les pare-feux sont utilisés principalement dans 4
buts :
Se protéger des malveillances "externes"
Éviter la fuite d’information non contrôlée vers
l’extérieur
Surveiller les flux internes/externes
Faciliter l’administration du réseau
Principales fonctionnalités
●
Filtrage
●
Authentification/Gestion des droits
●
NAT
●
Proxy
Qu'est-ce qu'un pare-feu ?
Un système pare-feu fonctionne sur le principe du filtrage simple de paquets (en anglais «
stateless packet filtering »). Il analyse les en-têtes de chaque paquet de données
(datagramme) échangé entre une machine du réseau interne et une machine extérieure.
adresse IP de la machine émettrice
●
Analyse complète du paquet au niveau de la
couche réseau
●
Définition et maintien des tables des connexions
autorisés (états)
Proxy (1/2)
●
Firewall Proxy dispose d’agents spécifiques à
chaque protocole applicatif (FTP, HTTP..)
●
Filtrage très précis
●
Comprend les spécificités de chaque protocole
●
Le réassemblage des paquets élimine les
attaques par fragmentation
Proxy (2/2)
●
Firewall Proxy présente 2 inconvénients :
●
Performances : le filtrage d’un paquet nécessite sa
remonté jusqu’à la couche application
●
Disponibilités des agents (protocoles propriétaires
ou exotique)
Proxy
Un serveur proxy (traduction française de ”proxy
server”, appelé aussi ”serveur mandataire”) est à
l'origine une machine faisant fonction
d'intermédiaire entre les ordinateurs d'un réseau
local (utilisant parfois des protocoles autres que le
protocole TCP/IP) et internet.
La plupart du temps le serveur proxy est utilisé
pour le web, il s'agit alors d'un proxy HTTP.
Toutefois il peut exister des serveurs proxy pour
chaque protocole applicatif (FTP, ...).
Proxy
Le principe de fonctionnement basique d'un
serveur proxy est assez simple : il s'agit d'un
serveur "mandaté" par une application pour
effectuer une requête sur Internet à sa place.
Ainsi, lorsqu'un utilisateur se connecte à internet
à l'aide d'une application cliente configurée pour
utiliser un serveur proxy, celle-ci va se connecter
en premier lieu au serveur proxy et lui donner sa
requête.
Proxy
Le serveur proxy va alors se connecter au serveur
que l'application cliente cherche à joindre et lui
transmettre la requête.
Le serveur va ensuite donner sa réponse au
proxy, qui va à son tour la transmettre à
l'application cliente.
Proxy
1 Le client envoie une requête pour l’url http://www.google.fr au proxy web.
2 Le proxy vérifie la conformité de cette requête. Fait-elle l’objet d’une règle de filtrage d’URL par exemple ? etc…
5 Le proxy analyse le contenu de la page. Fait-elle l’objet d’une règle de filtrage de contenu ? Contient-elle un virus ? etc…
On appelle reverse-proxy (en français le terme de relais inverse est parfois employé) un serveur
proxy-cache "monté à l'envers", c'est-à-dire un serveur proxy permettant non pas aux utilisateurs
d'accéder au réseau internet, mais aux utilisateurs d'internet d'accéder indirectement à certains
serveurs internes.
Le reverse-proxy sert ainsi de relais pour les utilisateurs d'internet souhaitant accéder à un site web
interne en lui transmettant indirectement les requêtes.
Grâce au reverse-proxy, le serveur web est protégé des attaques directes de l'extérieur, ce qui
renforce la sécurité du réseau interne.
D'autre part, la fonction de cache du reverse-proxy peut permettre de soulager la charge du serveur
pour lequel il est prévu, c'est la raison pour laquelle un tel serveur est parfois appelé « accélérateur
»(server accelerator).
Reverse Proxy
1 Un client sur Internet souhaite consulter l’URL http://www.mon-entreprise.fr. La requête est redirigée par mon firewall vers mon reverse proxy
web.
2 Votre reverse proxy web analyse la requête. Le http-referer est-il correct ? Le User-agent est-il conforme à vos attente ? etc…
3 Votre reverse proxy web envoie la requête vers votre serveur web interne.
5 Votre reverse proxy web appliquer certains traitements sur la réponse http comme cacher ou modifier la valeur du paramètre « Server » qui
indique le nom et la version de votre serveur web (je parle du logiciel et non matériel).
●
Différences:
●
SAV: 1 seul constructeur fournit la solution
complète
●
Résistance: conçu pour être un produit de sécurité
●
Distribution de la fonction firewall dans les points
stratégiques du réseau
Catégories de firewalls matériels
●
Routeurs:
●
filtres entrants/sortants, règles sur adresses, ports, types ICMP, flags TCP
●
Stateless ou Stateful
●
Moins d’applications complexes/multimédia supportées que firewall spécialisés
(NAT)
●
Routeurs conçus initialement pour commuter paquets -> attention
●
Filtres des tables de routage
●
Performances:
– de qques kb/s -> plusieurs Mb/s
– Perte de performances de 15 à 20% en Stateful
– Performances dépendent du nombre de fonctions utilisées (IPSec, détection
d’intrusion, codecs pour voix sur IP, QOS)
●
Routeur stateful idéaux pour relier bureaux via internet: site a protéger
rarement important
Catégories de firewalls matériels
●
Firewalls spécialisés
●
Conçus uniquement pour faire du filtrage
●
Très performant:
– > 1Gbit/s
– 500 000 connexions
– Plusieurs dizaines de milliers de nouvelles connexions par seconde
●
Supportent rarement les interfaces WAN nécessité d’être associés à des routeurs
pour la connectivité
●
Disponibles également pour le grand public
●
Pour accès toujours connectés (DSL, câble)
●
Ouverts en sortie
●
Certains permettent le filtrage dans les deux sens adaptés à l’hébergement de
services
●
Performances:
– 1à 2 Mb/s (vitesse d’accès)
– Limitations au niveau du nombre de sessions supportées et nombre de nouvelles connexions
par seconde.
●
Meilleur choix pour protéger l’accès principal à Internet ou serveurs publics
Catégories de firewalls matériels
●
Modules firewall pour commutateurs
●
Sous forme de carte
●
Firewall stateful
●
Intégrés aux commutateurs pour fournir protection entre différents VLAN
●
Support de contextes virtuels services de filtrages a des réseaux
distincts
●
Performances:
– jusqu’à 5 Gb/s
– 1 000 000 de connexions
– 100 000 nouvelles connexions par seconde
– Jusqu’à 100 interfaces virtuelles
– Possibilité d’utiliser plusieurs cartes débit de 30 Gb/s
●
Utilisés pour cloisonner le réseau interne
Firewalls logiciels professionnels
Firewalls logiciels professionnels
Plan
●
Deux firewalls stateful :
●
Firewall libre : Netfilter / iptables
●
Firewall commercial : CheckPoint Firewall-1
●
Ce que les firewalls laissent passer
Firewalls logiciels en passerelle
libre : Netfilter
●
Intégré au noyau 2.4 de linux
●
Interface utilisateur séparée : iptables
●
Stateless :
●
iptables -A INPUT -s 200.200.200.1 -p tcp --
destination-port telnet -j DROP
●
Stateful :
●
iptables -A INPUT -p tcp -m state --state
ESTABLISHED -j ACCEPT
●
INVALID / ESTABLISHED / NEW / RELATED
Firewall logiciels en passerelle
libre : Netfilter
●
Spécificités
●
Ajout de plugins au système de suivi de
connections
FTP / H323 / IRC / …
●
Plugins divers : modification du comportement de
la pile IP
●
Front ends de configuration graphiques
●
Avantage décisif sur les autres firewalls libres
Firewall logiciels en passerelle
commercial : CP Firewall-1
●
Disponible sur plusieurs plateformes Windows
Server – Linux Red Hat – HP-UX - Solaris
●
Prix
●
39€ HT par utilisateur (100 machines)
●
Au nombre de plugins fournis
●
+ Formations
Firewall logiciels en passerelle
commercial : CP Firewall-1
●
Spécificités
●
Décomposable en plusieurs modules – serveurs
– antivirus, serveur d’authentification, reporting
●
Authentification des utilisateurs
– Avec LDAP, RADIUS, TACACS
●
Pour filtrer les URL,
●
Pour la limitation du temps,
●
Permissions au niveau de l’utilisateur plutôt qu’au
niveau d’un adresse IP
Firewall logiciels en passerelle
ce qu’ils laissent passer
●
Les attaques d’application web
●
Vulnérables si elles ne filtrent pas assez les
données entrées par l’utilisateur.
●
Insertion de code sur les Forums
●
Insertion de requêtes SQL dans un champ de
formulaire
Firewall logiciels en passerelle
ce qu’ils laissent passer
●
Injection de requête SQL :
SELECT * FROM table_Clients WHERE
champ_Nom=Name
l'utilisateur entre son nom :
toto ; INSERT INTO table_Users
VALUES('Mon_login', 'Mon_password')
La requête finale est :
SELECT * FROM table_Clients WHERE
champ_Nom=toto ; INSERT INTO
table_Users VALUES('Mon_login',
'Mon_password')
Firewall logiciels en passerelle
ce qu’ils laissent passer
●
Solution : « Reverse Proxy »
●
Rôle de l’administrateur réseau ?
Firewalls personnels
Firewalls personnels - Plan
●
Cible et besoins
●
Principe
●
Limites
●
Firewalls personnels sous Windows et Linux
Cible et besoins
●
Logiciel de sécurité réseau simple et efficace
pour connexions Internet personnelles: poste
directement relié à Internet
●
Postes principalement « client » principale
menace: réception de chevaux de Troie
logiciels espions / backdoors
●
empêcher connexion de programmes non
autorisés
Cible et besoins
●
Filtrage simple de paquets: la plage de ports
1024-65535 doit être autorisée pour que les
applis puissent fonctionner dans les deux sens
●
filtrage de paquets problématique
Principe
●
Contrôle des applications pour accéder ou non au
réseau
●
liste applications autorisées à initier flux réseau ou
a écouter
●
Pour chaque appli:
●
Localisation de l’exécutable
●
Protocole de niveau 4 utilisé (TCP, UDP, ICMP)
●
Jeux de ports utilisés
●
Sens de flux associé
Principe
●
La configuration doit être aisée pour correspondre à
la cible de marché configuration par apprentissage
●
Permet également de faire de la remontée d’alertes
●
Dans le modèle OSI:
●
Entre couches IP et liaison: règles indépendantes
d’une application / flux déjà autorisés
●
Entre couches réseau et applicative: intercepter
les demandes d’ouverture de socket
Limites
●
Certaines prises de décision nécessitent
connaissances
●
Certains produits ne gèrent que TCP, UDP et
ICMP, décision silencieuse
●
Beaucoup d’appli accèdent au réseau par
différents protocoles nombre d’entrées
important, difficile à maintenir
Limites
●
Lacunes courantes:
●
Impossibilité de spécifier des règles
indépendamment d’une appli
●
Impossibilité de restreindre les jeux de ports
utilisable par une appli autorisée
●
Impossibilité de spécifier des règles pour autres
protocoles que TCP, UDP ou ICMP
●
Absence de filtrage à état ou absence des
modules de prise en charges de protocoles
applicatifs complexes (limite au niveau 4)
Limites
●
Absence de sécurité de certains OS: pas de contrôle
d’accès ou comptes utilisateurs non utilisés
●
Application pouvant se lancer en super-utilisateur -->
écraser exécutables concernés par configuration du
firewall, tuer d’autres applis (anti-virus, firewall),
annuler les protections
●
Possibilité de profiter de failles de sécurité dans
autres applications autorisées (navigateur)
●
Ne travaille qu’à partir du niveau IP, tout ce qui se
trouve en dessous (Ethernet) n’est pas vu du firewall
Firewalls personnels sous Windows et
Linux
●
Windows: Kerio, Zone Alarm, …
●
Linux: module « owner » de Netfilter + patch «
owner-cmd »
●
Critères de filtrages relatifs aux processus:
– UID , GID propriétaire
– PID/SID du process
– Nom du process
iptables –A OUTPUT –m owner –cmd-owner ping –j ACCEPT
●
Attention, ne vérifie pas la localisation de
l’exécutable, limiter les packets
iptables –A OUTPUT –m owner –cmd-owner ping –p icmp –icmp-type echo-request –j ACCEPT
TP
Iptables – Linux
Iptables
Pour manipuler iptables, vous devez impérativement être en « root ». Pour la suite des
opérations, je vous recommande donc de passer en superutilisateur dès à présent...
su -
Nous ne verrons pas ici la section FORWARD. iptables permet de rediriger le trafic, mais
c'est assez compliqué et ne nous intéresse pas ici. Nous aurons déjà suffisamment de
quoi faire avec INPUT et OUTPUT.
Iptables
Si vous avez déjà des règles inscrites dans votre pare-feu (ce qui ne devrait pas être
votre cas, mais on ne sait jamais), sachez que vous pouvez les réinitialiser.
Ne le faites que si vous êtes certains de vouloir le faire. En effet, sur un ordinateur
partagé, peut-être quelqu'un a-t-il déjà configuré le pare-feu.
Voici ce que cela pourrait donner lorsqu'on aura établi des règles, par exemple ici pour la
section INPUT...
iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:www
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere tcp dpt:imap2
Première chose à savoir : l'ordre des règles est important. En effet, iptables les lit de haut
en bas et la position de ces règles influe sur le résultat final. Sachez donc que les règles
sont numérotées.
Iptables
Pour avoir les numéros, ajoutez –line-numbers...
iptables -L --line-numbers
Chain INPUT (policy DROP)
num target prot opt source destination
1 ACCEPT tcp -- anywhere anywhere tcp dpt:www
2 ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
3 ACCEPT tcp -- anywhere anywhere tcp dpt:imap2
target : ce que fait la règle. Ici c'est ACCEPT, c'est-à-dire que cette ligne autorise un port
et / ou une IP
prot : le protocole utilisé (tcp, udp, icmp). Je rappelle que TCP est celui auquel on a le
plus recourt. ICMP permet à votre ordinateur de répondre aux requêtes de type « ping »
source : l'IP de source. Pour INPUT, la source est l'ordinateur distant qui se connecte à
vous
destination : l'IP de destination. Pour OUTPUT, c'est l'ordinateur auquel on se connecte
la dernière colonne : elle indique le port après les deux points « : ». Ce port est affiché
en toutes lettres, mais avec -n vous pouvez obtenir le numéro correspondant
Iptables
Ajouter et supprimer des règles
-A chain : ajoute une règle en fin de liste pour la chain indiquée (INPUT ou OUTPUT, par
exemple).
-I chain rulenum : insère une règle au milieu de la liste à la position indiquée par rulenum.
Si vous n'indiquez pas de position rulenum, la règle sera insérée en premier, tout en haut
dans la liste.
-F chain : vide toutes les règles de la chain indiquée. Cela revient à supprimer toutes les
règles une par une pour cette chain.
-P chain regle : modifie la règle par défaut pour la chain. Cela permet de dire, par
exemple, que par défaut tous les ports sont fermés, sauf ceux que l'on a indiqués dans
les règles.
Iptables
De manière générale, l'ajout d'une règle se passe suivant ce schéma...
Cela ajoute à la section INPUT (donc, pour le trafic entrant) une règle sur les données
reçues via le protocole TCP sur le port de ssh (vous pouvez remplacer ssh par le numéro
du port, soit 22). Lorsque votre ordinateur recevra des données en TCP sur le port de
SSH, celles-ci seront acceptées, cela vous permettra donc de vous connecter à distance
à votre PC via SSH.
Iptables
Vous pouvez faire de même avec d'autres ports...
En plus d'autoriser le trafic sur ces ports, je peux vous conseiller d'autoriser le protocole
ICMP (pour pouvoir faire un ping) sur tous ces derniers...
Votre ordinateur répondra alors aux « pings » pour indiquer qu'il est bien en vie.
Iptables
Vos règles iptables pour INPUT devraient maintenant ressembler à ceci...
iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:www
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere tcp dpt:imap2
ACCEPT icmp -- anywhere anywhere
Iptables
Autoriser les connexions locales et déjà ouvertes
Pour l'instant, nos règles sont encore un peu trop restrictives et pas vraiment utilisables
(vous risquez de ne plus pouvoir faire grand-chose).
Ajoutons deux règles pour alléger un peu votre pare-feu et le rendre enfin utilisable.
La première règle autorise tout le trafic sur l'interface de loopback locale grâce à -i lo. Il
n'y a pas de risque à autoriser votre ordinateur à communiquer avec lui-même, d’autant
plus qu’il en a parfois besoin !
La seconde règle autorise toutes les connexions qui sont déjà à l'état ESTABLISHED ou
RELATED. En clair, elle autorise toutes les connexions qui ont été demandées par votre
PC. Là encore, cela permet d'assouplir le pare-feu et de le rendre fonctionnel pour une
utilisation quotidienne.
Iptables
Refuser toutes les autres connexions par défaut
Il reste un point essentiel à traiter car, pour l'instant, ce filtrage ne sert à rien. En effet,
nous avons indiqué quelles données nous autorisions, mais nous n'avons pas dit que
toutes les autres devaient être refusées !
iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:www
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere tcp dpt:imap2
ACCEPT icmp -- anywhere anywhere
Le filtrage est radical. Nous n'avons pas autorisé beaucoup de ports et il se pourrait que
vous vous rendiez compte que certaines applications n'arrivent plus à accéder à l'internet
(normal, leur port doit être filtré).
Iptables
Ici, on fait de la redirection de port...
Pour faire de la QoS, nous allons modifier la valeur du champs TOS se situant dans l'en tête IP
grâce à iptables.
Minimize-Delay : Améliore la réactivité des connexions en réduisant le délai (ssh, telnet, ftp
contrôle, tftp, flux DNS UDP)
Maximum-Reliability : Certitude que les données arrivent sans perte - Améliore la fiabilité (snmp,
smtp)
71
Pfsense
Fork du projet m0n0wall, pfSense est une distribution libre, open source, basée sur un noyau FreeBSD. Adaptée
pour une utilisation en tant que pare-feu et routeur, elle est dotée d’une interface web poussée, qui pourra
rebuter les néophytes. Cette distribution dispose d’un système de modules à installer indépendamment, afin de
pouvoir la personnaliser. Il est à noter qu’une version live CD est disponible au téléchargement.
Pare-feu dynamique
Translation d’adresses
Redondance des firewalls grâce CARP et pfsync
L’équilibrage de charge sortant et entrant
VPN en utilisant IPSec, L2TP, OpenVPN ou PPTP
Serveur PPPoE
Graphiques RRD
Information en temps réel en utilisant Ajax
DNS dynamique
Portail captif
Serveur et relais DHCP
Sauvegarde sur clé USB
http://www.brannigan.fr/?p=397
Pfsense
Pare-feu - Filtrage IP / port, limitation des connexions, capacité de couche deux, nettoyage
Tableau d'état - par défaut toutes les règles sont avec état, plusieurs configurations disponibles pour la gestion
des états,
Équilibrage de la charge du serveur - LB intégré à répartir la charge entre plusieurs serveurs backend
●
https://www.it-connect.fr/cours-tutoriels/administration-reseau/pare-feu/pfsen
se/
●
https://neptunet.fr/pfsense-install/
Ipfire
IPFire est construit sur Netfilter et fait confiance à des milliers d'entreprises
à travers le monde.
IPFire peut être utilisé comme pare-feu, Serveur proxy, or Passerelle VPN -
tout dépend de la façon dont vous le configurez. Il a une grande flexibilité de
personnalisation.
IDS (système de détection d'intrusion) est intégré, de sorte que les attaques
sont détectées et évitées dès le premier jour. Et avec l'aide de Tuteur
(module complémentaire optionnel), vous pouvez implémenter la prévention
automatique.
●
https://www.youtube.com/watch?v=kFoqxnUISic&t=1s
Firewall Windows
Firewall Windows - Powershell
●
https://www.it-connect.fr/chapitres/gerer-le-pare-feu-en-powershell/