Каковы лучшие инструменты для предотвращения атак грубой силы на ssh и FTP на серверах Linux?
Проверьте fail2ban. http://www.fail2ban.org/wiki/index.php/Main_Page это очень удобно для предотвращения атак грубой силы на серверах http, ftp, stmp и т. д.
Это не всем на вкус, но мне очень нравится DenyHosts за широкую блокировку автоматических зондов для sshd:
http://denyhosts.sourceforge.net/
Я использую его в очень параноидальном режиме, если вы его запутаете - вы получите запись в hosts.deny с префиксом ALL :, а не только с SSH: one. Вы можете разрешить denyhosts периодически очищать запрещенный список, если хотите.
Советы по SSH:
- Установить PermitRootLogin нет
- Установить MaxStartups 1
- Установите MaxAuthTries 3 (или меньше)
Это для аутентификации по паролю. Я бы избегал атаки грубой силы с использованием RSAAuthentication с открытыми ключами с хорошей парольной фразой, доступной только для тех пользователей, которых я хочу.
Также измените порт по умолчанию, используемый для SSH, и используйте другой порт, отличный от 22 в свободном доступном диапазоне, и установите iptables для фильтрации входящего трафика.
Вы также можете использовать iptables для ограничения скорости для любого порта, который хотите. Это очень гибко.
Я использовал OSSEC, который не так уж сложно установить и настроить.
«Вы также можете подумать о защите своего домена на уровне DNS. Что-то вроде CloudFlare»
На самом деле мы не можем проксировать трафик через эти порты (SSH, ftp), потому что мы работаем только с веб-трафиком (порты 80 и 443). Вы можете посмотреть на что-то вроде Купол9.
Сначала проверьте, есть ли модуль или нет /lib/security/pam_tally2.so
Чтобы защитить пользователя от атаки грубой силы: Затем отредактируйте /etc/pam.d/system-auth
Добавьте в последнюю строку:
auth required pam_tally2.so deny=3 unlock_time=3600
account required pam_tally2.so
Откройте другой терминал и проверьте, используя имя пользователя и неправильный пароль.
Чтобы заблокировать конкретного пользователя: отредактируйте /etc/pam.d/system-auth
и добавить even_deny_root
к первой строке:
auth required pam_tally2.so deny=3 unlock_time=3600 even_deny_root
account required pam_tally2.so
Откройте другой терминал и проверьте, используя имя пользователя и неправильный пароль.
Ноты:
pam_tally2
-> эта команда используется для хранения количества записей об отказах
pam_tally2 -u kannan
-> просматривать только записи о сбоях пользователей каннана
pam_tally2 -u username –r
-> сбросить заблокированного вручную пользователя
Сам не использовал, но ssh охранник выглядит интересно.
используйте «последний» модуль Netfilter и подавите его в зародыше на уровне ядра. Также это решение не зависит от приложения (т.е. не зависит от конфигурации приложения).
Вы также можете подумать о защите своего домена на уровне DNS. Что-то вроде CloudFlare Или Инкапсула.
Оба они предлагают бесплатные планы, но в конечном итоге им платят за услуги.
Я использую бесплатный сервис для своего сайта. Он не блокирует все атаки, но все дело в уровнях безопасности.
Попробуйте прочитать Linux Security HOWTO из TLDP а затем, возможно, уточните свой вопрос, если он еще не дает ответа.
РЕДАКТИРОВАТЬ (после обновления вопроса): В дополнение ко всему вышеперечисленному (наиболее классифицируемому как обнаружение вторжений) существует также блокировка портов.
Он не предотвращает атаки методом грубой силы, но укрепляет систему несколькими способами.
я нашел этот Ответ на критику системы достаточно информативен.