Вопрос или проблема
У меня logwatch
работает нормально, но я не вижу, чтобы журналы fail2ban
и mod_secure
появлялись в журналах logwatch
. Как мне это включить? Что нужно изменить в конфигурационном файле logwatch?
Ниже приведен файл logwatch.conf.
########################################################
# Это написано и поддерживается:
# Керк Баер <[email protected]>
#
# Пожалуйста, отправляйте все комментарии, предложения, отчеты об ошибках,
# и т.д., на [email protected].
#
########################################################
# ЗАМЕТКА:
# Все эти параметры являются значениями по умолчанию, если вы запускаете logwatch без
# аргументов командной строки. Вы можете переопределить все это в
# командной строке.
# Вы можете вставлять комментарии в любом месте. Они действуют для
# остальной части строки.
# это в формате <имя> = <значение>. Пробелы в начале
# и конце строк удаляются. Пробелы перед и после знака =
# удаляются. Все регистронезависимо.
# Да = Истина = Включено = 1
# Нет = Ложь = Выключено = 0
# Директория по умолчанию для журналов
# Все журналы предполагаются относительно этой директории.
LogDir = /var/log
# Вы можете переопределить директорию временных файлов по умолчанию (/tmp) здесь
TmpDir = /var/cache/logwatch
# По умолчанию лицо для отправки отчетов. Может быть локальной учетной записью или
# полным адресом электронной почты. Переменная Print должна быть установлена на Нет для
# включения функции отправки по электронной почте.
MailTo = root
# При использовании параметра --multiemail можно указать другого
# получателя электронного письма для каждого обрабатываемого хоста. Например, чтобы отправить отчет
# для имени хоста host1 на [email protected], используйте:
#Mailto_host1 = [email protected]
# Несколько получателей можно указать, разделив их пробелами.
# По умолчанию лицо, отправляющее отчеты. Может быть локальной учетной записью или
# полным адресом электронной почты.
MailFrom = Logwatch
# Если установлено на 'Да', отчет будет отправлен на стандартный вывод вместо
# отправки вышеуказанному лицу.
Print = Yes
# если установлено, результаты будут сохранены в <имя файла> вместо отправки
# или отображения.
#Save = /tmp/logwatch
# Использовать архивы? Если установлено на 'Да', архивы журналов
# (например, /var/log/messages.1 или /var/log/messages.1.gz) будут
# дополнительно искаться вместе с файлом /var/log/messages.
# Обычно это не дает результатов, если диапазон установлен только на
# 'Вчера' или 'Сегодня'... вероятно, лучше использовать с
# По умолчанию это сейчас установлено на Да. Чтобы отключить архивы, раскомментируйте это.
#Archives = No
# Range = All
# По умолчанию временной диапазон для отчета...
# Текущие варианты: Все, Сегодня, Вчера
Range = yesterday
# Уровень детализации отчета по умолчанию.
# Это может быть Низкий, Средний, Высокий или число.
# Низкий = 0
# Средний = 5
# Высокий = 10
Detail = Low
# Опция 'Служба' ожидает либо название фильтра
# (в /usr/share/logwatch/scripts/services/*) или 'Все'.
# По умолчанию служба(и) для отчета. Это должно быть оставлено как Все для
# большинства пользователей.
Service = All
# Вы также можете отключить определенные службы (при указании всех)
Service = "-zz-network" # Останавливает выполнение службы zz-network, которая
# выводит полезную информацию о конфигурации сети.
Service = "-zz-sys" # Останавливает выполнение службы zz-sys, которая
# выводит полезную информацию о конфигурации системы.
Service = "-eximstats" # Останавливает выполнение службы eximstats, которая
# является оболочкой для программы eximstats.
# Если вас интересовали только сообщения FTP, вы могли бы использовать эти 2 строки
# вместо вышеуказанных:
#Service = ftpd-messages # Обрабатывает сообщения ftpd в /var/log/messages
#Service = ftpd-xferlog # Обрабатывает сообщения ftpd в /var/log/xferlog
# Может быть, вас интересовали только отчеты о сообщениях PAM, тогда вы бы использовали:
#Service = pam_pwdb # Сообщения PAM_pwdb - обычно довольно много
#Service = pam # Общие сообщения PAM... обычно не много
# Вы также можете выбрать опцию 'LogFile'. Это заставит
# logwatch анализировать только этот один журнал.. например:
#LogFile = messages
# будет обрабатывать /var/log/messages. Это запустит все фильтры, которые
# обрабатывают этот журнал. Эта опция, вероятно, не очень полезна для
# большинства пользователей. Установка 'Service' на 'All' выше анализирует все журналы
# в любом случае...
#
# По умолчанию мы предполагаем, что все Unix-системы имеют sendmail или подобную систему sendmail.
# Код почтового клиента выводит заголовок с To: From: и Subject:.
# На этом этапе вы можете изменить почтовый клиент на что-то еще, что может обработать этот выходной
# поток. TODO протестировать переменные в строке почтового клиента, чтобы увидеть, могут ли To/From/Subject быть установлены
# отсюда без поломки чего-либо. Это позволит использовать mail/mailx/nail и т.д..... -mgt
mailer = "sendmail -t"
#
# С установленным этим параметром на 'Да' будут обрабатываться только записи журналов для этого конкретного хоста
# (как возвращается командой 'hostname'). Имя хоста
# также может быть переопределено в командной строке (с помощью параметра --hostname). Это
# может позволить журналом хосту обрабатывать только свои собственные журналы, или logwatch может быть
# запущен один раз для каждого хоста, включенного в журналы.
#
# По умолчанию отчеты подготавливаются для всех записей журналов, независимо от их источника.
# Обратите внимание, что некоторые журналы не содержат информации о хосте и не будут
# затронуты этой настройкой.
#
#HostLimit = Yes
# По умолчанию демон cron генерирует ежедневный отчет logwatch
# если вы хотите его отключить, раскомментируйте тег DailyReport.
# Неявное значение - Да
#
# DailyReport = No
# vi: shiftwidth=3 tabstop=3 et
Вывод команды sudo logwatch –debug High | grep -T100 ‘LogFiles that will be processed:’
000-*expandrepeats =
001-*onlyhost =
002-*applystddate =
Logfile = /var/log/maillog
Archive = /var/log/maillog.9.gz
Archive = /var/log/maillog.8.gz
Archive = /var/log/maillog.7.gz
Archive = /var/log/maillog.6.gz
Archive = /var/log/maillog.5.gz
Archive = /var/log/maillog.4.gz
Archive = /var/log/maillog.3.gz
Archive = /var/log/maillog.29.gz
Archive = /var/log/maillog.28.gz
Archive = /var/log/maillog.27.gz
Archive = /var/log/maillog.26.gz
Archive = /var/log/maillog.25.gz
Archive = /var/log/maillog.24.gz
Archive = /var/log/maillog.23.gz
Archive = /var/log/maillog.22.gz
Archive = /var/log/maillog.21.gz
Archive = /var/log/maillog.20.gz
Archive = /var/log/maillog.2.gz
Archive = /var/log/maillog.19.gz
Archive = /var/log/maillog.18.gz
Archive = /var/log/maillog.17.gz
Archive = /var/log/maillog.16.gz
Archive = /var/log/maillog.15.gz
Archive = /var/log/maillog.14.gz
Archive = /var/log/maillog.13.gz
Archive = /var/log/maillog.12.gz
Archive = /var/log/maillog.11.gz
Archive = /var/log/maillog.10.gz
Archive = /var/log/maillog.1.gz
Archive = /var/log/maillog-20121230
Logfile Name: up2date
Logfile Name: cisco
Logfile Name: cron
001-*removeservice = anacron
000-*onlyhost =
Logfile = /var/log/cron
Archive = /var/log/cron.9.gz
Archive = /var/log/cron.8.gz
Archive = /var/log/cron.7.gz
Archive = /var/log/cron.6.gz
Archive = /var/log/cron.5.gz
Archive = /var/log/cron.4.gz
Archive = /var/log/cron.3.gz
Archive = /var/log/cron.29.gz
Archive = /var/log/cron.28.gz
Archive = /var/log/cron.27.gz
Archive = /var/log/cron.26.gz
Archive = /var/log/cron.25.gz
Archive = /var/log/cron.24.gz
Archive = /var/log/cron.23.gz
Archive = /var/log/cron.22.gz
Archive = /var/log/cron.21.gz
Archive = /var/log/cron.20.gz
Archive = /var/log/cron.2.gz
Archive = /var/log/cron.19.gz
Archive = /var/log/cron.18.gz
Archive = /var/log/cron.17.gz
Archive = /var/log/cron.16.gz
Archive = /var/log/cron.15.gz
Archive = /var/log/cron.14.gz
Archive = /var/log/cron.13.gz
Archive = /var/log/cron.12.gz
Archive = /var/log/cron.11.gz
Archive = /var/log/cron.10.gz
Archive = /var/log/cron.1.gz
Archive = /var/log/cron-20121230
Logfile Name: yum
Logfile = /var/log/yum.log
Logfile Name: tac_acc
000-*applystddate =
Logfile Name: exim
Logfile Name: syslog
001-*removeservice = talkd,telnetd,inetd,nfsd,/sbin/mingetty
000-*expandrepeats =
003-*applystddate =
002-*onlyhost =
Logfile Name: dnssec
000-*expandrepeats =
001-*applybinddate =
Logfile Name: netscreen
000-*applystddate =
Logfile Name: autorpm
Logfile Name: dpkg
000-*applyeurodate =
LogFiles that will be processed:
[0] = maillog
[1] = qmail-pop3d-current
[2] = denyhosts
[3] = secure
[4] = messages
[5] = eventlog
[6] = qmail-send-current
[7] = none
[8] = samba
[9] = clam-update
[10] = extreme-networks
[11] = resolver
[12] = qmail-pop3ds-current
[13] = netopia
[14] = fail2ban
[15] = pix
[16] = xferlog
[17] = cisco
[18] = cron
[19] = netscreen
[20] = dnssec
[21] = qmail-smtpd-current
[22] = windows
[23] = vsftpd
[24] = php
[25] = emerge
[26] = http
[27] = bfd
[28] = sonicwall
[29] = iptables
[30] = pureftp
[31] = rt314
[32] = up2date
[33] = yum
[34] = tac_acc
[35] = exim
[36] = autorpm
[37] = dpkg
Сделал временную директорию: /var/cache/logwatch/logwatch.tOKLrjds с временной директорией
export LOGWATCH_DATE_RANGE='yesterday'
export LOGWATCH_OUTPUT_TYPE='unformatted'
export LOGWATCH_TEMP_DIR='/var/cache/logwatch/logwatch.tOKLrjds/'
export LOGWATCH_DEBUG='10'
Предварительная обработка журнала: maillog
'/var/cache/logwatch/logwatch.tOKLrjds/maillog-archive' '/var/log/maillog' | /usr/bin/perl /usr/share/logwatch/scripts/shared/expandrepeats ''| /usr/bin/perl /usr/share/logwatch/scripts/shared/onlyhost ''| /usr/bin/perl /usr/share/logwatch/scripts/shared/applystddate ''>/var/cache/logwatch/logwatch.tOKLrjds/maillog
Предварительная обработка журнала: secure
'/var/cache/logwatch/logwatch.tOKLrjds/secure-archive' '/var/log/secure' | /usr/bin/perl /usr/share/logwatch/scripts/shared/expandrepeats ''| /usr/bin/perl /usr/share/logwatch/scripts/shared/onlyhost ''| /usr/bin/perl /usr/share/logwatch/scripts/shared/applystddate ''>/var/cache/logwatch/logwatch.tOKLrjds/secure
Предварительная обработка журнала: messages
'/var/cache/logwatch/logwatch.tOKLrjds/messages-archive' '/var/log/messages' | /usr/bin/perl /usr/share/logwatch/scripts/shared/expandrepeats ''| /usr/bin/perl /usr/share/logwatch/scripts/shared/removeservice 'talkd,telnetd,inetd,nfsd,/sbin/mingetty,netscreen,netscreen'| /usr/bin/perl /usr/share/logwatch/scripts/shared/onlyhost ''| /usr/bin/perl /usr/share/logwatch/scripts/shared/applystddate ''>/var/cache/logwatch/logwatch.tOKLrjds/messages
Предварительная обработка журнала: cron
'/var/cache/logwatch/logwatch.tOKLrjds/cron-archive' '/var/log/cron' | /usr/bin/perl /usr/share/logwatch/scripts/shared/onlyhost ''| /usr/bin/perl /usr/share/logwatch/scripts/shared/removeservice 'anacron'| /usr/bin/perl /usr/share/logwatch/scripts/logfiles/cron/applydate>/var/cache/logwatch/logwatch.tOKLrjds/cron
Предварительная обработка журнала: http
'/var/cache/logwatch/logwatch.tOKLrjds/http-archive' '/var/log/httpd/access_log' | /usr/bin/perl /usr/share/logwatch/scripts/shared/expandrepeats ''| /usr/bin/perl /usr/share/logwatch/scripts/shared/applyhttpdate ''>/var/cache/logwatch/logwatch.tOKLrjds/http
Предварительная обработка журнала: yum
'/var/log/yum.log' | /usr/bin/perl /usr/share/logwatch/scripts/logfiles/yum/applydate>/var/cache/logwatch/logwatch.tOKLrjds/yum
Обработка службы: amavis
( cat /var/cache/logwatch/logwatch.tOKLrjds/maillog | /usr/bin/perl /usr/share/logwatch/scripts/shared/onlyservice '(amavis|dccproc)' |/usr/bin/perl /usr/share/logwatch/scripts/shared/removeheaders '' |/usr/bin/perl /usr/share/logwatch/scripts/services/amavis) 2>&1
export clamav_ignoreunmatched='0'
export clamav_ignoreunmatched='0'
Обработка службы: clamav-milter
( cat /var/cache/logwatch/logwatch.tOKLrjds/maillog | /usr/bin/perl /usr/share/logwatch/scripts/shared/onlyservice 'clamav-milter' |/usr/bin/perl /usr/share/logwatch/scripts/shared/removeheaders '' |/usr/bin/perl /usr/share/logwatch/scripts/services/clamav-milter) 2>&1
export courier_enable="1"
export courier_ip_lookup='0'
export courier_printmailqueue="0"
export courier_tables="0"
Обработка службы: courier
( cat /var/cache/logwatch/logwatch.tOKLrjds/maillog | /usr/bin/perl /usr/share/logwatch/scripts/services/courier) 2>&1
Обработка службы: cron
( cat /var/cache/logwatch/logwatch.tOKLrjds/cron | /usr/bin/perl /usr/share/logwatch/scripts/services/cron) 2>&1
Обработка службы: dovecot
( cat /var/cache/logwatch/logwatch.tOKLrjds/maillog | /usr/bin/perl /usr/share/logwatch/scripts/shared/onlyservice '(imap-login|pop3-login|dovecot)' |/usr/bin/perl /usr/share/logwatch/scripts/services/dovecot) 2>&1
export ftpd_ignore_unmatched='0'
export detail_transfer="1"
export http_ignore_error_hacks="0"
export http_user_display='0'
Обработка службы: http
( cat /var/cache/logwatch/logwatch.tOKLrjds/http | /usr/bin/perl /usr/share/logwatch/scripts/services/http) 2>&1
Обработка службы: imapd
( cat /var/cache/logwatch/logwatch.tOKLrjds/maillog | /usr/bin/perl /usr/share/logwatch/scripts/shared/onlyservice '(imapd|imapd-ssl|imapsd)' |/usr/bin/perl /usr/share/logwatch/scripts/shared/removeheaders '' |/usr/bin/perl /usr/share/logwatch/scripts/services/imapd) 2>&1
Обработка службы: in.qpopper
( cat /var/cache/logwatch/logwatch.tOKLrjds/maillog | /usr/bin/perl /usr/share/logwatch/scripts/shared/multiservice 'in.qpopper,qpopper' |/usr/bin/perl /usr/share/logwatch/scripts/shared/removeheaders '' |/usr/bin/perl /usr/share/logwatch/scripts/services/in.qpopper) 2>&1
Обработка службы: ipop3d
Я нашел этот вопрос 7-летней давности и у меня была такая же проблема.
logwatch
обрабатывал журналы fail2ban
, но ничего не сообщал, только если я включал режим отладки так:
logwatch --debug High --service fail2ban
Настоящая проблема на всех моих серверах Centos6 заключается в фильтре logwatch
для fail2ban
, я нашел другую статью, указывающую на решение:
Отредактируйте /usr/share/logwatch/scripts/services/fail2ban
, на строке 81 выполните следующее замещение.
ОРИГИНАЛ
} elsif ( my ($Service,$Action,$Host) = ($ThisLine =~ m/WARNING:?\s\[?(.*?)[]:]?\s(Ban|Unban)[^\.]* (\S+)/)) {
ИСПРАВЛЕНО
} elsif ( my ($Service,$Action,$Host) = ($ThisLine =~ m/NOTICE:?\s+\[?(.*?)[]:]?\s(Ban|Unban)[^\.]* (\S+)/)) {
Источник: https://www.gyrocode.com/articles/centos-7-fail2ban-and-logwatch/
Ответ или решение
Для того чтобы настроить Logwatch для обработки логов fail2ban и mod_security на CentOS 6.4, необходимо выполнить несколько шагов, включая изменение конфигурационных файлов и фильтров. В данном ответе мы рассмотрим каждый из этапов, необходимых для успешной интеграции данных логов в отчеты Logwatch.
Шаг 1: Проверка наличия логов
Перед началом конфигурации, убедитесь, что служба fail2ban и mod_security корректно настроены и ведут запись логов в стандартные файлы. По умолчанию, fail2ban записывает логи в /var/log/fail2ban.log
, а mod_security в лог Apache, обычно это /var/log/httpd/access_log
и /var/log/httpd/error_log
.
Шаг 2: Настройка Logwatch
-
Редактирование конфигурационного файла Logwatch: Откройте файл конфигурации Logwatch, который находится по пути
/etc/logwatch/conf/logwatch.conf
или/usr/share/logwatch/default.conf/logwatch.conf
(в зависимости от вашей установки):sudo nano /etc/logwatch/conf/logwatch.conf
Убедитесь, что в секциях, отвечающих за обработку логов, нет исключений для fail2ban и mod_security. В разделе
Service
добавьте или исправьте строки следующим образом:Service = "fail2ban" Service = "http" # если модуль mod_security используется с Apache
-
Настройка фильтра fail2ban: Перейдите к файлу фильтра для fail2ban:
sudo nano /usr/share/logwatch/scripts/services/fail2ban
Найдите строку 81 и внесите изменения, как описано в предоставленной информации. Замените:
} elsif ( my ($Service,$Action,$Host) = ($ThisLine =~ m/WARNING:?\s\[?(.*?)[]:]?\s(Ban|Unban)[^\.]* (\S+)/)) {
На:
} elsif ( my ($Service,$Action,$Host) = ($ThisLine =~ m/NOTICE:?\s+\[?(.*?)[]:]?\s(Ban|Unban)[^\.]* (\S+)/)) {
Это изменение позволит Logwatch распознавать сообщения о бане и разблокировке, которые записывает fail2ban.
Шаг 3: Настройка фильтра für mod_security
-
Создание или изменение фильтра для mod_security: Если фильтр для mod_security еще не существует, создайте его по следующему пути:
sudo nano /usr/share/logwatch/scripts/services/http
В этом файле добавьте соответствующую логику для обработки логов, относящихся к mod_security. Это может включать в себя анализ строк, содержащих сообщения о срабатывании правил mod_security.
Шаг 4: Тестирование конфигурации
После внесения всех изменений, выполните команду для тестирования вашей конфигурации Logwatch:
sudo logwatch --detail High --range yesterday --service fail2ban
Это позволит вам увидеть, собираются ли данные из логов fail2ban. Чтобы протестировать mod_security, выполните аналогичную команду, изменив --service
на http
.
Заключение
После выполнения всех вышеуказанных действий, ваши логи fail2ban и mod_security должны корректно отображаться в отчетах Logwatch. Регулярно проверяйте конфигурации и отладочные сообщения, чтобы убедиться, что данные обрабатываются правильно и соответствуют вашим требованиям безопасности.
Если у вас возникнут дополнительные вопросы или потребуется помощь, не стесняйтесь обращаться на форумы сообщества CentOS или специализированные ресурсы.