Если у вас есть серверы Linux в вашем дата центре или они размещены на облачном сервере (таком как AWS, Google Cloud или Azure), вы не можете гарантировать, что они безопасны только из-за развернутой вами операционной системы.
Хотя Linux – одна из самых безопасных операционных систем на рынке, она не идеальна.
Фактически, на эту платформу наблюдается рост атак, которые будут продолжать расти по мере роста популярности Linux.
Что делать?
Если вы подозреваете, что один из ваших серверов может быть атакован, вам необходимо проверить его.
Но как?
В этой статье я собираюсь показать вам несколько команд, которые помогут вам определить, подвергается ли ваш сервер атаке отказа в обслуживании (DoS), которая исходит с одного IP-адреса и пытается вывести из строя веб-сайт, чтобы отобразить, что его сервер недоступен.
Есть еще одна форма этой атаки – распределенный отказ в обслуживании (DDoS), которая исходит из нескольких источников.
Давайте узнаем, как определить, является ли ваш сервер Linux целью DoS-атаки.
Что вам понадобится
Единственное, что вам понадобится для этого, – это сервер Linux и пользователь с привилегиями sudo.
Я буду демонстрировать на Ubuntu Server 20.04.
Мы собираемся использовать инструмент netstat, чтобы узнать, какие IP-адреса в настоящее время подключены к вашему серверу.
Чтобы установить netstat в Ubuntu, вы фактически устанавливаете net-tools, например:
sudo apt-get install net-tools -y
Если вы используете CentOS или установку на основе Red Hat, netstat уже должен быть установлен.
Как проверить загрузку вашего сервера
Первое, что мы собираемся сделать, это проверить загрузку нашего сервера.
Команда, которую мы будем использовать для этого, вернет количество логических процессоров (потоков).
На сервере это число должно быть довольно низким, но это зависит от того, что у вас запущено.
Если вы знаете, что все в порядке, убедитесь, что ваше число не зашкаливает и зафиксируйте показатель.
Если вы подозреваете, что что-то происходит, снова запустите проверку потока и сравните результаты.
Чтобы проверить количество логических процессоров, введите команду:
grep processor /proc/cpuinfo | wc -l
Если это число значительно выше вашего базового уровня, у вас могут быть проблемы.
Например, на моем Pop! _OS у меня есть 16 потоков, но на сервере Ubuntu с хостингом Nextcloud у меня их всего два.
Если бы любое из этих чисел удвоилось, я мог бы подвергнуться DDoS-атаке.
Как проверить загрузку вашей сети
Далее мы проверим нагрузку на нашу сеть.
Это можно сделать с помощью ряда инструментов, но я выбираю nload.
Чтобы установить nload, введите команду:
sudo apt-get install nload -y
В CentOS эта команда будет:
sudo dnf install nload -y
Чтобы запустить инструмент, просто введите команду:
nload
Если эта нагрузка значительно выше, чем вы думаете, вы можете подвергнуться нападению.
Как узнать, какие IP-адреса подключены к вашему серверу
Следующее, что вам нужно сделать, это выяснить, какие IP-адреса подключены к вашему серверу.
Для этого мы будем использовать netstat таким образом:
netstat -ntu|awk '{print $5}'|cut -d: -f1 -s|sort|uniq -c|sort -nk1 -r
В выходных данных приведенной выше команды будет указан каждый IP-адрес, подключенный к серверу, и количество экземпляров каждого из них.
Не забудьте внимательно просмотреть этот список. Если вы видите IP-адрес с большим количеством экземпляров (более 100), вероятность того, что адрес является виновником нагрузки, довольно высока.
Как только вы будете уверены в виновности, вы можете заблокировать IP-адрес с помощью команды:
sudo route add ADDRESS reject
Где ADDRESS – IP-адрес подозреваемого.
На этом этапе вернитесь и перепроверьте свои потоки, подключенные IP-адреса и сетевую нагрузку, чтобы увидеть, смягчили ли вы эту DoS-атаку.
Если это так, пришло время сообщить о предполагаемом IP-адресе и, вероятно, полностью запретить его доступ в вашу сеть.
В следующий раз я покажу вам процесс предотвращения DDoS-атаки.
Оставайтесь с нами!