Ceci est une ancienne révision du document !
Nginx
Évaluer la sécurité et les bonnes pratiques sur le serveur:
Sécuriser une page avec un htpasswd
Installer le paquet apache2-utils.
Créer le fichier .htpasswd et créer l'utilisateur voulu:
htpasswd -c /var/www/.htpasswd login
Le paramètre -c permet de créer le fichier.
Modifier le fichier de configuration du domaine Nginx en conséquence:
- /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; }
Relancer Nginx.
Autoriser le listing d'un dossier
Lister les modules de Nginx
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
server_tokens off; # cache la version de Nginx more_set_headers "Server: Unknown"; # modifie l'en-tête Server
Ne pas logger certaines requêtes
location ~* (/favicon.ico|/apple-touch-icon-precomposed.png|/apple-touch-icon.png|/robots.txt) { access_log off; log_not_found off; }
Refuser certains User Agents
Dans le bloc http du fichier /etc/nginx/nginx.conf:
include /etc/nginx/blacklist;
Dans le fichier /etc/nginx/blacklist:
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; }
Dans les virtual hosts (section http):
if ($block_ua) { return 444; }
Les erreurs 444 sont logguées dans /var/log/nginx/access.log.