Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия | |||
— | fail2ban [2023/06/21 14:11] (текущий) – [Fail2ban обязательная защита сервера VPS] darkfire | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== Fail2ban обязательная защита сервера VPS ====== | ||
+ | {{htmlmetatags> | ||
+ | metatag-description=(Как защитить сервера VPS, VE при помощи программы Fail2ban. Fail2ban мониторит системные логи на предмет автоматизированных атак на систему.) | ||
+ | }} | ||
+ | |||
+ | {{ :: | ||
+ | |||
+ | Основной задачей программы [[https:// | ||
+ | |||
+ | Описанная выше функциональная схема позволяет защищаться от так называемых "brute force" атак, т.е. от многочисленных попыток войти в систему с различными вариантами паролей. Атаки такого рода достаточно часто практикуются сетевыми взломщиками. | ||
+ | |||
+ | ===== Fail2ban Ubuntu 18 и выше ===== | ||
+ | В операционной системе Ubuntu 18.04.4 LTS, 20.04.1 LTS Fail2ban ставиться очень просто, | ||
+ | |||
+ | <file bash> | ||
+ | $ sudo apt install fail2ban | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Использование и установка Fail2ban Debian | ||
+ | |||
+ | * Установка в Debian< | ||
+ | # apt install fail2ban</ | ||
+ | * Параметры настройки, | ||
+ | cd / | ||
+ | cp -p fail2ban.conf fail2ban.local; | ||
+ | cp -p jail.conf jail.local; | ||
+ | </ | ||
+ | * jail.local< | ||
+ | [DEFAULT] | ||
+ | |||
+ | # " | ||
+ | ignoreip = 127.0.0.1/8 | ||
+ | # bantime в секундах, | ||
+ | bantime | ||
+ | maxretry = 3 | ||
+ | |||
+ | # Адрес, на который слать уведомления о событиях | ||
+ | destemail = admin@example.org | ||
+ | # Имя пользователя от которого приходят сообщения, | ||
+ | sendername = you name computer | ||
+ | |||
+ | |||
+ | # Какое из действий выполнить, | ||
+ | action = %(action_mwl)s | ||
+ | </ | ||
+ | * рабочий jail.local для SSH, [[pure-ftpd?&# | ||
+ | [DEFAULT] | ||
+ | ignoreip = 127.0.0.1/8 | ||
+ | # | ||
+ | bantime | ||
+ | maxretry = 3 | ||
+ | backend = auto | ||
+ | destemail = admin@example.org | ||
+ | |||
+ | # ACTIONS | ||
+ | banaction = iptables-multiport | ||
+ | #mta = sendmail | ||
+ | mta = mail | ||
+ | protocol = tcp | ||
+ | chain = INPUT | ||
+ | action = %(action_mwl)s | ||
+ | |||
+ | # JAILS | ||
+ | |||
+ | [ssh] | ||
+ | |||
+ | enabled | ||
+ | #mta = mail[name=ssh Atacced!!!] | ||
+ | port = ssh | ||
+ | filter | ||
+ | logpath | ||
+ | maxretry = 6 | ||
+ | |||
+ | [pure-ftpd] | ||
+ | |||
+ | enabled | ||
+ | #mta = mail[name=pure-ftpd Atacced!!!] | ||
+ | port = ftp, | ||
+ | filter | ||
+ | # | ||
+ | logpath | ||
+ | maxretry = 6 | ||
+ | </ | ||
+ | * Можно вручную тестировать фильтры, | ||
+ | Nov 19 15:56:17 cz5234 pure-ftpd: (? | ||
+ | Nov 19 15:56:19 cz5234 pure-ftpd: (? | ||
+ | </ | ||
+ | # fail2ban-regex / | ||
+ | </ | ||
+ | * [[RoundCube]]< | ||
+ | [roundcube-auth] | ||
+ | |||
+ | enabled | ||
+ | filter | ||
+ | port = http,https | ||
+ | # | ||
+ | logpath | ||
+ | </ | ||
+ | |||
+ | failregex = ^\s*(\[(\s[+-][0-9]{4})? | ||
+ | |||
+ | </ | ||
+ | # fail2ban-regex / | ||
+ | </ | ||
+ | ===== Установка и использование Fail2ban RHEL/CentOS ===== | ||
+ | |||
+ | По молчанию утилиты Fail2ban нет в стандартном репозитории. Fail2ban можно поставить например из EPEL repository используя [[yum?&# | ||
+ | |||
+ | Инсталляция Fail2ba в CentOS | ||
+ | <file bash> | ||
+ | yum update | ||
+ | yum install epel-release | ||
+ | yum install fail2ban | ||
+ | </ | ||
+ | По умолчанию, | ||
+ | < | ||
+ | systemctl enable fail2ban | ||
+ | systemctl start fail2ban | ||
+ | </ | ||
+ | Создаем jail.local, в котором опишем наши настройки | ||
+ | < | ||
+ | cp -p jail.conf jail.local | ||
+ | </ | ||
+ | ==== Пример настройки Fail2ban и Nginx ==== | ||
+ | |||
+ | Настроим Fail2ban nginx-limit-req для связки с [[Nginx|Nginx]]. Предварительно вы должны настроить встроенный модуль [[rate limiting nginx|ngx_http_limit_req_module]]. Добавим в jail.local | ||
+ | <file bash> | ||
+ | [nginx-limit-req] | ||
+ | enabled = true | ||
+ | filter | ||
+ | port = http,https | ||
+ | logpath = / | ||
+ | bantime = 600 | ||
+ | maxretry = 5 | ||
+ | </ | ||
+ | Сам фильтр идет в комплекте с и находится в файле / | ||
+ | Проверяем на ошибки: | ||
+ | < | ||
+ | fail2ban-client status nginx-limit-req | ||
+ | </ | ||
+ | ===== Управление запрещенными IP и fail2ban-client ===== | ||
+ | Управление запрещенными IP (manage bans IPs). | ||
+ | * Просмотр запрещенных IP в [[iptables]]:< | ||
+ | iptables -L | ||
+ | </ | ||
+ | * Для разблокирования конкретного IP, нужно узнать номер строки правила и потом удалить строку под этим номером с указанием имени Chain. Например, | ||
+ | iptables -nvL --line-numbers | ||
+ | iptables -D f2b-sshd 60 | ||
+ | </ | ||
+ | * Для просмотра состояния и заблокированных ip используйте встроенную утилиту fail2ban-client | ||
+ | < | ||
+ | fail2ban-client status sshd | ||
+ | </ | ||
+ | < | ||
+ | Status for the jail: sshd | ||
+ | |- Filter | ||
+ | | |- Currently failed: 3 | ||
+ | | |- Total failed: | ||
+ | | `- File list: / | ||
+ | `- Actions | ||
+ | |- Currently banned: 6 | ||
+ | |- Total banned: | ||
+ | `- Banned IP list: | ||
+ | |||
+ | </ | ||
+ | ===== Bug Fail2ban 1970 ===== | ||
+ | Версия демона Fail2ban 0.8.6 присылает на почту уведомление с неправильной датой 1970-01-01 01:00. Варианты решения: | ||
+ | * Обновить Fail2ban | ||
+ | * Использовать в jail.local mta = mail вместо mta = sendmail | ||
+ | * Во всех конфигурационных файлах "/ | ||
+ | Date: `date -u +"%%a, %%d %%h %%Y %%T +0000" | ||
+ | </ | ||
+ | Date: `date --rfc-2822 -u` | ||
+ | </ | ||
+ | ===== Fail2ban просмотреть полный список заблокированных IP-адресов ===== | ||
+ | |||
+ | Лучший способ просмотреть полный список заблокированных IP-адресов - проверить файл журнала: | ||
+ | <file bash> | ||
+ | sudo zgrep ' | ||
+ | </ | ||
+ | |||
+ | Второй способ, | ||
+ | <file bash> | ||
+ | sudo iptables -L INPUT -v -n | less | ||
+ | </ |
📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.
📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Nginx простые примеры конфигурации
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах
7 Самых Популярных Обзоров
- Хостинг для Python-скриптов и приложений
- ТОП 4 лучших антидетект браузеров (Бесплатные & Платные)
- Подборка купонов (промокоды) на хостинг, антидетект браузеры
- Обзор THE.Hosting (PQ Hosting): надежный хостинг с профессиональной поддержкой
- Хостинг в России
- Хостинг в Европе
- Обзор браузера Dolphin {anty} для мультиаккаунтинга