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 18:28] – [5. Installer et configurer fail2ban] crust | ssh-fail2ban [2020/12/30 17: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.... |