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.
Réponses:
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 .
la source
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.
la source
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é. ;)
la source
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.
la source
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.
la source
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)
la source
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.
la source
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é.
la source