Возможный дубликат:
Стоит ли блокировать неудачные попытки входа в систему
Нормально ли получать сотни попыток взлома в день?
Я управляю несколькими совершенно разными корневыми серверами в разных центрах обработки данных и замечаю довольно большое количество неудачных попыток входа в систему по SSH на большинстве из них. Вот снимок за последние три дня:
Нет регулярного шаблона, но обычно я регистрирую несколько сотен попыток в день. Мне кажется, что ботнеты случайно пытаются проникнуть на чужие серверы. Я использую довольно безопасные пароли, но все же: стоит ли мне беспокоиться или что-то делать с этим?
Лучше всего было бы изменить порт SSH, но это возможно не во всех случаях.
В любом случае, это нормально ?
NB: Вход в систему PublicKey соответствует ожиданиям.
Что вы можете сделать:
Можно настроить правила iptables для блокировки ssh-атак, эти правила разрешат не более 3 соединений в минуту с любого хоста и будут блокировать хост на другую минуту, если эта скорость превышена.
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m latest --set --name SSH -j ACCEPT iptables -A INPUT -p tcp --dport 22 -m недавний --update --seconds 60 --hitcount 4 --rttl --name SSH -j LOG --log-prefix "SSH_brute_force" iptables -A INPUT -p tcp --dport 22 -m latest --update --seconds 60 --hitcount 4 --rttl --name SSH -j DROP
Блокировать через системные журналы
2.1 sshdfilter : использует iptables для блокировки (т. Е. Динамически добавляет настраиваемые правила брандмауэра для блокировки конкретного злоумышленника).
2.2 Fail2Ban : это скрипт Python, который добавляет настраиваемые правила брандмауэра для блокировки атакующего.
2.3 DenyHosts : не использует правила брандмауэра для блокировки атаки. Скорее, он записывает правила блокировки в /etc/hosts.deny.[12102 providedUse Port Knocking (например, knockd )
Лучшее решение, используйте RSA AUTHENTICATION:
Если вы не используете пароли, но только ключи RSA для аутентификации, поиск действительного пароля методом перебора, очевидно, будет бесполезным.
Примечание: вы можете объединить некоторые из этих советов,
Работает на порту ssh по умолчанию и на общедоступном IP-адресе и, вероятно, открыт для подключений от всех. Да, это обычное дело. Если вы используете безопасные и надежные пароли, вы можете быть в некоторой степени в безопасности, но опять же, вы никогда не узнаете.
Необходимо сделать следующее:
Отличный способ остановить эти попытки - установить блокировку порта .
Вот некоторые инструменты для этого: knockd (C), fwknop (C), KnockKnock (Python) и KnockKnockServer (Java), и многие другие.
Блокировка портов может держать ваш SSH-порт закрытым для внешнего доступа до тех пор, пока не будет получен «секретный удар» или авторизация одиночного пакета.
После того, как ваш сервер получит секретный удар, брандмауэр разрешит новые SSH-соединения на пару секунд, что позволит вам установить соединение.
Это может вызвать небольшие неудобства, но у вас больше не будет неудачных попыток входа в систему из ботнетов.
Изображение предоставлено: cipherdyne.org
Измените порт, но также используйте правило, запрещающее IP-адреса, которые пытаются войти в систему и терпят неудачу несколько раз. Кроме того, рассмотрите возможность входа в систему только с определенных IP-адресов и не разрешайте вход в систему с правами root. Убедитесь, что пользователю нужно повысить уровень до администратора, чтобы что-то делать.
И вы, вероятно, можете сделать лучше, чем "весьма безопасные пароли". Поиск в Google покажет вам несколько довольно простых способов сделать ваши SSH-соединения более безопасными.
Без обид, но если вы отвечаете за управление этими серверами, вы уже должны знать эти вещи. Я не упомянул какие-либо конкретные пакеты для загрузки, но их легко найти.
Несколько вещей, которые вы могли / должны сделать:
Если у вас есть сервер, доступный в Интернете, вы столкнетесь с этим. Большинство из них - это просто сценарии, пытающиеся выполнить несколько комбо. Я поместил эту команду в свой MOTD, чтобы отслеживать ее.
echo -ne "Total failed attempts: $(grep 'Failed password' /var/log/auth.log* | wc -l) failed attempts"
Вы должны быть обеспокоены и предпринять шаги по усилению защиты ваших серверов.
Дальнейшие действия в отношении cop1152's ответ: