Zatrzymaj powiadomienia stop / start fail2ban


15

Jeśli serwer zostanie zrestartowany, a nawet jeśli fail2ban zostanie zatrzymany / uruchomiony, wysyła powiadomienie.

[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

Usunięcie sendmail-whois zatrzymuje go, ale także zatrzymuje powiadomienia o banach. Jak mogę go zatrzymać, aby przestał powiadamiać mnie, gdy proces się rozpocznie / zakończy?

Dzięki

Odpowiedzi:


10

Zajrzyj do action.d/mail.conflub, action.d/sendmail.confktóre kontrolują pocztę, aby rozpocząć / zatrzymać / zablokować.


to nie załatwia sprawy. Myślę, że jest kilka innych plików do edycji, ponieważ wciąż otrzymuję ten irytujący e-mail :(
Kreker

@Kreker To zadziałało dla mnie i dla OP, prawdopodobnie dlatego oznaczono je jako zaakceptowane. Jeśli to nie działa, być może masz inną konfigurację lub coś źle skonfigurowałeś?
user9517

W konfiguracji fail2ban używam sendmaila jako mta, więc załadowałem action.d / sendmail.conf. Mam normalną instalację z apt-get
Kreker

9

Nie trzeba tego naprawiać w żadnym pliku. To zależy od konfiguracji w jail.conf.

Jeśli skonfigurowałeś mta = sendmail, możesz zawęzić pliki action.d/sendmail-*.

Następnie musisz spojrzeć na swoje action = %(action_*)s. Jeśli skonfigurowałeś

„action_”: komentarz „actionstart” i „actionstop” w action.d / sendmail .conf

„action_mw”: komentarz ... w action.d / sendmail -whois.conf

„action_mwl”: komentarz ... w action.d / sendmail -whois-lines.conf

Jeśli skonfigurowałeś mta na „mail”, po prostu zmień sendmail na mail i skonfiguruj określony plik.

Nie zapomnij uruchomić ponownie po skomentowaniu pliku!


Który plik mam edytować? .confczy .local? Ale może po prostu nie rozumiem, ponieważ ta odpowiedź jest tak stara. Odpowiedź Jima działa w 2019 r.
Jack Miller

9

Aby to naprawić w Fail2Ban v0.9.1 (z repozytorium epel) na CentOS 7 (RHEL 7), możesz przesłonić akcje start i stop sendmaila (ustawić je na nic) w /etc/fail2ban/action.d/sendmail-common. lokalny. Tworzę ten plik, uruchamiając następujące polecenia jako 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

W rzeczywistości nie pomaga to rozwiązać problemu, ponieważ .localwariant zostanie załadowany po .confpliku, ale oba nadal zostaną załadowane przed definicjami w (send)mail-*.confplikach konfigurujących działania. Nie ma innego sposobu niż edycja plików akcji, najczystszym / najbardziej minimalistycznym jest dodanie afterhaczyka w tych plikach wskazujących na to samo. Por. osso.nl/blog/fail2ban-started-e-mail-disable . Możesz także zduplikować wszystkie te pliki i utworzyć kompletną inną gałąź, tzn. custommail-*.confKtóra pozwala uniknąć modyfikacji plików domyślnych.
Bernard Rosset,

W centOS7 była to jedyna rada, która faktycznie pomogła. pewnie, następny restart fail2ban nadal wyzwoli powiadomienie o zatrzymaniu więzów, ale nie powiadomienie początkowe. Następnie ładowane jest nowe conf, więc żadne powiadomienie stop nie zostanie ponownie uruchomione
patrz

1
@BernardRosset To naprawdę działa, ale wymaga fail2ban 0.9 lub nowszego i że ktoś nie zmodyfikował dostarczonych plików konfiguracyjnych i ograniczył ich zmiany do .localplików. Wszystko w wersji 0.9 można zastąpić z .localplików, ale nie było to prawdą w wersji 0.8 i wcześniejszych.
Michael Hampton

To jest poprawna odpowiedź. Z pewnością wymaga głosowania!
Jack Miller

7

Jedynym sposobem na wyłączenie powiadomień start / stop było skomentowanie sekcji actionstarti actionstopwe wszystkich tych plikach w 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

Próbuję zebrać fragmenty poprzednich odpowiedzi z kilkoma szczegółami i długimi poleceniami dla leniwych.

Twoje jail.{conf,local}określa sposób wysyłania wiadomości e-mail. Domyślnie tak jest sendmail. Sprawdź z:

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

Aby zobaczyć, które akcje start / stop są skonfigurowane dla twoich więzień, użyj fail2ban-client -d.

Złożenie obu razem:

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

W mojej konfiguracji dane wyjściowe są 'sendmail-whois-lines',takie, że jest to plik do edycji. Zakładając, że twoja konfiguracja znajduje się w / etc / fail2ban, pełna nazwa pliku to /etc/fail2ban/action.d/sendmail-whois-lines.conf.

Jednak, jak wspomina Rabin, nie edytuj tego pliku bezpośrednio, ponieważ zostanie on nadpisany podczas aktualizacji. Zamiast tego utwórz /etc/fail2ban/action.d/sendmail-whois-lines.local(lub cokolwiek action.d/file-name.localjest właściwe w twojej konfiguracji) i dodaj te linie:

[Definition]
actionstart =
actionstop  =

Lub dla naprawdę leniwych, którym nie przeszkadza wyszukiwanie i tworzenie odpowiedniego pliku:

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

Zastąp definicje actionstart i actionstop w /etc/fail2ban/action.d/sendmail-common.conf, tworząc plik /etc/fail2ban/action.d/sendmail-common.local.

Dodaj poniższy tekst do tego pliku

[Definition]
actionstart =
actionstop =

Teraz nie otrzymujesz żadnej poczty przy uruchomieniu / zatrzymaniu usługi fail2ban.


Warto zauważyć, że musisz upewnić się, że uprawnienia są poprawnie ustawione w pliku (tj. Są 0644własnością root). To mnie dzisiaj ugryzło.
Pezholio

0

Znalazłem szybki i łatwy sposób to zrobić:

cddo twojego /etc/fail2ban/action.dkatalogu.

Następnie wystarczy zastąpić każdą instrukcję actionstart własną, która była dla mnie pusta.

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

Spowoduje to dodanie nowej sekcji actionstart i actionstop do każdego wysyłanego e-maila.

1 linia, praca wykonana.


0

I nie polecam zmianę domyślnych plików, który pochodzi z pakietu (jak niektórzy sugerują, tutaj), będą zastępowane następnym razem ich aktualizacji.

Po prostu skopiuj akcję, której używasz w tym przypadku, sendmail-whoisdo nowego pliku, nazwij ją jak chcesz, np. sendmail-modW tym pliku musisz skomentować (lub usunąć) części actionstart / actionstop.

Następnie zmień akcję w pliku konfiguracyjnym (jail.conf / jail.local), aby użyć nowej akcji.

Od:

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

Do:

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

0

Po pierwsze, jak wspomnieli niektórzy, lepiej jest utworzyć plik „.local” i wprowadzić w nim zmiany, niż edytować oryginalny plik „.conf”, który może zostać zastąpiony w przyszłych aktualizacjach.

Podsumowując, w oparciu o ten doskonały link: http://tonesworld.co.uk/fail2ban-disable-stop-and-start-emails/ , wykonałem następujące kroki i to rozwiązało problem:

1. Utwórz nowy plik i edytuj go:

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

2. Wklej do środka (następnie wyjdź i zapisz):

[Definition]

actionstart =

actionstop =

3. Jeśli fail2ban używa „mail” do wysyłania wiadomości e-mail:

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

Jeśli fail2ban używa „sendmail” do wysyłania wiadomości e-mail:

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. Uruchom ponownie, aby zastosować zmiany:

sudo service fail2ban restart

Uwaga końcowa: po raz pierwszy po zastosowaniu tych zmian nadal będą wyświetlane komunikaty „stop”, ponieważ nowe zmiany nie zostały jeszcze zastosowane.


0

Oto moje rozwiązanie tego, co jest warte, Utwórz plik bash i uruchom go:

#!/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

Pierwsza część kodu określa listę plików, które chcesz zmienić, druga połowa zasadniczo komentuje te sekcje za pomocą polecenia awk .

Można tego dokonać w jednym wierszu kodu / polecenia, które iterują wszystkie pliki i pętle nad słowami, ale starałem się, aby było to jak najbardziej jasne.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.