Введение
Не успел я установить систему, настроить ее, установить нужный софт и т.д. как тут же ко мне ломанулись все кому не лень брутфорсить пароль к root
пользователю.
Хостинг провайдер известный – Hetzner Online AG, поэтому конечно же все ip-range
всем ботам и их ботнет сетям давно известны, осталось только просканировать новые/старые хосты, на наличие открытых портов, и, в случае найденного – попробовать подобрать пароль.
В общем, суть вопроса понятна:
Как защитить себя от подобных атак?
Немного погуглив, пообщавшись со знакомыми админами, было принято решение воспользоваться функционалом fail2ban
, в связке с firewalld
Итак, начнем:
# обновимся yum -y update # Если еще не установлен, устанавливаем firewalld yum -y install firewalld # Для начала установим следующие пакеты yum -y install ipset systemd-python # Теперь нам нужно установить сам fail2ban, но при этом укажем # из какого именно репозитория мы его будем устанавливать # уточню также, что вместе с ним установятся также и зависимые утилиты, # такие как: fail2ban-firewalld, fail2ban-sendmail, fail2ban-server yum --disablerepo=* --enablerepo=epel -y install fail2ban fail2ban-systemd # запустим утилиту и активируем при запуске системы systemctl start fail2ban systemctl enable fail2ban
Как настроить firewalld
читайте здесь
Отключаем SELinux
setenforce 0 sed -i "s/SELINUX=.*/SELINUX=disabled/" /etc/selinux/config
Проверить работоспособность сервиса fail2ban
можно следующей командой:
systemctl status fail2ban
Конфигурация
Создадим файл sshd.local
в директории /etc/fail2ban/jail.d
Откроем этот файл и вставим такие строки:
[DEFAULT] findtime = 3600 # Вы указываете свой имейл, куда будут отправляться notifications destemail = [email protected] # Опять же, у вас здесь ваш имейл, который будет указан в качестве отправителя sender = [email protected] # Главный наш jail [sshd] enabled = true # Как оказалось, следующая строка уже не понадобится #action = firewallcmd-ipset bantime = 3600 # port - только для того, если у вас порт SSH не 22, указываем свой port = 1234
Итак, вроде бы всё, смотрим пишется ли что-то в логи fail2ban
tail /etc/log/fail2ban.log
За подробными инструкциями fail2ban
обращайтесь сюда
Экспериментируйте – и доиграетесь 🙂
Всем удачи!