Recherche de site Web

Fail2ban avec des prisons Nginx : un duo dynamique pour la sécurité des serveurs


Tout service ouvert au public représente une menace potentielle, il est donc très important d'implémenter la sécurité dans la conception du serveur ou de l'infrastructure. Sécuriser le serveur implique de mettre en œuvre les mesures de sécurité, de surveiller les journaux et de mettre à jour les mesures de sécurité en fonction des statistiques et de l'entretien régulier et des mises à jour.

Fail2ban avec Nginx est l'une des combinaisons à considérer en termes de rapidité, de performance et de sécurité d'un serveur web. Fail2ban est un cadre logiciel de prévention d'intrusion écrit dans le langage de programmation Python. Il s'occupe de la sécurité et Nginx gère la rapidité et la performance. Dans cet article, nous allons discuter de la façon dont Fail2ban avec Nginx va sécuriser le serveur contre les activités suspectes.

Avantages de l'utilisation de Nginx dans l'hébergement

Nginx est un serveur web polyvalent et puissant qui offre de nombreux avantages lorsqu'il est utilisé pour héberger des sites web et des applications web. Un de ses principaux atouts est sa performance et son efficacité exceptionnelles. Nginx est conçu pour gérer un grand nombre de connexions simultanées et servir un contenu statique rapidement, ce qui en fait un choix idéal pour des environnements d'hébergement soumis à de lourdes charges de trafic. Son utilisation efficace des ressources système signifie qu'il peut servir plus d'utilisateurs avec moins de matériel, réduisant ainsi les coûts d'hébergement.

Un autre avantage significatif de l'utilisation de Nginx en hébergement est sa capacité à agir en tant que serveur proxy inverse et répartiteur de charge. Nginx peut distribuer le trafic web entrant sur plusieurs serveurs backend, assurant une répartition équitable et une haute disponibilité. Cette fonctionnalité de répartition de charge améliore la fiabilité globale et la tolérance aux pannes des services d'hébergement, ce qui la rend particulièrement précieuse pour les sites internet et les applications nécessitant un temps de disponibilité continu et une scalabilité. De plus, le support de Nginx pour la terminaison SSL/TLS, ses fonctionnalités de sécurité et sa facilité de configuration contribuent encore à sa popularité dans les environnements d'hébergement, en faisant un choix fiable pour servir le contenu web de manière sécurisée et efficace.

Comment Fail2ban sécurise-t-il le serveur

Fail2ban est un cadre logiciel de prévention des intrusions qui sécurise le serveur en surveillant activement les journaux pour toute activité malveillante et en scannant les fichiers à la recherche d'entrées correspondant aux modèles identifiés. Si Fail2ban détecte des tentatives de connexion échouées de manière continue, il bloque l'adresse IP source dans le pare-feu. Par défaut, il est configuré pour utiliser le pare-feu iptables, mais vous pouvez le personnaliser pour utiliser firewalld ou ufw. Sur les serveurs CentOS 8, nous pouvons installer fail2ban-firewalld pour passer à firewalld. Vous pouvez rendre votre serveur plus sûr en configurant des prisons pour des services comme SSH, Nginx, Apache et email.

Fail2ban avec Nginx

Utiliser Fail2ban avec Nginx offre des avantages notables pour renforcer la sécurité de votre serveur web et de vos applications. Ce duo dynamique excelle à contrecarrer les attaques par force brute, en identifiant et en bloquant automatiquement les adresses IP responsables de tentatives de connexion répétées échouées. La capacité de Fail2ban à atténuer certaines attaques DDoS en détectant et en interdisant les adresses IP générant des requêtes excessives sur une courte période améliore également la disponibilité du serveur. De plus, il excelle dans la lutte contre les robots de scraping web et d'autres outils malveillants automatisés, préservant ainsi les ressources du serveur et la bande passante. Des règles de sécurité personnalisables permettent d'adapter la protection aux besoins spécifiques de votre application, que vous hébergiez plusieurs applications web ou un site unique. Les capacités de journalisation et d'alerte de Fail2ban, ainsi que son intégration transparente avec d'autres outils de sécurité, en font un ajout précieux à votre stratégie de sécurité, améliorant la stabilité du serveur et protégeant les processus d'authentification des utilisateurs. De plus, Fail2ban s'adapte aux menaces évolutives, garantissant une protection robuste au fil du temps.

Associer Fail2ban avec Nginx est une stratégie efficace pour protéger votre serveur web. Il identifie et bloque automatiquement les activités malveillantes, réduisant le risque d'accès non autorisé et d'attaques DDoS tout en améliorant également la performance et la stabilité du serveur. Cette couche de sécurité proactive et adaptable, soutenue par une communauté open-source active, complète d'autres mesures de sécurité pour une protection complète. Une configuration et un entretien appropriés sont essentiels pour maximiser les avantages de Fail2ban dans votre environnement d'hébergement.

Installation de Fail2Ban

L'installation de fail2ban peut être réalisée en quelques commandes simples. Les commandes varient en fonction du système d'exploitation que vous utilisez. Ici, nous faisons référence aux commandes utilisées dans Ubuntu et CentOS.

Pour Ubuntu/Debian, vous pouvez utiliser les commandes suivantes pour installer fail2ban :

apt update
apt install fail2ban

