110 votes

Pourquoi devrais-je mettre un pare-feu aux serveurs ?

VEUILLEZ NOTER : Je n'ai pas envie d'en faire une guerre de mots ! Je comprends que de nombreuses personnes ont des convictions bien ancrées sur ce sujet, en grande partie parce qu'elles ont investi beaucoup d'efforts dans leurs solutions de pare-feu, et aussi parce qu'elles ont été endoctrinées pour croire en leur nécessité.

Cependant, je cherche des réponses de personnes qui sont experts en matière de sécurité. Je pense qu'il s'agit d'une question importante, et que la réponse ne profitera pas seulement à moi-même et à l'entreprise pour laquelle je travaille. Je fais fonctionner notre réseau de serveurs depuis plusieurs années sans aucun compromis, sans aucun pare-feu. Aucune des compromissions de sécurité que nous ont aurait pu être évité avec un pare-feu.

Je suppose que je travaille ici depuis trop longtemps, car lorsque je parle de "serveurs", j'entends toujours "services offerts au public", et non "bases de données de facturation internes secrètes". En tant que tel, toute règle que nous serait dans un pare-feu devrait permettre l'accès à l'ensemble de l'Internet. De plus, nos serveurs d'accès public sont tous dans un centre de données dédié, séparé de nos bureaux.

Quelqu'un d'autre a posé une question similaire, et ma réponse a été votée en nombre négatif. Cela m'amène à penser que soit les personnes qui ont voté n'ont pas vraiment compris ma réponse, soit je ne comprends pas suffisamment la sécurité pour faire ce que je fais actuellement.

C'est mon approche de la sécurité des serveurs :

  1. Suivez les instructions de mon système d'exploitation directives de sécurité avant en connectant mon serveur à Internet.

  2. Utilisez des wrappers TCP pour limiter l'accès à SSH (et à d'autres services de gestion) à un petit nombre d'adresses IP.

  3. Surveillez l'état de ce serveur avec Munin . Et corriger les problèmes de sécurité flagrants inhérents à Munin-node dans sa configuration par défaut.

  4. Nmap mon nouveau serveur (également avant de connecter mon serveur à Internet). Si je devais mettre un pare-feu sur ce serveur, il s'agirait de l'ensemble exact de ports sur lesquels les connexions entrantes devraient être limitées.

  5. Installez le serveur dans la salle des serveurs et donnez-lui une adresse IP publique.

  6. Assurez la sécurité du système en utilisant la fonction de mise à jour de sécurité de mon système d'exploitation.

Ma philosophie (et la base de la question) est qu'une sécurité forte basée sur l'hôte supprime la nécessité d'un pare-feu. La philosophie générale en matière de sécurité indique qu'une sécurité forte basée sur l'hôte est toujours nécessaire même si vous avez un pare-feu (cf. directives de sécurité ). La raison en est qu'un pare-feu qui transmet des services publics à un serveur permet tout autant à un attaquant qu'aucun pare-feu. C'est le service lui-même qui est vulnérable, et puisque l'offre de ce service à l'ensemble de l'Internet est une condition de son fonctionnement, il n'est pas nécessaire d'en restreindre l'accès.

S'il y a son des ports disponibles sur le serveur qui n'ont pas besoin d'être accédés par l'ensemble de l'Internet, alors ce logiciel a dû être arrêté à l'étape 1, et a été vérifié à l'étape 4. Si un attaquant réussit à s'introduire dans le serveur par le biais d'un logiciel vulnérable et ouvre lui-même un port, il peut (et il le fait) tout aussi facilement déjouer n'importe quel pare-feu en établissant une connexion sortante sur un port aléatoire à la place. Le but de la sécurité n'est pas de se défendre après une attaque réussie - il a déjà été prouvé que c'était impossible - mais d'empêcher les attaquants d'entrer en premier lieu.

Il a été suggéré qu'il y a d'autres considérations de sécurité que les ports ouverts - mais pour moi, cela revient à défendre sa foi. Les vulnérabilités du système d'exploitation/de la pile TCP devraient être les mêmes, qu'il y ait ou non un pare-feu, car les ports sont transmis directement à ce système d'exploitation/cette pile TCP. De même, le fait d'installer votre pare-feu sur le serveur lui-même plutôt que sur le routeur (ou pire, aux deux endroits) semble ajouter des couches de complexité inutiles. Je comprends la philosophie "la sécurité vient en couches", mais il arrive un moment où c'est comme construire un toit en empilant un nombre X de couches de contreplaqué les unes sur les autres, puis en perçant un trou à travers toutes ces couches. Une autre couche de contreplaqué ne va pas arrêter les fuites par ce trou que vous faites exprès.

