Вопрос или проблема
Я управляю веб-сервером Ubuntu 16.04 (с установленным Webmin). У меня также есть Graylog, работающий на отдельном сервере в моей локальной сети.
Я хотел бы, чтобы fail2ban логировался как в /var/log/fail2ban.log
, так и на мой внешний сервер syslog, но не уверен, как это сделать.
В конфигурационном файле fail2ban есть возможность изменить logtarget=/var/log/fail2ban.log
на logtarget = SYSLOG
, но не уверен, как перенаправить эти выводы на другой сервер.
Я полагаю, что по умолчанию Ubuntu использует rsyslog. Ознакомьтесь с опциями “imfile”, чтобы читать журналы fail2ban и настроить их перенаправление.
Смотрите аналогичный вопрос здесь для подробностей. Как перенаправить конкретный файл журнала из /var/log с помощью rsyslog на удалённый сервер?
Ответ или решение
Как отправлять логи fail2ban на внешний syslog сервер
Если вы управляете веб-сервером на Ubuntu 16.04 и хотите настраивать отправку логов fail2ban на внешний syslog сервер, такой как Graylog, вы можете следовать нижеприведенным шагам. Эта инструкция поможет вам правильно настроить вашу систему, с учетом того, что вы хотите, чтобы логи записывались как в локальный файл /var/log/fail2ban.log
, так и на внешний сервер.
Шаг 1: Настройка fail2ban
Для начала необходимо убедиться, что fail2ban настроен правильно:
-
Откройте конфигурационный файл fail2ban:
sudo nano /etc/fail2ban/jail.local
-
Найдите или добавьте строку, отвечающую за настройку логирования, и измените ее следующим образом:
logtarget = SYSLOG
Шаг 2: Настройка rsyslog
Поскольку Ubuntu использует rsyslog по умолчанию, мы настроим его для передачи логов fail2ban на внешний syslog сервер.
-
Откройте файл конфигурации rsyslog:
sudo nano /etc/rsyslog.conf
-
Добавьте следующую строку в конец файла, чтобы настроить отправку логов:
*.* @IP_АДРЕС_СЕРВЕРА:514
Замените
IP_АДРЕС_СЕРВЕРА
на IP-адрес вашего Graylog сервера. Порт по умолчанию для syslog — 514. -
Если вы хотите фильтровать только логи fail2ban, вы можете использовать следующую строку:
if $programname == 'fail2ban-server' then @@IP_АДРЕС_СЕРВЕРА:514
-
Чтобы включить поддержку UDP (если сервер принимает логи по UDP), добавьте
@@
, а для TCP используйте@
.
Шаг 3: Перезапуск служб
После внесения изменений вам необходимо перезапустить службы fail2ban и rsyslog для применения новых настроек.
sudo systemctl restart fail2ban
sudo systemctl restart rsyslog
Шаг 4: Проверка логов
Для проверки того, что логи fail2ban успешно отправляются на ваш внешний сервер, можно использовать такие команды:
- На сервере с Graylog проверьте, поступают ли новые логи.
- На Ubuntu-сервере, где работает fail2ban, проверьте локальный файл логов:
tail -f /var/log/fail2ban.log
Заключение
Следуя вышеописанным шагам, вы можете настроить свою систему так, чтобы fail2ban логировался как на локальный файл, так и на внешний syslog сервер, такой как Graylog. Убедитесь, что вы проверяете свои настройки и логи на предмет ошибок или предупреждений.
Эта инструкция обеспечит безопасность вашего сервера через эффективно управляемую систему логирования. Если у вас возникли дополнительные вопросы или проблемы, не стесняйтесь обращаться за поддержкой.