Pourquoi aurais-je besoin d'un pare-feu si mon serveur est bien configuré?


59

J'administre une poignée de serveurs en nuage (VPS) pour l'entreprise pour laquelle je travaille.

Les serveurs sont des installations ubuntu minimales qui exécutent des bits de la collecte de piles entrantes / LAMP (rsync). Les données sont volumineuses mais pas personnelles, financières ou quelque chose comme ça (c'est-à-dire pas si intéressant)

Il est clair que les utilisateurs ne cessent de s’interroger sur la configuration de pare - feu , par exemple.

J'utilise un tas d'approches pour sécuriser les serveurs, par exemple (mais pas uniquement)

  • ssh sur des ports non standard; aucune saisie de mot de passe, seules les clés ssh connues provenant d'ips connus pour la connexion, etc.
  • https et shells restreints (rssh) généralement uniquement à partir de clés / ips connus
  • les serveurs sont minimes, à jour et patchés régulièrement
  • utiliser des outils comme rkhunter, cfengine, lynis denyhosts, etc. pour la surveillance

J'ai une vaste expérience de l'administrateur système Unix. Je suis convaincu que je sais ce que je fais dans mes installations. Je configure les fichiers / etc. Je n'ai jamais ressenti le besoin impérieux d'installer des éléments tels que des pare-feu: iptables, etc.

Laissons de côté un instant les questions de sécurité physique du VPS.

Q? Je ne peux pas décider si je suis naïf ou si la protection incrémentielle qu'un fw pourrait offrir vaut l'effort d'apprentissage / installation et la complexité supplémentaire (packages, fichiers de configuration, support éventuel, etc.) sur les serveurs.

À ce jour (touch wood), je n'ai jamais eu de problèmes de sécurité, mais je ne suis pas complaisant à ce sujet non plus.



Vous devriez essayer sur security.stackexchange.com
AviD

6
Donnez-moi votre adresse IP et je vais vous montrer pourquoi vous avez besoin d'un pare-feu.
GregD

Réponses:


87

Je remarque que vous avez fait un excellent travail en liant plusieurs démons différents et, d'après ce que vous avez dit, il est peu probable que vous vous exposiez à des problèmes grâce aux services que vous avez déjà obtenus. Cela vous laisse toujours dans un état "tout est permis sauf celui que j’ai interdit", et vous ne pouvez pas sortir de cet état en traquant les démons après les démons et en les sécurisant un à un.

Un pare-feu configuré pour refuser n'importe qui par défaut vous déplace vers un mode de fonctionnement "tout est interdit sauf celui qui est autorisé", et j'ai constaté au fil des ans qu'ils étaient meilleurs.

À l'heure actuelle, dans le cas d'un utilisateur légitime possédant un shell légitime sur votre système, elle pourrait décider d'exécuter un démon local non privilégié pour le proxy des demandes Web pour Internet, ou de démarrer le partage de fichiers sur le port 4662, ou d'ouvrir accidentellement un écouteur à l'aide de -g. avec ssh port tunneling, ne comprenant pas ce qu’il fait; ou bien une installation de sendmail pourrait vous laisser exécuter un MUA sur le port 587 mal configuré, malgré tout le travail que vous avez effectué pour sécuriser l’envoi MTA sur le port 25; ou cent une choses pourraient se produire qui contournent votre sécurité prudente et réfléchie simplement parce qu'elles n'étaient pas là quand vous réfléchissiez bien à ce qu'il faut interdire.

Voyez-vous mon point? Pour le moment, vous avez déployé beaucoup d'efforts pour sécuriser tout ce que vous connaissez, et vous avez l'impression qu'ils ne vous mordront pas. Ce qui peut vous mordre, ce sont des choses que vous ne connaissez pas, ou qui ne sont même pas là, en ce moment.

Un pare-feu dont le comportement par défaut est DENY ANY any est la manière la plus simple pour l'administrateur système de dire que si quelque chose de nouveau se présente et ouvre un port d'écoute du réseau sur ce serveur, personne ne sera en mesure de lui parler tant que je n'aurai pas donné l'autorisation explicite .


C'est une réponse très perspicace, en particulier le texte sur le basculement de "tout est permis ..." à "tout est interdit ..." Votre remarque est bien formulée à propos des démons locaux. Comme c'est souvent le cas - je suis sûr que vous en conviendrez - le danger est souvent "de l'intérieur"
Aitch

12
(Aitch, si je peux me permettre un peu, votre profil suggère que vous êtes nouveau sur serverfault. Selon l'étiquette locale, lorsque vous êtes satisfait d'une réponse, vous l'acceptez en cliquant sur le contour de la coche si la mémoire vous convient; Bien sûr, si vous le savez déjà ou si vous attendez de voir si d’autres, meilleures réponses, se présentent, c’est aussi très juste et approprié, et s’il vous plaît, ignorez-moi. La communauté ne demande qu’une fois cette vous êtes entièrement satisfait d'une réponse à votre question, vous l'acceptez.)
MadHatter

+1 @MatHatter - une bonne description de la manière dont les pare-feu peuvent fournir une sécurité par défaut plutôt que par choix.
Coops

C'est un risque calculé. Au moins sur OpenBSD, l'activation de pf ajoute 35 000 lignes de code dans le noyau, ce qui peut comporter des bogues. D'autre part, un refus par défaut - et un pare-feu de journalisation approprié - est le meilleur moyen que l'ID puisse acheter. Arrêtez d'essayer d'utiliser Snort pour rechercher les mauvaises choses: chaque fois que l'une de vos machines fait quelque chose que vous n'avez pas spécifiquement autorisé, vous devriez être averti.
Alex Holst

14

Principe du moindre privilège. Un pare-feu vous aide à y arriver. Principe de défense en profondeur. Un pare-feu vous aide également à vous y rendre. Toute configuration bien conçue repose explicitement sur ces deux éléments d’une manière ou d’une autre.

Une autre chose est que vos serveurs seront très probablement du matériel de base ou un matériel spécifique pour gérer un logiciel serveur s'exécutant sur un système d'exploitation serveur standard (Unix, NT, Linux). Autrement dit, ils ne disposent pas de matériel spécialisé pour gérer et filtrer efficacement le trafic entrant. Voulez-vous que votre serveur gère toutes les analyses possibles de multidiffusion, de paquets ICMP ou de ports?

Ce que vous voulez probablement, c’est que vos serveurs gèrent physiquement les requêtes adressées à certains ports seulement (80, 443, votre port ssl, votre port oracle 1521 typique, votre port rsync, etc.). Oui, bien sûr, vous configurez des pare-feu logiciels sur votre ordinateur. serveurs d'écouter ces ports uniquement. Mais vos cartes réseau supporteront toujours le trafic indésirable (qu’il soit malin ou normal dans votre organisation). Si vos cartes réseau sont de plus en plus frappées, les chemins réseau passant par vos serveurs (et éventuellement entre vos serveurs et vos clients internes et les connexions à autres serveurs et services internes.)

Non seulement vos cartes réseau seront-elles martelées, votre pare-feu logiciel sera également activé car il devra inspecter chaque paquet ou datagramme reçu.

Par contre, les pare-feu, en particulier ceux situés sur les bords des sous-réseaux (ou séparant vos sous-réseaux du monde extérieur), ont tendance à être du matériel spécialisé spécialement conçu pour gérer ce type de volume.

Vous pouvez entourer N nombre de serveurs avec M nombre de pare-feu (avec N >> M). Et vous configurez le matériel de votre pare-feu pour qu'il videra tout ce qui n'est pas dirigé vers des ports spécifiques. Les scans de ports, ICMP et autres merdes sont sortis. Vous ajustez ensuite le pare-feu logiciel de vos serveurs en fonction de leur fonction spécifique.

Maintenant, vous venez de réduire (mais pas d'éliminer) la probabilité d'une panne totale, en la réduisant à un partitionnement du réseau ou à une défaillance partielle au pire. Et ainsi, vous avez augmenté la capacité de vos systèmes à survivre à une attaque ou à une mauvaise configuration.

Ne pas avoir de pare-feu parce que vos serveurs en ont un, c'est comme se sentir en sécurité lorsque vous portez votre ceinture de sécurité lorsque vous conduisez à 120 mph sous une visibilité nulle en raison du brouillard. Ça ne marche pas comme ça.


4

Il existe de nombreuses attaques auxquelles vous pourriez être vulnérable si vous n’avez pas de pare-feu effectuant une sorte d’inspection au niveau du paquet:

Exemple: le paquet d’arbres de Noël

http://en.wikipedia.org/wiki/Christmas_tree_packet

Les attaques DDOS pourraient être exécutées contre votre système, un pare-feu (externe peut-être avant tous vos serveurs) arrêterait / ralentirait / tuerait le trafic avant de paralyser vos serveurs.

Ce n’est pas parce que vous n’avez pas de données financières ou personnelles sur les serveurs que vous ne serez pas blessé. Je suis sûr que vous payez pour la bande passante ou l'utilisation du processeur, ou vous avez un tarif calculé. Imaginez, au cours d'une nuit (pendant que vous dormez), quelqu'un monte votre compteur (j'ai vu cela se produire avec des fournisseurs de commutateurs VoIP, frappés dans la nuit pour des MILLIONS DE MINUTES de trafic, pour lesquels ils doivent payer l'addition).

Alors soyez intelligent, utilisez la protection si elle est là, vous n'êtes pas parfait, ni le logiciel. Ce n'est que jusqu'à ce que le prochain exploit soit trouvé. ;)


2

Si vous pouvez appliquer un principe de moindre privilège sans utiliser un pare-feu, vous n'en avez probablement pas besoin. De mon point de vue, construire un système sécurisé sans pare-feu nécessite plus d’efforts, et je suis plutôt paresseux. Pourquoi devrais-je m'occuper de restreindre les connexions TCP à l'aide d'autres outils et probablement de nombreux fichiers de configuration lorsque je peux séparer les privilèges sur un niveau de transport à l'aide d'une seule configuration.


1
Bon point à propos de la configuration unique, moins de marge d'erreur. Je suis d'accord avec être paresseux autant que possible! cfengine élimine une partie de cette complexité pour moi, atténuant en partie le problème de nombreux fichiers de configuration ... mais ... cela dépend uniquement des règles qui sont écrites bien sûr. Donc, vous laissez la plupart des fichiers de configuration à "défaut" (ou presque identique) en tant que barrière secondaire et que le pare-feu est la principale préoccupation (au moins au niveau des couches).
Aitch

2
J'ai d'abord voté pour PoLP, puis vers le bas pour la paresse. Les pare-feu ne sont pas des outils permettant à leurs propriétaires d'être négligents. Vous devriez vous préoccuper de resserrer votre surface d'attaque, car si l'attaquant passe à travers le pare-feu (après tout, il faut que quelque chose soit ouvert), il peut simplement désactiver iptables. Appliquez votre paresse là où elle convient: faites en sorte que le système soit aussi silencieux que possible pour ne pas avoir à le réparer longtemps.
Marcin

@Marcin, je veux dire que si quelqu'un veut sécuriser un système sans utiliser de pare-feu, il devra d'abord créer un modèle de menace complet. Les pare-feu impliquent une sorte de modèle de menace bien connu et bien décrit. Je n'ai donc pas à le construire à partir de rien pour chaque hôte. Bien sûr, si nous parlons d'une sécurité de niveau militaire, il n'y a pas d'autre choix, un modèle de menace formel devrait être construit.
Alex

1

Un pare-feu peut également empêcher les paquets indésirables d'atteindre vos serveurs. Au lieu de les traiter au niveau du serveur individuel, vous pouvez les gérer au niveau du pare-feu. Vous pouvez conserver toute cette activité de configuration sur le même pare-feu plutôt que sur plusieurs serveurs.

Par exemple, si un attaquant a obtenu le contrôle d'une adresse IP externe et qu'il déluge vos serveurs avec des paquets indésirables et que vous souhaitez en atténuer les effets sur vos serveurs ... vous pouvez configurer chacun de vos serveurs affectés pour supprimer les paquets malveillants. ou simplement apportez les modifications sur votre pare-feu et tous vos serveurs sont protégés. Avoir le pare-feu a diminué votre temps de réaction.


De plus, configurer un pare-feu de toute façon - il se trouve qu’il se trouve sur chaque serveur.
Mfinni

1

Un jour, vous ou quelqu'un d'autre pouvez faire une erreur sur la configuration de votre serveur. Un pare-feu vous donne alors une deuxième chance d'empêcher quelqu'un d'entrer. Nous ne sommes pas parfaits, nous commettons des erreurs et, par conséquent, un peu d'assurance "inutile" peut en valoir la peine .

(Essayez de ne pas exécuter votre pare-feu sur le même système d'exploitation que vos serveurs, sinon un seul bogue dans le système d'exploitation ... Je considère que toutes les versions d'Unix sont identiques, car elles ont beaucoup en commun)


Excellent, le mélange des plates-formes (OS et matériel) est la clé.
DutchUncle

1

Les pare-feu sont spécialisés dans la manipulation du trafic. Ils le font rapidement et ont des ressources. Et vous ne gaspillez pas les ressources du serveur pour filtrer le trafic (disk io / proc time / etc). Vous devez configurer certaines fonctions de sécurité dans un environnement de serveur, mais toutes les inspections de trafic, les analyses antivirus, etc., doivent être effectuées sur des serveurs spécialisés.


-2

Je crains que si jamais vous êtes piraté et n’avez pas de pare-feu en place. Les pirates pourraient ouvrir d'autres ports sur vos serveurs. De plus, si un consultant est amené à faire du nettoyage et de l'audit, la première chose qu'il dira est: "QUOI?!?! Vous n'avez pas de pare-feu!" Ensuite, vous pourriez être brûlé.


-1 réponse un peu sensationnaliste + pas vraiment constructif.
Coops

2
Si le serveur est compromis, alors un pare-feu ne va pas nécessairement aider lorsque le bozo qui est entré en panne le désactive tout simplement! * disclaimer, la question mentionnait l'utilisation d'iptables, pas un pare-feu matériel séparé.
Bryan
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.