Остановить fail2ban остановить / запустить уведомления

14

Если сервер перезагружен или даже если fail2ban остановлен / запущен, он отправляет уведомление.

[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

Удаление sendmail-whois останавливает его, но также останавливает уведомления о запрете, как я могу заставить его перестать уведомлять меня, когда процесс запускается / останавливается?

Благодарность

Майкл
источник

Ответы:

10

Посмотрите в action.d/mail.confили action.d/sendmail.confкоторые контролируют почту для запуска / остановки / бана.

user9517
источник
это не сработает. Я думаю, что есть некоторые другие файлы для редактирования, потому что я продолжаю получать это раздражающее электронное письмо :(
Kreker
@Kreker Это сработало для меня и ОП, вероятно, поэтому они отметили это как принятое. Если у вас это не работает, возможно, у вас другая конфигурация или вы что-то неправильно настроили?
user9517
В конфиге fail2ban я использую sendmail как mta, поэтому он загрузил action.d / sendmail.conf. У меня нормальная установка от apt-get
Kreker
9

Нет необходимости исправлять это в любом файле. Это зависит от вашей конфигурации в jail.conf.

Если вы настроили mta = sendmail, вы можете сузить файлы action.d/sendmail-*.

Тогда вы должны посмотреть на свои action = %(action_*)s. Если вы настроили

"action_": комментарий "actionstart" и "actionstop" в action.d / sendmail .conf

"action_mw": комментарий ... в action.d / sendmail -whois.conf

"action_mwl": комментарий ... в action.d / sendmail -whois-lines.conf

Если вы настроили mta на «mail», просто измените sendmail на mail и настройте конкретный файл.

Не забудьте перезагрузить после комментирования файла!

boesing
источник
Так какой файл я должен редактировать? .confили .local? Но, может быть, я просто не понимаю, потому что этот ответ очень старый. Ответ Джима работает в 2019 году.
Джек Миллер
9

Чтобы это исправить в Fail2Ban v0.9.1 (из репозитория epel) в CentOS 7 (RHEL 7), вы можете переопределить действия запуска и остановки sendmail (не задавать их) в /etc/fail2ban/action.d/sendmail-common. местный. Я создаю этот файл, выполнив эти команды от имени 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
Джим
источник
На самом деле это не помогает решить проблему, поскольку .localвариант будет загружен после .confфайла, но оба будут загружены до определений в (send)mail-*.confфайлах, конфигурирующих действия. Нет другого способа, кроме редактирования файлов действий, самый чистый / самый минималистичный способ - добавить afterхук в эти файлы, указывающие на то же самое включение. Ср osso.nl/blog/fail2ban-started-e-mail-disable . Вы также можете продублировать все эти файлы и создать совершенно другую ветку, т. custommail-*.confЕ. Избежать изменений файлов по умолчанию.
Бернард Россет
В centOS7 это был единственный совет, который действительно помог. Конечно, следующий перезапуск fail2ban по-прежнему вызовет уведомление (я) о остановке тюрьмы, но не запуск (-а). Затем загружается новый файл conf, и поэтому ни одно из уведомлений не будет снова
запущено
1
@BernardRosset Это действительно работает, но требует fail2ban 0.9 или выше, и что кто-то не изменил отправленные файлы конфигурации и ограничил их изменения .localфайлами. Все в 0.9 может быть переопределено из .localфайлов, но это было не так в 0.8 и ранее.
Майкл Хэмптон
Это правильный ответ. Это, безусловно, нуждается в голосовании!
Джек Миллер,
7

Единственный способ я нашел , чтобы отключить уведомления старт / стоп был закомментировать actionstartи actionstopразделы в всех этих файлов 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

Попытка собрать воедино кусочки предыдущих ответов с некоторыми подробностями и длинными командами для ленивых.

Ваш jail.{conf,local}определяет, как отправляются письма. По умолчанию это так sendmail. Проверить с:

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

Чтобы увидеть, какие действия запуска / остановки настроены для вашей тюрьмы, используйте fail2ban-client -d.

Собираем оба вместе:

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

В моем конфиге вывод 'sendmail-whois-lines',так, что это файл для редактирования. Предполагая, что ваша конфигурация находится в / etc / fail2ban, полное имя файла /etc/fail2ban/action.d/sendmail-whois-lines.conf.

Однако, как упоминает Рабин, не редактируйте этот файл напрямую, потому что он будет перезаписан во время обновлений. Вместо этого создайте /etc/fail2ban/action.d/sendmail-whois-lines.local(или что-то action.d/file-name.localпрямо в вашей конфигурации) и добавьте эти строки:

[Definition]
actionstart =
actionstop  =

Или для действительно ленивых, которые не могут быть обеспокоены поиском и созданием правильного файла:

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
mivk
источник
1

Переопределите определения actionstart и actiontop /etc/fail2ban/action.d/sendmail-common.conf, создав файл /etc/fail2ban/action.d/sendmail-common.local.

Добавьте текст ниже к этому файлу

[Definition]
actionstart =
actionstop =

Теперь вы не получаете почту при запуске / остановке сервиса fail2ban.

Би Джей де Йонг
источник
Стоит отметить, что вам необходимо убедиться, что права доступа к файлу установлены правильно (т.е. 0644принадлежат root). Это укусило меня сегодня.
Пежолио
0

Я нашел быстрый и простой способ сделать это:

cdв ваш /etc/fail2ban/action.dкаталог.

Затем просто замените каждое утверждение actionstart своим собственным, которое для меня было пустым.

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

Это добавит новый раздел actionstart и actiontop к каждому файлу, который отправляется по почте.

1 строка, работа выполнена.

Питер Хабберстей
источник
0

Я не рекомендую изменять файлы по умолчанию, которые поставляются с пакетом (как некоторые предложили здесь), они будут перезаписаны при следующем обновлении.

Просто скопируйте действие, которое вы используете в этом случае, sendmail-whoisв новый файл, назовите его так, как вам нравится, например, sendmail-modи в этом файле вам нужно закомментировать (или удалить) части actionstart / actionstop.

Затем измените действие в файле конфигурации (jail.conf / jail.local), чтобы использовать новое действие.

Из:

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

Во-первых, как упоминали некоторые люди, кажется, что лучше создать файл «.local» и внести в него изменения, чем редактировать исходный файл «.conf», который может быть переопределен в будущих обновлениях.

В итоге, основываясь на этой превосходной ссылке: http://tonesworld.co.uk/fail2ban-disable-stop-and-start-emails/ , я сделал следующие шаги, и это решило проблему:

1. Создайте новый файл и отредактируйте его:

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

2. Вставьте внутрь (затем выйдите и сохраните):

[Definition]

actionstart =

actionstop =

3. Если fail2ban использует «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

Если fail2ban использует «sendmail» для отправки писем:

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. Перезапустите, чтобы применить изменения:

sudo service fail2ban restart

Последнее замечание: в первый раз после применения этих изменений вы все равно увидите сообщения об остановке, поскольку новые изменения еще не применены.

Тен
источник
0

Это мое решение для чего стоит, создайте bash-файл и запустите его:

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

Первая часть кода определяет список файлов, которые вы хотите изменить, вторая половина в основном комментирует эти разделы с помощью команды awk .

Это можно сделать с помощью однострочного кода / команды, которая перебирает все файлы и циклы по словам, но я постарался сделать это как можно более понятным.

таНос
источник