Назад | Перейти на главную страницу

SSH - единицы зависают при «Входе в интерактивный сеанс» (не DNS; возможно, связано с SELinux)

У меня проблема с CentOS 6.7, где вход по SSH на 1 с больше, чем на любых машинах без версии 6.7 в этой сети (например, 7.2, 5.11). Запуск отладки на стороне клиента показал зависание при «Входе в интерактивный сеанс».

Команда, на которой я основываю этот тест, - time ssh <host> true с моего ноутбука, используя ключи SSH.

Я уже проверил / изменил две вещи: UseDNS и GSSAPIAuthentication, и оба отключены.

Я запустил отдельный демон на другом порту с включенной отладкой и обнаружил, где происходит короткое зависание:

debug1: SELinux support enabled
debug3: ssh_selinux_setup_exec_context: setting execution context

{1s hang}

debug3: ssh_selinux_setup_exec_context: done

SELinux настроен на «разрешающий». Я не уверен, зачем вообще нужно беспокоиться о «настройке контекстов». Есть ли способ улучшить отношения этих двоих без полного отключения SELinux? Я понимаю, что единицы - это немного, но я использую эту конкретную машину в качестве шлюза SSH для хостов с белыми списками IP (это машина со статическим IP), и она складывается в течение дня.

После запуска strace зависает немного более детально:

22:16:05.445032 open("/selinux/user", O_RDWR|O_LARGEFILE) = 4 <0.000090>
22:16:05.445235 write(4, "unconfined_u:system_r:sshd_t:s0-s0:c0.c1023 unconfined_u", 56) = 56 <0.334742>
22:16:05.780128 read(4, "18\0unconfined_u:system_r:prelink_mask_t:s0-s0:c0.c1023\0unconfined_u:system_r:unconfined_mount_t:s0-s0:c0.c1023\0unconfined_u:system_r:abrt_helper_t:s0-s0:c0.c1023\0unconfined_u:system_r:oddjob_mkhomedir_t:s0-s0:c0.c1023\0unconfined_u:system_r:unconfined_notrans_t:s0-s0:c0.c1023\0unconfined_u:system_r:unconfined_execmem_t:s0-s0:c0.c1023\0unconfined_u:system_r:unconfined_java_t:s0-s0:c0.c1023\0unconfined_u:system_r:unconfined_mono_t:s0-s0:c0.c1023\0unconfined_u:system_r:chkpwd_t:s0-s0:c0.c1023\0unconfined_u:system_r:passwd_t:s0-s0:c0.c1023\0unconfined_u:system_r:updpwd_t:s0-s0:c0.c1023\0unconfined_u:system_r:mount_t:s0-s0:c0.c1023\0unconfined_u:system_r:rssh_t:s0-s0:c0.c1023\0unconfined_u:system_r:xauth_t:s0-s0:c0.c1023\0unconfined_u:system_r:unconfined_t:s0-s0:c0.c1023\0unconfined_u:system_r:openshift_t:s0-s0:c0.c1023\0unconfined_u:unconfined_r:oddjob_mkhomedir_t:s0-s0:c0.c1023\0unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023\0", 4095) = 929 <0.000079>

Писать в /selinux/user занимает только 350 мс.

Обновление 1 - Вещи, которые я с тех пор пробовал:

Я слишком многого прошу? Является ли 10-1200 мс приемлемым временем входа в систему для компьютеров с разрешением selinux? Любопытно, каковы показатели других людей.

Возможно, это не связано, но о медлительности, связанной с selinux, для учетных записей на основе IPA сообщалось здесь: https://access.redhat.com/discussions/3499951

Решение для этого случая:

Я просмотрел форумы пользователей SSSD и IPA, и, поскольку мои системы не используют SELINUX, я пошел дальше и добавил это в раздел домена в конфигурации sssd:

selinux_provider=none

После этого процесс входа в систему происходит немедленно, как и ожидалось.