Nginx est un serveur Web et un proxy inverse hautes performances présentant les caractéristiques de légèreté, de haute concurrence, de configuration flexible, etc., et est largement utilisé dans les environnements de production. Cependant, comme son processus de construction est relativement simple, il reste confronté à certains problèmes de sécurité, des restrictions d'accès et des paramètres de sécurité doivent donc être définis pour Nginx.
1. Restrictions d'accès
Nginx peut restreindre l'accès à l'adresse IP en configurant les directives d'autorisation et de refus. Par exemple, pour autoriser uniquement des adresses IP spécifiques à accéder à Nginx, vous pouvez ajouter le code suivant au fichier nginx.conf :
location / { deny all; allow 192.168.1.100; allow 10.0.0.0/8; allow 172.16.0.0/12; allow 192.168.0.0/16; }
L'extrait de code ci-dessus signifie refuser toutes les demandes, puis autoriser les adresses IP 192.168.1.100, 10.0. .0.0/8 en séquence, 172.16.0.0/12, 192.168.0.0/16 requêtes. Vous pouvez également définir des règles globales d'autorisation et de refus via la directive http dans le fichier de configuration.
User-Agent est une chaîne d'identification envoyée par un client HTTP tel qu'un navigateur, qui peut être utilisée pour déterminer s'il s'agit du visiteur lui-même ou d'un programme automatisé. Nginx peut limiter le User-Agent en configurant la directive if et la variable $http_user_agent, par exemple :
if ($http_user_agent ~* (wget|curl)) { return 403; }
La signification de ce code est que si le User-Agent contient une chaîne wget ou curl, un code d'erreur 403 sera renvoyé .
Referer est un champ dans l'en-tête de la requête HTTP, indiquant l'adresse source de la requête en cours. Nginx peut limiter le Referer en configurant la directive if et la variable $http_referer, par exemple :
if ($http_referer ~* (baidu.com|google.com)) { return 403; }
La signification de ce code est que si le Referer contient la chaîne baidu.com ou google.com, il renverra un code d'erreur 403 .
2. Paramètres de sécurité
HTTPS peut mieux protéger la sécurité des applications Web par rapport au protocole HTTP, car l'algorithme de cryptage SSL/TLS est utilisé lors de la transmission des données. HTTPS peut être activé en ajoutant le code suivant au fichier de configuration Nginx :
server { listen 443 ssl; ssl_certificate /path/to/cert.crt; ssl_certificate_key /path/to/cert.key; ... }
où ssl_certificate
et ssl_certificate_key
utiliseront le certificat SSL et la clé privée pour implémenter la fonction de cryptage de le protocole HTTPS. ssl_certificate
和ssl_certificate_key
会使用SSL证书和私钥来实现HTTPS协议的加密功能。
Nginx默认情况下会将/etc/nginx/html
下的所有文件和子目录暴露在网站根目录下,因此需要限制访问文件目录。可以在nginx.conf配置文件中添加如下代码来限制目录的访问:
location / { root /path/to/root; index index.html; autoindex off; location ~* .(jpg|jpeg|png|gif|ico|css|js)$ { expires 1d; add_header Cache-Control "public"; } }
上述代码的意思是将网站的根目录指向/path/to/root,关闭autoindex功能,限制了允许访问的文件类型,同时设置缓存策略。
为了及时发现攻击行为,建议开启Nginx的日志记录功能。可以在nginx.conf配置文件中添加如下代码来记录访问日志:
http { access_log /var/log/nginx/access.log; ... }
其中,access_log
Restreindre l'accès aux répertoires de fichiers
Nginx exposera par défaut tous les fichiers et sous-répertoires sous/etc/nginx/html
au répertoire racine du site Web, l'accès aux répertoires de fichiers doit donc être restreint. Vous pouvez ajouter le code suivant au fichier de configuration nginx.conf pour restreindre l'accès au répertoire : 🎜rrreee🎜Le code ci-dessus signifie pointer le répertoire racine du site Web vers /path/to/root, désactiver la fonction d'indexation automatique et limiter la types de fichiers auxquels l'accès est autorisé. Définissez également la stratégie de cache. 🎜🎜🎜Journal de sécurité🎜🎜🎜Afin de détecter les attaques à temps, il est recommandé d'activer la fonction de journalisation de Nginx. Vous pouvez ajouter le code suivant au fichier de configuration nginx.conf pour enregistrer les journaux d'accès : 🎜rrreee🎜 Parmi eux, access_log
est le chemin de stockage des journaux d'accès Nginx. Les journaux peuvent être stockés dans des fichiers locaux ou analysés à l'aide d'outils d'analyse de journaux tels que ELK. 🎜🎜Résumé🎜🎜Les restrictions d'accès et les paramètres de sécurité de Nginx sont cruciaux pour la sécurité des applications Web. L'accès peut être restreint via des restrictions IP, des restrictions d'agent utilisateur, des restrictions de référent, etc. Vous pouvez également activer HTTPS et restreindre l'accès au répertoire de fichiers. , journaux de sécurité, etc. pour améliorer la sécurité des applications Web. Cependant, il convient de noter que ces mesures ne peuvent qu'améliorer la sécurité des applications Web, mais ne peuvent pas garantir complètement leur sécurité. Par conséquent, des mises à jour régulières des versions des logiciels et des correctifs en temps opportun des vulnérabilités ainsi que d'autres mesures sont nécessaires pour garantir la sécurité des applications Web. 🎜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!