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