Безопасность веб-сервера. Настраиваем Fail2ban для защиты сервера Apache на Debian.
Продолжаем рассматривать способы защиты веб-сервера, от потенциальных угроз. На этот раз рассмотрим такой инструмент как Fail2ban.
JUQwJTlGJUQxJTgwJUQwJUI4JUQwJUJEJUQxJTg2JUQwJUI4JUQwJUJGJTIwJUQxJTgwJUQwJUIwJUQwJUIxJUQwJUJFJUQxJTgyJUQxJThCJUMyJUEwRmFpbDJiYW4lMkMlMjAlRDAlQjclRDAlQjAlRDAlQkElRDAlQkIlRDElOEUlRDElODclRDAlQjAlRDAlQjUlRDElODIlRDElODElRDElOEYlMjAlRDAlQjIlMjAlRDAlQjAlRDAlQkQlRDAlQjAlRDAlQkIlRDAlQjglRDAlQjclRDAlQjUlMjAlRDAlQkIlRDAlQkUlRDAlQjMtJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJUQwJUJFJUQwJUIyJTIwJUQwJUI4JTIwJUQxJTgwJUQwJUI1JUQwJUIwJUQwJUIzJUQwJUI4JUQxJTgwJUQwJUJFJUQwJUIyJUQwJUIwJUQwJUJEJUQwJUI4JUQwJUI4JTIwJUQwJUJEJUQwJUIwJTIwJUQwJUJFJUQwJUJGJUQxJTgwJUQwJUI1JUQwJUI0JUQwJUI1JUQwJUJCJUQwJUI1JUQwJUJEJUQwJUJEJUQxJThCJUQwJUI1JTIwJUQxJTgxJUQwJUJFJUQwJUIxJUQxJThCJUQxJTgyJUQwJUI4JUQxJThGJTIwJUQwJUJBJUQwJUJFJUQxJTgyJUQwJUJFJUQxJTgwJUQxJThCJUQwJUI1JTIwJUQwJUJFJUQwJUJGJUQxJTgwJUQwJUI1JUQwJUI0JUQwJUI1JUQwJUJCJUQwJUI1JUQwJUJEJUQxJThCJTIwJUQwJUIyJTIwJUQwJUJEJUQwJUIwJUQxJTgxJUQxJTgyJUQxJTgwJUQwJUJFJUQwJUI5JUQwJUJBJUQwJUIwJUQxJTg1JUMyJUEwRmFpbDJiYW4u
Рассмотрим как установить Fail2ban и настроить на защиту веб-сервера (Apache), развернутом на Debian 9 Stretch.
JUQwJUEzJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUJEJUQwJUIwJUQwJUIyJUQwJUJCJUQwJUI4JUQwJUIyJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUJGJUQwJUIwJUQwJUJBJUQwJUI1JUQxJTgyJTIwZmFpbDJiYW4lM0E=
apt-get install fail2ban -y
JUQwJTlBJUQwJUJFJUQwJUJEJUQxJTg0JUQwJUI4JUQwJUIzJUQxJTgzJUQxJTgwJUQwJUIwJUQxJTg2JUQwJUI4JUQwJUJFJUQwJUJEJUQwJUJEJUQxJThCJUQwJUI5JTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJTIwJUQwJUJEJUQwJUIwJUQxJTgxJUQxJTgyJUQxJTgwJUQwJUJFJUQwJUI5JUQwJUJBJUQwJUI4JTIwJUQwJUJGJUQxJTgwJUQwJUIwJUQwJUIyJUQwJUI4JUQwJUJCJTIwJTJGZXRjJTJGZmFpbDJiYW4lMkZqYWlsLmNvbmYlMkMlMjAlRDElODAlRDAlQjAlRDAlQjclRDElODAlRDAlQjAlRDAlQjElRDAlQkUlRDElODIlRDElODclRDAlQjglRDAlQkElRDAlQjglMjAlRDAlQkQlRDAlQjUlMjAlRDElODAlRDAlQjUlRDAlQkElRDAlQkUlRDAlQkMlRDAlQjUlRDAlQkQlRDAlQjQlRDElODMlRDElOEUlRDElODIlMjAlRDAlQjglRDAlQjclRDAlQkMlRDAlQjUlRDAlQkQlRDElOEYlRDElODIlRDElOEMlMkMlMjAlRDAlQkYlRDAlQkUlRDElOEQlRDElODIlRDAlQkUlRDAlQkMlRDElODMlMjAlRDElODElRDAlQkUlRDAlQjclRDAlQjQlRDAlQjAlRDAlQjQlRDAlQjglRDAlQkMlMjAlRDAlQjUlRDAlQjMlRDAlQkUlMjAlRDAlQkIlRDAlQkUlRDAlQkElRDAlQjAlRDAlQkIlRDElOEMlRDAlQkQlRDElODMlRDElOEUlMjAlRDAlQkElRDAlQkUlRDAlQkYlRDAlQjglRDElOEUlMkMlMjAlRDAlQjglRDAlQjclMjAlRDAlQkElRDAlQkUlRDElODIlRDAlQkUlRDElODAlRDAlQkUlRDAlQjMlRDAlQkUlMjAlRDAlQjElRDElODMlRDAlQjQlRDElODMlRDElODIlMjAlRDAlQjIlMjAlRDAlQkYlRDElODAlRDAlQjglRDAlQkUlRDElODAlRDAlQjglRDElODIlRDAlQjUlRDElODIlRDAlQjUlMjAlRDElODElRDElODclRDAlQjglRDElODIlRDElOEIlRDAlQjIlRDAlQjAlRDElODIlRDElOEMlRDElODElRDElOEYlMjAlRDAlQkYlRDElODAlRDAlQjAlRDAlQjIlRDAlQjglRDAlQkIlRDAlQjAlM0E=
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Настройка правил (jails)
RmFpbDJiYW4lQzIlQTAlRDAlQkYlRDAlQkUlRDElODElRDElODIlRDAlQjAlRDAlQjIlRDAlQkIlRDElOEYlRDAlQjUlRDElODIlRDElODElRDElOEYlMjAlRDElODElMjAlRDAlQkQlRDAlQjAlRDAlQjElRDAlQkUlRDElODAlRDAlQkUlRDAlQkMlMjAlRDAlQkYlRDElODAlRDAlQjUlRDAlQjQlRDAlQkUlRDAlQkYlRDElODAlRDAlQjUlRDAlQjQlRDAlQjUlRDAlQkIlRDElOTElRDAlQkQlRDAlQkQlRDElOEIlRDElODUlMjAlRDAlQkYlRDElODAlRDAlQjAlRDAlQjIlRDAlQjglRDAlQkIlMjBqYWlscyUyQyUyMCVEMCVCNCVEMCVCQiVEMSU4RiUyMCVEMCVCRiVEMCVCRSVEMCVCRiVEMSU4MyVEMCVCQiVEMSU4RiVEMSU4MCVEMCVCRCVEMSU4QiVEMSU4NSUyMCVEMCVCRiVEMSU4MCVEMCVCOCVEMCVCQiVEMCVCRSVEMCVCNiVEMCVCNSVEMCVCRCVEMCVCOCVEMCVCOSUyQyUyMCVEMSU4MiVEMCVCMCVEMCVCQSVEMCVCOCVEMSU4NSUyMCVEMCVCQSVEMCVCMCVEMCVCQSUyMEFwYWNoZSUyQyUyME5naW54JTJDJTIwU1NIJUUyJTgwJUE2LiUyMCVEMCVBMSVEMCVCMCVEMCVCQyVEMCVCRSUyMCVEMSU4MSVEMCVCRSVEMCVCMSVEMCVCRSVEMCVCOSUyMCVEMSU4MCVEMCVCMCVEMCVCNyVEMSU4MyVEMCVCQyVEMCVCNSVEMCVCNSVEMSU4MiVEMSU4MSVEMSU4RiUyMCVEMCVCQyVEMCVCRSVEMCVCNiVEMCVCRCVEMCVCRSUyMCVEMSU4MSVEMCVCRSVEMCVCNyVEMCVCNCVEMCVCMCVEMSU4MiVEMSU4QyUyMCVEMCVCOCUyMCVEMSU4MSVEMCVCRSVEMCVCMSVEMSU4MSVEMSU4MiVEMCVCMiVEMCVCNSVEMCVCRCVEMCVCRCVEMSU4QiVEMCVCNSUyMCVEMCVCRiVEMSU4MCVEMCVCMCVEMCVCMiVEMCVCOCVEMCVCQiVEMCVCMCUyMCVEMCVCNCVEMCVCQiVEMSU4RiUyMCVEMCVCRiVEMSU4MCVEMCVCRSVEMCVCOCVEMCVCNyVEMCVCMiVEMCVCRSVEMCVCQiVEMSU4QyVEMCVCRCVEMSU4QiVEMSU4NSUyMCVEMCVCRiVEMSU4MCVEMCVCOCVEMCVCQiVEMCVCRSVEMCVCNiVEMCVCNSVEMCVCRCVEMCVCOCVEMCVCOS4=
Каждое правило для определения атак, полагается на фильтры описанные в каталоге /etc/fail2ban/fileter.d/
, а доступные действия на обнаруженные атаки описаны в каталоге /etc/fail2ban/action.d/
Задействуем встроенные правила для Apache. Открываем ранее созданный файл конфигурации /etc/fail2ban/jail.local
и добавляем в него правила:
# Определение неудачных попыток ввода пароля [apache] enabled = true port = http,https filter = apache-auth logpath = /var/log/apache*/*error.log maxretry = 6 # Определение потенциального сканирования для применения эксплойтов и php уязвимостей [apache-noscript] enabled = true port = http,https filter = apache-noscript logpath = /var/log/apache*/*error.log maxretry = 6 # Определение попыток переполнения Apache [apache-overflows] enabled = true port = http,https filter = apache-overflows logpath = /var/log/apache*/*error.log maxretry = 2 # Определение неудачных попыток в поиске домашней директории на сервере [apache-nohome] enabled = true port = http,https filter = apache-nohome logpath = /var/log/apache*/*error.log maxretry = 2
JUQwJTkyJTIwJUQxJTgzJUQwJUJBJUQwJUIwJUQwJUI3JUQwJUIwJUQwJUJEJUQwJUJEJUQxJThCJUQxJTg1JTIwJUQwJUJGJUQxJTgwJUQwJUIwJUQwJUIyJUQwJUI4JUQwJUJCJUQwJUIwJUQxJTg1JTJDJTIwJUQwJUJEJUQwJUI1JTIwJUQwJUJFJUQwJUJGJUQxJTgwJUQwJUI1JUQwJUI0JUQwJUI1JUQwJUJCJUQxJThGJUQwJUI1JUQxJTgyJUQxJTgxJUQxJThGJTIwJUQwJUI0JUQwJUI1JUQwJUI5JUQxJTgxJUQxJTgyJUQwJUIyJUQwJUI4JUQwJUI1JTJDJTIwJUQwJUJGJUQxJTgwJUQwJUI4JTIwJUQxJTgxJUQxJTgwJUQwJUIwJUQwJUIxJUQwJUIwJUQxJTgyJUQxJThCJUQwJUIyJUQwJUIwJUQwJUJEJUQwJUI4JUQwJUI4JTIwJUQxJTgyJUQxJTgwJUQwJUI4JUQwJUIzJUQwJUIzJUQwJUI1JUQxJTgwJUQwJUIwJTJDJTIwJUQwJUJGJUQwJUJFJUQxJThEJUQxJTgyJUQwJUJFJUQwJUJDJUQxJTgzJTIwJUQwJUJFJUQwJUJEJUQwJUI4JTIwJUQwJUIxJUQxJTgzJUQwJUI0JUQxJTgzJUQxJTgyJTIwJUQwJUIyJUQxJThCJUQwJUJGJUQwJUJFJUQwJUJCJUQwJUJEJUQxJThGJUQxJTgyJUQxJThDJUMyJUEwJUQwJUI0JUQwJUI1JUQwJUI5JUQxJTgxJUQxJTgyJUQwJUIyJUQwJUI4JUQwJUI1JTIwJUQwJUJGJUQwJUJFLSVEMSU4MyVEMCVCQyVEMCVCRSVEMCVCQiVEMSU4NyVEMCVCMCVEMCVCRCVEMCVCOCVEMSU4RS4lMjAlRDAlOTQlRDAlQjUlRDAlQjklRDElODElRDElODIlRDAlQjIlRDAlQjglRDAlQjUlMjAlRDAlQkYlRDAlQkUtJUQxJTgzJUQwJUJDJUQwJUJFJUQwJUJCJUQxJTg3JUQwJUIwJUQwJUJEJUQwJUI4JUQxJThFJTJDJTIwJUQwJUJDJUQwJUJFJUQwJUI2JUQwJUJEJUQwJUJFJTIwJUQwJUJGJUQwJUJFJUQxJTgxJUQwJUJDJUQwJUJFJUQxJTgyJUQxJTgwJUQwJUI1JUQxJTgyJUQxJThDJTIwJUQwJUIyJTIwJUQwJUI3JUQwJUIwJUQwJUIzJUQwJUJCJUQxJThGJUQwJUJEJUQwJUI4JUQxJTgyJUQwJUI1JTIwJUQwJUIyJUMyJUEwJTJGZXRjJTJGZmFpbDJiYW4lMkZqYWlsLmNvbmYlMjAlRDAlQjIlQzIlQTAlRDElODElRDAlQjUlRDAlQkElRDElODYlRDAlQjglRDAlQjglMjAlNUJERUZBVUxUJTVEJTJDJTIwJUQwJUJGJUQwJUIwJUQxJTgwJUQwJUIwJUQwJUJDJUQwJUI1JUQxJTgyJUQxJTgwJUMyJUEwYmFuYWN0aW9uLg==
В моем случае, действие по-умолчанию — это iptables-multiport
(предопределено в /etc/fail2ban/action.d/iptables-multiport.conf
). Это действие блокирует IP адреса используя iptables
с модулем мультипорт multiport module
.
[stextbox id=’warning’]Любой заданный параметр в конфигурации правила перепишет соответствующий параметр по-умолчанию, определённый файлами настроек fail2ban. И наоборот, любой отсутствующий параметр будет взят из значения по-умолчанию, определённый в секции [DEFAULT]
.[/stextbox]
JUQwJTlGJUQwJUJFJUQxJTgxJUQwJUJCJUQwJUI1JTIwJUQwJUIyJUQwJUJBJUQwJUJCJUQxJThFJUQxJTg3JUQwJUI1JUQwJUJEJUQwJUI4JUQxJThGJTIwJUQwJUJGJUQxJTgwJUQwJUIwJUQwJUIyJUQwJUI4JUQwJUJCJTJDJTIwJUQwJUJEJUQwJUI1JUQwJUJFJUQwJUIxJUQxJTg1JUQwJUJFJUQwJUI0JUQwJUI4JUQwJUJDJUQwJUJFJTIwJUQwJUJGJUQwJUI1JUQxJTgwJUQwJUI1JUQwJUI3JUQwJUIwJUQwJUJGJUQxJTgzJUQxJTgxJUQxJTgyJUQwJUI4JUQxJTgyJUQxJThDJTIwZmFpbDJiYW4lMjAlRDAlQjQlRDAlQkIlRDElOEYlMjAlRDAlQjclRDAlQjAlRDAlQjMlRDElODAlRDElODMlRDAlQjclRDAlQkElRDAlQjglMjAlRDAlQkYlRDElODAlRDAlQjAlRDAlQjIlRDAlQjglRDAlQkIlM0E=
service fail2ban restart
Проверка и управления статусами и банами Fail2ban
После активации правил jails
, можно просматривать текущее состояние их, а так же управлять банами в них, при помощи fail2ban-client
.
JUQwJUE3JUQxJTgyJUQwJUJFJUQwJUIxJUQxJThCJTIwJUQwJUJGJUQwJUJFJUQxJTgxJUQwJUJDJUQwJUJFJUQxJTgyJUQxJTgwJUQwJUI1JUQxJTgyJUQxJThDJTIwJUQxJTgxJUQwJUJGJUQwJUI4JUQxJTgxJUQwJUJFJUQwJUJBJTIwJUQwJUIwJUQwJUJBJUQxJTgyJUQwJUI4JUQwJUIyJUQwJUJEJUQxJThCJUQxJTg1JTIwJUQwJUJGJUQxJTgwJUQwJUIwJUQwJUIyJUQwJUI4JUQwJUJCJTIwamFpbHMlM0E=
fail2ban-client status (прим. вывода) Status |- Number of jail: 6 `- Jail list: apache, apache-noscript, apache-modsecurity, apache-overflows, apache-nohome, apache-multiport
JUQwJUE3JUQxJTgyJUQwJUJFJUQwJUIxJUQxJThCJTIwJUQwJUJGJUQwJUJFJUQxJTgxJUQwJUJDJUQwJUJFJUQxJTgyJUQxJTgwJUQwJUI1JUQxJTgyJUQxJThDJTIwJUQxJTgxJUQxJTgyJUQwJUIwJUQxJTgyJUQxJTgzJUQxJTgxJTIwJUQwJUJFJUQwJUJGJUQxJTgwJUQwJUI1JUQwJUI0JUQwJUI1JUQwJUJCJUQxJTkxJUQwJUJEJUQwJUJEJUQwJUJFJUQwJUIzJUQwJUJFJTIwJUQwJUJGJUQxJTgwJUQwJUIwJUQwJUIyJUQwJUI4JUQwJUJCJUQwJUIwJTIwamFpbCUzQQ==
fail2ban-client status [name-of-jail] (прим. вывода) Status for the jail: apache |- filter | |- File list: /var/www/html/log/error.log | |- Currently failed: 0 | `- Total failed: 6 `- action |- Currently banned: 0 | `- IP list: `- Total banned: 1
Для ручного блокировки IP-адреса, в определенном правиле jail
, выполним команду:
fail2ban-client set [name-of-jail] banip [ip-address]
Для разблокировки IP-адреса, в определенном правиле jail
:
fail2ban-client set [name-of-jail] unbanip [ip-address]
Мы рассмотрели как защитить веб-сервер Apache, использую предустановленные правила jail. Но хочу заметить, что сервис fail2ban очень гибок настройке и поэтому в зависимости от типа ваших веб-сервисов и нужд в защите, можно адаптировать существующие правила jail или написать собственные правила jail и фильтры логов.
ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ
Обсуждение
Нет комментариев.