linux:administration:fail2ban
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| linux:administration:fail2ban [2026/08/26 09:35] – so_v_a | linux:administration:fail2ban [2026/11/10 10:13] (текущий) – so_v_a | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| < | < | ||
| - | # Fail2ban. Настройка на Ubuntu 24.04 для защиты от брутфорса | + | # Fail2ban. Настройка на Ubuntu 24.04 для защиты от брутфорса. |
| **Fail2ban** — это утилита, | **Fail2ban** — это утилита, | ||
| - | Чаще всего fail2ban применяют для защиты SSH, но он умеет работать и с другими сервисами: | ||
| + | Чаще всего fail2ban применяют для защиты SSH, но он умеет работать и с другими сервисами: | ||
| На VPS такие попытки особенно часты, поэтому важно | На VPS такие попытки особенно часты, поэтому важно | ||
| - | > **!Note**: | + | |
| - | аки. | + | > **(!)Note**: Главное условие — чтобы сервис писал логи, по которым можно определить неудачные попытки входа или атаки. |
| ## Как работает Fail2ban | ## Как работает Fail2ban | ||
| Для работы Fail2ban запускает демона, | Для работы Fail2ban запускает демона, | ||
| - | По умолчанию в Ubuntu 24.04 Fail2ban взаимодействует с **UFW**, но если нужно, то может использовать и **iptables** напрямую. | + | По умолчанию в Ubuntu 24.04 Fail2ban взаимодействует с **UFW**, но если нужно, то может использовать и **iptables** напрямую |
| + | . | ||
| - | ## Установка и пример настройки Fail2ban | + | ## Установка и пример настройки Fail2ban |
| Установка пакета: | Установка пакета: | ||
| Строка 21: | Строка 22: | ||
| sudo apt install fail2ban | sudo apt install fail2ban | ||
| ``` | ``` | ||
| + | если есть необходимость добавить какие-то зависимые пакеты установщик обычно делает это сам. | ||
| - | После завершения установки сервис запускается сам, но на этом этапе он ещё не делает ничего полезного, | + | После завершения установки сервис запускается самостоятельно, но на этом этапе он ещё не делает ничего полезного, |
| Стандартные настройки находятся в файле: | Стандартные настройки находятся в файле: | ||
| Строка 29: | Строка 31: | ||
| ``` | ``` | ||
| - | > **!Note**: Не следует изменять файл **jail.conf** — это основной конфигурационный файл, и при обновлении пакета _он может быть перезаписан_. | + | > **(!)Note**: Не следует изменять файл **jail.conf** — это основной конфигурационный файл, и при обновлении пакета _он может быть перезаписан_. |
| Настраивать утилиту следует через файл **jail.local**, | Настраивать утилиту следует через файл **jail.local**, | ||
| Строка 40: | Строка 42: | ||
| [sshd] | [sshd] | ||
| enabled = true | enabled = true | ||
| + | mode = aggressive | ||
| port = ssh | port = ssh | ||
| logpath = %(sshd_log)s | logpath = %(sshd_log)s | ||
| backend = systemd | backend = systemd | ||
| ``` | ``` | ||
| + | здесь: | ||
| + | - **enabled** — включение/ | ||
| + | - **mode = aggressive** — агрессивный режим, ловит больше ошибок SSH включая ошибки при аутентификации по ключу | ||
| + | - **port** — порт на котором работает SSH (_если используется нестандартный порт_, то это следует указать явно, например **port = 2222**) | ||
| + | - **logpath** — путь до отслеживаемого лога (здесь указан в виде системной переменной, | ||
| - | В этой секции настроек включаем защиту сервиса **sshd**, указываем порт, на котором работает SSH (_если используется нестандартный порт_, то это следует указать явно, например **port = 2222**), и путь к отслеживаемому логу. | + | Настройки **параметров срабатывания** могут быть заданы глобально, в секции [DEFAULT], |
| - | + | ||
| - | Настройки **параметров срабатывания** могут быть заданы глобально или для конкретного **jail**. Лучше задавать явно в соответствующей же секции: | + | |
| ```bash | ```bash | ||
| [sshd] | [sshd] | ||
| Строка 60: | Строка 66: | ||
| То есть с указанными выше настройками Fail2ban будет блокировать IP на час, если за 10 минут с него поступит 5 неудавшихся попыток входа. | То есть с указанными выше настройками Fail2ban будет блокировать IP на час, если за 10 минут с него поступит 5 неудавшихся попыток входа. | ||
| + | |||
| + | Пример указания настроек **параметров срабатывания** в секции [DEFAULT]: | ||
| + | ``` | ||
| + | [DEFAULT] | ||
| + | # IP-адреса, | ||
| + | ignoreip = 127.0.0.1/8 ::1 ВАШ_IP_1 ВАШ_IP_2 | ||
| + | # Время блокировки (1 час = 3600 сек, ' | ||
| + | bantime | ||
| + | # Время поиска (смотрим попытки за последние 10 минут) | ||
| + | findtime = 10m | ||
| + | # Количество ошибок для блокировки | ||
| + | maxretry = 5 | ||
| + | ``` | ||
| + | здесь **ignoreip** - список IP адресов-исключений, | ||
| После внесения изменений в файл конфигурации службу следует перезапустить: | После внесения изменений в файл конфигурации службу следует перезапустить: | ||
| Строка 86: | Строка 106: | ||
| Приведенного выше примера настроек достаточно, | Приведенного выше примера настроек достаточно, | ||
| + | |||
| Если есть и другие сервисы, | Если есть и другие сервисы, | ||
| + | |||
| Но важно настраивать только то, что реально используется, | Но важно настраивать только то, что реально используется, | ||
| Строка 105: | Строка 127: | ||
| Однако учитывайте, | Однако учитывайте, | ||
| - | Лучше придерживаться | + | Лучше придерживаться |
| Когда настройка завершена, | Когда настройка завершена, | ||
/var/www/html/dokuwiki/data/attic/linux/administration/fail2ban.1787736934.txt.gz · Последнее изменение: — so_v_a
