C'est quoi un firewall ?
Comment ça marche ?

(Note: Je ne vais parler ici que des firewalls basés sur TCP/IP, le protocole d'internet.)

Un firewall - littéralement "mur de feu" - est un ordinateur (et un programme) qui filtre ce qui passe d'un réseau à un autre.

Firewall séparant 2 réseaux.

On s'en sert pour sécuriser les réseaux et les ordinateurs, c'est-à-dire contrôler les accès et bloquer ce qui est interdit.

Souvent, on utilise un firewall pour protéger un réseau local du réseau internet:

Firewall séparant un réseau local d'internet.

Typiquement, il va:

 

Firewall matériel, firewall logiciel

On entend parfois parler de firewalls matériels. Ils sont sous la forme de boîtiers compacts. En réalité, se sont de simples ordinateurs possédant leur propre système d'exploitation et leur propre logiciel firewall. Mais ils n'ont rien de différent d'un simple firewall installé sur un ordinateur.
Le seul avantage des firewalls "matériels" est qu'ils sont moins encombrants qu'un ordinateur. Mais ils coûtent généralement cher.

Photo d'un boîtier firewall. Photo d'un boîtier firewall. Photo d'un boîtier firewall.
Quelques firewalls "matériels"

Si vous avez un vieux PC qui traîne, on peut très bien le transformer en firewall avec quelques logiciels gratuit !
Par exemple, il existe des disquettes ou CD comme CoyoteLinux ou Smoothwall qui transforment n'importe quel vieux PC (même un simple 386 sans disque dur !) en firewall digne de ce nom.

C'est un moyen de se faire un firewall fiable au meilleur prix.

Voici quelques logiciels qui permettent de transformer n'importe quel PC en firewall gratuitement:

 

Firewall et couches OSI

La plupart des firewalls travaillent au niveau des couches 4 (TCP, UDP...), 3 (IP...) et 2 (Ethernet...). Ils ne comprennent rien aux protocoles au dessus (ils sont incapables de filtrer HTTP, SMTP, POP3...).

Certains firewalls sont capables de travailler au niveau de la couche 7 (applicative). Ils sont généralement plus lents, plus lourds et plus complexes à configurer mais permettent de filtrer certains protocoles comme HTTP, SMTP, POP3, FTP...
Par exemple, c'est utile pour bloquer le téléchargement de virus, interdire certains sites, filtrer les cookies...

(Pour plus d'informations sur le modèle OSI, voir http://sebsauvage.net/comprendre/tcpip/osi.html )

 

Comment ça marche un firewall ?

Un firewall, c'est une liste ordonnée de la forme:

Chaque fois qu'un paquet de données arrive, le firewall compare ce paquet à chaque règle (dans l'ordre) jusqu'à en trouver une qui corresponde au paquet. Il exécute alors l'action correspondante à la règle.

Les règles peuvent être: adresse destination du paquet, adresse source, port destination, port source, date, heure, etc.

Les actions peuvent être: refuser le paquet, ignorer le paquet, accepter le paquet, transmettre le paquet sur un autre réseau, modifier les entêtes du paquet...

 

Firewalls "personnels"

Il y a quelques temps, un nouveau type de firewall est apparu: les firewalls dits "personnels". Ils sont destinés aux particuliers qui n'ont pas les moyens d'acheter un ordinateur séparé uniquement pour faire un firewall.

Au lieu d'être une machine séparée, le firewall personnel est un logiciel qui fonctionne directement sur l'ordinateur à protéger.

Ordinateur faisant lui-même firewall.

Il a quelques inconvénients:

Mais il a aussi un avantage: Le firewall personnel est capable de contrôler quels logiciels vont se connecter sur Internet (ce que ne sait pas faire un firewall séparé).

Parmi les firewalls "personnels", citons: Kerio Personal Firewall, Sygate Personal Firewall, ZoneAlarm, Agnitum Outpost, Look'n Stop... (La plupart de ces firewalls sont gratuits pour une utilisation non-professionnelle: profitez-en !)

On peut parfaitement imaginer d'avoir les 2 types de firewalls en même temps: un firewall séparé pour protéger le réseau, et un firewall personnel pour protéger chaque ordinateur.

 

Comment on ferme un port ouvert ?

(Pour comprendre ce que sont les ports, je vous recommande de lire d'abord le chapitre sur TCP/IP: http://sebsauvage.net/comprendre/tcpip/ )

Un port ne s'ouvre jamais tout seul.
C'est toujours un logiciel précis qui ouvre un port.

Fermer un port, c'est donc fermer le logiciel qui a ouvert ce port.

(Si vous ne pouvez/voulez pas fermer ce logiciel, il vous reste alors à installer un firewall personnel qui bloquera les tentatives de connexion à ce port. Nous verrons cela plus loin.)

Prenons un exemple:

Exemple de ports utilisés par un ordinateur connecté à internet.

Comme vous le voyez, sur cet ordinateur il y a 3 logiciels en mémoire:

Si quelqu'un sur internet essaie de se connecter sur votre ordinateur:

Donc pour fermer le port 2074, il suffit de fermer le logiciel de chat.

Dans 99% des cas, le danger sur internet vient des bugs ou de la mauvaise configuration des logiciels qui se mettent en écoute sur un port.
(ici: le logiciel de chat).

Il est donc très important:

 

Comment savoir quels ports sont ouverts sur mon ordinateur ?

Ouvrez une fenêtre MS-Dos (ou un terminal Unix) et tapez la commande: netstat -a

Vous verrez la liste des ports ouverts. Les ports ouverts en mode serveur (en écoute) sont notés "LISTENING".

Active Connections

Proto Local Address Foreign Address State
TCP votreordinateur:2067 serveurweb:80 ESTABLISHED
TCP votreordinateur:2068 serveurweb:80 ESTABLISHED
TCP votreordinateur:3014 serveurweb:80 ESTABLISHED
TCP votreordinateur:3117 serveurweb:80 ESTABLISHED
TCP votreordinateur:2074 0.0.0.0:0 LISTENING

Et pour savoir quel logiciel a ouvert tel ou tel port:

Il vous suffira alors d'arrêter le programme en question (avec le gestionnaire de tâches), de l'empêcher de démarrer au démarrage de Windows (avec un programme comme AutoStart Manager) et éventuellement supprimer le programme en question.

 

Comment fonctionne le firewall personnel ?

Il va se placer entre les logiciels et le réseau, et intercepter tout ce qui passe, aussi bien en entrée qu'en sortie.

Ordinateur protégé par un firewall personnel.

Ainsi le firewall personnel va intercepter la tentative de connexion au logiciel de chat (port 2074). Si le firewall possède une règle qui interdit cela, la connexion sera rejetée, et le logiciel de chat ne verra même pas la tentative de connexion.

En établissant vos propres règles, vous pourrez décider quels logiciels pourront se connecter sur internet ou recevoir des connexions, et de qui.

Ainsi, même si vous n'arrivez pas à fermer certains ports, vous pourrez établir des règles pour interdire les connexions sur ces ports. Mais il vaut bien mieux fermer les logiciels qui ouvrent ces ports. C'est plus sûr que de bloquer les connexions vers ces ports.
(Il vaut mieux avoir une bassine en bon état plutôt qu'une passoire dont on essaie de boucher tous les trous ;-)

 

Et pour établir la liste de règles de votre firewall, il y a une règle à suivre: Tout est interdit, sauf ce qui est strictement nécessaire.

Donc, ne vous posez plus la question "Quels ports fermer ?". La réponse est évidente: tous !

 

La plupart des firewalls personnels ont un mode "apprentissage" où ils vous affichent des messages d'alerte et vous demandent quoi faire. Cela permet d'établir progressivement un ensemble de règles pour vos logiciels courants. (Vous donnez des autorisations à vos logiciels au cas par cas, et le firewall s'en souvient.) Quelques exemples:

(Ce ne sont que quelques exemples.)

Par la suite, il suffit de désactiver ce mode apprentissage pour ne plus voir les fenêtres d'alerte et travailler en sérénité.

 

Un firewall n'est pas une arme absolue

Ne pensez pas que votre ordinateur est protégé à 100% parce que vous avez un firewall fiable et bien configuré.

Certains chevaux de Troie sont capables de désactiver les firewalls personnels, ou même se faire passer pour votre navigateur pour aller sur Internet sans que le firewall ne s'en aperçoive.

Même avec un firewall "matériel", il est possible de tunneller du trafic TCP/IP chiffré dans de simples requêtes HTTP. Pour parler plus simplement, ça permet de percer des trous gigantesques dans le plus blindé des firewalls.
(Pour les détails techniques, voici ici: http://sebsauvage.net/punching/)

Bref, vous le voyez, la sécurité n'est jamais assurée à 100%.

 

Alors le firewall est inutile ?

Sûrement pas !
Il est absolument indispensable à partir du moment vous allez sur internet.

C'est un peu comme la ceinture de sécurité: ça n'empêche pas d'avoir des accidents, mais dans la majorité des cas, ça sauve des vies !

 

Internet est un repaire de pirate

Non. Internet regorge de personnes sympathiques et pleines de bonne volonté. Je suis sincère, croyez-moi, j'en rencontre tous les jours.
Mais il y a des cons partout. Et internet n'échappe pas à la règle.
Il est donc nécessaire de se protéger contre cet infime pourcentage de connards et les firewalls les arrêteront dans 99% des cas.

 

Mon firewall personnel dit que je suis attaqué par un cheval de Troie !

Non. Un cheval de Troie n'attaque pas. Un cheval de Troie est un simple serveur. Pour cela, il fait exactement comme un logiciel de chat ou un serveur web: il ouvre un port en écoute (LISTENING) et il attend des commandes venant de l'extérieur.

L'alerte que vous avez vue, c'est votre firewall qui vous prévient que quelqu'un sur internet essai de se connecter sur votre ordinateur sur un port qui est habituellement utilisé par un cheval de Troie bien précis.
C'est sans danger si le cheval de Troie n'est pas présent sur votre ordinateur. Pour vous en assurer, installez un antivirus et un détecteur de cheval de Troie. On en trouve des gratuits:


Pour en savoir plus:

Comment ça marche, un firewall (pare-feu)


Toutes ces pages et leur contenu (textes, images, sons, animations et toute autre forme de média) sont de par les lois françaises et internationales sur le droit d'auteur et la propriété intellectuelle protégées jusqu'à 70 ans après le décès de leur auteur, Sébastien SAUVAGE (alias MWPC2). Toute reproduction est interdite sans le visa de l'auteur. Toute personne morale ou physique portant atteinte à ces droits s'expose à des poursuites. Les images utilisées dans ces pages sont marquées électroniquement.
Merci de prévenir le Webmaster ([L'adresse email est une image]) de tout lien effectué vers ces pages.
h t t p : / / s e b s a u v a g e . n e t