Score:0

Ansible รับการหมดเวลาการรับรองความถูกต้องเมื่อใช้บัญชีโดเมนบนเซิร์ฟเวอร์ที่รัน winbind

ธง ge

ฉันติดตั้งตัวควบคุมโดเมนใหม่ที่โฮสต์โดย Samba 4.11 บน Ubuntu 20.04 (โดยใช้แพ็คเกจ Ubuntu) ฉันกำหนดค่าการรับรองความถูกต้องของระบบเพื่อใช้ข้อมูลรับรอง AD ด้วยการใช้ winbind ในเซิร์ฟเวอร์อื่น (สมาชิก) ฉันมักจะใช้ sssd แทน winbind แต่ความเข้าใจของฉันคือฉันไม่สามารถใช้ sssd บนเซิร์ฟเวอร์ที่ใช้ samba เป็น DC

ในตอนแรกมันใช้งานได้ดี เซิร์ฟเวอร์ทำงานเป็น DC อย่างที่ควรจะเป็น ฉันสามารถเข้าสู่ระบบด้วยข้อมูลรับรอง AD ของฉันไปยังเซิร์ฟเวอร์ด้วย SSH

ปัญหาคือเมื่อฉันเชื่อมต่อกับเครื่องนี้ด้วย Ansible Ansible ทำการเชื่อมต่อ SSH จำนวนมากต่อกัน (หนึ่งรายการสำหรับแต่ละงาน) นอกจากนี้ยังยกระดับเป็นรูทด้วย sudo เกือบทุกครั้งเช่นกัน เมื่อเรียกใช้ playbook ของฉัน มันล้มเหลวโดยสุ่มเนื่องจากข้อผิดพลาดนี้ หมดเวลา (62 วินาที) กำลังรอพร้อมต์การเลื่อนระดับสิทธิ์. หากฉันพยายามเชื่อมต่อกับ SSH ด้วยตนเองในขณะนี้ นี่เป็นเพียงการหมดเวลา หลังจากนั้นสักครู่ ฉันสามารถเข้าสู่ระบบได้อีกครั้ง

ปัญหาจะไม่เกิดขึ้นเมื่อใช้บัญชีภายในเครื่องแทนบัญชีโดเมน

บันทึกที่เกี่ยวข้องเท่านั้นที่ฉันพบอยู่ใน log.windbindd บันทึก:

[2021/10/12 16:06:57.312913, 5] ../../source3/winbindd/winbindd.c:1204(remove_timed_out_clients)
  ไคลเอนต์ที่ไม่ได้ใช้งานหมดเวลา ปิดถุงเท้า 38, pid 568531
[2021/10/12 16:07:09.933655, 3] ../../source3/winbindd/winbindd_getpwnam.c:59(winbindd_getpwnam_send)
  winbindd_getpwnam_send: [nss_winbind (567486)] getpwnam ตัวอย่าง\myuserid
[2021/10/12 16:07:12.326288, 5] ../../source3/winbindd/winbindd.c:1204(remove_timed_out_clients)
  ไคลเอนต์ที่ไม่ได้ใช้งานหมดเวลา ปิดถุงเท้า 34, pid 568806
[2021/10/12 16:07:12.326413, 5] ../../source3/winbindd/winbindd.c:1209(remove_timed_out_clients)
  หมดเวลาคำขอไคลเอ็นต์ ปิดถุงเท้า 39, pid 568806
[2021/10/12 16:07:12.326451, 1] ../../source3/winbindd/winbindd_dual.c:337(wb_child_request_cleanup)
  wb_child_request_cleanup: เก็บข้อกำหนดย่อยที่ถูกละเลย[0x563394622e40]
[2021/10/12 16:07:14.044393, 3] ../../source3/winbindd/winbindd_misc.c:429(winbindd_interface_version)
  winbindd_interface_version: [nss_winbind (568806)]: ขอเวอร์ชั่นอินเตอร์เฟส (เวอร์ชั่น = 31)
[2021/10/12 16:07:14.044847, 3] ../../source3/winbindd/winbindd_getpwnam.c:59(winbindd_getpwnam_send)
  winbindd_getpwnam_send: [nss_winbind (568806)] getpwnam ตัวอย่าง\myuserid
^ซี

