Защита от перебора паролей на сервере по SSH (Fail2ban)

Начну с того что у меня есть тестовый сервер на debian с белым IP по которому я могу на него зайти и что то поделать. Пользуюсь уже несколько лет, время от времени захожу запустить разные тестовые штуки. Ну например запускал, эхо-бота на питоне и там другие штуки.

Так вот в один прекрасный день зашел я на сервер и захотел посмотреть какие внешние подключения сейчас присутствуют, ввел команду netstat t -atupen и увидел забавную вещь, несколько разных подключений по 22 порту, помимо меня. Я решил что сервер взломали и уже нет смысла его пытаться очистить. Я решил его пересоздать.

sudo netstat -atupen

Я пересоздал сервер и решил его оставить на некоторое время, через пару дней зашел и захотел проверить были ли ошибка ввода пароля, поискав в интернете нашел команду sudo grep «Failed password» /var/log/auth.log и мне сервер выдал несколько сотен строчек, сколько влезло на экран, я решил еще раз попробовать , но теперь добавив команду записи в файл sudo grep «Failed password» /var/log/auth.log > failed_password.txt , следом я открыл этот файл с помощью редактора кода и посмотрел сколько там записей, их было 27771. за пару дней IP который нигде не светился ранее пытались взломать почти 28тысяч раз

failed_password.txt

Прикольно. Но надо от этого защищаться, решил поставить fail2ban. Для начала я завел нового пользователя и дал ему права суперпользователя : sudo adduser user и sudo usermod -aG sudo user

Затем запретил заходить под рутом : в файле vim /etc/ssh/sshd_config ищем строку PermitRootLogin yes. Входим в режим редактирования (i), раскомментируем (убираем #) и заменяем yes на no. Сохраняем и выходим. Перезапускаем сервер SSH : sudo service sshd reload

Установка и настройка fail2ban

Для установки Fail2ban пишем: apt-get install fail2ban — сервис автоматически запустится.
Для email-поддержки, устанавливаем Sendmail:  apt-get install sendmail-bin sendmail

Далее, изменения конфигурации надо делать в файле fail2ban.local, определения в котором перезаписывают fail2ban.conf, то скопируем fail2ban.conf в fail2ban.local: sudo cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.local . Я там ничего не менял.

Я делал базовую настройку файла jail.local, сначала я его скопировал: sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Затем в файле сделал некоторые изменения: sudo vim /etc/fail2ban/jail.local
bantime = -6 # чтобы IPшники блокировались навсегда
maxretry = 5 # максимальное число попыток, если вдруг забуду пароль, чуть больше попыток будет
Вроде больше ничего не менял
Перезапустил сервис sudo systemctl reload fail2bansudo
И проверил что он работает sudo systemctl status fail2ban

Посмотреть забаненые адреса можно командой sudo fail2ban-client -v status sshd
На данный момент у меня за месяц накопилось 3200 забаненых IPшников

Вот так вот бывает!
Спасибо за то что дочитали! До новых встреч!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *