Я получаю много попыток подключения по SSH с разных IP-адресов на моем сервере (с другим именем пользователя). От 1 до 5 в секунду. Это похоже на атаку грубой силы. Что я могу сделать, чтобы этого не допустить? Заблокировать IP? поменять порт SSH? Что-то другое?
Спасибо!
Пакет DenyHosts находится в свободном доступе и блокирует попытки "ботов" повторять атаки на ваш порт ssh.
http://denyhosts.sourceforge.net/
Отличный софт для их блокировки.
Примечание: по умолчанию он также включен во многие дистрибутивы.
Смена порта 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-сервера:
Требование аутентификации на основе ключей на самом деле не защищает 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. Злоумышленнику придется подобрать имя пользователя и пароль вместе, этого просто не произойдет.