Мой веб-сервер постоянно атакован различными IP-адресами. Они пробуют пять паролей, а затем меняют IP-адрес.
Я сделал различные блокировки, такие как использование ssh-ключей, запрет паролей и запрет удаленного входа в систему root.
Что я могу сделать, чтобы избавиться от этих попыток атаки? Если это не так, есть ли какие-то особые средства защиты, которые я должен поставить?
Ответы:
Это действительно факт жизни. Вы можете установить инструменты для фильтрации хостов, которые атакуют вас после нескольких неудачных попыток.
DenyHosts анализирует ваши файлы журнала и автоматически добавляет злоумышленников в ваш
/etc/hosts.deny
файл.Проверьте документацию о том, как настроить его для ваших нужд.
Обновление : некоторые важные моменты, предложенные в комментариях
не забудьте правильно настроить инструменты как DenyHosts, так как вы можете заблокировать себя (например, вы можете настроить машину или сеть, которая никогда не фильтруется)
DenyHosts не повышает безопасность вашей системы: он фильтрует атаки только на уровне IP (это может снизить нагрузку на небольшие машины и уменьшить размер файлов журнала, но не более того)
источник
refs Q1.3
данapt-get install denyhosts
вывело меня из машины.Я следовал этим инструкциям, чтобы добавить 7-секундную задержку к каждой попытке входа по SSH с неверным паролем. Я превратил свой sshd в «брезент» для сканеров грубой силы.
Я также должен добавить, что у меня есть измененный логин tarpit sshd с ошибочными паролями. Это может быть не совсем этично, так как дает пользователю root возможность взглянуть на то, что обычные пользователи неправильно вводят в качестве своих собственных паролей, но, поскольку я единственный «настоящий» пользователь, я думаю, что все в порядке.
Я не запускаю его на нестандартном порте, так как аспект «тарпит» не будет терять никого время.
источник
Если SSH к системе требуется небольшое количество людей, рассмотрите возможность переноса SSH на нестандартный порт (например, 6422, 8080 и т. Д.). Это само по себе значительно сократит количество попыток входа в систему (и, возможно, защитит вас от некоторых непатентованных подключений). Например, червь, основанный на эксплойтах SSH).
источник
Согласен с ответом @ Matteo; то, что вы видите, - это, по сути, тысячи зомби-систем, выполняющих распределенную атаку грубой силой на ваш сервер, потому что на нем запущен веб-сайт, а это значит, что могут быть пользователи, у которых может быть учетная запись для входа, о которой можно догадаться минимальные усилия со стороны сценария, детка - у него есть программа, которая приказывает тысячам зомби делать попытки грубого обращения на нескольких сотнях хостов за раз и просто составляет список успешных возвратов.
Точно так же вы можете иногда видеть много вариантов "http://your.web.host/phpmyadmin/" в ваших
/var/log/apache2/access.log
файлах; Это автоматическое сканирование для наиболее распространенных способов настройки PHPMyAdmin, и оно попытается выполнить ряд известных эксплойтов, если таковой будет найден (поэтому я и стал рекомендовать клиентам использовать сайт PMA, который я лично настроил и будьте в курсе, а не устанавливайте свою собственную версию и забывайте постоянно обновлять ее, но теперь мы находимся на касательной).Помимо отправки оригинальной команды, это даже не стоит ему времени или пропускной способности; это огонь и забудь.
Еще одна очень полезная часть программного обеспечения для подобных ситуаций - fail2ban , который использует iptables для блокировки попыток подключения после нескольких явно ложных входов в систему или других попыток эксплойта.
источник
Попробуй настроить Fail2ban . Он предоставляет очень гибкий способ поиска неудачных попыток и имеет шаблоны для SSH, HTTP и общих служб.
Fail2ban обновит iptables в соответствии с вашими действиями. Мне это нравится.
источник
Вы можете использовать IPTABLES для остановки трафика без запуска демона, такого как Fail2Ban или DenyHosts.
источник
Если вы можете справиться с этим, я считаю, что лучший способ справиться с подобными вещами - это использовать VPN. Таким образом, единственное, на что они могут ориентироваться - это VPN. Не должно быть никаких сервисов, открытых для всего мира, кроме тех, которые необходимы для доступа «всех», таких как ваш веб-сервер. Все остальное должно быть заблокировано брандмауэром. Теперь единственное, что вам действительно нужно беспокоиться о безопасности, это ваш VPN. Если вы можете, получите статический IP-адрес для компьютеров, с которых вы управляете своими серверами, и заблокируйте VPN на этом конкретном IP-адресе. Это действительно единственный способ помешать людям пытаться взломать пароли.
источник
Sshguard прекрасно работает. Я использую это вместе с iptables.
источник