У меня проблема с 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 - Вещи, которые я с тех пор пробовал:
semodule -d unconfined
- Это дало положительный эффект, сократив время входа в систему примерно на 500 мс. Тем не менее, мои коробки C7 и C5.11 (которые я с тех пор (повторно) узнал, имеют отключенный SELinux) в среднем ~ 525 мсЯ слишком многого прошу? Является ли 10-1200 мс приемлемым временем входа в систему для компьютеров с разрешением selinux? Любопытно, каковы показатели других людей.
Возможно, это не связано, но о медлительности, связанной с selinux, для учетных записей на основе IPA сообщалось здесь: https://access.redhat.com/discussions/3499951
Решение для этого случая:
Я просмотрел форумы пользователей SSSD и IPA, и, поскольку мои системы не используют SELINUX, я пошел дальше и добавил это в раздел домена в конфигурации sssd:
selinux_provider=none
После этого процесс входа в систему происходит немедленно, как и ожидалось.