пример хоста DNS fail2ban ignoreip?

Проверьте свои аппаратные средства. И продолжайте проверять свои аппаратные средства, в то время как сервер работает. Большинство катастрофических отказов Linux на самом деле вызывается аппаратными средствами.

Для каждого жесткого диска использовать smartmontools для проверки это - состояние S.M.A.R.T. Перед использованием диска, выполненного длинная самопроверка (занимает приблизительно 1 или 2 часа):

# This command starts the test
smartctl --test=long /dev/sda
# This one to show the test status
watch -n 120 smartctl --log=selftest /dev/sda

Кроме того, сохраните smartd демон, работающий и, обращает внимание на журналы.

Используйте избыточные диски. Не доверяйте только одному жесткому диску. Не все ошибки могут быть зафиксированы S.M.A.R.T., и я говорю это на основе своего собственного опыта.

Также установка mcelog и продолжайте смотреть /var/log/mcelog. Этот инструмент регистрирует Исключения Машинного контроля, которые являются исключениями, пойманными ЦП. Нормальная, здоровая система не должна повышать MCEs. Таким образом, если Вы видите какой-либо зарегистрированный MCE, существует что-то не так (возможно, перегревающийся).

И помните: рано или поздно аппаратные средства перестанут работать.

2
задан 13 December 2013 в 06:34
3 ответа

Если посмотреть на сценарий Python, который использует значение ignoreip, попытка сопоставления с подстановочными знаками для такого имени не сработает, это должен быть IP / сеть или имя который разрешается в IP.

Если строка 'googlebot.com' есть в журнале, возможно, вместо этого будет использоваться "ignoreregex"? Команда и использование перечислены здесь: http://www.fail2ban.org/wiki/index.php/Commands#JAIL_CONFIGURATION

2
ответ дан 3 December 2019 в 11:44

Лучшее решение состоит в том, чтобы добавить ignoreregex строку в Вашем файле конфигурации фильтра:

ignoreregex = ^<HOST> -.*"GET.*HTTP.*Googlebot/2\.1.*"$

Это проигнорирует Googlebot. Обязательно проверьте access.log вместо error.log при использовании Apache.

0
ответ дан 3 December 2019 в 11:44

В моем файле журнала есть только IP-номера (без доменных имен), поэтому ignoreregex у меня не работает.

Я опубликую здесь то, что я сделал, на случай, если это будет полезно для тех, кто пытается сделать что-то подобное. Это было сделано в Ubuntu 18.04 с Fail2Ban v0.10.2.

  1. Создайте сценарий, который принимает IP-номер, выполняет обратный поиск DNS и проверяет, входит ли имя хоста в разрешенное доменное имя. Поместите этот скрипт в /etc/fail2ban/filter.d/ignorecommands. Я назвал этот скрипт ignorehost.
#!/usr/bin/env fail2ban-python
# Inspired by apache-fakegooglebot script
#
# Written in Python to reuse built-in Python batteries and not depend on
# presence of host and cut commands
#
import sys
import re
from fail2ban.server.ipdns import DNSUtils, IPAddr

ALLOWED_HOSTS = [
        ".phlapa.fios.verizon.net",
        ".nwrknj.fios.verizon.net",
        ".hsd1.de.comcast.net",
        ".hsd1.pa.comcast.net"]

def process_args(argv):
    if len(argv) != 2:
       raise ValueError("Please provide a single IP as an argument. Got: %s\n"
                        % (argv[1:]))
    ip = argv[1]

    if not IPAddr(ip).isValid:
       raise ValueError("Argument must be a single valid IP. Got: %s\n"
                        % ip)
    print("Ip received!")

    return ip

def is_allowed_host(ip):
    host = DNSUtils.ipToName(ip)
    if not host:
        return False
    else:
        m = re.match('.\S+(-\d+)(?P<domain>\.\S+)', host)
        domain = m.group('domain')
        if domain in ALLOWED_HOSTS:
           return True
        else:
           return False

if __name__ == '__main__': # pragma: no cover
    try:
      ret = is_allowed_host(process_args(sys.argv))
    except ValueError as e:
      sys.stderr.write(str(e))
      sys.exit(2)
    sys.exit(0 if ret else 1)
  1. Добавьте эту строку в нужный(е) джейл(ы), в /etc/fail2ban/jail.local:

ignorecommand = %(ignorecommands_dir)s/ignorehost

В моем случае я поместил эту строку в тюрьмах ssh и sshd:

[sshd]

ignorecommand = %(ignorecommands_dir)s/ignorehost <ip>

[ssh]

ignorecommand = %(ignorecommands_dir)s/ignorehost <ip>
  1. Reload fail2ban

systemctl reload fail2ban.service

1
ответ дан 13 May 2020 в 14:00

Теги

Похожие вопросы