У меня есть 3 выделенных сервера, все под управлением CentOS, которые физически расположены в Канаде.
На новейшем сервере cPHulk начал обнаруживать (и заносить в черный список) неудачные попытки входа. Это началось в тот день, когда сервер был запущен в сеть. С тех пор я получаю от cPHulk ежедневно 15-30 писем, сообщающих мне, что было «большое количество неудачных попыток входа».
Я заметил, что все попытки исходили из Китая, поэтому я установил csf и полностью заблокировал Китай. Пару дней спустя атаки возобновились, но из других стран. Пока что я заблокировал четыре страны из отчаяния, но я знаю, что это нелегитимное решение. Теперь они исходят из стран, которые я не могу позволить себе заблокировать, потому что я могу ожидать легитимного трафика из этих стран.
Я также получаю атаки с IP-адресов, которые, похоже, не связаны с какой-либо страной, как на этом снимке экрана:
Я не беспокоюсь, что они смогут угадать пароль, поскольку используемый мной пароль очень надежный.
Итак, мои вопросы:почему они нацелились на мой сервер и как они так быстро его нашли? Как мне смягчить эти попытки входа, не блокируя целые страны? И откуда этот IP на скриншоте?Единственное, что я предполагаю, это то, что мне каким-то образом присвоили IP-адрес с ужасной репутацией, но мой опыт и знания администратора сервера немного ограничены, поэтому я даже не знаю, насколько это правдоподобно.
решение1
Как сказал Майкл Хэмптон, они [TM] делают это со всеми. Их скрипты обнаружили IP-адрес, прослушивающий порт, и они бросают туда имена пользователей и пароли, чтобы посмотреть, приживется ли что-нибудь. Этотпредставляет собой карту реальных атак.
Если вас беспокоят электронные письма, вы можете вместо этого внести в белый список разрешенные IP-адреса для входа и настроить отправку вам электронного письма каждый раз, когда кто-то входит в систему с сайта, которого нет в белом списке.
Что касается IP на скриншоте,0.42.0.0:
Адрес 0.0.0.0 может использоваться только как адрес исходящего пакета, когда компьютер изучает, какой IP-адрес ему следует использовать. Он никогда не используется как адрес назначения. Адреса, начинающиеся с "0.", иногда используются для широковещательных рассылок на напрямую подключенные устройства.
Если в журналах вы видите адреса, начинающиеся с «0», вероятно, они используются в вашей сети, которая может представлять собой всего лишь компьютер, подключенный к домашнему шлюзу.
Этот блок был назначен IETF, организацией, которая разрабатывает интернет-протоколы, в стандартном документе RFC 1122 и дополнительно задокументирован в документе «Наиболее современная практика» RFC 6890. IANA указана в качестве регистратора, чтобы было ясно, что эта сеть не назначена какой-либо одной организации.
Эти документы можно найти по адресу: http://datatracker.ietf.org/doc/rfc1122 http://datatracker.ietf.org/doc/rfc6890
решение2
Я удивлен, что никто не поднял эту тему, но радикальный способ защитить себя от этих очень распространенных атак методом перебора — это настроить демона, блокирующего порты, напримерknockd
. Таким образом, если злоумышленник не просканирует вашу машину с помощью определенной последовательности портов в правильном порядке, он даже не найдет открытый порт SSH. Для законных пользователей многие клиенты SSH поддерживают это и могут запускать правильную последовательность портов перед подключением к серверу ssh.
Но очевидно, что нетривиальная аутентификация с работающим джейлом fail2ban и соответствующим временем поиска и бана достаточна почти во всех случаях.
решение3
Если речь идет только о sshd
- посмотрите например здесьhttps://unix.stackexchange.com/questions/21639/internet-ssh-server-security-considerations.
Я должен полагаться на использование имени пользователя и пароля, а не ключей. Для большей безопасности я запускаю sshd
на нестандартном порту, который, кажется, препятствует примерно > 99% атак. Затем установите LoginGraceTime
в своих конфигурациях sshd, скажем, 10
Это означает, что после 3 неудачных попыток следующая попытка может быть сделана только через 10 секунд, что дает любой попытке аутентификации 10 секунд до закрытия соединения. Так что брутфорс больше не нуженчтомощный :) . Также не забудьте установить PermitRootLogin no
.