Pour être honnête, la seule façon dont je vois un pare-feu être utile pour les serveurs est s'il a des règles dynamiques empêchant toutes les connexions à tous les serveurs de la part d'attaquants connus - comme les RBL pour le spam (ce qui, par coïncidence, est à peu près ce que fait notre serveur de messagerie). Malheureusement, je ne trouve aucun pare-feu qui fasse cela. La meilleure solution suivante est un serveur IDS, mais cela suppose que l'attaquant n'attaque pas d'abord vos serveurs réels et qu'il prenne la peine de sonder l'ensemble de votre réseau. avant d'attaque. En outre, ces derniers sont connus pour produire un grand nombre de faux positifs.

6voto

Rob Moir Points 31534

Un pare-feu est un outil. Il ne rend pas les choses sûres en soi, mais il peut apporter sa contribution en tant que couche d'un réseau sécurisé. Cela ne signifie pas que vous en ayez besoin, et je m'inquiète certainement des personnes qui disent aveuglément "Je dois me procurer un pare-feu" sans comprendre pourquoi elles pensent ainsi et qui ne comprennent pas les forces et les faiblesses des pare-feu.

Il y a beaucoup d'outils dont on peut dire qu'on n'a pas besoin... Est-il possible de faire fonctionner un ordinateur Windows sans Antivirus ? Oui, c'est possible... mais c'est une bonne assurance d'en avoir un.

Je dirais la même chose des pare-feu - quoi que l'on puisse dire d'eux, ils constituent un bon niveau d'assurance. Ils ne remplacent pas Parcheando, le verrouillage des machines, la désactivation des services que vous n'utilisez pas, la journalisation, etc... mais ils peuvent être un complément utile.

Je dirais également que l'équation change quelque peu selon que l'on parle ou non de placer un pare-feu devant un groupe de serveurs soigneusement entretenus, comme vous semblez le faire, ou d'un réseau local typique avec un mélange de stations de travail et de serveurs, dont certains peuvent exécuter des choses assez dangereuses malgré les meilleurs efforts et souhaits de l'équipe informatique.

Une autre chose à considérer est l'avantage de créer une cible manifestement endurcie. Une sécurité visible, qu'il s'agisse de lumières vives, de serrures lourdes et d'un boîtier d'alarme évident sur un bâtiment, ou d'un pare-feu évident sur la gamme d'adresses IP d'une entreprise, peut dissuader l'intrus occasionnel - il cherchera une proie plus facile. Cela ne dissuadera pas l'intrus déterminé qui sait que vous détenez des informations qu'il veut et qui est déterminé à les obtenir, mais il vaut la peine de dissuader les intrus occasionnels - surtout si vous savez que tout intrus dont les sondes persistent au-delà de la dissuasion doit être pris particulièrement au sérieux.

5voto

Nathan Fisher Points 4401

Toutes les grandes questions. MAIS - je suis très surpris que la PERFORMANCE n'ait pas été mise sur la table.

Pour les frontaux Web très utilisés (en termes de CPU), le pare-feu local dégrade vraiment les performances, point final. Essayez un test de charge et voyez. J'ai vu cela des tonnes de fois. La désactivation du pare-feu augmente les performances (demandes par seconde) de 70 % ou plus.

Ce compromis doit être pris en compte.

4voto

TimP Points 149

