Arrêter les notifications stop / start fail2ban


14

Si le serveur est redémarré, ou même si fail2ban est arrêté / démarré, il envoie une notification.

[asterisk-iptables]
enabled  = true
filter   = asterisk
action   = iptables-allports[name=ASTERISK, protocol=all]
           sendmail-whois[name=ASTERISK, dest=blah@foo.com, sender=blah@foo.com] 
logpath  = /var/log/asterisk/messages
maxretry = 5
bantime = 259200

La suppression du sendmail-whois l'arrête, mais elle arrête également les notifications d'interdiction, comment puis-je l'empêcher de m'avertir lorsque le processus démarre / s'arrête?

Merci

Réponses:


10

Jetez un oeil dans le action.d/mail.confou action.d/sendmail.confqui contrôlent le courrier pour démarrer / arrêter / interdire.


cela ne fait pas l'affaire. Je pense qu'il y a d'autres fichiers à éditer car je reçois toujours ce courriel ennuyeux :(
Kreker

@Kreker Cela a fonctionné pour moi et pour le PO, c'est probablement pour cela qu'ils l'ont marqué comme accepté. Si cela ne fonctionne pas pour vous, vous avez peut-être une configuration différente ou vous avez mal configuré quelque chose?
user9517

Dans la configuration de fail2ban, j'utilise sendmail comme mta donc il a chargé l'action.d / sendmail.conf. J'ai une installation normale d'apt-get
Kreker

9

Ce n'est pas nécessaire de corriger cela dans n'importe quel fichier. Cela dépend de votre configuration dans jail.conf.

Si vous avez configuré mta = sendmail, vous pouvez restreindre les fichiers action.d/sendmail-*.

Ensuite, vous devez regarder votre action = %(action_*)s. Si vous avez configuré

"action_": commentez "actionstart" & "actionstop" dans action.d / sendmail .conf

"action_mw": commentaire ... dans action.d / sendmail -whois.conf

"action_mwl": commentaire ... dans action.d / sendmail -whois-lines.conf

Si vous avez configuré mta sur "mail", changez simplement sendmail en mail et configurez le fichier spécifique.

N'oubliez pas de redémarrer après avoir commenté le fichier!


Alors, quel fichier dois-je modifier? .confou .local? Mais peut-être que je ne comprends tout simplement pas parce que cette réponse est si ancienne. La réponse de Jim fonctionne en 2019.
Jack Miller

9

Pour résoudre ce problème sur Fail2Ban v0.9.1 (à partir du référentiel epel) sur CentOS 7 (RHEL 7), vous pouvez remplacer les actions de démarrage et d'arrêt de sendmail (ne les définissez sur rien) dans /etc/fail2ban/action.d/sendmail-common. local. Je crée ce fichier en exécutant ces commandes en tant que root:

cat << EOF >> /etc/fail2ban/action.d/sendmail-common.local
# Override the Fail2Ban defaults in sendmail-common.conf with these entries

[Definition]
# Disable email notifications of jails stopping or starting
actionstart =
actionstop =
EOF
cat /etc/fail2ban/action.d/sendmail-common.local

Cela n'aide pas réellement à résoudre le problème, car la .localvariante sera chargée après le .conffichier, mais les deux seront toujours chargées avant les définitions dans les (send)mail-*.conffichiers configurant les actions. Il n'y a pas d'autre moyen que d'éditer les fichiers d'actions, le plus propre / le plus minimaliste étant d'ajouter un afterhook dans ces fichiers pointant vers le même include. Cf. osso.nl/blog/fail2ban-started-e-mail-disable . Vous pouvez également dupliquer tous ces fichiers et créer une autre branche complète, c'est custommail-*.conf-à- dire , ce qui évite de modifier les fichiers par défaut.
Bernard Rosset

Dans centOS7, c'était le seul conseil qui a réellement aidé. bien sûr, le prochain redémarrage de fail2ban déclenchera toujours la ou les notifications d'arrêt de prison, mais pas la ou les notifications de démarrage. Ensuite, une nouvelle conf est chargée et donc ni les notifications d'arrêt ne seront à nouveau déclenchées
lese

1
@BernardRosset Cela fonctionne vraiment, mais cela nécessite fail2ban 0.9 ou supérieur et que quelqu'un n'a pas modifié les fichiers de configuration livrés et a limité leurs modifications aux .localfichiers. Tout dans 0.9 peut être remplacé par des .localfichiers, mais ce n'était pas vrai dans 0.8 et avant.
Michael Hampton

