В этой статье давайте затронем тему, волнующую всех владельцев ресурсов, пользующихся VPS-хостингом – коснемся вопросов, связанных с безопасностью эксплуатации серверов, на которых они расположены.
Иногда возникает чрезвычайно досадный эксцесс, когда вы вложили средства, затратили время на создание виртуального проекта, приложили усилия для его размещения и последующей отладки на VPS (виртуальном выделенном сервере). А в один не очень прекрасный момент обнаруживаете, что выделенное вам устройство подверглось взлому. Не стоит отчаиваться, от такой неприятности, к сожалению, абсолютно никто не защищен и причины, приведшие к этому, бывают разные.
Если вы планируете или уже используете VPS-хостинг на Linux, работаете системным администратором, то эта информация для вас. После ее изучения вы разберетесь, как распознать факт взлома, обнаружить причины, приведшие к этому и способы, которые помогут препятствовать возникновению данной ситуации в будущем.
Признаки взлома VDS/VPS
Определить, что сервер подвергся атаке злоумышленников несложно, это будет видно по следующим приметам:
- Нестабильная работа, блокировка VPS.
- Отсутствует доступ к root или правам пользователя.
- Существенное увеличение трафика на сервере.
- Появление следов рассылки спама с VPS.
- Неестественная сетевая активность. На которой остановимся подробней.
В это понятие входят все происходящие процессы, отличающиеся от обычных, например, передача файлов по ssh (сетевому протоколу, позволяющему удаленно управлять системой) или отправка email во время вашего отсутствия.
Еще не наблюдающийся ранее изменение скорости интернет-соединения или рост трафика через некоторые порты.
Если вы обнаружили хоть один из вышеперечисленных признаков, значит, нужно разобраться в причинах, позволивших взломать ваше обслуживающее устройство и выяснить, насколько значительны последствия этого проникновения.
Обнаружение причин, которые способствовали взлому сервера
Основанием того, что к вашему VPS получил доступ кто-то посторонний может оказаться:
- Несоответствующая конфигурация программного обеспечения (ПО) сервера.
- Некачественно придуманные или утерянные пароли для root-доступа.
- Уязвимое (не обновленное) ПО.
Базовые сведения о причине взлома нужно разыскивать в системных логах (файлах содержащих системную информацию) сервера. Если эти данные оказались стерты или удалены, пробуем определить проникновение по ряду косвенных признаков:
- Пытаемся распознать с помощью SSH (безопасной оболочки) удачные попытки авторизации.
- Отслеживаем в панели администратора попытки, использовать его функции, для чего просматриваем файлы journal или log в директории /usr/local/mgr5/var/ispmgr, позволяющие определить изменение параметров учетной записи и безуспешную или удачную авторизацию.
- Анализируем на присутствие подозрительной деятельности history-файл.
- Тестируем VPS на наличие уязвимого или устаревшего ПО для основных дистрибутивов, на сервисе — github.com/Dionach/CMSmap.
При обнаружении скриптов (файлов сценария) или бэкдоров (дефектов алгоритма) нелишним будет определить время их создания. Это можно сделать сканером «Total Av», который сразу на экран выводит необходимые сведения.
Или вручную введя команды:
# stat file.c
# stat - x file.c
Выявление последствий взлома VPS/VDS
Для этого следует проанализировать сервер на активно использующие его ресурсы неизвестные процессы. Это можно сделать вручную, применив команды
top и ps
эти стандартные программы позволят отследить несанкционированное проникновение по потреблению сервером различных ресурсов: использованию памяти, загрузки процессора и прочее.
Зачастую данные процессы имеют сложные для чтения названия или изобилуют ошибками в них. Если получилось отыскать неизвестные программы, следует определить месторасположение исполняемого файла, в этом поможет утилита «find».
А также это можно сделать вручную, для процесса с pid’ом PID, введя команду, показывающую директорию, из окружения которой он был запущен:
# ls /proc/PID/cwd
Далее выполняем следующие действия:
- Проверяем командой
mailq
не спам ли это, почтовую очередь. После чего разбираемся с причиной ее возникновения.
- Анализируем VPS на наличие руткитов (программ скрывающих следы несанкционированного присутствия) и бэкдоров, используя утилиту «RKHunter», она не только проверит основные системные файлы, но и сличит соответствие ПО последним версиям.
- Сканируем сервер на предмет неизвестных, вызывающих подозрение портов и соединений. Для этого существует кроссплатформенная утилита nmap, позволяющая исследовать сеть, которую можно запустить с иной площадки.
Восстановление работы VPS/VDS после взлома
Многие советуют после взлома переустановить систему, но если вышеописанные действия помогли выявить причину уязвимости, то можно ограничиться следующими действиями:
- Определенным IP лимитируем или, вообще, запрещаем доступ в панель.
- В файерволе (интегрированном антивирусном обеспечении) открываем только необходимые для функционирования порты, закрыв все подозрительные и невостребованные.
- Пересматриваем пароль доступа, если он не выдерживает критики, то с помощью специальных генераторов, создаем новый.
- Проводим обновление уязвимого и устаревшего программного обеспечения.
- Выполняем очистку сервера от выявленных бэкдоров и шеллов (чужеродных скриптов позволяющих управлять сервером).
Как предотвратить VPS/VDS от взлома
Существует несколько тривиальных советов, которые позволят свести к минимуму опасность нежелательного проникновения на сервер, для этого необходимо выполнить несложные процедуры, применяемые в среде Linux.
Защита сервера межсетевыми экранами
Самым доступным способом блокирования нежелательного доступа является включение и настройка брандмауэра. Выполняя функции барьера, межсетевой экран будет фильтровать входящий трафик исходя из заданных ему настроек. Это позволит использовать только необходимые вам порты, пресекая ввод нежелательных данных.
Среди применяемых для этого брандмауэров можно выделить: Nftables, Netfilter, IPTables, UFW.
Использование протокола SHH
При отсутствии локального доступа возникает необходимость входа в сервер удаленно. Для этого лучше воспользоваться протоколом SSH, обеспечивающим защиту соединения с узлом несколькими способами. Например: применение SSH-ключей или использование сервиса «Fail2ban».
Внедрение IDS (систем обнаружения вторжения)
Используя такие программные средства можно:
- Обнаружить сетевую атаку или проникновение.
- Сформировать отчет о существующих угрозах.
- Определить была атака внешней или внутренней и прочее.
Систем IDS существует множество, перечислим основные: RkHunter, Bro, Tripwire.
Общие правила безопасности VDS/VPS
Кроме вышеперечисленных советов, существуют общие рекомендации, которые помогут повысить защищенность сервера:
- Иметь локальные бекапы (регулярно создаваемые копии данных).
- Изменять при сохранении, стандартные адреса обращения к файлам сценариев.
- Разрешать только со своего IP доступ к серверу.
- Отслеживать и контролировать возможность доступа к правам на критические фалы конфигурации.
- Выбирая новые компоненты, проверять их на незакрытые уязвимости.
- При выходе обновлений своевременно проводить апдейты скриптов.
- Применять для входа нестандартные логины и комплексные пароли, периодически их меняя.
- Загружать нужное ПО только с официальных ресурсов.
- Использовать протокол SFTP, вместо FTP.
- Правильно настраивать функции среды UMASK (маски режима создания пользовательских файлов).
Заключение
Злоумышленники постоянно ищут уязвимости, позволяющие им получить доступ к серверам. Поэтому необходимо относиться к безопасности VPS серьезно и ответственно. Освещенные выше шаги, позволять понять какие причины и неправильные действия могут привести к взлому сервера и своевременно избежать этих ошибок.