ฉันเขียนสคริปต์เล็ก ๆ ที่ทำ sudo ทุก ๆ 1,000ms จากนั้น 500ms และ 100ms พยายามเลียนแบบสิ่งที่ Ansible ทำ ฉันสังเกตเห็นว่ากระบวนการแซมบ้าใช้ซีพียูประมาณ 30% เมื่อสคริปต์ถูกตั้งค่าให้วนซ้ำทุกๆ 1,000 มิลลิวินาที 50% เมื่อสคริปต์ทำงานที่ 500 มิลลิวินาที และ 70% เมื่อทำงานที่ 100 มิลลิวินาที ขออภัย ฉันไม่สามารถทำซ้ำการหมดเวลาการตรวจสอบสิทธิ์เมื่อเรียกใช้สคริปต์

#!/bin/bash

ในขณะที่ [ จริง ] ; ทำ
  เวลา sudo echo 1
  นอน 0.1
เสร็จแล้ว

การกำหนดค่าแซมบ้า:

[ทั่วโลก]
    ชื่อเน็ตไบโอ = DC4
    ขอบเขต = AD.EXAMPLE.CA
    เวิร์กกรุ๊ป = ตัวอย่าง
    ตัวส่งต่อ DNS = 10.3.0.3
    บทบาทเซิร์ฟเวอร์ = ตัวควบคุมโดเมนไดเรกทอรีที่ใช้งานอยู่
    idmap_ldb:ใช้ rfc2307 = ใช่

    ไดเร็กทอรี pid = /run/samba
    ไดเร็กทอรีสถานะ = /data/samba
    binddns dir = /data/samba/bind-dns
    ไดเรกทอรีซ็อกเก็ตลงนาม ntp = /data/samba/ntp_signd
    dir ส่วนตัว = /data/samba/ส่วนตัว
    เส้นทาง usershare = /data/samba/usershares

    เปิดใช้งาน tls = ใช่
    tls keyfile = tls/key.pem
    tls certfile = tls/cert.pem
    tls cafile = /usr/local/share/ca-certificates/internal_ca.crt

    ระดับบันทึก = 5
    ขนาดบันทึกสูงสุด = 1000000

    ตรวจสอบสคริปต์รหัสผ่าน = python3 /usr/local/bin/check_password_hibpwnd.py

    อนุญาตการอัปเดต DNS = ไม่ปลอดภัย

    ntlm รับรองความถูกต้อง = ใช่

    เปลือกแม่แบบ = /bin/bash
    เทมเพลต homedir = /home/ad.example.ca/%u
    # ลองสิ่งนี้เพื่อลดการโหลดไม่มีผล
    winbind เข้าสู่ระบบออฟไลน์ = ใช่
    ผู้ใช้ winbind enum = ไม่
    winbind enum กลุ่ม = ไม่    
    กลุ่มที่ซ้อนกัน winbind = เท็จ

[เน็ตล็อกออน]
    เส้นทาง = /data/samba/sysvol/ad.example.ca/scripts
    อ่านอย่างเดียว = ไม่

[sysvol]
    เส้นทาง = /data/samba/sysvol
    อ่านอย่างเดียว = ไม่

nsswitch config (ฉันเพิ่งเพิ่ม วินบินด์ สำหรับ รหัสผ่าน และ กลุ่ม รายการ):

# /etc/nsswitch.conf
#
# ตัวอย่างการกำหนดค่าของฟังก์ชัน GNU Name Service Switch
# หากคุณติดตั้งแพ็คเกจ `glibc-doc-reference' และ `info' ให้ลอง:
# `info libc "Name Service Switch"' สำหรับข้อมูลเกี่ยวกับไฟล์นี้

passwd: ไฟล์ systemd winbind
กลุ่ม: ไฟล์ systemd winbind
เงา: ไฟล์
gshadow: ไฟล์

โฮสต์: ไฟล์ DNS
เครือข่าย: ไฟล์

โปรโตคอล: ไฟล์ db
บริการ: ไฟล์ db
อีเธอร์: ไฟล์ db
rpc: ไฟล์ db

เน็ตกรุ๊ป: นิส

อัปเดต! ฉันพบว่าการกำหนดค่า sudo ไม่ต้องการรหัสผ่านของผู้ใช้เพื่อยกระดับสิทธิ์ใช้งานได้ดี นี่ไม่ใช่วิธีแก้ปัญหาที่ยอมรับได้ แต่นี่อาจบอกอะไรบางอย่างกับคนที่สามารถช่วยวินิจฉัยปัญหาได้

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา