противодействие атакам на ssh

Применимость: Linux

Слова для поиска: sshd, уязвимость


Задача:

OpenNET сообщает:

Третий день в Сети наблюдается массовый взлом серверов на базе Linux. Имеется подозрение, что атака совершается через неисправленную 0-day уязвимость в одном из доступных по сети сервисов. Среди взломанных систем отмечаются серверы на базе CentOS и другие дистрибутивы на основе пакетной базы RHEL 5 и 6, на которых установлены все доступные обновления. На многих взломанных системах используются панели управления cPanel, DirectAdmin, ISP config и Plesk, но пока не ясно могут ли они быть источником проникновения.

Причины пока не выяснены и программных заплаток (патчей) для закрытия этой уязвимости нет.

Проверка

Проверьте наличие этих файлов на вашем сервере:

ls -la /lib64/libkeyutils.so.1.9
ls -la /lib/libkeyutils.so.1.9

Если файла нет, то вы получите сообщение в ответ на выполнение команды

ls: cannot access /lib64/libkeyutils.so.1.9: No such file or directory

или

ls: cannot access /lib/libkeyutils.so.1.9: No such file or directory

Если файл найден, то проверьте принадлежность этих файлов установленным пакетам.

rpm -qf /lib64/libkeyutils.so.1.9
rpm -qf /lib/libkeyutils.so.1.9

Сообщите о факте обнаружения в службу поддержки.

Защита:

Так как взламывается служба SSH, то надежнее всего просто отключить эту службу и включать только тогда когда она нужна.

Управлять службой можно через KVM для выделенных серверов.

Для виртуальных серверов это можно делать через KVM-консоль в панели управления:

в или через меню управления службами в панели управления ISPManager и т.п. .

Для управления вы должны авторизоваться, зайти в консоль и выполнить команды:

Для CentOS: остановка слубы

service sshd stop

запуск службы

service sshd start

Для Debian или Ubuntu: остановка службы:

service ssh stop

запуск службы

service ssh start

Если отключение службы невозможно, необходимо всеми доступными средствами ограничить доступ к службе SSH на вашем сервере.

  1. Измените порт демона SSH на нестандартный. Это снизит вероятность обнаружения службы.
  2. Закройте доступ к службе SSH со всех адресов кроме списка разрешенных.

Изменение порта

Обычно для службы SSH используется порт 22.

Именно на этот порт направлены большинство атак. В других случаях производится предварительное сканирование портов, но для сканирования всех портов нужно много времени и системных ресурсов. Потому верхняя часть диапазона сканируется намного реже.

Для SSH можно использовать любой незанятый порт в диапазоне 1025-65000. Выберите что-нибудь в верхнем краю диапазона, но этот номер необходимо будет запомнить и сообщать службе поддержки при возникновении проблем.

Помните, что злоумышленники хорошие психологи. Распространенная ошибка изменить номер порта на 22222 или 22022; выберите номер, который трудно угадать.

Для изменения необходимо изменить переменную Port в главном конфигурационном файле ssh демона

/etc/ssh/sshd_config

Например, для того, чтобы он работал на порте 54340:

Port 54340

Убедитесь, что выбранный вами новый порт разрешен на вашем фаерволе. Если это не так, то вы потеряете доступ.

После этого необходимо перезагрузить демон ssh:

Для CentOS:
service sshd restart
Для Debian или Ubuntu:
service ssh restart

Ограничение доступа к SSH

Данная методика может быть использована только опытным администратором, и мы настойчиво рекомендуем использовать это, только если вы полностью уверенны в ваших действиях.

В случае ошибочных действий с вы можете заблокировать себе доступ к вашему серверу.

К сожалению в большинстве случаев для выхода в интернет используются динамические адреса. То есть каждый следующий раз вы можете получать разный адрес.

Но для случаев когда используется фиксированный адрес или можно хотя бы задать адрес сети из которой вам выделяется адрес, то эта методика может быть использована.

В разных системах и дистрибутивах могут использоваться разные средства управления системный фаерволом (брандмаером).

Общий принцип работы должен заключаться в том, что должен действовать запрет на доступ к порту ssh со всех адресов кроме разрешенных.

Узнать спиок адресов с которых выполнялся вход по SSH:

last -a -w root

Описывать подробно настройку вашего фаервола я не буду. Неопытному человеку это не принесет пользы.

Если вы не знаете как это делать, обратитесь к специалисту.

Смотрите также: