Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| serveurs:installation:web-srv:nginx [2021/10/05 12:26] – [Création d'un certificat SSL avec Certbot] jpmilcent | serveurs:installation:web-srv:nginx [2026/09/18 14:14] (Version actuelle) – [Blocage de bloc d'IP] jpmilcent | ||
|---|---|---|---|
| Ligne 4: | Ligne 4: | ||
| ===== Installation ===== | ===== Installation ===== | ||
| - | * Installer //Nginx// et //Certbot// : '' | + | * Installer //Nginx// et //Certbot// : '' |
| * Activer le redémarrage automatique du service : '' | * Activer le redémarrage automatique du service : '' | ||
| - | * Activer le démarrage automatique du service Systemd lançant deux fois par jour '' | + | * Activer le démarrage automatique du service Systemd lançant deux fois par jour '' |
| * Vérifier le status et démarrer le service si nécessaire : '' | * Vérifier le status et démarrer le service si nécessaire : '' | ||
| Ligne 45: | Ligne 45: | ||
| ===== Modification du format des logs ===== | ===== Modification du format des logs ===== | ||
| Modifier les logs d' | Modifier les logs d' | ||
| - | * Éditer la conf de Nginx '' | + | * Éditer la conf de Nginx '' |
| access_log / | access_log / | ||
| - | error_log / | ||
| </ | </ | ||
| * Par le contenu suivant : <code nginx> | * Par le contenu suivant : <code nginx> | ||
| # Enabling request time | # Enabling request time | ||
| - | log_format enhanced-fmt ' | + | log_format enhanced-fmt ' |
| '" | '" | ||
| '" | '" | ||
| Ligne 58: | Ligne 57: | ||
| access_log / | access_log / | ||
| - | error_log / | ||
| </ | </ | ||
| + | **ATTENTION** : vérifier la présence du nom de domaine de l' | ||
| ===== Configuration de la compression ===== | ===== Configuration de la compression ===== | ||
| Activer la compression Gzip du contenu renvoyé par Nginx pour tous les types Mime (JS, CSS...) : | Activer la compression Gzip du contenu renvoyé par Nginx pour tous les types Mime (JS, CSS...) : | ||
| Ligne 118: | Ligne 116: | ||
| ===== Ajouter le support de GeoIp ===== | ===== Ajouter le support de GeoIp ===== | ||
| * Vérifier le support de GeoIp par Ngninx : '' | * Vérifier le support de GeoIp par Ngninx : '' | ||
| - | * GeoIP n'est plus maintenu => geoip2 dont le module et le support dans Nginx nécessite [[https:// | + | * GeoIP n'est plus maintenu => geoip2 dont le module et le support dans Nginx nécessite [[https:// |
| - | * À voir plus tard... | + | * Debian 11+ : installer le module avec : '' |
| - | * Apparemment, | + | |
| ===== Ajouter le support des fichiers d' | ===== Ajouter le support des fichiers d' | ||
| - | * Installer le paquet suivant : '' | + | * Installer le paquet suivant : '' |
| * Pour créer une fichier // | * Pour créer une fichier // | ||
| * Ensuite, pour ajouter des utilisateurs (sans l' | * Ensuite, pour ajouter des utilisateurs (sans l' | ||
| Ligne 146: | Ligne 144: | ||
| * Penser à recharger Nginx : '' | * Penser à recharger Nginx : '' | ||
| - | ===== Activer les prisons Fail2ban pour Nginx ===== | + | |
| - | * Penser à décommenter les prisons liés à Nginx présentes dans le fichier : '' | + | ===== Problèmes et erreurs |
| - | * Relancer // | + | ==== Éviter l' |
| - | ===== Éviter l' | + | |
| <note info>Au redémarrage de la machine, il arrive que Docker ne soit pas complètement lancé. Cela provoque l' | <note info>Au redémarrage de la machine, il arrive que Docker ne soit pas complètement lancé. Cela provoque l' | ||
| * Pour éviter ce problème, nous avons modifier le fichier /// | * Pour éviter ce problème, nous avons modifier le fichier /// | ||
| Ligne 171: | Ligne 168: | ||
| * Redémarrer la machine, attendre son redémarrage, | * Redémarrer la machine, attendre son redémarrage, | ||
| - | ===== Création d'un certificat SSL avec Certbot | + | ===== Certbot ===== |
| + | ==== Création d'un certificat SSL avec Certbot ==== | ||
| D'une manière générale la démarche à suivre pour créer un certificat SSL chez Letsencrypt à l'aide de Certbot : | D'une manière générale la démarche à suivre pour créer un certificat SSL chez Letsencrypt à l'aide de Certbot : | ||
| * Installer un certificat SSL via Certbot (Letsencrypt) : ''< | * Installer un certificat SSL via Certbot (Letsencrypt) : ''< | ||
| Ligne 183: | Ligne 181: | ||
| * https:// | * https:// | ||
| * https:// | * https:// | ||
| - | * Exemple de fichier de conf Nginx contenant la redirection HTTP vers HTTPS (en 302 afin d' | + | * Exemple de fichier de conf Nginx contenant la redirection HTTP vers HTTPS (en 302 afin d' |
| server { | server { | ||
| listen 443 ssl http2; | listen 443 ssl http2; | ||
| Ligne 231: | Ligne 229: | ||
| </ | </ | ||
| - | ===== Suppression d'un certificat SSL avec Certbot | + | ==== Suppression d'un certificat SSL avec Certbot ==== |
| - | Si vous souhaitez supprimer une certificat SSL créé par l' | + | Si vous souhaitez supprimer une certificat SSL créé par l' |
| + | ===== Lutte contre les IP agressives (Robots) ===== | ||
| + | |||
| + | ==== Activer les prisons Fail2ban pour Nginx ==== | ||
| + | * Penser à décommenter les prisons liés à Nginx présentes dans le fichier : '' | ||
| + | * Relancer // | ||
| + | |||
| + | ==== Extraction des IPs créant des erreurs ==== | ||
| + | * Pour afficher les IP créant des erreurs (302|403|404|500), | ||
| + | * Vous pouvez extraire uniquement les IP avec : '' | ||
| + | |||
| + | ==== Blocage de bloc d'IP ==== | ||
| + | * Repérer les IP qui posent problème dans les logs de Nginx : '' | ||
| + | * Créer un fichier qui bloquera les IP au niveau global de la config de Nginx : '' | ||
| + | * Souvent nous avons à faire à un bloc d'IP, il faut alors bloquer le bloc complet avec une syntaxe d'IP du type '' | ||
| + | * Ajouter le contenu suivant :<code nginx> | ||
| + | # IP bloqués sur le serveur | ||
| + | # Bloqué le 2026-09-18 : | ||
| + | deny xxx.xxx.0.0/ | ||
| + | </ | ||
| + | * Prendre en compte la nouvelle config : '' | ||
| + | * Nginx va bloquer ces IP en renvoyant une erreur '' | ||