противодействие атакам на 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 на вашем сервере.
- Измените порт демона SSH на нестандартный. Это снизит вероятность обнаружения службы.
- Закройте доступ к службе SSH со всех адресов кроме списка разрешенных.
Изменение порта
Обычно для службы SSH используется порт 22.
Именно на этот порт направлены большинство атак. В других случаях производится предварительное сканирование портов, но для сканирования всех портов нужно много времени и системных ресурсов. Потому верхняя часть диапазона сканируется намного реже.
Для SSH можно использовать любой незанятый порт в диапазоне 1025-65000. Выберите что-нибудь в верхнем краю диапазона, но этот номер необходимо будет запомнить и сообщать службе поддержки при возникновении проблем.
Для изменения необходимо изменить переменную 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
Описывать подробно настройку вашего фаервола я не буду. Неопытному человеку это не принесет пользы.
Если вы не знаете как это делать, обратитесь к специалисту.