Демон sshd#
Описание#
sshd (OpenSSH Daemon) - программа-демон для ssh (подробнее см. в «Утилита ssh»). Обеспечивает безопасную связь между двумя недоверенными хостами по незащищенной сети.
sshd прослушивает подключения от клиентов, в обычной конфигурации запускается при загрузке с /etc/rc. sshd запускает новый демон для каждого входящего соединения. Новые демоны управляют обменом ключами, аутентификацией, выполнением команд, обменом данными и проч.
sshd можно настроить с помощью параметров командной строки или файла конфигурации (по умолчанию sshd_config - подробнее см. в «Файл /etc/ssh/sshd_config»). Параметры командной строки переопределяют значения, указанные в файле конфигурации. sshd перечитывает файл конфигурации, когда получает сигнал SIGHUP, и выполняется с именем и параметрами, с которыми он был запущен, например, /usr/sbin/sshd.
Синтаксис демона:
sshd <options>
Где <options> - передаваемые демону опции, при необходимости - с соответствующими аргументами.
Опции#
Часто используемые опции утилиты представлены в таблице ниже.
Опция |
Описание |
|---|---|
|
Использовать только адреса IPv4 |
|
Использовать только адреса IPv6 |
|
Указать путь к файлу сертификата для идентификации |
|
Отключить режим демона для |
|
Включить режим отладки. Подробный вывод направляется в стандартный поток ошибок без перевода в фоновый режим. При этом не будет порождаться дочерний процесс, и будет обрабатываться только одно соединение. Опция предназначена только для отладки на сервере. Несколько опций |
|
Перенаправить журналы отладки в указанный файл вместо системного журнала |
|
Перенаправить журналы отладки в стандартный поток ошибок |
|
Указать имя конфигурационного файла |
|
Задать клиентам время для аутентификации. Значение по умолчанию - 120 секунд. Если не удается аутентифицировать пользователя в течение указанного времени, сервер отключается и завершает работу. Нулевое значение указывает на отсутствие временного ограничения для аутентификации |
|
Указать файл, из которого считывается ключ хоста. Этот параметр необходимо указать, если |
|
Указать параметры в формате, используемом в файле конфигурации. Требуется для указания дополнительных настроек, для которых нет опций командной строки |
|
Указать порт, через который сервер будет прослушивать соединения (по умолчанию |
|
Включить «тихий режим». При указании данной опции в системный журнал ничего не записывается. Обычно регистрируются начало, аутентификация и завершение каждого подключения |
|
Включить расширенный тестовый режим, в котором проверяется корректность файла конфигурации, эффективная конфигурация выводится в стандартный поток вывода |
|
Включить тестовый режим. Проверяется только наличие файла конфигурации и работоспособность ключей. |
Отображение использованного имени пользователя в журнале аудита при неудачной попытке входа в систему через SSH#
В целях обеспечения безопасности при неудачной попытке входа в систему через ssh в журнале аудита отображается использованное имя пользователя. Пример сообщения о попытке войти в систему пользователем, учетная запись которого отсутствует в системе:
type=USER_LOGIN msg=audit(1710405845.689:26165): pid=726595 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:sshd_t:s0-s0:c0.c1023 msg='op=login acct="(unknown)" exe="/usr/sbin/sshd" hostname=? addr=hh.hh.hh.hh terminal=ssh res=failed' UID="root" AUID="unset"
Где запись acct="(unknown)" информирует, что использованного имени пользователя в системе нет.
sshd проверяет валидность имени пользователя, который подключается к серверу SSH. Валидация включает в себя, в том числе, контроль задания имени пользователя, соответствия его критериям безопасности и присутствия его в системе.
В целях тестирования возможен отказ от проверки имени на валидность посредством перенастройки соответствующих директив конфигурационного файла (например, AllowUsers, DenyUsers, AllowGroups, DenyGroups). Это позволит пропустить имя пользователя, отсутствующее в системе, и проверить запись сообщений аудита.
Для записи информации о пользователе, осуществляющем попытку подключения по SSH, в журнал аудита /var/log/audit/audit.log необходимо, чтобы была включена функция конфигурации audit_username. Для входа по паролю – директива PasswordAuthentication. Сценарий проверки отображения события (попытки входа пользователем с учетной записью, отсутствующей в системе) и использованного имени пользователя в журнале аудита:
Выберите произвольное имя пользователя, которого нет в системе, например,
random_user, и попытайтесь подключиться по SSH к удаленному хосту с адресомhh.hh.hh.hh:ssh random_user@hh.hh.hh.hhПопытка входа завершится неудачей.
Проверьте записи о попытках входа (тип событий
USER_LOGIN) в журнале аудита:ausearch --ts today -m USER_LOGINПодробнее про
ausearchсм. в «Утилита ausearch». Пример записи из вывода команды:type=USER_LOGIN msg=audit(1710410303.658:463): pid=3716 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:sshd_t:s0-s0:c0.c1023 msg='op=login acct="random_user" exe="/usr/sbin/sshd" hostname=? addr=hh.hh.hh.hh terminal=ssh res=failed' UID="root" AUID="unset" prev_crc32=5c832c35 crc32=a8f72eecВ представленном примере отражено использованное имя пользователя -
acct="random_user", а также результат -res=failed, информирующий о неудачной попытке входа.
Примеры использования#
Для запуска
sshdв фоновом режиме воспользуйтесь командой:sshdДля запуска
sshdна переднем плане используйте команду:sshd -DДля запуска
sshdв режиме отладки (с подробным выводом) воспользуйтесь командой:sshd -D -dДля запуска
sshdна портеport1используйте команду:sshd -p port1
Дополнительная информация#
Дополнительную информацию можно получить, выполнив команду:
man sshd