Recherche de site Web

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


Tout service ouvert au public est une menace potentielle, donc la mise en œuvre de la sécurité est une partie très importante dans la conception du serveur ou de l'infrastructure. Sécuriser le serveur implique la mise en œuvre des mesures de sécurité, la surveillance des journaux, et la mise à jour des 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 duo à 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 en 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 son exceptionnelle performance et son efficacité. Nginx est conçu pour gérer un grand nombre de connexions simultanées et servir rapidement du contenu statique, ce qui en fait un choix idéal pour les environnements d'hébergement avec des charges de trafic lourdes. Son utilisation efficace des ressources système signifie qu'il peut servir plus d'utilisateurs avec moins de matériel, réduisant ainsi finalement 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 équilibreur de charge. Nginx peut répartir le trafic web entrant sur plusieurs serveurs backend, assurant une distribution uniforme et une haute disponibilité. Cette capacité d'équilibrage de charge améliore la fiabilité et la tolérance aux pannes des services d'hébergement, la rendant particulièrement précieuse pour les sites web et les applications nécessitant un temps de disponibilité continu et une évolutivité. De plus, le support par Nginx de la terminaison SSL/TLS, de ses caractéristiques de sécurité et de sa facilité de configuration contribuent également à 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 logiciel de prévention des intrusions qui sécurise le serveur en surveillant activement les journaux pour toute activité malveillante et en analysant les fichiers à la recherche d'entrées correspondant aux modèles identifiés. Si Fail2ban détecte des tentatives de connexion échouées continues, 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écurisé en configurant des prisons pour des services tels que SSH, Nginx, Apache et l'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, identifiant et bloquant automatiquement les adresses IP responsables des échecs de connexion répétés. L'aptitude de Fail2ban à atténuer certaines attaques DDoS en détectant et en bannissant les adresses IP qui génèrent des demandes excessives sur une courte période améliore également la disponibilité du serveur. De plus, il excelle à combattre les bots de scraping web et autres outils automatisés malveillants, préservant les ressources et la bande passante du serveur. 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 fluide 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 ainsi 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 remarquerez peut-être « 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 d'installation.

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 procéder à 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 custom pour fail2ban 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 exemples ; vous devez consulter 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éfinenir à vrai pour activer la prison Nginx.

filtre : Le nom du fichier de configuration du filtre (créé précédemment).

Chemin des journaux : Le chemin vers votre fichier de journal d'erreurs Nginx.

maxretry: Le nombre de tentatives de connexion autorisées avant de bannir une 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 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 de 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é d'effectuer diverses personnalisations en fonction de vos besoins spécifiques. Vous pouvez configurer des options telles que les notifications par e-mail, ignorer des adresses IP spécifiques et définir les temps d'interdiction en fonction de vos besoins. 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 vus 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
  • Prison Nginx/Apache
  • Prison FTP
  • Serveur de courrier en prison
  • Application Web Jail
  • Protection contre les attaques DDoS
  • Jails personnalisés - Fail2Ban pour WordPress, Webmin, etc.

En fonction de la configuration de votre serveur et des services que vous utilisez, vous devrez peut-être 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 Ngix joue un rôle majeur dans la sécurité des serveurs. 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 garde de sécurité pour surveiller les activités malveillantes sur le serveur en surveillant les journaux. Une configuration correcte, 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.