Если сервер перезагружен, или даже если 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 останавливает его, но также останавливает уведомления о запрете, как я могу заставить его перестать уведомлять меня, когда процесс запускается / останавливается?
Спасибо
Взгляните на action.d/mail.conf
или action.d/sendmail.conf
которые управляют почтой на запуск / остановку / бан.
Чтобы исправить это в 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
Не обязательно исправлять это в каком-либо файле. Это зависит от вашей конфигурации в jail.conf
.
Если вы настроили mta = sendmail
, вы можете сузить файлы action.d/sendmail-*
.
Тогда вы должны посмотреть на свой action = %(action_*)s
. Если вы настроили
"action_": комментарий "actionstart" и "actionstop" в action.d /Отправить почту.conf
"action_mw": комментарий ... в действии.d /Отправить почту-whois.conf
"action_mwl": комментарий ... в действии.d /Отправить почту-whois-lines.conf
Если вы настроили mta на "почту", то просто измените Отправить почту к почта и настройте конкретный файл.
Не забудьте перезапустить после комментирования файла!
Я нашел единственный способ отключить уведомления о запуске / остановке - это закомментировать 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
Пытаюсь собрать воедино по кусочкам предыдущих ответов, с некоторыми подробностями и длинными командами для ленивых.
Ваш 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
Переопределить определения actionstart и actionstop в /etc/fail2ban/action.d/sendmail-common.conf
создав файл /etc/fail2ban/action.d/sendmail-common.local
.
Добавьте в этот файл приведенный ниже текст
[Definition]
actionstart =
actionstop =
Теперь вы не получаете почту при запуске / остановке службы fail2ban.
Я нашел простой и быстрый способ сделать это:
cd
в ваш /etc/fail2ban/action.d
каталог.
Затем просто замените каждый оператор actionstart своим собственным, который для меня был пустым.
for FILE in *mail* ; do echo -e "actionstart =\nactionstop =\n" >> $FILE ; done
Это добавит новый раздел actionstart и actionstop к каждому отправляемому по почте файлу.
1 линия, работа сделана.
я не рекомендую изменить файлы по умолчанию, которые поставляются с пакетом (как некоторые предлагают здесь), они будут перезаписаны при следующем обновлении.
Просто скопируйте действие, которое вы используете в этом случае 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]
Во-первых, как упоминали некоторые люди, кажется, лучше создать файл «.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 использует "почту" для отправки писем:
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
Заключительное примечание: В первый раз после применения этих изменений вы все равно будете видеть сообщения «стоп», потому что новые изменения еще не применяются.
Это мое решение, которое стоит того, создайте файл 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 команда.
Это можно было сделать в однострочном коде / команде, которая перебирает все файлы и перебирает слова, но я постарался сделать это как можно более ясным.
Это зависит от нескольких вещей:
В mta указано в /etc/fail2ban/jail.local. Обратите внимание, если у вас есть sendmail или mail. По умолчанию - sendmail.
Значение переменной "действие" в /etc/fail2ban/jail.local. У вас может быть одно из этих значений в зависимости от информации, которую вы хотите получать по почте:
действие_, действие_mw, действие_mwl, действие_xarf, действие_cf_mwl ...
Каждый из вариантов объясняется в самом файле. В моем случае у меня action =% (aciton_mwl) s. По умолчанию это действие_ Запишите значение.
В зависимости от того, какой у вас mta sendmail или mail, вы должны посмотреть файлы в / etc / fail2ban / actions / sendmail * или / etc / fail2ban / actions / mail *
В зависимости от значения «действия» вы должны редактировать тот или иной файл. Например, если у меня mta = mail и action =% (action_) s, я должен отредактировать mail.conf. Если у меня mta = mail и action =% (action_mwl) s, я должен отредактировать mail-whois-lines.conf. Если у меня mta = sendmail и action =% (action_mw) s, я должен отредактировать sendmail-whois.conf
В файле я изменяю значение actionstart и actionstop на
actionstart =
actionstop =