В поисках того, почему fail2ban не запрещает шаблоны, я обнаружил, что когда я запускаю /etc/init.d/fail2ban status, он сообщает, что моя команда 'date' опаздывает на час.
'date' говорит это: Вт, 18 марта, 20:45:02 MST 2014
Вывод сообщений о состоянии: 05 марта, 19:16:30 fed8 systemd [1]: Начальный младший бит: Старт / Стоп fail2ban ...
Я знаю, что моя «дата» верна, почему fail2ban не синхронизируется и как это исправить? Есть ли параметр конфигурации, чтобы заставить его вместо этого получать команду unix 'date'?
Я использую fail2ban 8.12 Спасибо
РЕДАКТИРОВАТЬ: добавлен патч из отчета об ошибке, ничего не изменил. Я должен был включить полный вывод. Дата тоже далеко, почти 2 недели? Это почему? Кажется, статус не сообщает, что происходит в последний раз, когда я пытался его запустить? Когда я делаю ps, я вижу, что сервер fail2ban действительно «работает»:
root 26430 0.4 0.1 1268652 14820 ? Sl 21:58 0:01 /usr/bin/python /usr/bin/fail2ban-server -b -s /var/run/fail2ban/fail2ban.sock -p /var/run/fail2ban/fail2ban.pid -x
/etc/init.d/fail2ban status
fail2ban.service - LSB: Start/Stop fail2ban
Loaded: loaded (/etc/rc.d/init.d/fail2ban)
Active: failed (Result: exit-code) since Wed 2014-03-05 19:26:00 MST; 1 weeks 6 days ago
Main PID: 1145 (code=exited, status=0/SUCCESS)
CGroup: name=systemd:/system/fail2ban.service
Mar 05 19:16:30 fed8 systemd[1]: Starting LSB: Start/Stop fail2ban...
Mar 05 19:16:33 fed8 fail2ban[945]: Starting fail2ban: ERROR No section: 'Definition'
Mar 05 19:16:33 fed8 fail2ban[945]: ERROR No section: 'Definition'
Mar 05 19:16:38 fed8 fail2ban[945]: [ OK ]
Mar 05 19:16:38 fed8 systemd[1]: Started LSB: Start/Stop fail2ban.
Mar 05 19:26:00 fed8 fail2ban[3481]: Stopping fail2ban: ERROR Unable to contact server. Is it running?
Mar 05 19:26:00 fed8 fail2ban[3481]: [FAILED]
Mar 05 19:26:00 fed8 systemd[1]: fail2ban.service: control process exited, code=exited status=255
Mar 05 19:26:00 fed8 systemd[1]: Unit fail2ban.service entered failed state.
е
EDIT2: я обнаружил, что мне нужно использовать «запуск системы fail2ban», а не использовать командную строку. Это исправило отчет о состоянии. В файле журнала fail2ban теперь правильно отображается время запуска, синхронизированное с командой 'date', но он все еще не запрещает. Я запустил fail2ban-regex на последнем шаблоне, который видел в моем файле, и он должен был его уловить, но этого не произошло.
EDIT3: я до сих пор не могу понять, почему он не запрещает шаблоны. fail2ban-regex правильно улавливает мои шаблоны, когда я запускаю его вручную. Единственное, что я нашел в другом посте, это то, что кто-то предложил запустить 'system iptables status', который произвел:
163 ROOT fed8 /etc/fail2ban service iptables status
Redirecting to /bin/systemctl status iptables.service
iptables.service - IPv4 firewall with iptables
Loaded: loaded (/usr/lib/systemd/system/iptables.service; disabled)
Active: inactive (dead)
start condition failed at Sun 2014-03-23 18:23:40 MST; 3s ago
Mar 23 18:23:40 fed8 systemd[1]: Started IPv4 firewall with iptables.
Теперь мой вопрос: если это причина, по которой он не работает, ПОЧЕМУ? Разве iptables не вызывается напрямую из fail2ban для запрета / разблокировки? Я никогда не запускал iptables как службу. Я запускаю его прямо из /etc/rc.local. Если проблема не в этом, может ли кто-нибудь сказать мне, почему эту штуку не удается забанить? Я начинаю задумываться, не проще ли написать мою собственную программу запрета, чтобы, по крайней мере, я знал, что могу на нее рассчитывать, вместо того, чтобы проверять, что эта штука все еще выявляет закономерности изо дня в день! Так обидно. У меня другая работа, кроме присмотра за детьми в fail2ban. Я быстро теряю веру в это.
Это очень похоже на проблему с конфигурацией. Конкретное сообщение об ошибке:
05 марта 19:16:33 fed8 fail2ban [945]: Запуск fail2ban: ОШИБКА Нет раздела: 'Определение'
Итак, следующий шаг - выяснить, какой файл используется в качестве файла конфигурации для fail2ban, который обычно находится в / etc / fail2ban, возможно, начиная с jail.conf (похоже, что он может иметь многофайловый конфигурация).
Найдя конфигурацию, вы поймете, почему в ходе анализа конфигурации программе не удается найти раздел с именем «Определение», который она ожидает и, по-видимому, требует.
Дата, которую вы видите в /etc/init.d/fail2ban status
вывод команды - это последний раз, когда программа работала правильно, а не текущая дата с точки зрения программы.