Nginx est un puissant serveur Web, un serveur proxy inverse et un équilibreur de charge. Ses hautes performances et sa large gamme d'applications en font le premier choix de nombreuses sociétés, sites et applications Internet. Cependant, en raison de sa complexité et de sa popularité, Nginx est également devenu la cible de nombreuses attaques de pirates informatiques. Afin de protéger nos applications Web et nos serveurs, nous devons prendre certaines mesures de sécurité de base Nginx.
1. Activer le pare-feu
Un pare-feu est la première ligne de défense pour toute application Web et tout serveur. Utilisez un pare-feu pour empêcher les accès non autorisés et les attaques. Lorsque vous utilisez Nginx, nous vous recommandons d'utiliser un logiciel de pare-feu tel que iptables ou firewalld, en configurant des règles pour restreindre les adresses IP et les ports qui accèdent à nos applications Web et serveurs.
2. Désactivez les méthodes HTTP inutiles
Nginx active toutes les méthodes HTTP par défaut, y compris les méthodes dangereuses telles que PUT, DELETE et TRACE. Un attaquant peut exploiter ces méthodes pour effectuer des actions non autorisées, telles que le téléchargement de fichiers malveillants ou la lecture de fichiers sensibles. Pour éviter cela, nous vous recommandons de désactiver les méthodes HTTP inutiles et d'autoriser uniquement les méthodes nécessaires, telles que les méthodes GET et POST. La directive suivante peut être utilisée dans le fichier de configuration Nginx :
if ($request_method !~ ^(GET|POST)$ ) { return 444; }
Cela désactivera toutes les méthodes HTTP sauf GET et POST et renverra une erreur 444.
3. Utiliser la transmission cryptée SSL/TLS
L'utilisation de la transmission cryptée SSL/TLS peut protéger nos applications Web et nos serveurs contre les fuites de données et les attaques de l'homme du milieu. Nous pouvons utiliser des certificats SSL gratuits tels que Let's Encrypt pour réaliser une transmission cryptée SSL/TLS. Dans le fichier de configuration Nginx, nous pouvons configurer la directive suivante pour activer SSL :
listen 443 ssl; ssl_certificate /path/to/cert; ssl_certificate_key /path/to/key;
Cela activera la transmission cryptée SSL/TLS et spécifiera le chemin d'accès au certificat SSL et à la clé privée.
4. Limiter les connexions simultanées
Un attaquant peut occuper les ressources du serveur en envoyant un grand nombre de requêtes, entraînant une indisponibilité du service. Pour éviter cela, nous pouvons utiliser le module limit_conn de Nginx pour limiter le nombre de connexions simultanées. Dans le fichier de configuration de Nginx, nous pouvons configurer la directive suivante pour limiter le nombre de connexions simultanées :
http { limit_conn_zone $binary_remote_addr zone=conn_limit_per_ip:10m; server { limit_conn conn_limit_per_ip 10; ... } }
Cela limitera le nombre de connexions simultanées à 10 par adresse IP.
5. Informations sur la version du serveur Shield
Un attaquant peut utiliser les informations sur la version du serveur pour trouver les versions du serveur qui peuvent présenter des vulnérabilités et tenter d'exploiter ces vulnérabilités pour des attaques. Pour éviter cela, nous pouvons masquer les informations sur la version du serveur Nginx. Dans le fichier de configuration Nginx, nous pouvons configurer la directive suivante pour masquer les informations de version du serveur :
server_tokens off;
Cela masquera les informations de version du serveur dans l'en-tête de réponse HTTP.
Résumé
Nginx est un puissant serveur Web, serveur proxy inverse et équilibreur de charge. Ses hautes performances et sa large gamme d'applications en font le premier choix pour de nombreuses sociétés, sites et applications Internet. Cependant, en raison de sa complexité et de sa popularité, nous devons prendre certaines mesures de sécurité de base pour protéger nos applications Web et nos serveurs. Ce qui précède présente certaines mesures de sécurité de base de Nginx, telles que l'activation des pare-feu, la désactivation des méthodes HTTP inutiles, l'utilisation de la transmission cryptée SSL/TLS, la limitation des connexions simultanées et le blocage des informations sur la version du serveur. En prenant ces mesures, nous pouvons améliorer la sécurité de nos applications et serveurs Web et protéger efficacement nos données et notre activité.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!