เกิดอะไรขึ้นกับการพิสูจน์ตัวตนผู้ใช้ LDAP และโฮมไดเรกทอรี NFS เมื่ออยู่ห่างจากเครือข่าย


9

ในปัจจุบันฉันมีเครื่องหลายเครื่องในเครือข่ายในบ้านซึ่งเป็นส่วนผสมของสก์ท็อปและแล็ปท็อปแบบคงที่ มันไม่สามารถจัดการได้สำหรับฉันและทำไม่ได้เพื่อให้ทุกคนมีโฮมไดเร็กตอรี่โฮม, การตั้งค่าและความปลอดภัยดังนั้นฉันจึงพิจารณาใช้ LDAP สำหรับการจัดการผู้ใช้ทั่วไปและ NFS สำหรับโฮมไดเร็กตอรี่แชร์

จะเกิดอะไรขึ้นเมื่อแล็ปท็อปเครื่องใดเครื่องหนึ่งเดินทาง เครือข่ายในบ้านไม่สามารถเข้าถึงได้ดังนั้นจะตรวจสอบความล้มเหลวและถอยกลับไปที่ที่จัดเก็บในตัวเครื่องหรือไม่ นอกจากนี้เมื่อแล็ปท็อปกลับมามีวิธีซิงค์ที่เก็บข้อมูลภายในบ้านกับเซิร์ฟเวอร์ NFS อีกหรือไม่

คำตอบ:


6

NFS หรือ LDAP ไม่สนับสนุนการดำเนินการที่ยกเลิกการเชื่อมต่อเช่นเมื่อแล็ปท็อปไม่สามารถเข้าถึงเซิร์ฟเวอร์ได้จะไม่สามารถเข้าถึงไดเรกทอรีที่เมาท์ NFS ใด ๆ และจะไม่สามารถทำการค้นหาผู้ใช้ได้ โดยทั่วไปจะติดอยู่

การแก้ไขปัญหาสองสามประการอาจเป็นดังต่อไปนี้

แทนที่จะ mouting โฮมไดเรกทอรีผ่าน NFS คุณสามารถเก็บไดเรกทอรีภายในใช้พร้อมเพรียงเพื่อซิงโครไนส์กับไดเรกทอรี บนเซิร์ฟเวอร์กลาง คุณสามารถเรียกใช้พร้อมกันจาก cron ได้รับการปกป้องโดยการทดสอบที่ยกเลิกการทำงานหากเซิร์ฟเวอร์ไม่สามารถเข้าถึงได้ โพสต์บน AskUbuntu และโพสต์นี้ มีการอภิปรายในหัวข้อการซิงโครไนซ์และคำแนะนำที่เป็นประโยชน์

เกี่ยวกับปัญหาการรับรองความถูกต้อง / การอนุญาตของผู้ใช้โซลูชันจะหมุนไปรอบ ๆ โดยใช้libnss-dbเป็นแหล่งข้อมูลผู้ใช้:

  • ติดตั้งlibnss-dbจากนั้นกำหนดค่า/etc/nsswitch.confให้ค้นหาdbแหล่งที่มาเพิ่มเติมจากปกติfiles:

    passwd: files db group: files db shadow: files db

    dbไฟล์ที่มาอยู่ใน/var/lib/misc ( /var/lib/misc/passwd.dbฯลฯ ) จากนั้นคุณสามารถเก็บสำเนาต้นแบบของไฟล์เหล่านี้บนเซิร์ฟเวอร์กลางของคุณและประสานลูกค้าด้วย+rsync cronข้อเสีย: ไม่มีสคริปต์การจัดการสำเร็จรูปเพื่อจัดการไฟล์ db บนเซิร์ฟเวอร์ (ที่ฉันรู้) รวมถึงคุณต้องใช้เวลาในการซิงโครไนซ์ล่าช้าและต้องตั้งค่าวิธีrsyncการเชื่อมต่อกับเซิร์ฟเวอร์หลัก

  • nss-updatedbและlibpam-ccredsแพคเกจที่มีวิธีการทำความสะอาดในการตั้งค่านี้กับnss-updatedbคุณสามารถสร้างในประเทศ passwd.dbและgroup.dbในขณะที่ข้อมูลจะถูกจัดการโดยshadow libpam-ccredsคำแนะนำวิธีการตั้งค่าเหล่านี้สามารถพบได้ในREADMEไฟล์ที่มาพร้อมกับแพ็คเกจ


