ฉันมีปัญหากับ CentOS 6.7 ที่การเข้าสู่ระบบ SSH นั้นมากกว่า 1 เครื่องที่ไม่ใช่ 6.7 ในเครือข่ายนี้ (เช่น 7.2, 5.11) การดีบักที่ฝั่งไคลเอ็นต์แสดงให้เห็นถึงการแฮงค์ที่ "กำลังเข้าสู่เซสชันแบบโต้ตอบ"
คำสั่งที่ฉันใช้ในการทดสอบนี้time ssh <host> true
มาจากแล็ปท็อปของฉันโดยใช้คีย์ SSH
สองสิ่งที่ฉันได้ตรวจสอบ / แก้ไขแล้วคือUseDNS
และGSSAPIAuthentication
และทั้งสองอย่างถูกปิดใช้งาน
ฉันเริ่ม daemon แยกจากกันบนพอร์ตอื่นโดยมีการดีบักและพบว่าแฮงค์สั้นเกิดขึ้น:
debug1: SELinux support enabled
debug3: ssh_selinux_setup_exec_context: setting execution context
{1s hang}
debug3: ssh_selinux_setup_exec_context: done
SELinux ถูกตั้งค่าเป็น 'อนุญาต' ฉันไม่แน่ใจว่าทำไมมันถึงต้องรำคาญกับ "การตั้งค่าบริบท" มีวิธีใดบ้างที่จะทำให้ทั้งสองสิ่งนี้เข้ากันได้ดีขึ้นโดยไม่ต้องปิดการใช้งาน SELinux เลย? ฉันรู้ว่า 1s ไม่มาก แต่ฉันใช้เครื่องนี้เป็นเกตเวย์ 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
ใช้เวลา 350ms เพียงอย่างเดียว
อัปเดต 1 - สิ่งที่ฉันได้ลอง :
- อัปเดต กล่องจำนวนมากต้องการการอัปเดต สิ่งนี้ไม่มีผลกระทบที่เป็นสาระสำคัญต่อเวลาเข้าสู่ระบบ
semodule -d unconfined
- สิ่งนี้มีผลในเชิงบวกลดเวลาในการเข้าสู่ระบบลงได้ประมาณ 500ms อย่างไรก็ตามกล่อง C7 และ C5.11 ของฉัน (ซึ่งฉันได้เรียนรู้ตั้งแต่ปิดการใช้งาน SELinux) โดยเฉลี่ยประมาณ 525ms- เปรียบเทียบเครื่อง C6.7 ของฉัน - เปิดกล่อง 64 บิตเร็วกว่ากล่อง 32 บิตของฉัน บางทีนี่อาจเป็นช่วงเวลา 'duh' สำหรับบางคน แต่เนื่องจากไม่มีกล่องเหล่านี้ถูกเก็บภาษีโดยเฉพาะฉันจึงไม่ได้คาดหวังความแปรปรวน 100-300ms ฉันสามารถทำลายเครื่องหมาย 1s (850ms) ในหนึ่งในโฮสต์ 64 บิต 32 บิตต่ำสุดคือ 1.085 วินาที
ฉันขอมากเกินไปหรือเปล่า เวลา 10-1200ms เป็นเวลาที่ยอมรับได้สำหรับเครื่อง selinux-permissive หรือไม่? สงสัยว่ามาตรฐานของคนอื่นคืออะไร
messages
หรือsecure
strace
และดูว่ามีสายอะไรอยู่