Ceci est la bonne réponse. Il faut certainement voter!
Jack Miller

7

Le seul moyen que j'ai trouvé pour désactiver les notifications de démarrage / arrêt était de commenter les sections actionstartet actionstopdans tous ces fichiers dans action.d/:

mail-buffered.conf
mail.conf
mail-whois.conf
mail-whois-lines.conf
sendmail-buffered.conf
sendmail.conf
sendmail-whois.conf
sendmail-whois-lines.conf

3

Essayer de rassembler les morceaux des réponses précédentes, avec plus de détails et de longues commandes pour les paresseux.

Votre jail.{conf,local}définit la façon dont les e-mails sont envoyés. Par défaut, c'est le cas sendmail. Vérifier avec:

grep 'mta *=' jail.{conf,local}

Pour voir quelles actions de démarrage / arrêt sont configurées pour vos prisons, utilisez fail2ban-client -d.

Rassembler les deux:

mta=$(grep 'mta *=' /etc/fail2ban/jail.{conf,local} | awk '{print $NF}')
fail2ban-client -d | awk "/action(start|stop).*$mta/ {print \$4}" | sort -u

Dans ma config, la sortie est 'sendmail-whois-lines',telle que c'est le fichier à éditer. En supposant que votre configuration se trouve sous / etc / fail2ban, le nom de fichier complet est /etc/fail2ban/action.d/sendmail-whois-lines.conf.

Cependant, comme le mentionne Rabin, ne modifiez pas ce fichier directement, car il sera écrasé lors des mises à jour. Au lieu de cela, créez /etc/fail2ban/action.d/sendmail-whois-lines.local(ou ce qui action.d/file-name.localest juste dans votre configuration) et ajoutez ces lignes:

[Definition]
actionstart =
actionstop  =

Ou, pour les vraiment paresseux qui ne peuvent pas se soucier de rechercher et de créer le bon fichier:

