Данной записью, я опишу процесс защиты SSH подключения от подбора пароля. Простое и элегантное решение.
Пример: ваш сервер доступен по Интернету по «белому айпи». Закрыв все порты, кроме используемых, мы мучаемся — закрывать ли порт доступа к серверу по ssh (22 по дефолту)? Сам по себе открытый порт — огромная дыра в безопасности.. да и еще и доступ по SSH, вах! Однако, если ваш пароль рандомно сгенерированный, хотя бы 128-разрядным шестнадцатеричным ключем — то вам ничего не угрожает. А если поставить fail2ban, который будет банить по IP, сразу после неправильной попытки логина — так и подавно.
Итак… ставим и настраиваем fail2ban:
sudo apt-get install fail2ban
Делаем копию конфига:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Правим его:
sudo nano /etc/fail2ban/jail.local
В конфиге, в общем то, все понятно. Все предельно подробно задокументировано в нем же, в комментах. Мы остановимся лишь на необходимых нам моментах. После установки fail2ban защита ssh включена по умолчанию, ищем секцию [ssh] и правим ее:
enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 1 findtime = 300 bantime = 10800
Что означает:
Если в течении 300 секунд (5 минут) было сделано больше 1-й попытки входа, то следует бан по ip на 10800 (3 часа).
Перезапускаем сервис:
sudo service fail2ban restart
Смотрим логи:
tail /var/log/fail2ban.log
Все)
Приветствую.
Имхо, думаю три попытки стандартно можно оставить.
Создавать фильтра можно на разные порты, например http, а также и каждые правила их обработки?
Прив!)
У Убунте по умолчанию не 3 попытки для подключения к SSH, а 6. Итого 6/3 = 2. Оставляя 1 попытку в fail2ban в итоге получается 2 попытки по ssh (т.е. лень конфиг самого SSH править, пусть уж будет 2).
В конфиге предусмотрена защита и http и ftp подключений, да.