У меня проблема с CentOS 6. 7, где входы по SSH на 1 с больше, чем любые машины, не использующие версию 6.7, в этой сети (например, 7.2, 5.11). Выполнение отладки на стороне клиента показало зависание в «Входе в интерактивный сеанс».
Команда, которую я использую для создания этого теста, - это time ssh
с моего ноутбука с использованием ключей SSH .
Две вещи, которые я уже проверил / изменил, - это UseDNS
и GSSAPIAuthentication
, и оба они отключены.
Я запустил отдельный демон на другом порту с отладкой on, и выяснили, где происходит короткое зависание:
debug1: SELinux support enabled
debug3: ssh_selinux_setup_exec_context: setting execution context
{1s hang}
debug3: ssh_selinux_setup_exec_context: done
SELinux установлен на «разрешающий». Я не уверен, зачем вообще нужно беспокоиться о «настройке контекстов». Есть ли способ улучшить отношения этих двоих без полного отключения SELinux? Я понимаю, что 1 это не так уж и много, но я использую эту конкретную машину в качестве шлюза 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 unlimited
- Это дало положительный эффект, уменьшив время входа в систему примерно на 500 мс. Однако мои коробки C7 и C5.11 (которые я с тех пор (повторно) узнал, имеют отключенный SELinux) в среднем ~ 525 мс Я прошу слишком многого? Является ли 10-1200 мс приемлемым временем входа в систему для компьютеров с разрешением selinux? Любопытно, каковы показатели других людей.
Это может быть не связано, но о медлительности, связанной с selinux, сообщалось для учетных записей на основе IPA здесь: https://access.redhat.com/discussions/3499951
решение для этого случая:
Я просмотрел форумы пользователей SSSD и IPA, и поскольку мои системы не используют SELINUX, я пошел дальше и добавил это в раздел домена в sssd конфигурация:
selinux_provider = none
После этого процесс входа выполняется немедленно, как и ожидалось.