Не давно на данном сервере я заметил что кто-то очень долго пытался сбрутить пароль но так и не удалось пока что. Что бы хоть как-то хацкеру усложнить жизнь вспомнил сразу про очень удобную и легкую программу fail2ban.
Установка проста как и на все Debian подобные дистрибутивы
apt-get install fail2ban
Главный конфиг находится по пути /etc/fail2ban/jail.conf, но как почти везде написано и для конфигурации использую все конфиги внутри jail.d
vi /etc/fail2ban/jail.d/default.conf
Пишем туда следующие
[DEFAULT]
maxretry = 4
findtime = 480
bantime = 720
action = iptables
ignoreip = 127.0.0.1/8
[sshd]
enabled = true
findtime = 120
maxretry = 3
bantime = 43200
maxretry — количество действий, которые разрешено совершить до бана.
findtime — время в секундах, в течение которого учитывается maxretry;
ignoreip — игнорировать защиту, если запросы приходят с перечисленных адресов.
action — действия, которое будет выполняться, если Fail2ban обнаружит активность, соответствующую критериям поиска;
bantime — время, на которое будет блокироваться IP-адрес;
Тут я думаю вы поняли что означает [DEFAULT] и [sshd], да я должен был отделить sshd, но мне почему-то так нравится(возможна и лень), в принципе основную проблему я решил, но зайдя на dmosk, увидел очень интересные конфиги о том как защитить nginx
Открываем конф
vi /etc/nginx/nginx.conf
В секцию http добавляем
limit_req_zone $binary_remote_addr zone=one:10m rate=20r/s;
Дальше открываем конф виртуального хоста и добавляем в секцию location / {
limit_req zone=one burst=50 nodelay;
Тут задается лимит запросов в секунду 20 запросов при всплеске 50. Теперь необходимо задать правило в fail2ban
vi /etc/fail2ban/jail.d/nginxDdos.conf
Добавляем следующие
[nginx-ddos]
enabled = true
port = http,https
filter = nginx-limit-req
action = iptables-multiport[name=nginxddos, port="http,https", protocol=tcp]
logpath = /var/log/nginx/error.log
Все рестартим
nginx -s reload
systemctl reload fail2ban
Проверяем
fail2ban-client status
Status
|- Number of jail: 3
`- Jail list: nginx, nginx-ddos, sshd
Оставьте первый коментарий