mta=$(grep 'mta *=' /etc/fail2ban/jail.{conf,local} | awk '{print $NF}')
fail2ban-client -d \
| awk "/action(start|stop).*$mta/ {print \$4}" \
| sort -u \
| while read f; do \
    f=${f//\'/}
    f="/etc/fail2ban/action.d/${f/%,/}.local"
    cat <<EOF >>"$f"
[Definition]
actionstart =
actionstop  =
EOF
done

1

Remplacez les définitions actionstart et actionstop en /etc/fail2ban/action.d/sendmail-common.confcréant un fichier /etc/fail2ban/action.d/sendmail-common.local.

Ajoutez le texte ci-dessous à ce fichier

[Definition]
actionstart =
actionstop =

Maintenant, vous ne recevez aucun courrier au démarrage / arrêt du service fail2ban.


Il convient de souligner que vous devez vous assurer que les autorisations sont correctement définies sur le fichier (c'est 0644-à- dire et détenues par root). Cela m'a mordu aujourd'hui.
Pezholio

0

J'ai trouvé un moyen rapide et facile de le faire:

cddans votre /etc/fail2ban/action.drépertoire.

Remplacez ensuite simplement chaque instruction actionstart par la vôtre, qui pour moi était vide.

for FILE in *mail* ; do echo -e "actionstart =\nactionstop =\n" >> $FILE ; done

Cela ajoutera une nouvelle section actionstart et actionstop à chaque fichier envoyé par la poste.

1 ligne, travail effectué.


0

Je ne recommande pas de changer les fichiers par défaut fournis avec le package (comme certains le suggèrent ici), ils seront remplacés la prochaine fois que vous les mettrez à jour.

Copiez simplement l'action que vous utilisez dans ce cas sendmail-whoisdans un nouveau fichier, nommez-la comme vous le souhaitez, par exemple sendmail-modet dans ce fichier, vous devez commenter (ou supprimer) les parties actionstart / actionstop.

Modifiez ensuite l'action dans le fichier de configuration (jail.conf / jail.local), pour utiliser la nouvelle action.

De:

action   = iptables-allports[name=ASTERISK, protocol=all]
           sendmail-whois[name=ASTERISK, dest=blah@foo.com, sender=blah@foo.com] 

À:

action   = iptables-allports[name=ASTERISK, protocol=all]
           sendmail-mod[name=ASTERISK, dest=blah@foo.com, sender=blah@foo.com] 

0

Tout d'abord, comme certaines personnes l'ont mentionné, il semble préférable de créer un fichier ".local" et d'y apporter les modifications, plutôt que de modifier le fichier ".conf" d'origine, qui pourrait être remplacé dans les futures mises à jour.

En bout de ligne, basé sur cet excellent lien: http://tonesworld.co.uk/fail2ban-disable-stop-and-start-emails/ , j'ai fait les étapes suivantes et cela a résolu le problème:

1. Créez un nouveau fichier et modifiez-le:

sudo nano /etc/fail2ban/action.d/stop-start.local

2. Collez à l'intérieur (puis quittez et enregistrez):

[Definition]

actionstart =

actionstop =

3. Si fail2ban utilise "mail" pour envoyer des e-mails:

sudo ln -s /etc/fail2ban/action.d/stop-start.local /etc/fail2ban/action.d/mail-buffered.local

sudo ln -s /etc/fail2ban/action.d/stop-start.local /etc/fail2ban/action.d/mail-whois-common.local

sudo ln -s /etc/fail2ban/action.d/stop-start.local /etc/fail2ban/action.d/mail-whois-lines.local

sudo ln -s /etc/fail2ban/action.d/stop-start.local /etc/fail2ban/action.d/mail-whois.local

sudo ln -s /etc/fail2ban/action.d/stop-start.local /etc/fail2ban/action.d/mail.local

Si fail2ban utilise "sendmail" pour envoyer des e-mails:

sudo ln -s /etc/fail2ban/action.d/stop-start.local /etc/fail2ban/action.d/sendmail-buffered.local

sudo ln -s /etc/fail2ban/action.d/stop-start.local /etc/fail2ban/action.d/sendmail-common.local

sudo ln -s /etc/fail2ban/action.d/stop-start.local /etc/fail2ban/action.d/sendmail-geoip-lines.local

sudo ln -s /etc/fail2ban/action.d/stop-start.local /etc/fail2ban/action.d/sendmail-whois-ipjailmatches.local

sudo ln -s /etc/fail2ban/action.d/stop-start.local /etc/fail2ban/action.d/sendmail-whois-ipmatches.local

sudo ln -s /etc/fail2ban/action.d/stop-start.local /etc/fail2ban/action.d/sendmail-whois-lines.local

sudo ln -s /etc/fail2ban/action.d/stop-start.local /etc/fail2ban/action.d/sendmail-whois-matches.local

sudo ln -s /etc/fail2ban/action.d/stop-start.local /etc/fail2ban/action.d/sendmail-whois.local

sudo ln -s /etc/fail2ban/action.d/stop-start.local /etc/fail2ban/action.d/sendmail.local

4. Redémarrez pour appliquer les modifications:

sudo service fail2ban restart

Remarque finale: la première fois après avoir appliqué ces modifications, vous verrez toujours les messages "stop", car les nouvelles modifications ne sont pas encore appliquées.


0

Voici ma solution pour ce que ça vaut, créez un fichier bash et exécutez-le:

#!/bin/bash
echo Start ...
BASE_PATH="/etc/fail2ban/action.d/"
FILES="${BASE_PATH}mail-buffered.conf
${BASE_PATH}mail.conf
${BASE_PATH}mail-whois.conf
${BASE_PATH}mail-whois-lines.conf
${BASE_PATH}sendmail-buffered.conf
${BASE_PATH}sendmail.conf
${BASE_PATH}sendmail-whois.conf
${BASE_PATH}sendmail-whois-lines.conf"
echo $FILES
for f in $FILES
    do
        temp1=${f}.temp1
        awk '/^[^   ]/ { comment=0 }
             /^actionstart/ { comment=1 } 
             comment {$0 = "#" $0}
             { print }' $f > $temp1 && mv -f $temp1 $f || rm -f $temp1
        temp2=${f}.temp2
        awk '/^[^   ]/ { comment=0 }
             /^actionstop/ { comment=1 } 
             comment {$0 = "#" $0}
             { print }' $f > $temp2 && mv -f $temp2 $f || rm -f $temp2
    done

La première partie du code définit une liste de fichiers que vous souhaitez modifier, la seconde moitié commentant essentiellement ces sections à l'aide de la commande awk .

Cela pourrait être fait dans une seule ligne de code / commande qui itère tous les fichiers et boucle sur les mots, mais j'ai essayé de le rendre aussi clair que possible.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.