Не удается запустить fail2ban на сервере Nginx-Apache.

Вопрос или проблема

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

У меня есть VPS-аккаунт, на котором я размещаю несколько сайтов WP для клиентов. Информация о сервере: Nginx (1.17.0) – Apache (2.4.39) на CentOS 7.6.

Недавно прочитав о преимуществах fail2ban, я решил попробовать его (то есть f2b с плагином WP). Я попросил хостинг-компанию установить f2b, и они сделали это пару дней назад. К сожалению, мне не удалось запустить его, и они не хотят помогать, если я не заплачу им.

Они установили версию 0.9.7, хотя текущая версия, похоже, 0.10.4. Я следовал инструкциям из следующих руководств и документов:
https://www.digitalocean.com/community/tutorials/how-to-protect-ssh-with-fail2ban-on-centos-7
https://www.howtoforge.com/tutorial/how-to-install-fail2ban-on-centos/
https://docs.wp-fail2ban.com/en/4.2/introduction.html

Я установил плагин и выполнил следующее:

  1. подтвердил, что /wp-content/plugins/wp-fail2ban/filters.d/ содержал wordpress-hard.conf, wordpress-soft.conf и wordpress-extra.conf (как указано в документации)

  2. sudo systemctl enable fail2ban = без ошибок

  3. Я создал файл jail.local и вставил следующий код:

    [DEFAULT]

    ## блокировать хосты на один час:
    bantime = 3600

    ## переопределить /etc/fail2ban/jail.d/00-firewalld.conf:
    banaction = iptables-multiport

    [sshd]
    enabled = true

    [wordpress-hard]
    enabled = true
    filter = wordpress-hard
    logpath = /var/log/auth.log
    maxretry = 1
    port = http,https

    [wordpress-soft]
    enabled = true
    filter = wordpress-soft
    logpath = /var/log/auth.log
    maxretry = 3
    port = http,https

– вышел из nano и сохранил
  1. sudo systemctl restart fail2ban привел к следующему:
    Работа fail2ban.service завершилась неудачей, потому что управляющий процесс завершился с кодом ошибки. См. “systemctl status fail2ban.service” и “journalctl -xe” для подробностей.

  2. systemctl status fail2ban.service вывел:

fail2ban.service – Служба Fail2Ban Загружено: загружено   (/usr/lib/systemd/system/fail2ban.service; включено; предустановка поставщика: отключена)  
Активно: ошибочно (Результат: лимит запуска) с понедельника, 2019-08-05 14:52:20 EDT; 1 мин 4 с назад Документы: man:fail2ban(1)  
Процесс: 12326 ExecStart=/usr/bin/fail2ban-client -x start (код=вышел, статус=255)  
Основной PID: 9099 (код=вышел, статус=0/УСПЕХ)
  1. sudo fail2ban-client status вывел:
ОШИБКА Не удалось получить доступ к пути сокета: /var/run/fail2ban/fail2ban.sock. Запускается ли fail2ban?
  1. После того как я это увидел, я искал /var/run/fail2ban/fail2ban.sock. Файл отсутствует/не существует/не найден.

  2. journalctl -u fail2ban.service выдал:

fail2ban-client[10992]: ОШИБКА Ошибки в тюрьме ‘wordpress-hard’. Пропускаем…  
fail2ban-client[10992]: ОШИБКА Не найдены доступные конфигурационные файлы для ‘filter.d/wo  
fail2ban-client[10992]: ОШИБКА Нет раздела: ‘Определение’  
fail2ban-client[10992]: ОШИБКА Нет раздела: ‘Определение’  
fail2ban-client[10992]: ОШИБКА Невозможно прочитать фильтр

И вот где я нахожусь. Я что-то сделал не так? Они что-то сделали не так? Как это исправить? Спасибо и извините за длину.

Вы забыли скопировать конфигурацию в /etc/fail2ban/filter.d/

Например

sudo cp /var/www/html/wp-content/plugins/wp-fail2ban/filters.d/wordpress-hard.conf /etc/fail2ban/filter.d/

Также не забудьте скопировать wordpress-soft.conf в директорию filters.d.

Ответ или решение

Чтобы решить вашу проблему с запуском Fail2Ban на сервере Nginx и Apache, давайте рассмотрим несколько ключевых шагов.

  1. Проверка конфигурации фильтров: Судя по последним сообщениям об ошибках, Fail2Ban не может найти фильтры для ваших настроек jail. Убедитесь, что фильтры wordpress-hard.conf, wordpress-soft.conf и, если необходимо, другие конфигурационные файлы скопированы в каталог /etc/fail2ban/filter.d/. Это можно сделать с помощью следующих команд:

    sudo cp /var/www/html/wp-content/plugins/wp-fail2ban/filters.d/wordpress-hard.conf /etc/fail2ban/filter.d/
    sudo cp /var/www/html/wp-content/plugins/wp-fail2ban/filters.d/wordpress-soft.conf /etc/fail2ban/filter.d/
  2. Проверка конфигурационного файла jail: В вашем файле jail.local вы указали, что журнал для фильтров находится в /var/log/auth.log. Однако для WordPress этот путь может быть неверен. Обычно логи для Nginx находятся в /var/log/nginx/access.log и /var/log/nginx/error.log, а для Apache – в /var/log/httpd/access_log и /var/log/httpd/error_log. Измените путь к журналу на правильный. Например:

    logpath = /var/log/nginx/access.log

    или

    logpath = /var/log/httpd/access_log
  3. Перезапуск Fail2Ban: После внесения изменений необходимо перезапустить Fail2Ban и проверить статус для выявления возможных ошибок:

    sudo systemctl restart fail2ban
    sudo systemctl status fail2ban
  4. Проверка наличия файла сокета: Убедитесь, что файл сокета /var/run/fail2ban/fail2ban.sock создаётся при запуске Fail2Ban. Если его нет, возможно, Fail2Ban по-прежнему не может найти конфигурацию фильтров.

  5. Логи для диагностики: Если Fail2Ban всё еще не запускается, просмотрите журналы с помощью следующей команды для дополнительных ошибок:

    journalctl -u fail2ban.service

    Это поможет выявить, какие именно ошибки возникают при попытке запустить службу.

  6. Права доступа: Проверьте, имеют ли процессы Fail2Ban достаточные права доступа к лог-файлам, которые вы указали в jail.local.

После выполнения всех вышеперечисленных шагов Fail2Ban должен успешно запуститься и начать работать с вашими настройками для защиты WordPress. Если проблемы сохраняются, пожалуйста, предоставьте дополнительные логи и сообщения об ошибках для более детального анализа.

Оцените материал
Добавить комментарий

Капча загружается...