Vous pouvez remarquer « sudo » dans les commandes dans d'autres blogs/docs. Notez que vous devez utiliser « sudo » si vous exécutez ces commandes en tant qu'utilisateur non root. En ce qui me concerne, la plupart des administrateurs effectuent le processus d'installation en tant qu'utilisateur root, donc il n'y a pas besoin de la commande « sudo ». Si vous exécutez en tant qu'utilisateur non root, « sudo » est nécessaire pour obtenir les privilèges pour l'installer.

Pour CentOS/RHEL :

yum install epel-release
yum install fail2ban

Dans certains serveurs, le dépôt "epel-release" est déjà installé. Dans ce cas, vous pouvez simplement lancer l'installation de fail2ban. De plus, vous activez le service, le démarrez et vérifiez l'état en utilisant les commandes suivantes :

systemctl enable fail2ban
systemctl start fail2ban
systemctl status fail2ban

Configuration de Fail2ban

Créez un fichier de configuration fail2ban personnalisé pour Nginx. Vous pouvez le faire en créant un nouveau fichier ".conf" dans le répertoire "/etc/fail2ban/filter.d/". Appelons-le "nginx-auth.conf".

Fichier : /etc/fail2ban/filter.d/nginx-auth.conf

Contenu d'exemple :

—--------------------
[Definition]
failregex = ^ \[error\] \d+#\d+: \*\d+ auth_basic
            ^ \[error\] \d+#\d+: \*\d+ no user/password was provided for basic authentication.*
—--------------------

Remarque : Les entrées de configuration sont des entrées d'exemple ; vous devez vous référer à la documentation officielle. Utilisez également ce code à vos propres risques.

Créer une configuration de prison pour Nginx

Maintenant, créez une configuration de prison spécifiquement pour Nginx. Ouvrez le fichier « jail.local » pour l'éditer :

Utilisez la configuration d'exemple suivante :

----------------------
[nginx]
enabled  = true
filter   = nginx-auth
logpath  = /var/log/nginx/error.log
maxretry = 3
findtime = 600
bantime  = 3600
----------------------

Explication de chaque entrée de configuration :

activé : Défini sur vrai pour activer la prison Nginx.

filtre : Le nom du fichier de configuration du filtre (créé plus tôt).

Chemin d'accès : Le chemin vers votre fichier journal d'erreurs Nginx.

maxretry : Le nombre de tentatives de connexion autorisées avant de bannir une adresse IP.

findtime : La fenêtre de temps (en secondes) pendant laquelle les tentatives maxretry sont comptées.

bantime : La durée (en secondes) pendant laquelle une adresse IP est bannie.

Fail2ban est maintenant configuré pour surveiller les journaux Nginx à la recherche d'échecs d'authentification et interdire les adresses IP qui dépassent le seuil configuré. Il est essentiel de garder un œil sur les journaux fail2ban et d'ajuster la configuration si nécessaire pour s'aligner sur les besoins de sécurité de votre serveur. La surveillance et l'ajustement sont clés pour maintenir des mesures de sécurité efficaces.

Dans fail2ban, vous avez la flexibilité de faire diverses personnalisations selon vos besoins spécifiques. Vous pouvez configurer des options telles que les notifications par email, ignorer des adresses IP spécifiques et définir les durées de bannissement en fonction de vos exigences. Pour explorer les détails de configuration supplémentaires, consultez le fichier de configuration pour des paramètres complets.

Prisons Fail2ban

Une prison fail2ban est une combinaison d'un filtre et d'une ou plusieurs actions. Un filtre définit une expression régulière qui correspond à un motif correspondant à une tentative de connexion échouée ou à une autre activité suspecte. Les actions définissent des commandes qui sont exécutées lorsque le filtre détecte une adresse IP abusive.

Il existe des prisons intégrées disponibles dans fail2ban et nous pouvons activer les prisons en fonction de nos besoins. Vous pouvez voir les différents fichiers de configuration des prisons dans le répertoire de configuration « /etc/fail2ban/filter.d ».

Nous pouvons utiliser la commande suivante pour obtenir des informations sur les prisons activées :

fail2ban-client status

Plus de détails sur les prisons peuvent être consultés en utilisant la commande suivante :

fail2ban-client status nginx-auth

Certaines des prisons nécessaires qui sont activées sur le serveur pour améliorer la sécurité du serveur :

  • Prison SSH
  • Nginx/Apache Prison
  • Prison FTP
  • Serveur de messagerie en prison
  • Application Web en Prison
  • Protection DDoS Jail
  • Prisons personnalisées - Fail2Ban pour WordPress, Webmin, etc.

En fonction de la configuration de votre serveur et des services que vous exécutez, vous pourriez avoir besoin de créer des prisons personnalisées adaptées à vos besoins spécifiques. Cela vous permet de surveiller et de protéger contre des menaces uniques.

Conclusion

En résumé, la combinaison de fail2ban avec Nginx joue un rôle majeur dans la sécurité du serveur. Il surveille activement les journaux et nous aide à garder le serveur sécurisé. Nginx offre des temps de chargement plus rapides et de meilleures performances, tandis que fail2ban agit comme un gardien de la sécurité en surveillant les activités malveillantes sur le serveur à travers l'analyse des journaux. Une configuration appropriée, des mises à jour régulières et un entretien sont nécessaires pour garder le serveur sécurisé dans le paysage évolutif de la cybersécurité d'aujourd'hui.