Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| ssh-fail2ban [2019/07/04 16:28] – [5. Installer et configurer fail2ban] crust | ssh-fail2ban [2020/12/30 16:30] (Version actuelle) – [6.1. Avoir un rapport des IP bannis] cyrille | ||
|---|---|---|---|
| Ligne 31: | Ligne 31: | ||
| En local, rien de plus à faire. Reste maintenant à rediriger le port 22 de votre box au port 6789 de votre serveur/PC. | En local, rien de plus à faire. Reste maintenant à rediriger le port 22 de votre box au port 6789 de votre serveur/PC. | ||
| Pour cela, section administration, | Pour cela, section administration, | ||
| + | Supprimer la règle SSH si existante, demander une nouvelle règle avec les nouveaux numéros de ports. | ||
| + | |||
| + | {{: | ||
| Dès lors se connecter depuis l' | Dès lors se connecter depuis l' | ||
| Ligne 110: | Ligne 113: | ||
| Pendant donc une journée, cette IP sera donc rejetée automatiquement. | Pendant donc une journée, cette IP sera donc rejetée automatiquement. | ||
| + | |||
| + | <WRAP center round tip 60%> | ||
| + | Mettez votre IP dans ignoreip ! | ||
| + | </ | ||
| + | |||
| + | |||
| Bien sûr, il est conseillé, si vous avez une IP fixe, d' | Bien sûr, il est conseillé, si vous avez une IP fixe, d' | ||
| Faire de même bien sûr avec la boucle locale : 127.0.0.1 | Faire de même bien sûr avec la boucle locale : 127.0.0.1 | ||
| Ligne 153: | Ligne 162: | ||
| Bannir une IP manuellement | Bannir une IP manuellement | ||
| - | fail2ban-client set sshd banip 12.34.56.78 | + | <code bash>fail2ban-client set sshd banip 12.34.56.78</ | 
| Débannir une IP manuellement  | Débannir une IP manuellement  | ||
| - | fail2ban-client set sshd unbanip 12.34.56.78 | + | <code bash>fail2ban-client set sshd unbanip 12.34.56.78</ | 
| - | 6. Gérer les notifications. | + | ===== 6. Gérer les notifications.  | 
| - | 6.1. Avoir un rapport des IP bannis | ||
| - | Voici un petit script à position sur un cron (ici envoyer 2 fois par jour) donnant le statut des jails. | ||
| + | ==== 6.1. Avoir un rapport des IP bannis ==== | ||
| + | Voici un petit script à position sur un **cron** (ici envoyer 2 fois par jour) donnant le statut des jails. | ||
| + | |||
| + | |||
| + | <code bash> | ||
| + | sudo crontab -l | ||
| + | [...] | ||
| # Rapport de fail2ban | # Rapport de fail2ban | ||
| - | 15 6,19 * * * /home/admin/ | + | 15 6,19 * * * /home/TOTO/ | 
| Et le script | Et le script | ||
| - | serveurProliant@serveur# | + | <code bash>serveurProliant@serveur# | 
| #!/bin/sh | #!/bin/sh | ||
| # Script de rapport fail2ban | # Script de rapport fail2ban | ||
| Ligne 180: | Ligne 194: | ||
| msg=$(fail2ban-client status | sed -n ' | msg=$(fail2ban-client status | sed -n ' | ||
| echo " | echo " | ||
| + | </ | ||
| + | ==== 6.2 Avoir un rapport de connexion SSH ==== | ||
| - | + | Un autre script pour être notifié d'une connexion SSH sur son serveur (notification par mail ou par SMS (**//pour ceux ayant un forfait free, même à 2 €//**). | |
| - | 6.2 Avoir un rapport de connexion SSH | + | |
| - | Un autre script pour être notifié d'une connexion SSH sur son serveur (notification par mail ou par SMS (pour ceux ayant un forfait free, même à 2 €). | + | |
| Permet également dans la configuration par SMS d' | Permet également dans la configuration par SMS d' | ||
| - | Etre notifié par mail d'une connexion | + | === Être notifié par mail d'une connexion  | 
| - | serveurProliant@serveur# | + | <code bash>serveurProliant@serveur# | 
| moduli  | moduli  | ||
| ssh_config  | ssh_config  | ||
| - | sshd_config  | + | sshd_config  | 
| - | Dans ce répertoire, | + | Dans ce répertoire, | 
| - | serveurProliant@serveur# | + | <code bash>serveurProliant@serveur# | 
| #!/bin/sh | #!/bin/sh | ||
| $DEST=votre.mail@domaine.ext | $DEST=votre.mail@domaine.ext | ||
| Ligne 207: | Ligne 222: | ||
| Date: $DATE" | Date: $DATE" | ||
| echo " | echo " | ||
| + | </ | ||
| + | <WRAP center round important 60%> | ||
| + | Ce script doit appartenir à root mais être accessible en lecture à tous. | ||
| + | </ | ||
| - | Ce script doit apartenir à root mais être accessible en lecture à tous. | + | <code bash>serveurProliant@serveur# | 
| - | serveurProliant@serveur# | + | |
| ... | ... | ||
| - | -rw-r--r--  | + | -rw-r--r--  | 
| - | Etre notifié par mail ET SMS (free seulement) | + | === Etre notifié par mail ET SMS (free seulement)  | 
| On devra créer 3 fichiers (les deux derniers sont positionnés dans un répertoire / | On devra créer 3 fichiers (les deux derniers sont positionnés dans un répertoire / | ||
| - | - / | + |   * / | 
| - | - / | + |    | 
| - | - / | + |    | 
| - | Pour des raisons de sécurité, le fichier send-notification-data.txt ne devra être lisible que par root, il contient les données d' | + | Pour des raisons de sécurité, le fichier  | 
| - | Si vous ne souhaitez pas recevoir de notification depuis une ou des IP(s) précise(s), | + | Si vous ne souhaitez pas recevoir de notification depuis une ou des IP(s) précise(s), | 
| - | serveurProliant@serveur#  | + | <code bash>serveurProliant@serveur#  | 
| ## | ## | ||
| ## IP A AUTORISER SANS ALERTE SMS | ## IP A AUTORISER SANS ALERTE SMS | ||
| Ligne 255: | Ligne 274: | ||
| # Nom du destinaire de la notification  | # Nom du destinaire de la notification  | ||
| - | DEST=mon.mail@domaine.com | + |   DEST=mon.mail@domaine.com</ | 
| + | |||
| + | <WRAP center round important 60%> | ||
| + | Adapter les droits, très important : | ||
| + | </ | ||
| - | Adpater les droits, très important : | + | <code bash>serveurProliant@serveur# | 
| - | serveurProliant@serveur# | + | |
| - | serveurProliant@serveur# | + | <code bash>serveurProliant@serveur# | 
| ... | ... | ||
| -rw------- 1 admin 1007 644 Jul 4 10:57 send-notification-data.txt | -rw------- 1 admin 1007 644 Jul 4 10:57 send-notification-data.txt | ||
| On incluera ce fichier dans le script bash afin qu'on ne puisse pas lire son contenu. | On incluera ce fichier dans le script bash afin qu'on ne puisse pas lire son contenu. | ||
| + | </ | ||
| Enfin le script | Enfin le script | ||
| La fonction d' | La fonction d' | ||
| - | https:// | + | [[ https:// | 
| - | [ DUVERGIER Claude (http:// | + | |
| Modifiée pour les besoins. | Modifiée pour les besoins. | ||
| - | serveurProliant@serveur# | + | <code bash>serveurProliant@serveur# | 
| #!/bin/sh | #!/bin/sh | ||
| Ligne 459: | Ligne 480: | ||
| ## ENVOI SMS / MAIL | ## ENVOI SMS / MAIL | ||
| ## | ## | ||
| + | |||
| + | |||
| + | # QUOI QU'IL EN SOIT ON ENVOIE UN MAIL | ||
| + |   echo " | ||
| + | |||
| + | # GESTION DES IP AUTORISEES / SMS | ||
|   if echo " |   if echo " | ||
| echo "MATCH NO SEND SMS"; | echo "MATCH NO SEND SMS"; | ||
| Ligne 465: | Ligne 492: | ||
| fi | fi | ||
| + | </ | ||
| - | # QUOI QU'IL EN SOIT ON ENVOIE UN MAIL | + | Enfin on colle tu cela dans le script de connexion ssh | 
| - |   echo " | + | <code bash> | 
| + | serveurProliant@serveur$ cat / | ||
| + | #!/bin/sh | ||
| + | . / | ||
| Après tout cela, vous devriez à a voir quelque chose qui tient la route... | Après tout cela, vous devriez à a voir quelque chose qui tient la route... | ||
| Par contre, un iptable en toile de fond reste bien sûr nécessaire.... | Par contre, un iptable en toile de fond reste bien sûr nécessaire.... | ||