Un pare-feu constitue une protection supplémentaire. Trois scénarios particuliers contre lesquels il protège sont les attaques de la pile réseau (c'est-à-dire que le système d'exploitation de votre serveur a une vulnérabilité sur des paquets spécialement conçus qui n'atteignent jamais le niveau des ports), une intrusion réussie établissant une connexion pour "téléphoner à la maison" (ou envoyer du spam, ou autre), ou une intrusion réussie ouvrant un port de serveur ou, moins détectable, surveiller une séquence de frappe de port avant d'ouvrir un port. Il est vrai que les deux dernières méthodes visent à atténuer les dommages d'une intrusion plutôt qu'à la prévenir, mais cela ne veut pas dire qu'elles sont inutiles. Rappelez-vous que la sécurité n'est pas une proposition tout ou rien ; il faut adopter une approche par couches, ceinture et bretelles, pour atteindre un niveau de sécurité suffisant pour vos besoins.

3voto

SteelToad Points 31

Je ne suis en aucun cas un expert en sécurité, mais il semble que vous ayez un pare-feu. Il semble que vous ayez repris certaines des fonctionnalités de base d'un pare-feu et que vous les ayez intégrées à vos politiques et procédures. Non, vous n'avez pas besoin d'un pare-feu si vous faites vous-même le même travail qu'un pare-feu. Pour ma part, je préfère faire de mon mieux pour maintenir la sécurité, tout en ayant un pare-feu qui surveille mon épaule, mais à un moment donné, lorsque vous pouvez faire tout ce que le pare-feu fait, il commence à ne plus être pertinent.

2voto

Joseph Pecoraro Points 2200

Un pare-feu n'est certainement pas nécessaire pour les petites installations. Si vous avez un ou deux serveurs, les pare-feu logiciels sont faciles à maintenir. Cela dit, nous ne fonctionnons pas sans pare-feu dédié, et il y a quelques raisons pour lesquelles je maintiens cette philosophie :

Séparation des rôles

Les serveurs sont destinés aux applications. Les pare-feu servent à l'inspection des paquets, au filtrage et aux politiques. Un serveur web doit s'occuper de servir les pages web, et c'est tout. Confier les deux rôles à un seul appareil revient à demander à votre comptable d'être également votre agent de sécurité.

Le logiciel est une cible mouvante

Le logiciel de l'hôte est en constante évolution. Les applications peuvent créer leurs propres exceptions de pare-feu. Le système d'exploitation est mis à jour et corrigé. Les serveurs sont une zone "d'administration" à fort trafic, et vos politiques de pare-feu et de sécurité sont souvent bien plus importantes pour la sécurité que la configuration de vos applications. Dans un environnement Windows, supposons que quelqu'un commette une erreur au niveau de la stratégie de groupe et désactive le pare-feu Windows sur les PC de bureau, sans se rendre compte qu'il va être appliqué aux serveurs. En quelques clics, vous vous retrouvez à découvert.

En ce qui concerne les mises à jour, les mises à jour du microprogramme du pare-feu sont généralement publiées une ou deux fois par an, tandis que les mises à jour du système d'exploitation et des services sont un flux constant.

Services/politiques/règles réutilisables, gérabilité

Si je configure une fois un service/une politique appelé(e) "Serveur Web" (disons TCP 80 et TCP 443), et que je l'applique au "groupe des serveurs Web" au niveau du pare-feu, c'est beaucoup plus efficace (quelques changements de configuration) et exponentiellement moins sujet à l'erreur humaine que de configurer des services de pare-feu sur 10 boîtes, et d'ouvrir 2 ports x 10 fois. Lorsque cette politique doit être modifiée, il suffit d'un seul changement au lieu de 10.

Je peux toujours gérer un pare-feu pendant une attaque, ou après une compromission.

Disons que mon pare-feu + serveur d'application basé sur l'hôte est attaqué et que le CPU est hors norme. Pour commencer à comprendre ce qui se passe, il faut que ma charge soit inférieure à celle de l'attaquant pour que je puisse y accéder et l'examiner.

Une expérience réelle : une fois, j'ai foiré une règle de pare-feu (j'ai laissé les ports sur N'IMPORTE QUI au lieu d'un port spécifique, et le serveur avait un service vulnérable), et l'attaquant a eu une session de bureau à distance en direct sur la boîte. A chaque fois que je commençais à obtenir une session, l'attaquant tuait/déconnectait ma session. Si je n'avais pas été en mesure de stopper cette attaque à partir d'un pare-feu indépendant, cela aurait pu être bien pire.

Contrôle indépendant

La journalisation des unités de pare-feu dédiées est généralement bien supérieure à celle des pare-feu logiciels basés sur l'hôte. Certains sont suffisamment performants pour que vous n'ayez même pas besoin d'un logiciel de surveillance SNMP / NetFlow externe pour obtenir une image précise.

Conservation de l'IPv4

Il n'y a aucune raison d'avoir deux adresses IP si l'une est pour le web et l'autre pour le courrier. Gardez les services sur des boîtes séparées, et acheminez les ports de manière appropriée via le dispositif conçu à cet effet.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X