Afficher la pageAnciennes révisionsLiens de retourHaut de page Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu'il s'agit d'une erreur. ====== Nginx ====== * [[letsencrypt:accueil|Let's Encrypt]] * [[nginx:logging-nginx|Stocker les logs Nginx en base de données]] * [[https://github.com/trimstray/nginx-quick-reference]] * https://nginxconfig.io/ * [[https://blog.adminrezo.fr/2019/02/durcissement-de-nginx-et-apache/]] * https://mozilla.github.io/server-side-tls/ssl-config-generator/ * [[https://geekeries.org/2019/06/authentification-par-certificat-client-sur-nginx/]] * [[https://blogduyax.madyanne.fr/2019/proxy-http-et-securite/]] * [[https://github.com/trimstray/nginx-admins-handbook/]] * [[https://www.tumfatig.net/2025/check-your-ip-infos-using-nginx/|Check your IP infos using nginx]] Évaluer la sécurité et les bonnes pratiques sur le serveur: * https://www.ssllabs.com * https://securityheaders.com * https://www.immuniweb.com * [[https://github.com/bunkerity/bunkerized-nginx]] * [[https://www.cyberciti.biz/tips/linux-unix-bsd-nginx-webserver-security.html]] ==== Sécuriser une page avec un htpasswd ==== [[https://blog.nicolargo.com/2012/01/nginx-proteger-son-site-avec-une-authentification-simple-http.html|Source]] Installer le paquet ''apache2-utils''. Créer le fichier //.htpasswd// et créer l'utilisateur voulu: <code bash> htpasswd -c /var/www/.htpasswd login </code> Le paramètre ''-c'' permet de créer le fichier. Modifier le fichier de configuration du domaine Nginx en conséquence: <code nginx /etc/nginx/conf.d/domain.conf> location / { index index.html index.htm; auth_basic "Login"; auth_basic_user_file /var/www/.htpasswd; } # Protect hidden file to read/write access location ~ /\. { deny all; } </code> Relancer Nginx. Il est possible de désactiver l'authentification pour une page en particulier : <code nginx> location /une/url/bien/precise/ { auth_basic off; } </code> Ce bloc ''location'' doit être situé au même niveau que l'autre bloc qui contient l'instruction d'authentification, et doit aussi contenir les instructions pour traiter la requête (''proxy_pass'', etc). ==== Autoriser le listing d'un dossier ==== [[https://nginxlibrary.com/enable-directory-listing/|Source]] <code nginx /etc/nginx/conf.d/domain.conf> location /somedir { autoindex on; } </code> ------- ==== Lister les modules de Nginx ==== [[https://serverfault.com/questions/223509/how-can-i-see-which-flags-nginx-was-compiled-with|Source]] <code bash> 2>&1 nginx -V | tr ' ' '\n' </code> ----- ==== Fancy Index ==== [[https://github.com/Naereen/Nginx-Fancyindex-Theme]] Ne pas mettre ''audoindex on;'' en même temps que ''fancyindex on;'' ! ------ ==== Cacher qu'il s'agit de Nginx ==== * [[https://blog.adminrezo.fr/2015/02/cacher-version-apache-nginx-php-fcgi/]] <code nginx> server_tokens off; # cache la version de Nginx more_set_headers "Server: Unknown"; # modifie l'en-tête Server </code> ---- ==== Ne pas logger certaines requêtes ==== * [[https://www.tendenci.com/help-files/remove-errors-favicon-nginx-server-logs/]] * [[https://gist.github.com/kfl62/6049099]] * [[https://bjornjohansen.no/exclude-requests-from-nginx-access-log]] <code nginx> location ~* (/favicon.ico|/apple-touch-icon-precomposed.png|/apple-touch-icon.png|/robots.txt) { access_log off; log_not_found off; } </code> === Selon le user-agent === Pour ne pas logger les requêtes faites par les User-Agents commençant par //HetrixTools// : <code nginx> # en-dehors du bloc server : map $http_user_agent $loggable { ~^HetrixTools 0; default 1; } # dans le bloc server : access_log /var/log/nginx/access.log combined if=$loggable; </code> ==== Refuser certains User Agents ==== * [[https://www.unixteacher.org/blog/blocking-access-by-user-agent-in-nginx/]] * [[http://nginx.org/en/docs/http/ngx_http_map_module.html]] Dans le bloc ''http'' du fichier ''/etc/nginx/nginx.conf'': <code nginx> include /etc/nginx/blacklist; </code> Dans le fichier ''/etc/nginx/blacklist'': <code nginx> map $http_user_agent $block_ua { default 0; ~*profound 1; ~*scrapyproject 1; ~*netcrawler 1; ~*nmap 1; ~*sqlmap 1; ~*slowhttptest 1; ~*nikto 1; "~*jersey avec espace" 1; ~*brandwatch 1; ~*magpie-crawler 1; ~*mechanize 1; ~*python-requests 1; ~*redback 1; } </code> Dans les virtual hosts (section ''http''): <code nginx> if ($block_ua) { return 444; } </code> Les erreurs 444 sont logguées dans ''/var/log/nginx/access.log''. nginx/accueil.txt Dernière modification : 2025/10/14 21:08de phsw