SSH - 1s ค้างที่“ กำลังเข้าสู่เซสชันแบบโต้ตอบ” (ไม่ใช่ DNS อาจเกี่ยวข้องกับ SELinux)


9

ฉันมีปัญหากับ 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 หรือไม่? สงสัยว่ามาตรฐานของคนอื่นคืออะไร


ตรวจสอบบันทึกระบบของคุณ
Michael Hampton

ฉันมี ... แต่น่าเสียดายที่ไม่มีอะไรสำคัญในmessagesหรือsecure
Morgon

@Morgon: คุณได้ตรวจสอบว่าคุณกำลังใช้งานอะไรบางอย่างเช่น "fail2ban" - fail2ban.org - ในเครื่องนั้นและ / หรือถ้าคุณตั้งค่า "iptables" ด้วยวิธีการบางอย่างที่อาจทำให้ "การ จำกัด อัตรา" การเชื่อมต่อ SSH ขาเข้าขึ้นอยู่กับที่อยู่ IP ต้นทาง?
ricmarques

4
หากบันทึกไม่ได้ช่วยคุณควรใช้straceและดูว่ามีสายอะไรอยู่
Andrew B

1
ขอบคุณ @AndrewB ผมเคยโพสต์ไว้ที่นี่: pastebin.com/raw/3c08tcMd หากคุณค้นหา "/ selinux / user" คุณจะเห็นแฮงเอาท์ 1 วินาทีในขณะที่พยายามเขียนไปยังไฟล์นั้น - เมื่อไปตามเส้นทางนั้นฉันพบโพสต์ที่เกี่ยวข้องกับการปิดใช้งานโดเมน 'ไม่ได้กำหนดไว้' ( bugzilla.redhat.com/show_bug.cgi?id=811656#c9 ) สิ่งนี้ทำให้การโกนของฉัน ~ .5 วินาทีจากการเข้าสู่ระบบของฉัน แต่ก็ยังช้ากว่า Cent7 / FC4 0.5 วินาที ยังคงมองหาประสิทธิภาพที่ดีถ้าเป็นไปได้
Morgon

คำตอบ:


1

สิ่งนี้อาจไม่เกี่ยวข้อง แต่ความช้าที่เกี่ยวข้องกับ selinux ได้รับการรายงานสำหรับบัญชีที่ใช้ IPA ที่นี่: https://access.redhat.com/discussions/3499951

ทางออกสำหรับกรณีนั้นคือ:

ฉันดูในฟอรัมผู้ใช้ SSSD และ IPA และเนื่องจากระบบของฉันไม่ได้ใช้ SELINUX ฉันจึงไปข้างหน้าและเพิ่มส่วนนี้ในโดเมนในการกำหนดค่า sssd:

selinux_provider=none

หลังจากนี้กระบวนการล็อกอินเป็นทันทีตามที่คาดไว้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.