Назад | Перейти на главную страницу

Я получаю 1 неудачную попытку подключения SSH в секунду с другого IP-адреса. Что я могу сделать?

Я получаю много попыток подключения по SSH с разных IP-адресов на моем сервере (с другим именем пользователя). От 1 до 5 в секунду. Это похоже на атаку грубой силы. Что я могу сделать, чтобы этого не допустить? Заблокировать IP? поменять порт SSH? Что-то другое?

Спасибо!

Пакет DenyHosts находится в свободном доступе и блокирует попытки "ботов" повторять атаки на ваш порт ssh.

http://denyhosts.sourceforge.net/

Отличный софт для их блокировки.

Примечание: по умолчанию он также включен во многие дистрибутивы.

  • Вы можете установить fail2ban. Он служит именно этой цели, блокируя попытки перебора. Он также работает с другими серверами, такими как http / ftp / etc.
  • Вы можете заблокировать ip вручную, но это скорее временное решение.
  • Вы можете изменить порт SSH по своему усмотрению. Если вам не требуется запускать его на стандартном порту, это очень хорошая идея. Большинству злоумышленников не нужно время, чтобы выяснить, работает ли у вас общедоступный ssh-сервер и на каком порту, кроме случаев, когда атака нацелена именно на вас.

Смена порта ssh решает эту проблему довольно хорошо. Никогда не было никаких проблем (просто для брутфорсеров слишком дорого сканировать диапазон, когда так много машин с портом по умолчанию).

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

Вы можете найти http://www.snowman.net/projects/ipt_recent/ полезно для этого - вы можете сделать что-то вроде этого: -

iptables -A INPUT -m recent --rcheck
--seconds 60 -j DROP iptables -A INPUT -i eth0 -d 192.2.0.1 -m recent --set -j DROP

Итак, я сделал комбинацию:

Если вы настраиваете множество отказов с разных IP-адресов, ваш сервер подвергается атаке методом распределенного перебора. некоторые ключевые моменты:

  • если бы вы запускали ssh на порту, отличном от 22, эта атака никогда не была бы нацелена на вас
  • запуск чего-то вроде denyhosts вообще не поможет, потому что такие атаки настроены на достаточно низкое количество попыток на IP - последняя подобная атака, которую я видел, использовала несколько тысяч IP-адресов

Итак, шаги по защите вашего SSH-сервера:

  1. Поменять порт. Каждая автоматическая атака сканирует только порт 22. Если вы запускаете ssh на 22-м порту и начинаете видеть сбои при входе в систему, это просто означает, что в какой-то момент вас перехватили при сканировании порта 22. Если вы используете ssh на порту 12501 и начинаете видеть сбои при входе в систему, у вас гораздо более серьезные проблемы. Если все остальное терпит неудачу, то, что порт 22 не открыт, вы не сможете стать легкой мишенью.
  2. Заблокируйте доступ к порту ssh отовсюду, кроме вашей сети. Если у вас нет статического IP-адреса, настройте knockd или VPN, чтобы вы могли подключаться откуда угодно. Настроить knockd значительно проще, чем настроить VPN.

Требование аутентификации на основе ключей на самом деле не защищает ssh-сервер, а защищает аутентификацию. Если вы полагаетесь только на аутентификацию на основе ключей для защиты сервера, вы открываете себя для любых потенциальных эксплойтов против openssh. Если против openssh был выпущен эксплойт 0day, и вы запускаете ssh на 22-м порту и полагаетесь на ключи для «защиты» вашего сервера, он будет взломан в течение нескольких часов.

Намного лучше вообще вообще не позволять людям подключаться к ssh-серверу.

+1 за смену порта.

Если у вас всегда статический IP-адрес, заблокируйте любой доступ со всего, кроме этого IP-адреса.

Трудно заблокировать IP-адреса, если у вас динамический IP-адрес или ваша атака методом грубой силы исходит с нескольких IP-адресов.

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

еще +1 за смену портов - как минимум. В противном случае настройте VPN и брандмауэр для всего, кроме VPN-соединения. На мой взгляд, это лучшее из обоих миров.

Если это один (или только несколько) удаленных IP-адресов, пытающихся войти в систему, вы можете установить маршрут хоста для IP-адресов со шлюзом 127.0.0.1 (интерфейс обратной связи). Таким образом, они не смогут установить сеанс TCP, но вы рискуете исчерпать ресурсы ядра (хотя при 1-5 попытках в секунду все должно быть в порядке).

На это уже был дан ответ, но просто чтобы добавить то, о чем я не упоминаю ...

Вы можете отключить вход root.

Если бы вы сделали это в Centos, вы бы изменили следующее в / etc / ssh / sshd_config:

PermitRootLogin no

Большинство атак методом грубой силы направлены против пользователя root.

Убедитесь, что у других пользователей системы нет общих имен, например, admin или public, или вашего имени, например, dave. Злоумышленнику придется подобрать имя пользователя и пароль вместе, этого просто не произойдет.