@Jorge: ขอบคุณมากสำหรับคำแนะนำนี้! ฉันได้อัปเดตข้อความคำตอบแล้ว
Riccardo Murri

2

ไฟล์

สำหรับไฟล์ฉันจะทำการซิงค์แบบ net based สำหรับไฟล์ทั่วไป (เช่นUbuntu OneหรือDropbox ) จากนั้นมีโฟลเดอร์แชร์สำหรับไฟล์ที่ใหญ่กว่า (อาจจะเป็นเพลงภาพถ่ายวิดีโอและ Ubuntu ISO) นี่อาจเป็นเมานต์ NFS ซึ่งเมื่อมันล้มเหลวไม่สำคัญมากเกินไปหรือใช้งานร่วมกับ Samba หรืออาจเป็นหนึ่งในเทคโนโลยีอื่น ๆ

LDAP

LDAP ที่ล้มเหลวทำให้เกิดปัญหาอย่างแน่นอน บัญชีระบบทุกประเภทที่ปกติคุณไม่รู้จะไม่สามารถแปลได้ (ชื่อ <-> หมายเลข id) และระบบจะทำการแขวนซ้ำ ๆ ครั้งละหนึ่งนาทีในขณะที่รอการตอบกลับจากเซิร์ฟเวอร์ LDAP ก่อน กลับไปที่ระบบท้องถิ่น หรือระบบอาจล็อคและล้มเหลวอย่างสมบูรณ์

มีวิธีการบางอย่างรอบนี้ คุณสามารถตั้งค่าสำเนาโลคัลและซิงค์ได้หลายวิธี - ดูคำตอบอื่น ๆ สำหรับคำถามนี้และคำถามที่เชื่อมโยง คุณยังสามารถบอกให้ LDAP ไม่ให้ผู้ใช้ระบบจากไดเรกทอรี LDAP แต่มาจากไฟล์ภายในเครื่อง บนเซิร์ฟเวอร์ของเราเราได้วางสิ่งต่อไปนี้ไว้ที่จุดสิ้นสุดของเราldap.conf

# We need to ensure that various things can work without LDAP being available
# for example: booting, ssh in as root, apache ...
nss_initgroups_ignoreusers avahi,avahi-autoipd,backup,bin,daemon,dhcp,dhcpd,games,gdm,gnats,haldaemon,hplip,irc,klog,libuuid,list,lp,mail,man,messagebus,munin,mysql,nbd,news,ntp,nut,polkituser,proxy,pulse,root,sshd,statd,sync,sys,syslog,uucp,www-data

คุณต้องการให้แน่ใจว่าผู้ใช้ระบบทั้งหมดอยู่ในรายการนั้น ถึงอย่างนั้นมันก็อาจจะไม่เพียงพอสำหรับการใช้งานแล็ปท็อป

จากหน้าคน nss_ldap

nss_initgroups_ignoreusers <user1,user2,...,userN>
          This option directs the nss_ldap implementation of initgroups(3)
          to return NSS_STATUS_NOTFOUND if called with a listed  users  as
          its argument.

ดังนั้นโดยทั่วไปแล้วแสร้งทำเป็นว่า LDAP ไม่รู้จักผู้ใช้เหล่านั้นโดยไม่ต้องติดต่อกับเซิร์ฟเวอร์หลักดังนั้น NSS จึงกลับไปหาผู้ใช้ในพื้นที่และระบบทำงานได้ดี

หนึ่งความคิดสุดท้ายคือว่าถ้าคุณยินดีที่จะใช้จ่าย LDAP การเรียนรู้ครั้งที่คุณสามารถเรียนรู้แทนบางขั้นพื้นฐานหุ่นเชิดและการใช้งานว่าเพื่อให้ผู้ใช้ของคุณเหมือนกันทั้งหมดทั่วทุกระบบ - ดูสูตรหุ่นนี้ตัวอย่างเช่น Puppet จะช่วยให้คุณทำสิ่งต่าง ๆ มากมายเช่นการติดตั้งแพ็คเกจทั่วไปการตั้งค่าทั่วไปในด้านต่างๆ ...

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