Я очень новичок в сетевом администрировании, поэтому, пожалуйста, учтите, что я еще не настолько опытен.
У меня есть корневой сервер Ubuntu с панелью plesk.
Вчера мы с друзьями заметили, что качество речи на нашем TS3 стало очень плохим. Я отправил несколько пингов на сервер, и произошла очень большая потеря пакетов. После этого я немного погуглил и обнаружил, что есть auth.log
. Я скачал его и немного прокрутил, а потом нашел это:
May 13 10:01:27 rs204941 sshd[9351]: input_userauth_request: invalid user student [preauth]
May 13 10:01:27 rs204941 sshd[9351]: pam_unix(sshd:auth): check pass; user unknown
May 13 10:01:27 rs204941 sshd[9351]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=112.220.198.102
May 13 10:01:29 rs204941 sshd[9351]: Failed password for invalid user student from 112.220.198.102 port 39806 ssh2
May 13 10:01:29 rs204941 sshd[9351]: Received disconnect from 112.220.198.102: 11: Bye Bye [preauth]
May 13 10:01:31 rs204941 sshd[9353]: Invalid user student from 112.220.198.102
Кажется, кто-то пытался войти через SSH много раз. Я немного прокрутил и увидел, что этот кто-то пытается использовать много разных имен пользователей:student, tech, psi, news,...
Сотни этих логинов были отображены в файле.
Я посмотрел статистику трафика на сайте моего центра обработки данных. Это было только на 17 МБ в час. У меня есть 100Mbit Backbone, поэтому сама передача данных, похоже, не является проблемой.
На данный момент я никак не могу получить доступ к серверу.
Мой вопрос: как я могу получить доступ снова, как я могу подавить эту атаку и предотвратить последующие атаки?
Ответы:
Непонятно, почему вы не можете получить доступ к своей учетной записи.
Если ваша машина подвергается атакам или высокой нагрузке, вам следует поговорить с вашим провайдером об ограничении доступа (ограничения IP) или отключении сервера (отключении от Интернета).
Вам также может потребоваться внеполосный доступ, с которым ваш провайдер может помочь.
Если кто-то скомпрометировал ваш сервер, вам может потребоваться восстановление из резервных копий или использование образа восстановления.
лучший способ предотвратить грубые входы в систему?
Не позволяйте им добраться до вашей машины в первую очередь! Есть много способов остановить попытки перебора до того, как они попадут на ваш хост или даже на уровне SSH.
Сказав это, защита вашей операционной системы с помощью что-то вроде fail2ban - отличная идея. http://en.wikipedia.org/wiki/Fail2ban
Существует ряд важных методов обеспечения безопасности, которые следует учитывать для предотвращения грубых входов в систему:
SSH:
Заявка:
источник
Обычно я меняю ssh-порт по умолчанию с 22 на другой, например 1122. Это предотвращает многие автоматические атаки от ботов, но простое сканирование портов может обнаружить его. Так или иначе:
и измените порт 22 на порт 1122 , но этого недостаточно.
Автоматические правила IPTables на брутфорсе
я использую log2iptables https://github.com/theMiddleBlue/log2iptables вместо Fail2ban, потому что это простой скрипт Bash, который анализирует любой файл журнала с помощью регулярного выражения и выполняет iptables. Например, когда происходит 5 совпадений, log2iptables отбрасывает определенный IP-адрес. Это круто, потому что вы используете Telegram API и можете отправить мне сообщение на мой телефон, когда он обнаружит проблему :)
надеюсь, это поможет!
источник
Я только что собрал это, запускаю каждые 15 минут как cronjob и т.д .:
источник
Это мое альтернативное решение для SSH-атак. Идея состоит в том, чтобы продолжать закрывать демон SSH, если он не используется. Нет открытого порта, нет атаки. Можешь попробовать. Это открытый источник https://github.com/indy99/nnet_port_guard
источник
Автоматизированное решение для Centos / RHEL для блокировки плохих актеров
Вот скрипт для Centos, чтобы проверить ssh неудачные входы в систему для недействительных учетных записей пользователей и неверных паролей для действительных учетных записей. Если исходный IP-адрес ударил нас более 3 раз и его еще нет в списке запрещенных, он добавляется в список запрещенных. Я запускаю это каждые 15 минут из crontab рута. Я также запретил вход в систему root через ssh, поэтому эта комбинация хранит все в тайне.
источник
fail2ban
что делает то же самое и проверено в бою.