У меня проблема с 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? Я понимаю, что 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 unconfined
- Это дало положительный эффект, сократив время входа примерно на 500 мс. Тем не менее, мои блоки C7 и C5.11 (которые я с тех пор узнал (отключил) SELinux отключен) в среднем ~ 525 мс- Сравнение моих машин C6.7 - Оказывается, 64-битные блоки работают быстрее, чем мои 32-битные. Может быть, для некоторых это «скучный» момент, но поскольку ни одна из этих коробок не облагается налогом, я не ожидал отклонения в 100-300 мс. Мне удалось преодолеть отметку 1 с (850 мс) на одном из 64-битных хостов. Самый низкий на 32 бита был 1.085 с
Я слишком много спрашиваю? Является ли 10-1200 мс приемлемым временем входа в систему для компьютеров с разрешением selinux? Любопытно, каковы оценки других людей.
messages
илиsecure
strace
и посмотреть, на каком вызове он висит.