Гадание паролей на SSH сервере не сработает?

2588
RamyenHead

Я использую SSH сервер на моем персональном компьютере. В журнале было много людей (или ботов?), Которые неоднократно пытались войти на мой сервер (то есть до того, как я изменил порт по умолчанию), что меня немного взволновало. Я был обеспокоен их словарными атаками или перебором паролей.

Но затем, если вы введете неправильный пароль (или неправильное имя пользователя), сервер подождет около 2 секунд, прежде чем снова запросит пароль. Таким образом, злоумышленник может использовать один пароль за 2 секунды. Поэтому я пришел к выводу, что эти атаки не представляют большой угрозы (если ваш пароль не состоит из словарных слов). Я прав?

2
Следует переместить это на Serverfault.com ConcernedOfTunbridgeWells 14 лет назад 0
Я не уверен, но я полагаю, что 2-секундная задержка - это просто для каждого соединения ... поэтому, если вы открыли тысячу сокетов на одном компьютере, вы все равно можете сделать 1000 попыток за 2 секунды вместо одной. 12 лет назад 0

4 ответа на вопрос

12
c089

Грубая сила SSH для корневых паролей, которые на самом деле не очень просты (например, "бог";)), вероятно, никогда не получится. Однако, так много людей пробуют это, я думаю, что достаточно людей, использующих достаточно слабый пароль, что имеет смысл попробовать злоумышленникам.

Так что да, если вы используете надежные пароли, вы, вероятно, в безопасности, однако есть несколько вещей, которые вы можете сделать, чтобы улучшить свою безопасность еще больше (и сделать возможным смеяться над попытками входа в систему в ваших лог-файлах по 50 тыс. Каждый день):

  • используйте fail2ban для автоматической блокировки злоумышленников (я думаю, это создает правила iptables на основе ваших лог-файлов).
  • полностью отключите учетную запись root с помощью «passwd -l» и используйте вместо этого sudo (убедитесь, что включили и протестировали sudo перед выполнением этой команды!)
  • и даже лучше: отключите логин паролей через SSH в sshd_config (PasswordAuthentication no) и используйте вместо этого файлы ключей.
+1 для ключевых файлов. Определенно лучше, чем пароли. Joey 14 лет назад 1
Если вы не полностью отключите вход в систему root, по крайней мере отключите SSH-доступ root. И если вы не используете только доступ на основе ключей, убедитесь, что * все * пароли достаточно сложны, чтобы их нельзя было угадать методами перебора. David Spillett 14 лет назад 5
4
timday

Я устанавливаю DenyHosts на любые машины с ssh-серверами, выходящими в Интернет. Он автоматически добавляет исходные IP-адреса неоднократно неудачных входов в систему в hosts.deny.

3
mark

Предложения в других ответах по дальнейшей защите себя при использовании SSH очень разумны.

Но, в частности, к вашему вопросу, атаки методом «грубой силы» от одного пользователя вряд ли будут эффективны, за исключением общих комбинаций имени пользователя / пароля или словарных слов. Надежность буквенно-цифрового пароля из 9 букв займет около 6 миллионов лет.

Однако можно также атаковать, скажем, большой скоординированный ботнет, который позволяет минимизировать влияние двухсекундной задержки на сервер для каждого пользователя. Один миллион ботов (очевидно, не совсем вероятно) сократит ваше время взлома до гораздо более страшных 6,4 года

надеюсь, вы заметите 500 000 запросов в секунду когда-нибудь в первые несколько месяцев ... nickf 14 лет назад 4
2
nik

Есть еще кое-что, что вы можете сделать с BlockSSHd .

BlockSSHD - это сценарий Perl, основанный на BruteForceBlocker v1.2.3, который динамически добавляет правила IPTables для Linux и правила брандмауэра pf для BSD, которые блокируют атаки с использованием грубой силы SSH. Он также может обнаружить сбои входа ProFTPd.

Это довольно аккуратно и гибко.

Сценарий BlockSSHD может разблокировать IP-адрес после определенного периода. Это включено в файле конфигурации blocksshd.conf с помощью опции unblock и с периодом, установленным с помощью опции unblock_timeout.

Сценарий BlockSSHD также может регистрировать заблокированные в файле IP-адреса и повторно применять эти заблокированные IP-адреса при повторном запуске сценария. Это позволяет восстановить ранее заблокированные IP-адреса после перезапуска или после сброса правил брандмауэра.

Недавний digg- 6 способов сделать ваши SSH логины более безопасными .

  1. Выберите надежные пароли
    • Отключить прямой root-вход
    • Отключить логин на основе пароля
    • Запустите SSH на нестандартном порту
    • Запрет постоянных преступников (способ iptables)
    • Основанный на Perl BlockSSHd
    • Основанный на Python Fail2Ban
    • Ограничьте скорость соединений ( снова iptables )

Все еще параноик? Пользователь двухфакторной аутентификации,
Закрепить развертывание SSH с WiKID двухфакторной аутентификацией

Похожие вопросы