PAM, NIS, LDAP, Kerberos, DS และ Samba 4 AD-DC - เครือข่าย SMB

ดัชนีทั่วไปของซีรี่ส์: Computer Networks for SMEs: Introduction

สวัสดีเพื่อนและเพื่อน!

ด้วยบทความนี้ฉันบอกลาชุมชน DesdeLinux- การอำลาพิเศษสำหรับชุมชนพิเศษ ต่อไปนี้ฉันจะอยู่ในโปรเจ็กต์ส่วนตัวของฉันซึ่งคุณสามารถดูได้ที่ http://www.gigainside.com.

วัตถุประสงค์หลักของโพสต์คือการเสนอ«รูปภาพขนาดใหญ่»เกี่ยวกับบริการรับรองความถูกต้องด้วยซอฟต์แวร์ฟรีที่เรามีให้ อย่างน้อยนั่นคือความตั้งใจของเรา ดังนั้นมันจะยาวแม้ว่าเราจะรู้ว่ามันผิดกฎทั่วไปในการเขียนบทความก็ตาม เราหวังว่าผู้ดูแลระบบจะชื่นชมมัน

เราต้องการชี้ให้เห็นว่าโปรโตคอลทั่วไปสำหรับระบบการรับรองความถูกต้องสมัยใหม่จำนวนมากคือ LDAPและไม่ใช่เรื่องว่างที่จะศึกษาอย่างรอบคอบจากข้อมูลการศึกษาที่เราจะพบในเว็บไซต์อย่างเป็นทางการ http://www.openldap.org/.

เราจะไม่ให้คำจำกัดความโดยละเอียด - หรือลิงก์ - ในแง่มุมต่างๆที่กล่าวถึงในบทความก่อนหน้านี้หรือในหัวข้อที่สามารถเข้าถึงคำอธิบายได้อย่างง่ายดายบน Wikipedia หรือเว็บไซต์หรือบทความอื่น ๆ บนอินเทอร์เน็ตเพื่อไม่ให้สูญเสียความเที่ยงธรรมของข้อความที่เราต้องการมอบให้ นอกจากนี้เราจะใช้ชื่อที่ถูกต้องผสมกันในภาษาอังกฤษและภาษาสเปนเนื่องจากเราพิจารณาแล้วว่าระบบส่วนใหญ่เกิดมาพร้อมกับชื่อในภาษาอังกฤษและเป็นประโยชน์อย่างมากสำหรับ Sysadmin ในการหลอมรวมเข้ากับภาษาต้นฉบับ.

  • PAM: โมดูลการตรวจสอบสิทธิ์แบบเสียบได้
  • NIS: Network_Information_Service
  • LDAP: Lightweight Directory Access Protocol Lightweight.
  • Kerberos: โปรโตคอลความปลอดภัยเพื่อรับรองความถูกต้องของผู้ใช้คอมพิวเตอร์และบริการจากส่วนกลางบนเครือข่ายโดยยืนยันข้อมูลประจำตัวกับรายการที่มีอยู่ในฐานข้อมูล Kerberos
  • DS: Directory Server หรือ Directory Service
  • ค.ศ.–ค: Active Directory - Domain Controler

PAM

เราอุทิศชุดเล็ก ๆ ให้กับการตรวจสอบสิทธิ์ภายในประเภทนี้ซึ่งคุณจะเห็นในทางปฏิบัติประจำวันว่ามีการใช้กันอย่างแพร่หลายเมื่อเราเข้าร่วมเวิร์กสเตชันกับ Domain Controller หรือ Active Directory เพื่อแมปผู้ใช้ที่เก็บไว้ในฐานข้อมูล LDAP ภายนอกราวกับว่าพวกเขาเป็นผู้ใช้ภายใน เพื่อแมปผู้ใช้ที่เก็บไว้ใน Domain Controller ของ Active Directory ราวกับว่าพวกเขาเป็นผู้ใช้ภายในเครื่องและอื่น ๆ

NIS

De วิกิพีเดีย:

  • Network Information System (รู้จักกันในชื่อย่อ NIS ซึ่งในภาษาสเปนหมายถึง Network Information System) เป็นชื่อของโปรโตคอลบริการไดเร็กทอรีเซิร์ฟเวอร์ไคลเอ็นต์ที่พัฒนาโดย Sun Microsystems สำหรับการส่งข้อมูลการกำหนดค่าในระบบกระจายเช่นชื่อผู้ใช้และโฮสต์ระหว่างคอมพิวเตอร์ บนเครือข่ายNIS ใช้ ONC RPC และประกอบด้วยเซิร์ฟเวอร์ไลบรารีฝั่งไคลเอ็นต์และเครื่องมือการดูแลระบบต่างๆ

    เดิม NIS ถูกเรียกว่าสมุดหน้าเหลืองหรือ YP ซึ่งยังคงใช้อ้างถึง น่าเสียดายที่ชื่อนั้นเป็นเครื่องหมายการค้าของ British Telecom ซึ่งทำให้ Sun ต้องยกเลิกชื่อนั้น อย่างไรก็ตาม YP ยังคงเป็นคำนำหน้าในชื่อของคำสั่งที่เกี่ยวข้องกับ NIS ส่วนใหญ่เช่น ypserv และ ypbind

    DNS ให้บริการข้อมูลในช่วง จำกัด ที่สำคัญที่สุดคือการติดต่อกันระหว่างชื่อโหนดและที่อยู่ IP สำหรับข้อมูลประเภทอื่น ๆ ไม่มีบริการพิเศษดังกล่าว ในทางกลับกันหากคุณจัดการเฉพาะ LAN ขนาดเล็กที่ไม่มีการเชื่อมต่ออินเทอร์เน็ตดูเหมือนว่าจะไม่คุ้มค่าที่จะตั้งค่า DNS นี่คือเหตุผลที่ Sun พัฒนาระบบข้อมูลเครือข่าย (NIS) NIS มีความสามารถในการเข้าถึงฐานข้อมูลทั่วไปที่สามารถใช้ในการแจกจ่ายตัวอย่างเช่นข้อมูลที่อยู่ใน passwd และจัดกลุ่มไฟล์ไปยังโหนดทั้งหมดบนเครือข่ายของคุณ ทำให้เครือข่ายดูเหมือนระบบเดียวโดยมีบัญชีเดียวกันในทุกโหนด ในทำนองเดียวกัน NIS สามารถใช้เพื่อแจกจ่ายข้อมูลชื่อโหนดที่อยู่ใน / etc / hosts ไปยังเครื่องทั้งหมดบนเครือข่าย

    ปัจจุบัน NIS มีให้บริการใน Unix ทุกรุ่นและยังมีการนำไปใช้งานฟรีอีกด้วย BSD Net-2 เผยแพร่รายการที่ได้มาจากการดำเนินการอ้างอิงโดเมนสาธารณะที่บริจาคโดย Sun รหัสไลบรารีสำหรับส่วนไคลเอ็นต์ของเวอร์ชันนี้มีอยู่ใน GNU / Linux libc มาเป็นเวลานานและโปรแกรมการดูแลระบบถูกพอร์ตไปยัง GNU / Linux โดย Swen Thümmler อย่างไรก็ตามเซิร์ฟเวอร์ NIS หายไปเนื่องจากการใช้งานอ้างอิง

    Peter Eriksson ได้พัฒนาการใช้งานใหม่ที่เรียกว่า NYS รองรับทั้ง NIS พื้นฐานและรุ่นปรับปรุงของ Sun NIS + [1] NYS ไม่เพียง แต่มีเครื่องมือ NIS และเซิร์ฟเวอร์จำนวนหนึ่งเท่านั้น แต่ยังเพิ่มชุดฟังก์ชันไลบรารีใหม่ทั้งหมดที่คุณต้องรวบรวมไว้ใน libc ของคุณหากคุณต้องการใช้ ซึ่งรวมถึงโครงร่างการกำหนดค่าใหม่สำหรับการแก้ปัญหาชื่อโหนดที่แทนที่โครงร่างปัจจุบันที่ใช้โดยไฟล์ "host.conf"

    GNU libc หรือที่เรียกว่า libc6 ในชุมชน GNU / Linux รวมถึงเวอร์ชันปรับปรุงของการสนับสนุน NIS ดั้งเดิมที่พัฒนาโดย Thorsten Kukuk รองรับฟังก์ชั่นไลบรารีทั้งหมดที่จัดหาโดย NYS และยังใช้โครงร่างการกำหนดค่า NYS ขั้นสูง เครื่องมือและเซิร์ฟเวอร์ยังคงจำเป็นอยู่ แต่การใช้ GNU libc จะช่วยประหยัดปัญหาในการแก้ไขและคอมไพล์ไลบรารีใหม่

    .

ชื่อคอมพิวเตอร์และโดเมนอินเทอร์เฟซเครือข่ายและตัวแก้ไข

  • เราเริ่มต้นจากการติดตั้งใหม่ทั้งหมด - โดยไม่มีส่วนต่อประสานกราฟิก - ของ Debian 8 "Jessie". โดเมน swl.fan หมายถึง "แฟน ๆ ของซอฟต์แวร์เสรี" ชื่ออะไรจะดีไปกว่านี้.
root @ master: ~ # ชื่อโฮสต์
เจ้านาย
root @ master: ~ # ชื่อโฮสต์ -f
master.swl.fan

รูท @ master: ~ # ip addr 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default link / loopback 00: 00: 00: 00: 00: 00 brd 00: 00: 00: 00: 00: 00 inet 127.0.0.1/8 ขอบเขตโฮสต์ lo valid_lft ตลอดไปที่ต้องการ _lft ตลอดไป inet6 :: โฮสต์ขอบเขต 1/128 valid_lft ตลอดไปที่ต้องการ _lft ตลอดไป 2: eth0: mtu 1500 qdisc pfifo_fast state UP กลุ่มเริ่มต้น qlen 1000 link / ether 00: 0c: 29: 4c: 76: d9 brd ff: ff: ff: ff: ff: ff inet 192.168.10.5/24 brd 192.168.10.255 ขอบเขต global eth0 valid_lft เป็นที่ต้องการตลอดไปตลอดกาล inet6 fe80 :: 20c: 29ff: fe4c: 76d9 / 64 ขอบเขตลิงก์ valid_lft ตลอดไปที่ต้องการ _lft ตลอดไป

root @ master: ~ # cat /etc/resolv.conf 
ค้นหา swl.fan nameserver 127.0.0.1

การติดตั้ง bind9, isc-dhcp-server และ ntp

ผูก 9

root @ master: ~ # aptitude ติดตั้ง bind9 ผูก 9-doc nmap
root @ master: ~ # systemctl สถานะ bind9

root @ master: ~ # nano /etc/bind/named.conf
รวม "/etc/bind/named.conf.options"; รวม "/etc/bind/named.conf.local"; รวม "/etc/bind/named.conf.default-zones";

root @ master: ~ # cp /etc/bind/named.conf.options \ /etc/bind/named.conf.options.original

root @ master: ~ # nano /etc/bind/named.conf.options
ตัวเลือก {ไดเรกทอรี "/ var / cache / bind"; // หากมีไฟร์วอลล์ระหว่างคุณและเนมเซิร์ฟเวอร์ที่คุณต้องการ // คุยด้วยคุณอาจต้องแก้ไขไฟร์วอลล์เพื่อให้พอร์ต // หลายพอร์ตสามารถพูดคุยได้ ดู http://www.kb.cert.org/vuls/id/800113

        // หาก ISP ของคุณให้ที่อยู่ IP อย่างน้อยหนึ่งรายการสำหรับเซิร์ฟเวอร์ // เนมเซิร์ฟเวอร์ที่เสถียรคุณอาจต้องการใช้เป็นตัวส่งต่อ // ยกเลิกการใส่เครื่องหมายบล็อกต่อไปนี้และแทรกที่อยู่แทนที่ // ตัวยึดตำแหน่งของ all-0 // ตัวส่งต่อ {// 0.0.0.0; //}; // ================================================ ==================== $ // หาก BIND บันทึกข้อความแสดงข้อผิดพลาดเกี่ยวกับคีย์หลักที่หมดอายุแล้ว // คุณจะต้องอัปเดตคีย์ของคุณ ดู https://www.isc.org/bind-keys
        // ================================================ ==================== $ // เราไม่ต้องการ DNSSEC
        dnssec- เปิดใช้งานไม่;
        // dnssec-validation auto; auth-nxdomain no; # สอดคล้องกับ RFC1035 listen-on-v6 {any; }; // สำหรับการตรวจสอบจาก localhost และ sysadmin // ผ่าน dig swl.fan axfr // เราไม่มี Slave DNS ... จนถึงตอนนี้
        อนุญาตให้โอน {localhost; 192.168.10.1; };
}; root @ master: ~ # named-checkconf

root @ master: ~ # nano /etc/bind/zones.rfcFreeBSD
// พื้นที่ที่อยู่ที่ใช้ร่วมกัน (RFC 6598)
zone "64.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "65.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "66.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "67.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "68.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "69.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "70.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "71.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "72.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "73.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "74.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "75.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "76.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "77.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "78.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "79.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "80.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "81.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "82.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "83.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "84.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "85.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "86.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "87.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "88.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "89.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "90.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "91.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "92.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "93.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "94.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "95.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "96.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "97.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "98.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "99.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "100.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "101.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "102.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "103.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "104.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "105.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "106.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "107.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "108.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "109.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "110.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "111.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "112.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "113.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "114.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "115.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "116.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "117.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "118.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "119.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "120.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "121.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "122.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "123.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "124.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "125.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "126.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "127.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };

// Link-local / APIPA (RFCs 3927, 5735 และ 6303)
โซน "254.169.in-addr.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; };

// การกำหนดโปรโตคอล IETF (RFCs 5735 และ 5736)
โซน "0.0.192.in-addr.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; };

// TEST-NET- [1-3] สำหรับเอกสารประกอบ (RFCs 5735, 5737 และ 6303)
โซน "2.0.192.in-addr.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "100.51.198.in-addr.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "113.0.203.in-addr.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; };

// IPv6 ช่วงตัวอย่างสำหรับเอกสารประกอบ (RFCs 3849 และ 6303)
โซน "8.bd0.1.0.0.2.ip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; };

// ชื่อโดเมนสำหรับเอกสารและการทดสอบ (BCP 32)
โซน "ทดสอบ" {type master; ไฟล์ "/etc/bind/db.empty"; }; โซน "ตัวอย่าง" {type master; ไฟล์ "/etc/bind/db.empty"; }; โซน "ไม่ถูกต้อง" {type master; ไฟล์ "/etc/bind/db.empty"; }; โซน "example.com" {type master; ไฟล์ "/etc/bind/db.empty"; }; โซน "example.net" {type master; ไฟล์ "/etc/bind/db.empty"; }; โซน "example.org" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; };

// การทดสอบมาตรฐานเราเตอร์ (RFCs 2544 และ 5735)
โซน "18.198.in-addr.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "19.198.in-addr.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; };

// IANA สงวนไว้ - Old Class E Space (RFC 5735)
โซน "240.in-addr.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "241.in-addr.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "242.in-addr.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "243.in-addr.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "244.in-addr.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "245.in-addr.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "246.in-addr.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "247.in-addr.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "248.in-addr.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "249.in-addr.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "250.in-addr.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "251.in-addr.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "252.in-addr.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "253.in-addr.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "254.in-addr.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; };

// IPv6 ที่อยู่ที่ไม่ได้กำหนด (RFC 4291)
โซน "1.ip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "3.ip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "4.ip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "5.ip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "6.ip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "7.ip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "8.ip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "9.ip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "a.ip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "b.ip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "c.ip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "d.ip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "e.ip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "0.f.ip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "1.f.ip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "2.f.ip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "3.f.ip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "4.f.ip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "5.f.ip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "6.f.ip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "7.f.ip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "8.f.ip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "9.f.ip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "afip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "bfip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "0.efip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "1.efip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "2.efip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "3.efip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "4.efip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "5.efip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "6.efip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "7.efip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; };

// IPv6 ULA (RFCs 4193 และ 6303)
โซน "cfip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "dfip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; };

// IPv6 Link Local (RFCs 4291 และ 6303)
โซน "8.efip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "9.efip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "aefip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; zone "befip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; };

// ที่อยู่ไซต์ท้องถิ่นที่เลิกใช้งาน IPv6 (RFCs 3879 และ 6303)
โซน "cefip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "defip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; โซน "eefip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; }; zone "fefip6.arpa" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; };

// IP6.INT เลิกใช้แล้ว (RFC 4159)
โซน "ip6.int" {พิมพ์ master; ไฟล์ "/etc/bind/db.empty"; };

root @ master: ~ # nano /etc/bind/named.conf.local
// // ทำการกำหนดค่าภายในเครื่องที่นี่ // // พิจารณาเพิ่มโซน 1918 ที่นี่หากไม่ได้ใช้ใน // องค์กรของคุณรวม "/etc/bind/zones.rfc1918";
รวม "/etc/bind/zones.rfcFreeBSD";

// การประกาศชื่อประเภทตำแหน่งและสิทธิ์ในการอัปเดต // ของโซนระเบียน DNS // ทั้งสองโซนเป็นโซน MASTER "swl.fan" {type master; ไฟล์ "/var/lib/bind/db.swl.fan"; }; โซน "10.168.192.in-addr.arpa" {พิมพ์ master; ไฟล์ "/var/lib/bind/db.10.168.192.in-addr.arpa"; };

root @ master: ~ # named-checkconf

root @ master: ~ # nano /var/lib/bind/db.swl.fan
$ TTL 3H @ ใน SOA master.swl.fan root.master.swl.fan (1; อนุกรม 1D รีเฟรช 1H; ลองอีกครั้ง 1W หมดอายุ 3H); ขั้นต่ำหรือ; เวลาแคชเชิงลบในการใช้งาน @ ใน NS master.swl.fan. @ ใน MX 10 mail.swl.fan. @ IN A 192.168.10.5 @ IN TXT "For Fans of Free Software"; sysadmin ในเซิร์ฟเวอร์ไฟล์ 192.168.10.1 ใน A 192.168.10.4 master ใน A 192.168.10.5 proxyweb ใน A 192.168.10.6 บล็อกในเซิร์ฟเวอร์เซิร์ฟเวอร์ 192.168.10.7 ฟุตในอีเมล 192.168.10.8 ใน 192.168.10.9

รูท @ มาสเตอร์: ~ # นาโน /var/lib/bind/db.10.168.192.in-addr.arpa
$ TTL 3H @ ใน SOA master.swl.fan root.master.swl.fan (1; อนุกรม 1D รีเฟรช 1H; ลองอีกครั้ง 1W หมดอายุ 3H); ขั้นต่ำหรือ; เวลาแคชเชิงลบในการใช้งาน @ ใน NS master.swl.fan. ; 1 ใน PTR sysadmin.swl.fan 4 ในเซิร์ฟเวอร์ไฟล์ PTR.swl.fan 5 ใน PTR master.swl.fan 6 ใน PTR proxyweb.swl.fan 7 ใน PTR blog.swl.fan 8 ใน PTR ftpserver.swl.fan 9 ใน PTR mail.swl.fan

root @ master: ~ # named-checkzone swl.fan /var/lib/bind/db.swl.fan
โซน swl.fan/IN: โหลด serial 1 OK
root @ master: ~ # named-checkzone 10.168.192.in-addr.arpa /var/lib/bind/db.10.168.192.in-addr.arpa
โซน 10.168.192.in-addr.arpa/IN: โหลด serial 1 OK

root @ master: ~ # named-checkconf -zp
root @ master: ~ # systemctl รีสตาร์ท bind9.service
root @ master: ~ # systemctl สถานะ bind9.service

Bind9 เช็ค

root @ master: ~ # ขุด swl.fan axfr
root @ master: ~ # ขุด 10.168.192.in-addr.arpa axfr
root @ master: ~ # ขุดใน SOA swl.fan
root @ master: ~ # ขุดใน NS swl.fan
root @ master: ~ # ขุดใน MX swl.fan
root @ master: ~ # proxyweb โฮสต์ root @ master: ~ # nping --tcp -p 53 -c 3 localhost
root @ master: ~ # nping --udp -p 53 -c 3 localhost
root @ master: ~ # nping --tcp -p 53 -c 3 master.swl.fan
root @ master: ~ # nping --udp -p 53 -c 3 master.swl.fan
เริ่ม Nping 0.6.47 ( http://nmap.org/nping ) ที่ 2017-05-27 09:32 EDT SENT (0.0037s) UDP 192.168.10.5:53> 192.168.10.245:53 ttl = 64 id = 20743 iplen = 28 SENT (1.0044s) UDP 192.168.10.5:53> 192.168.10.245 .53: 64 ttl = 20743 id = 28 iplen = 2.0060 SENT (192.168.10.5s) UDP 53:192.168.10.245> 53:64 ttl = 20743 id = 28 iplen = 3 Max rtt: N / A | rtt ต่ำสุด: N / A | Avg rtt: N / A แพ็กเก็ตดิบที่ส่ง: 84 (0B) | Rcvd: 0 (3B) | แพ้: 100.00 (1%) Nping done: 3.01 IP address ping ใน XNUMX วินาที 

ISC-DHCP เซิร์ฟเวอร์

root @ master: ~ # aptitude ติดตั้ง isc-dhcp-server
root @ master: ~ # nano / etc / default / isc-dhcp-server
# บนอินเทอร์เฟซใดที่เซิร์ฟเวอร์ DHCP (dhcpd) ควรให้บริการคำขอ DHCP # แยกอินเทอร์เฟซหลายรายการด้วยช่องว่างเช่น "eth0 eth1"
อินเตอร์เฟซ = "eth0"

root @ master: ~ # dnssec-keygen -a HMAC-MD5 -b 128 -r / dev / urandom -n ผู้ใช้ dhcp-key
root @ master: ~ # cat Kdhcp-key +157 + 51777.private 
Private-key-format: v1.3 Algorithm: 157 (HMAC_MD5) Key: Ba9GVadq4vOCixjPN94dCQ == Bits: AAA = Created: 20170527133656 เผยแพร่: 20170527133656 เปิดใช้งาน: 20170527133656

root @ master: ~ # นาโน dhcp.key
คีย์ dhcp-key {
        อัลกอริทึม hmac-md5;
        ความลับ "Ba9GVadq4vOCixjPN94dCQ == ";
}; root @ master: ~ # install -o root -g bind -m 0640 dhcp.key /etc/bind/dhcp.key root @ master: ~ # install -o root -g root -m 0640 dhcp.key / etc / dhcp /dhcp.key root @ master: ~ # nano /etc/bind/named.conf.local
รวม "/etc/bind/dhcp.key";

zone "swl.fan" {พิมพ์ master; ไฟล์ "/var/lib/bind/db.swl.fan";
        อนุญาตให้อัปเดต {คีย์ dhcp-key; };
}; โซน "10.168.192.in-addr.arpa" {พิมพ์ master; ไฟล์ "/var/lib/bind/db.10.168.192.in-addr.arpa";
        อนุญาตให้อัปเดต {คีย์ dhcp-key; };
};

root @ master: ~ # named-checkconf

root @ master: ~ # mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.original
root @ master: ~ # nano /etc/dhcp/dhcpd.conf
ddns-update-style ระหว่างกาล; ddns-updates on; ddns-domainname "swl.fan."; ddns-rev-domainname "in-addr.arpa."; ละเว้นการอัปเดตไคลเอ็นต์ update-optimization false; # อาจจำเป็นใน Debian ที่เชื่อถือได้; ปิดตัวเลือกการส่งต่อ ip; ชื่อโดเมนตัวเลือก "swl.fan"; รวม "/etc/dhcp/dhcp.key"; โซน swl.fan {หลัก 127.0.0.1; คีย์ dhcp-key; } โซน 10.168.192.in-addr.arpa {หลัก 127.0.0.1; คีย์ dhcp-key; } redlocal เครือข่ายที่ใช้ร่วมกัน {subnet 192.168.10.0 netmask 255.255.255.0 {เราเตอร์ตัวเลือก 192.168.10.1; ตัวเลือกซับเน็ตมาสก์ 255.255.255.0; ตัวเลือกที่อยู่ออกอากาศ 192.168.10.255; ตัวเลือกโดเมนเนมเซิร์ฟเวอร์ 192.168.10.5; ตัวเลือก netbios-name-servers 192.168.10.5; ตัวเลือก ntp-servers 192.168.10.5; ตัวเลือกเวลาเซิร์ฟเวอร์ 192.168.10.5; ช่วง 192.168.10.30 192.168.10.250; }}

root @ master: ~ # dhcpd -t
Internet Systems Consortium DHCP Server 4.3.1 ลิขสิทธิ์ 2004-2014 Internet Systems Consortium สงวนลิขสิทธิ์. สำหรับข้อมูลกรุณาเยี่ยมชม https://www.isc.org/software/dhcp/
ไฟล์กำหนดค่า: /etc/dhcp/dhcpd.conf ไฟล์ฐานข้อมูล: /var/lib/dhcp/dhcpd.leases ไฟล์ PID: /var/run/dhcpd.pid

root @ master: ~ # systemctl รีสตาร์ท bind9.service 
root @ master: ~ # systemctl สถานะ bind9.service 

root @ master: ~ # systemctl start isc-dhcp-server.service
root @ master: ~ # systemctl สถานะ isc-dhcp-server.service

เอ็นทีพี

root @ master: ~ # aptitude ติดตั้ง ntp ntpdate
root @ master: ~ # cp /etc/ntp.conf /etc/ntp.conf.original
root @ master: ~ # nano /etc/ntp.conf
driftfile /var/lib/ntp/ntp.drift statistics loopstats peerstats clockstats filegen loopstats file loopstats type day enable filegen peerstats file peerstats type day enable filegen clockstats file clockstats type day enable server 192.168.10.1 จำกัด -4 default kod notrap nomodify nopeer noquery -6 เริ่มต้น kod notrap nomodify nopeer noquery จำกัด 127.0.0.1 จำกัด :: 1 ออกอากาศ 192.168.10.255

root @ master: ~ # systemctl รีสตาร์ท ntp.service 
root @ master: ~ # systemctl สถานะ ntp.service
root @ master: ~ # ntpdate -u sysadmin.swl.fan
27 พฤษภาคม 10:04:01 น. ntpdate [18769]: ปรับเวลาเซิร์ฟเวอร์ 192.168.10.1 ออฟเซ็ต 0.369354 วินาที

โกลบอลตรวจสอบ ntp, bind9 และ isc-dhcp-server

จากไคลเอนต์ Linux, BSD, Mac OS หรือ Windows ให้ตรวจสอบว่าเวลาตรงกันอย่างถูกต้อง ได้รับที่อยู่ IP แบบไดนามิกและชื่อของโฮสต์นั้นได้รับการแก้ไขผ่านการสอบถาม DNS โดยตรงและย้อนกลับ เปลี่ยนชื่อลูกค้าและทำการตรวจสอบซ้ำทั้งหมด อย่าดำเนินการต่อจนกว่าคุณจะแน่ใจว่าบริการที่ติดตั้งจนถึงขณะนี้ทำงานได้อย่างถูกต้อง สำหรับบางสิ่งที่เราเขียนบทความทั้งหมดเกี่ยวกับ DNS และ DHCP ใน เครือข่ายคอมพิวเตอร์สำหรับ SMEs.

การติดตั้งเซิร์ฟเวอร์ NIS

root @ master: ~ # แสดงความถนัด nis
ขัดแย้งกับ: netstd (<= 1.26) คำอธิบาย: ไคลเอนต์และ daemons สำหรับ Network Information Service (NIS) แพ็คเกจนี้มีเครื่องมือสำหรับการตั้งค่าและดูแลโดเมน NIS NIS เดิมเรียกว่าสมุดหน้าเหลือง (YP) ส่วนใหญ่จะใช้เพื่อให้เครื่องหลายเครื่องในเครือข่ายแชร์ข้อมูลบัญชีเดียวกันเช่นไฟล์รหัสผ่าน

root @ master: ~ # aptitude ติดตั้ง nis
การกำหนดค่าแพ็คเกจ┌─────────────────────────┤การกำหนดค่า Nis ├──────────────── ──────────┐│เลือก NIS "ชื่อโดเมน" สำหรับระบบนี้ หากคุณต้องการให้เครื่อง││นี้เป็นเพียงไคลเอนต์คุณควรป้อนชื่อของโดเมน││ NIS ที่คุณต้องการเข้าร่วม ││││หรือหากเครื่องนี้เป็นเซิร์ฟเวอร์ NIS คุณสามารถ││ป้อน "ชื่อโดเมน" NIS ใหม่หรือชื่อของโดเมน NIS ││ที่มีอยู่ได้ ││││ NIS โดเมน: ││││ swl.fan __________________________________________________________________ ││││ │││└────────────────────────────────────────────── ─────────────────────────────┘  

จะทำให้คุณล่าช้าเนื่องจากไม่มีการกำหนดค่าบริการดังกล่าว โปรดรอให้กระบวนการเสร็จสิ้น

root @ master: ~ # nano / etc / default / nis
# เราเป็นเซิร์ฟเวอร์ NIS หรือไม่และถ้าเป็นเช่นนั้น (ค่า: false, slave, master)?
NISSERVER = ต้นแบบ

root @ master: ~ # nano /etc/ypserv.securenets # securenets ไฟล์นี้กำหนดสิทธิ์การเข้าถึงเซิร์ฟเวอร์ NIS ของคุณสำหรับไคลเอนต์ NIS (และเซิร์ฟเวอร์ทาส - ypxfrd ใช้ # ไฟล์นี้ด้วย) ไฟล์นี้มีคู่ netmask / เครือข่าย # ที่อยู่ IP ของลูกค้าต้องตรงกับอย่างน้อยหนึ่ง # ที่อยู่ # # หนึ่งสามารถใช้คำว่า "โฮสต์" แทน netmask ของ # 255.255.255.255 อนุญาตเฉพาะที่อยู่ IP ใน # ไฟล์นี้ไม่ใช่ชื่อโฮสต์ # # อนุญาตการเข้าถึง localhost 255.0.0.0 127.0.0.0 เสมอ # บรรทัดนี้ให้การเข้าถึงกับทุกคน โปรดปรับ! # 0.0.0.0 0.0.0.0
255.255.255.0 192.168.10.0

root @ master: ~ # nano / var / yp / Makefile # เราควรรวมไฟล์ passwd กับไฟล์เงาหรือไม่ # MERGE_PASSWD = จริง | เท็จ
MERGE_PASSWD = จริง

# เราควรรวมไฟล์กลุ่มกับไฟล์ gshadow หรือไม่? # MERGE_GROUP = จริง | เท็จ
MERGE_GROUP = จริง

เราสร้างฐานข้อมูล NIS

root @ master: ~ # / usr / lib / yp / ypinit -m
ณ จุดนี้เราต้องสร้างรายการโฮสต์ที่จะเรียกใช้เซิร์ฟเวอร์ NIS master.swl.fan อยู่ในรายการโฮสต์เซิร์ฟเวอร์ NIS โปรดเพิ่มชื่อสำหรับโฮสต์อื่น ๆ ต่อหนึ่งบรรทัด เมื่อคุณทำรายการเสร็จแล้วให้พิมพ์ a . โฮสต์ถัดไปที่จะเพิ่ม: master.swl.fan โฮสต์ถัดไปที่จะเพิ่ม: รายการเซิร์ฟเวอร์ NIS ปัจจุบันมีลักษณะดังนี้: master.swl.fan ถูกต้องหรือไม่ [y / n: y] เราต้องใช้เวลาสักครู่ในการสร้างฐานข้อมูล ... สร้าง [1]: ออกจากไดเรกทอรี '/var/yp/swl.fan' master.swl.fan ได้รับการตั้งค่าเป็นเซิร์ฟเวอร์หลักของ NIS . ตอนนี้คุณสามารถรัน ypinit -s master.swl.fan บนเซิร์ฟเวอร์ทาสทั้งหมดได้

root @ master: ~ # systemctl รีสตาร์ท nis
root @ master: ~ # systemctl สถานะ nis

เราเพิ่มผู้ใช้ในท้องถิ่น

root @ master: ~ # adduser bilbo
การเพิ่มผู้ใช้ `bilbo '... การเพิ่มกลุ่มใหม่' bilbo '(1001) ... การเพิ่มผู้ใช้ใหม่` bilbo' (1001) ด้วย group` bilbo '... การสร้างโฮมไดเร็กทอรี `/ home / bilbo' ... คัดลอกไฟล์จาก `/ etc / skel '... ป้อนรหัสผ่าน UNIX ใหม่: พิมพ์รหัสผ่าน UNIX ใหม่อีกครั้ง: passwd: รหัสผ่านถูกอัพเดตอย่างถูกต้องการเปลี่ยนข้อมูลผู้ใช้สำหรับบิลโบป้อนค่าใหม่หรือ กด ENTER เพื่อใช้ชื่อเต็มเริ่มต้น []: Bilbo Bagins Room Number []: โทรศัพท์ที่ทำงาน []: โทรศัพท์บ้าน []: อื่น ๆ []: ข้อมูลถูกต้องหรือไม่? [Y / n]

root @ master: ~ # adduser ก้าวย่าง root @ master: ~ # adduser legolas

เป็นต้น

root @ master: ~ # นิ้วเลโกลัส
เข้าสู่ระบบ: Legolas ชื่อ: Legolas Archer Directory: / home / legolas Shell: / bin / bash ไม่เคยเข้าสู่ระบบ ไม่มีจดหมาย ไม่มีแผน

เราอัปเดตฐานข้อมูล NIS

root @ master: / var / yp # make
ทำให้ [1]: กำลังเข้าสู่ไดเรกทอรี '/var/yp/swl.fan' กำลังอัปเดต passwd.byname ... กำลังอัปเดต passwd.byuid ... กำลังอัปเดต group.byname ... กำลังอัปเดต group.bygid ... กำลังอัปเดต netid.byname .. กำลังอัปเดต shadow.byname ... ละเว้น -> ผสานกับ passwd make [1]: ออกจากไดเร็กทอรี '/var/yp/swl.fan'

เราเพิ่มตัวเลือก NIS ให้กับ isc-dhcp-server

root @ master: ~ # nano /etc/dhcp/dhcpd.conf
ddns-update-style ระหว่างกาล; ddns-updates on; ddns-domainname "swl.fan."; ddns-rev-domainname "in-addr.arpa."; ละเว้นการอัปเดตไคลเอ็นต์ update-optimization false; เผด็จการ; ปิดตัวเลือกการส่งต่อ ip; ชื่อโดเมนตัวเลือก "swl.fan"; รวม "/etc/dhcp/dhcp.key"; โซน swl.fan {หลัก 127.0.0.1; คีย์ dhcp-key; } โซน 10.168.192.in-addr.arpa {หลัก 127.0.0.1; คีย์ dhcp-key; } redlocal เครือข่ายที่ใช้ร่วมกัน {subnet 192.168.10.0 netmask 255.255.255.0 {เราเตอร์ตัวเลือก 192.168.10.1; ตัวเลือกซับเน็ตมาสก์ 255.255.255.0; ตัวเลือกที่อยู่ออกอากาศ 192.168.10.255; ตัวเลือกโดเมนเนมเซิร์ฟเวอร์ 192.168.10.5; ตัวเลือก netbios-name-servers 192.168.10.5; ตัวเลือก ntp-servers 192.168.10.5; ตัวเลือกเวลาเซิร์ฟเวอร์ 192.168.10.5;
                ตัวเลือก nis-domain "swl.fan";
                ตัวเลือก nis-servers 192.168.10.5;
                ช่วง 192.168.10.30 192.168.10.250; }}

root @ master: ~ # dhcpd -t
root @ master: ~ # systemctl รีสตาร์ท isc-dhcp-server.service

การติดตั้งไคลเอ็นต์ NIS

  • เราเริ่มต้นจากการติดตั้งใหม่ทั้งหมด - โดยไม่มีส่วนต่อประสานกราฟิก - ของ Debian 8 "Jessie".
root @ mail: ~ # hostname -f
mail.swl.fan

root @ mail: ~ # ip addr
2: eth0: mtu 1500 qdisc pfifo_fast state UP กลุ่มเริ่มต้นลิงก์ qlen 1000 / อีเธอร์ 00: 0c: 29: 25: 1f: 54 brd ff: ff: ff: ff: ff: ff
    inet 192.168.10.9/24 brd 192.168.10.255 ขอบเขต global eth0

รูท @ เมล: ~ # ความถนัดติดตั้ง nis
รูท @ เมล: ~ # nano /etc/yp.conf # # yp.conf ไฟล์คอนฟิกูเรชันสำหรับกระบวนการ ypbind คุณสามารถกำหนดเซิร์ฟเวอร์ # NIS ได้ด้วยตนเองที่นี่หากไม่พบโดย # การแพร่ภาพบนเน็ตท้องถิ่น (ซึ่งเป็นค่าเริ่มต้น) # # ดูหน้าคู่มือของ ypbind สำหรับไวยากรณ์ของไฟล์นี้ # # ข้อสำคัญ: สำหรับ "ypserver" ให้ใช้ที่อยู่ IP หรือตรวจสอบให้แน่ใจว่า # โฮสต์อยู่ใน / etc / hosts ไฟล์นี้ได้รับการตีความ # ครั้งเดียวและหาก DNS ไม่สามารถเข้าถึงได้ แต่ ypserver จะไม่สามารถ # แก้ไขได้และ ypbind จะไม่เชื่อมโยงกับเซิร์ฟเวอร์ # ypserver ypserver.network.com โดเมน ypserver master.swl.fan swl.fan

root @ mail: ~ # nano /etc/nsswitch.conf
# /etc/nsswitch.conf # # ตัวอย่างการกำหนดค่าฟังก์ชัน GNU Name Service Switch # หากคุณติดตั้งแพ็คเกจ "glibc-doc-reference" และ "info" แล้วให้ลอง: # "info libc" Name Service Switch "สำหรับข้อมูลเกี่ยวกับไฟล์นี้ passwd: compat nis group: compat nis shadow: compat nis gshadow: files hosts: files dns nis networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: nis

root @ mail: ~ # nano /etc/pam.d/common-session
# pam-auth-update (8) สำหรับรายละเอียด
ตัวเลือก pam_mkhomedir.so skel = / etc / skel umask = 077
# นี่คือโมดูลต่อแพ็คเกจ (บล็อก "หลัก")

root @ mail: ~ # systemctl สถานะ nis
root @ mail: ~ # systemctl รีสตาร์ท nis

เราปิดเซสชันและเริ่มต้นอีกครั้ง แต่มีผู้ใช้ที่ลงทะเบียนในฐานข้อมูล NIS ที่ master.swl.fan.

root @ mail: ~ # exit
ออกจากระบบการเชื่อมต่อกับเมลปิด

buzz @ sysadmin: ~ $ ssh legolas @ mail
รหัสผ่านของ legolas @ mail: การสร้างไดเร็กทอรี '/ home / legolas' โปรแกรมที่มาพร้อมกับระบบ Debian GNU / Linux เป็นซอฟต์แวร์ฟรี ข้อกำหนดการแจกจ่ายที่แน่นอนสำหรับแต่ละโปรแกรมมีอธิบายไว้ในไฟล์แต่ละไฟล์ใน / usr / share / doc / * / copyright Debian GNU / Linux มาพร้อมกับการรับประกันอย่างแท้จริงโดยไม่มีการรับประกันตามขอบเขตที่กฎหมายอนุญาต
legolas @ mail: ~ $ pwd
/ home / เลโกลัส
legolas @ mail: ~ $ 

เราเปลี่ยนรหัสผ่านของผู้ใช้เลโกลัสและตรวจสอบ

legolas @ mail: ~ $ yppasswd 
การเปลี่ยนข้อมูลบัญชี NIS สำหรับเลโกลัสบน master.swl.fan โปรดป้อนรหัสผ่านเดิม: เลโกลัสการเปลี่ยนรหัสผ่าน NIS สำหรับเลโกลัสบน master.swl.fan โปรดป้อนรหัสผ่านใหม่: archer รหัสผ่านต้องมีทั้งตัวพิมพ์ใหญ่และตัวพิมพ์เล็กหรือไม่ใช่ตัวอักษร กรุณากรอกรหัสผ่านใหม่: Arquero2017 กรุณาพิมพ์รหัสผ่านใหม่: Arquero2017 รหัสผ่าน NIS ถูกเปลี่ยนบน master.swl.fan

legolas @ mail: ~ $ exit
ออกจากระบบการเชื่อมต่อกับเมลปิด

buzz @ sysadmin: ~ $ ssh legolas @ mail
รหัสผ่านของ legolas @ mail: Arquero2017

โปรแกรมที่มาพร้อมกับระบบ Debian GNU / Linux เป็นซอฟต์แวร์ฟรี ข้อกำหนดการแจกจ่ายที่แน่นอนสำหรับแต่ละโปรแกรมมีอธิบายไว้ในไฟล์แต่ละไฟล์ใน / usr / share / doc / * / copyright Debian GNU / Linux มาพร้อมกับการรับประกันอย่างแท้จริงโดยไม่มีการรับประกันตามขอบเขตที่กฎหมายอนุญาต เข้าสู่ระบบครั้งสุดท้าย: วันที่ 27 พฤษภาคม 12:51:50 2017 จาก sysadmin.swl.fan
legolas @ mail: ~ $

บริการ NIS ที่ใช้ในระดับเซิร์ฟเวอร์และไคลเอนต์ทำงานได้อย่างถูกต้อง

LDAP

จาก Wikipedia:

  • LDAP เป็นคำย่อของ Lightweight Directory Access Protocol (ใน Spanish Lightweight / Simplified Directory Access Protocol) ที่อ้างถึงโปรโตคอลระดับแอปพลิเคชันที่อนุญาตให้เข้าถึงบริการไดเร็กทอรีที่สั่งและกระจายเพื่อค้นหาข้อมูลต่างๆในสภาพแวดล้อม เครือข่าย LDAP ยังถือเป็นฐานข้อมูล (แม้ว่าระบบจัดเก็บข้อมูลอาจแตกต่างกัน) ที่สามารถสืบค้นได้ไดเร็กทอรีคือชุดของอ็อบเจ็กต์ที่มีแอ็ตทริบิวต์ที่จัดเรียงตามลำดับชั้น ตัวอย่างที่พบบ่อยที่สุดคือสมุดโทรศัพท์ซึ่งประกอบด้วยชุดของชื่อ (บุคคลหรือองค์กร) ที่เรียงตามตัวอักษรโดยแต่ละชื่อจะมีที่อยู่และหมายเลขโทรศัพท์ติดอยู่ เพื่อให้เข้าใจได้ดียิ่งขึ้นหนังสือหรือโฟลเดอร์ซึ่งมีการเขียนชื่อของผู้คนหมายเลขโทรศัพท์และที่อยู่และจัดเรียงตามตัวอักษร

    โครงสร้างไดเรกทอรี LDAP บางครั้งสะท้อนถึงขอบเขตทางการเมืองภูมิศาสตร์หรือองค์กรต่างๆขึ้นอยู่กับรูปแบบที่เลือก การปรับใช้ LDAP ในปัจจุบันมักจะใช้ชื่อ Domain Name System (DNS) เพื่อจัดโครงสร้างระดับที่สูงขึ้นของลำดับชั้น เมื่อคุณย้ายไดเรกทอรีลงรายการอาจปรากฏขึ้นซึ่งแสดงถึงบุคคลหน่วยขององค์กรเครื่องพิมพ์เอกสารกลุ่มบุคคลหรืออะไรก็ตามที่แสดงถึงรายการที่กำหนดในโครงสร้าง (หรือหลายรายการ)

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

    เวอร์ชันปัจจุบันคือ LDAPv3 และกำหนดไว้ใน RFCs RFC 2251 และ RFC 2256 (เอกสารฐาน LDAP), RFC 2829 (วิธีการพิสูจน์ตัวตนสำหรับ LDAP), RFC 2830 (ส่วนขยายสำหรับ TLS) และ RFC 3377 (ข้อกำหนดทางเทคนิค)

    .

เป็นเวลานานโปรโตคอล LDAP - และฐานข้อมูลที่เข้ากันได้หรือไม่กับ OpenLDAP - เป็นระบบที่ใช้มากที่สุดในระบบการพิสูจน์ตัวตนส่วนใหญ่ในปัจจุบัน ตามตัวอย่างของคำสั่งก่อนหน้านี้เราให้ชื่อระบบ -Free หรือ Private- บางระบบที่ใช้ฐานข้อมูล LDAP เป็นแบ็กเอนด์เพื่อจัดเก็บอ็อบเจ็กต์ทั้งหมด:

  • OpenLDAP
  • Apache DirectoryServer
  • เซิร์ฟเวอร์ไดเรกทอรี Red Hat - 389 DS
  • Novell Directory Services - eDirectory
  • SUN Microsystem เปิด DS
  • ผู้จัดการประจำตัวหมวกแดง
  • ฟรี IPA
  • Samba NT4 Classic Domain Controller
    เราต้องการชี้แจงว่าระบบนี้เป็นการพัฒนาของ Team Samba โดยใช้ Samba 3.xxx + OpenLDAP เป็น แบ็กเอนด์. Microsoft ไม่เคยใช้งานอะไรแบบนี้ ข้ามจากตัวควบคุมโดเมน NT 4 ไปยัง Active Directories
  • Samba 4 Active Directory - ตัวควบคุมโดเมน
  • ClearOS
  • เซนทัล
  • เซิร์ฟเวอร์องค์กร UCS Uninvention
  • ไมโครซอฟต์แอคทีฟไดเร็กทอรี

การนำไปใช้งานแต่ละครั้งมีลักษณะเฉพาะของตนเองและมาตรฐานที่สุดและเข้ากันได้คือ OpenLDAP.

Active Directory ไม่ว่าจะเป็นของแท้จาก Microsoft หรือจาก Samba 4 ประกอบด้วยส่วนประกอบหลักหลายอย่าง ได้แก่ :

เราต้องไม่สับสนกับไฟล์ บริการไดเรกทอรี o Directory Service พร้อมไฟล์ Active Directory o Active Directory เดิมอาจเป็นหรือไม่โฮสต์การรับรองความถูกต้อง Kerberos แต่พวกเขาไม่ได้เสนอบริการเครือข่ายของ Microsoft ที่โดเมน Windows มีให้และไม่มี Windows Domain Controller เช่นนั้น

คุณสามารถใช้ Directory Service หรือ Directory Service เพื่อพิสูจน์ตัวตนผู้ใช้ในเครือข่ายผสมกับไคลเอ็นต์ UNIX / Linux และ Windows สำหรับโปรแกรมหลังนี้จะต้องติดตั้งบนไคลเอนต์แต่ละตัวที่ทำหน้าที่เป็นตัวกลางระหว่าง Directory Service และไคลเอนต์ Windows เช่นซอฟต์แวร์ฟรี หน้า.

บริการไดเรกทอรีด้วย OpenLDAP

  • เราเริ่มต้นจากการติดตั้งใหม่ทั้งหมด - โดยไม่มีส่วนต่อประสานกราฟิก - ของ Debian 8 "Jessie"ด้วยชื่อเครื่อง "master" เดียวกันที่ใช้สำหรับการติดตั้ง NIS ตลอดจนการกำหนดค่าอินเทอร์เฟซเครือข่ายและไฟล์ /etc/resolv.conf สำหรับเซิร์ฟเวอร์ใหม่นี้เราติดตั้งเซิร์ฟเวอร์ ntp, bind9 และ isc-dhcp-server โดยไม่ลืมการตรวจสอบทั่วโลกเกี่ยวกับการทำงานที่ถูกต้องของสามบริการก่อนหน้านี้.
root @ master: ~ # aptitude ติดตั้ง sldap-utils

การกำหนดค่าแพ็คเกจ

┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────... การกำหนดค่า Slapd ├─────────────────────┐│ป้อนรหัสผ่านสำหรับรายการผู้ดูแลระบบของไดเร็กทอรี LDAP ││ของคุณ ││││รหัสผ่านของผู้ดูแลระบบ: ││││ ******** _________________________________________________________ ││││ │││└────────────────────────────────────────────── ─────────────────────┘

เราตรวจสอบการกำหนดค่าเริ่มต้น

root @ master: ~ # ตบแคท
dn: dc = swl, dc = พัดลม
objectClass: top objectClass: dcObject objectClass: organization o: swl.fan dc: swl StructureObjectClass: organization entryUUID: c8510708-da8e-1036-8fe1-71d022a16904 creatorName: cn = admin, dc = swl, dc = fan entry createTimestamp20170531205219: 20170531205219.833955ZN entry : 000000ZN000 รายการ Z # 000000 # 20170531205219 # XNUMX modifiersName: cn = admin, dc = swl, dc = fan modifiedTimestamp: XNUMXZ

dn: cn = admin, dc = swl, dc = fan
objectClass: simpleSecurityObject objectClass: organizationalRole CN: คำอธิบายผู้ดูแลระบบ: ผู้ดูแลระบบ LDAP userPassword :: e1NTSEF9emJNSFU1R3l2OWVEN0pmTmlYOVhKSUF4ekY1bU9YQXc = structuralObjectClass: organizationalRole entryUUID: c851178e- da8fe1036e entrySw8d-da2fe71 entrySw022c16904e-da20170531205219fe20170531205219.834422e-000000-entrySw000e da000000fe20170531205219e = entrySXNUMX entrySwXNUMXe-daXNUMXfeXNUMXeXNUMXpmTmlYOVhKSUXNUMX entrySXNUMXe-XNUMXe รายการ = cXNUMXe XNUMXZ # XNUMX # XNUMX # XNUMX modifiersName: cn = admin, dc = swl, dc = fan modifiedTimestamp: XNUMXZ

เราแก้ไขไฟล์ /etc/ldap/ldap.conf

root @ master: ~ # nano /etc/ldap/ldap.conf
ฐาน dc = swl, dc = พัดลม URI    ldap: // localhost

หน่วยขององค์กรและกลุ่มทั่วไป«ผู้ใช้»

เราเพิ่มหน่วยองค์กรขั้นต่ำที่จำเป็นรวมทั้งกลุ่ม Posix «ผู้ใช้»ซึ่งเราจะทำให้ผู้ใช้เป็นสมาชิกทั้งหมดตามตัวอย่างของระบบจำนวนมากที่มีกลุ่ม«ผู้ใช้«. เราเรียกโดยใช้ชื่อ«ผู้ใช้»เพื่อไม่ให้เกิดความขัดแย้งกับกลุ่ม«ผู้ใช้งาน"ของระบบ

root @ master: ~ # นาโน base.ldif
dn: ou = people, dc = swl, dc = fan objectClass: organizationalUnit ou: people dn: ou = groups, dc = swl, dc = fan objectClass: organizationalUnit ou: groups dn: cn = users, ou = groups, dc = swl, dc = fan objectClass: posixGroup cn: users gidNumber: 10000

root @ master: ~ # ldapadd -x -D cn = admin, dc = swl, dc = fan -W -f base.ldif
ป้อนรหัสผ่าน LDAP: การเพิ่มรายการใหม่ "ou = people, dc = swl, dc = fan" การเพิ่มรายการใหม่ "ou = groups, dc = swl, dc = fan"

เราตรวจสอบรายการที่เพิ่มเข้ามา

root @ master: ~ # ldapsearch -x ou = คน
# people, swl.fan dn: ou = people, dc = swl, dc = fan objectClass: organizationalUnit ou: people

root @ master: ~ # ldapsearch -x ou = กลุ่ม
# groups, swl.fan dn: ou = groups, dc = swl, dc = fan objectClass: organizationalUnit ou: groups

root @ master: ~ # ldapsearch -x cn = ผู้ใช้
# users, groups, swl.fan dn: cn = users, ou = groups, dc = swl, dc = fan objectClass: posixGroup cn: users gidNumber: 10000

เราเพิ่มผู้ใช้หลายคน

รหัสผ่านที่เราต้องประกาศใน LDAP ต้องได้รับผ่านคำสั่ง สแลปพาสwdซึ่งส่งคืนรหัสผ่านที่เข้ารหัส SSHA

รหัสผ่านสำหรับก้าวย่างของผู้ใช้:

root @ master: ~ # slappasswd 
รหัสผ่านใหม่: ป้อนรหัสผ่านใหม่อีกครั้ง: 
{SSHA}Fn8Juihsr137u8KnxGTNPmnV8ai//0lp

รหัสผ่านสำหรับผู้ใช้เลโกลัส

root @ master: ~ # slappasswd 
รหัสผ่านใหม่: ป้อนรหัสผ่านใหม่อีกครั้ง: 
{SSHA}rC50/W3kBmmDd+8+0Lz70vkGEu34tXmD

รหัสผ่านสำหรับผู้ใช้แกนดัล์ฟ

root @ master: ~ # slappasswd 
รหัสผ่านใหม่: ป้อนรหัสผ่านใหม่อีกครั้ง: 
{SSHA} oIVFelqv8WIxJ40r12lnh3bp + SXGbV + u

root @ master: ~ # nano users.ldif
dn: uid = strides, ou = people, dc = swl, dc = fan objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: strides cn: strides givenName: Strides sn: El Rey userPassword: {SSHA}Fn8Juihsr137u8KnxGTNPmnV8ai//0lp
uidNumber: 10000 gidNumber: 10000 เมล: striders@swl.fan
gecos: Strider El Rey loginShell: / bin / bash homeDirectory: / home / strider dn: uid = legolas, ou = people, dc = swl, dc = fan objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: legolas cn: legolas givenName : Legolas sn: Archer user รหัสผ่าน: {SSHA}rC50/W3kBmmDd+8+0Lz70vkGEu34tXmD
uidNumber: 10001 gidNumber: 10000 เมล: legolas@swl.fan
gecos: Legolas Archer loginShell: / bin / bash homeDirectory: / home / legolas dn: uid = gandalf, ou = people, dc = swl, dc = fan objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: gandalf cname: gandalf given Gandalf sn: ผู้ใช้ Wizard {SSHA} oIVFelqv8WIxJ40r12lnh3bp + SXGbV + u
uidNumber: 10002 gidNumber: 10000 เมล: gandalf@swl.fan
gecos: Gandalf The Wizard loginShell: / bin / bash homeDirectory: / home / gandalf

root @ master: ~ # ldapadd -x -D cn = admin, dc = swl, dc = fan -W -f users.ldif
ป้อนรหัสผ่าน LDAP: การเพิ่มรายการใหม่ "uid = strides, ou = people, dc = swl, dc = fan" การเพิ่มรายการใหม่ "uid = legolas, ou = people, dc = swl, dc = fan" การเพิ่มรายการใหม่ "uid = แกนดัล์ฟ, ou = คน, dc = swl, dc = fan "

เราตรวจสอบรายการที่เพิ่มเข้ามา

root @ master: ~ # ldapsearch -x cn = ก้าวย่าง
root @ master: ~ # ldapsearch -x uid = ก้าวย่าง

เราจัดการฐานข้อมูล slpad ด้วยยูทิลิตี้คอนโซล

เราเลือกแพ็คเกจ ldapscripts สำหรับงานดังกล่าว ขั้นตอนการติดตั้งและการกำหนดค่ามีดังนี้:

root @ master: ~ # aptitude ติดตั้ง ldapscripts
 
รูท @ มาสเตอร์: ~ # mv /etc/ldapscripts/ldapscripts.conf \
/etc/ldapscripts/ldapscripts.conf.Original
 
root @ master: ~ # nano /etc/ldapscripts/ldapscripts.conf
เซิร์ฟเวอร์ = localhost BINDDN = 'cn = admin, dc = swl, dc = fan' BINDPWDFILE = "/ etc / ldapscripts / ldapscripts.passwd" SUFFIX = 'dc = swl, dc = fan' GSUFFIX = 'ou = groups' USUFFIX = 'ou = people' # MSUFFIX = 'ou = คอมพิวเตอร์' GIDSTART = 10001 UIDSTART = 10003 # MIDSTART = 10000 # คำสั่งไคลเอ็นต์ OpenLDAP LDAPSEARCHBIN = "/ usr / bin / ldapsearch" LDAPADDBIN = "/ usr / bin / ldapadd" LDAPDELETEBIN = " / usr / bin / ldapdelete "LDAPMODIFYBIN =" / usr / bin / ldapmodify "LDAPMODRDNBIN =" / usr / bin / ldapmodrdn "LDAPPASSWDBIN =" / usr / bin / ldappasswd "GCLASS =" posixGroup = "ฯลฯ / UTEMPLASS ldapadduser.template "PASSWORDGEN =" echo% u "

สังเกตว่าสคริปต์ใช้คำสั่งแพ็กเกจ ldap-utils. วิ่ง dpkg -L ldap-utils | grep / bin ที่จะรู้ว่าพวกเขาคืออะไร

root @ master: ~ # sh -c "echo -n 'admin-password'> \
/etc/ldapscripts/ldapscripts.passwd "
 
root @ master: ~ # chmod 400 /etc/ldapscripts/ldapscripts.passwd
 
root @ master: ~ # cp /usr/share/doc/ldapscripts/examples/ldapadduser.template.sample \
/etc/ldapscripts/ldapdduser.template
 
root @ master: ~ # nano /etc/ldapscripts/ldapadduser.template
dn: uid = , , objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: cn: givenName: sn: ชื่อที่แสดง: uidNumber: gidNumber: 10000 หน้าแรก เข้าสู่ระบบเชลล์: จดหมาย: @ swl.fan ตุ๊กแก: คำอธิบาย: บัญชีผู้ใช้
 
root @ master: ~ # nano /etc/ldapscripts/ldapscripts.conf
## เราลบความคิดเห็น UTEMPLATE = "/ etc / ldapscripts / ldapadduser.template"

เราเพิ่มผู้ใช้ "bilbo" และทำให้เขาเป็นสมาชิกของกลุ่ม "ผู้ใช้"

root @ master: ~ # ldapadduser ผู้ใช้ bilbo
[dn: uid = bilbo, ou = people, dc = swl, dc = fan] ป้อนค่าสำหรับ "givenName": Bilbo [dn: uid = bilbo, ou = people, dc = swl, dc = fan] ป้อนค่าสำหรับ " sn ": Bagins [dn: uid = bilbo, ou = people, dc = swl, dc = fan] ป้อนค่าสำหรับ" displayName ": Bilbo Bagins เพิ่มผู้ใช้ bilbo ลงใน LDAP เรียบร้อยแล้วตั้งรหัสผ่านสำหรับผู้ใช้บิลโบ

root @ master: ~ # ldapsearch -x uid = bilbo
# bilbo, คน, swl.fan dn: uid = bilbo, ou = people, dc = swl, dc = fan objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: bilbo cn: bilbo givenName: Bilbo sn: Bagins displayName: Bilbo Bagins uidNumber: 10003 gidNumber: 10000 home ไดเร็กทอรี: / home / bilbo loginShell: / bin / bash mail: bilbo@swl.fan
gecos: bilbo คำอธิบาย: บัญชีผู้ใช้

หากต้องการดูแฮชของรหัสผ่านของผู้ใช้บิลโบจำเป็นต้องดำเนินการค้นหาด้วยการพิสูจน์ตัวตน:

root @ master: ~ # ldapsearch -x -D cn = admin, dc = swl, dc = fan -W uid = bilbo

ในการลบผู้ใช้ bilbo เราดำเนินการ:

root @ master: ~ # ldapdelete -x -D cn = admin, dc = swl, dc = fan -W uid = bilbo, ou = people, dc = swl, dc = fan
ป้อนรหัสผ่าน LDAP:

root @ master: ~ # ldapsearch -x uid = bilbo

เราจัดการฐานข้อมูล Slapd ผ่านเว็บอินเตอร์เฟส

เรามีบริการไดเรกทอรีที่ใช้งานได้และเราต้องการจัดการได้ง่ายขึ้น มีโปรแกรมมากมายที่ออกแบบมาสำหรับงานนี้เช่นไฟล์ phpldapadmin, ldap บัญชีผู้จัดการฯลฯ ซึ่งมีให้โดยตรงจากที่เก็บ นอกจากนี้เรายังสามารถจัดการบริการไดเรกทอรีผ่านไฟล์ Apache ไดเร็กทอรีสตูดิโอซึ่งเราต้องดาวน์โหลดจากอินเทอร์เน็ต

ดูข้อมูลเพิ่มเติมได้ที่ https://blog.desdelinux.net/ldap-introduccion/และ 6 บทความต่อไปนี้

ไคลเอ็นต์ LDAP

เวที:

สมมติว่าเรามีทีม mail.swl.fan เป็นเซิร์ฟเวอร์อีเมลที่ใช้งานตามที่เราเห็นในบทความ Postfix + Dovecot + Squirrelmail และผู้ใช้ในพื้นที่ซึ่งแม้ว่าจะพัฒนาบน CentOS แต่อาจใช้เป็นแนวทางสำหรับ Debian และ Linux distros อื่น ๆ อีกมากมาย เราต้องการสิ่งนั้นนอกเหนือจากผู้ใช้ท้องถิ่นที่เราได้ประกาศไปแล้วผู้ใช้ที่เก็บไว้ในฐานข้อมูล OpenLDAP ที่มีอยู่ใน master.swl.fan. เพื่อให้บรรลุเป้าหมายนี้เราต้อง«แผนที่»สำหรับผู้ใช้ LDAP ในฐานะผู้ใช้ภายในบนเซิร์ฟเวอร์ mail.swl.fan. โซลูชันนี้ใช้ได้กับบริการใด ๆ ที่ใช้การตรวจสอบสิทธิ์ PAM ขั้นตอนทั่วไปสำหรับ debianมีดังต่อไปนี้:

root @ mail: ~ # aptitude ติดตั้ง libnss-ldap libpam-ldap ldap-utils

  ┌────────────────────┤การกำหนดค่าของ libnss-ldap ├─────────────────────┐│ป้อน URI (“ Uniform Resource Identifier” หรือ││ Uniform Resource Identifier) ​​ของเซิร์ฟเวอร์ LDAP สตริงนี้คล้ายกับ││«ldap: //: / ». คุณยังสามารถ││ใช้«ldaps: // » หรือ "ldapi: //" หมายเลขพอร์ตเป็นทางเลือก ││││ขอแนะนำให้ใช้ที่อยู่ IP เพื่อหลีกเลี่ยงความล้มเหลวเมื่อไม่มีบริการชื่อโดเมนestén│ ││││เซิร์ฟเวอร์ LDAP URI: ││││ ldap: //master.swl.fan__________________________________________________ ││││ │││└────────────────────────────────────────────── ───────────────────────────┘┌───────────────────── ┤การกำหนดค่าของ libnss-ldap ├──────────────────────┐│ป้อนชื่อเฉพาะ (DN) ของฐานการค้นหา LDAP ไซต์จำนวนมากใช้ส่วนประกอบของชื่อโดเมนเพื่อจุดประสงค์นี้ ตัวอย่างเช่นโดเมน "example.net" จะใช้││ "dc = example, dc = net" เป็นชื่อเฉพาะของฐานการค้นหา ││││ชื่อเฉพาะ (DN) ของฐานการค้นหา: ││││ dc = swl, dc = fan ____________________________________________________________ ││││ │││└────────────────────────────────────────────── ─────────────────────────────┘┌─────────────────── ──┤การกำหนดค่าของ libnss-ldap ├──────────────────────┐│ป้อนเวอร์ชันของโปรโตคอล LDAP ที่ควรใช้ ldapns ขอแนะนำ││ให้ใช้หมายเลขเวอร์ชันสูงสุดที่มี ││││เวอร์ชัน LDAP ที่จะใช้: ││││                                     3                                     ││ 2 ││││││ │││└────────────────────────────────────────────── ─────────────────────────────┘┌─────────────────── ──┤การกำหนดค่าของ libnss-ldap ├──────────────────────┐│เลือกบัญชีที่จะใช้สำหรับการสืบค้น nss ด้วยสิทธิ์ root ││ ││││หมายเหตุ: เพื่อให้ตัวเลือกนี้ทำงานได้บัญชีต้องมีสิทธิ์เพื่อ││สามารถเข้าถึงแอตทริบิวต์ LDAP ที่เชื่อมโยงกับรายการ "เงา" ของผู้ใช้รวมทั้งรหัสผ่านของผู้ใช้และกลุ่ม││ . ││││บัญชี LDAP สำหรับรูท: ││││ cn = admin, dc = swl, dc = fan ___________________________________________________ ││││ │││└────────────────────────────────────────────── ─────────────────────────────┘┌─────────────────── ──┤การกำหนดค่าของ libnss-ldap ├─────────────────────┐│ป้อนรหัสผ่านที่จะใช้เมื่อ libnss-ldap พยายาม││พิสูจน์ตัวตนกับไดเร็กทอรี LDAP ด้วยบัญชี LDAP รูท ││││รหัสผ่านจะถูกบันทึกในไฟล์แยกต่างหาก││ ("/etc/libnss-ldap.secret") ที่มีเพียงรูทเท่านั้นที่สามารถเข้าถึง ││││หากคุณป้อนรหัสผ่านว่างรหัสผ่านเดิมจะถูกใช้ซ้ำ ││││รหัสผ่านสำหรับบัญชี root LDAP: ││││ ******** ________________________________________________________________ ││││ │││└────────────────────────────────────────────── ────────────────────────────┘┌──────────────────── ─┤การกำหนดค่าของ libnss-ldap ├──────────────────────┐│││ nsswitch.conf ไม่ได้รับการจัดการโดยอัตโนมัติ││││คุณต้องแก้ไขไฟล์ของคุณ "/etc/nsswitch.conf" เพื่อใช้แหล่งข้อมูล LDAP หากคุณต้องการให้แพ็กเกจ libnss-ldap ทำงาน ││คุณสามารถใช้ไฟล์ตัวอย่าง││ใน "/usr/share/doc/libnss-ldap/examples/nsswitch.ldap" เป็นตัวอย่างของการกำหนดค่า nsswitch หรือ││ที่คุณสามารถคัดลอกไปยังการกำหนดค่าปัจจุบันของคุณได้ ││││โปรดทราบว่าก่อนที่จะลบแพ็กเกจนี้คุณอาจสะดวกในการ││ลบรายการ "ldap" ออกจากไฟล์ nsswitch.conf เพื่อให้บริการพื้นฐาน││ทำงานต่อไป ││││ │││└────────────────────────────────────────────── ─────────────────────────────┘┌─────────────────── ──┤การกำหนดค่าของ libpam-ldap ├──────────────────────┐│││ตัวเลือกนี้ช่วยให้เครื่องมือรหัสผ่านโดยใช้ PAM เปลี่ยนรหัสผ่านในเครื่อง ││││รหัสผ่านสำหรับบัญชีผู้ดูแลระบบ LDAP จะถูกเก็บไว้ในไฟล์││แยกต่างหากซึ่งผู้ดูแลระบบสามารถอ่านได้เท่านั้น ││││ตัวเลือกนี้ควรปิดใช้งานหากติดตั้ง "/ etc" ผ่าน NFS ││││คุณต้องการอนุญาตให้บัญชีผู้ดูแลระบบ LDAP ทำงานเป็น││ผู้ดูแลระบบภายในหรือไม่? ││││                                            │││└────────────────────────────────────────────── ─────────────────────────────┘┌─────────────────── ──┤การกำหนดค่าของ libpam-ldap ├──────────────────────┐│││เลือกว่าเซิร์ฟเวอร์ LDAP บังคับให้ระบุตัวตนหรือไม่ก่อนที่จะได้รับรายการ entradas │ ││││การตั้งค่านี้แทบไม่จำเป็น ││││ผู้ใช้จำเป็นต้องเข้าถึงฐานข้อมูล LDAP หรือไม่? ││││                                               │││└────────────────────────────────────────────── ─────────────────────────────┘┌─────────────────── ──┤การกำหนดค่าของ libpam-ldap ├──────────────────────┐│ป้อนชื่อบัญชีผู้ดูแลระบบ LDAP ││││บัญชีนี้จะถูกใช้โดยอัตโนมัติสำหรับการจัดการฐานข้อมูล││ดังนั้นจึงต้องมีสิทธิ์ระดับผู้ดูแลที่เหมาะสม ││││บัญชีผู้ดูแลระบบ LDAP: ││││ cn = admin, dc = swl, dc = fan ___________________________________________________ ││││ │││└────────────────────────────────────────────── ─────────────────────────────┘┌─────────────────── ──┤การกำหนดค่าของ libpam-ldap ├──────────────────────┐│ป้อนรหัสผ่านสำหรับบัญชีผู้ดูแลระบบ ││││รหัสผ่านจะถูกบันทึกไว้ในไฟล์ "/etc/pam_ldap.secret" ผู้ดูแลระบบ││จะเป็นคนเดียวที่สามารถอ่านไฟล์นี้ได้และจะอนุญาตให้││ libpam-ldap ควบคุมการจัดการการเชื่อมต่อในฐานข้อมูล││โดยอัตโนมัติ ││││หากคุณปล่อยช่องนี้ว่างไว้รหัสผ่านที่บันทึกไว้ก่อนหน้า││จะถูกใช้อีกครั้ง ││││รหัสผ่านผู้ดูแลระบบ LDAP: ││││ ******** _________________________________________________________________ ││││ │││└────────────────────────────────────────────── ─────────────────────────────┘  

root @ mail: ~ # nano /etc/nsswitch.conf
# /etc/nsswitch.conf # # ตัวอย่างการกำหนดค่าฟังก์ชัน GNU Name Service Switch # หากคุณติดตั้งแพ็คเกจ "glibc-doc-reference" และ "info" แล้วให้ลอง: # "info libc" Name Service Switch "สำหรับข้อมูลเกี่ยวกับไฟล์นี้ passwd: compat LDAP
กลุ่ม: compat LDAP
เงา: compat LDAP
gshadow: ไฟล์โฮสต์: ไฟล์ dns เครือข่าย: ไฟล์โปรโตคอล: บริการไฟล์ db: ไฟล์ db อีเธอร์: ไฟล์ db rpc: ไฟล์ db netgroup: nis

มาแก้ไขไฟล์กัน /etc/pam.d/common-รหัสผ่านไปที่บรรทัด 26 และกำจัดค่า«use_auttok":

root @ mail: ~ # nano /etc/pam.d/common-password
# # /etc/pam.d/common-password - โมดูลที่เกี่ยวข้องกับรหัสผ่านทั่วไปสำหรับบริการทั้งหมด # # ไฟล์นี้รวมอยู่ในไฟล์กำหนดค่า PAM เฉพาะบริการอื่น ๆ # และควรมีรายการโมดูลที่กำหนดบริการที่จะเป็น # ใช้เพื่อเปลี่ยนรหัสผ่านผู้ใช้ ค่าเริ่มต้นคือ pam_unix # คำอธิบายของตัวเลือก pam_unix: # # ตัวเลือก "sha512" เปิดใช้งานรหัสผ่าน SHA512 แบบเค็ม หากไม่มีตัวเลือกนี้ # ค่าเริ่มต้นคือ Unix crypt รุ่นก่อนหน้าใช้ตัวเลือก "md5" # # ตัวเลือก "ปิดบัง" จะแทนที่ตัวเลือก `` OBSCURE_CHECKS_ENAB 'เดิมใน # login.defs # # ดู manpage pam_unix สำหรับตัวเลือกอื่น ๆ # ตั้งแต่ pam 1.0.1-6 ไฟล์นี้ได้รับการจัดการโดย pam-auth-update ตามค่าเริ่มต้น # เพื่อใช้ประโยชน์จากสิ่งนี้ขอแนะนำให้คุณกำหนดค่าโมดูลโลคัล # โมดูลใด ๆ ก่อนหรือหลังบล็อกเริ่มต้นและใช้ # pam-auth-update เพื่อจัดการการเลือกโมดูลอื่น ๆ ดู # pam-auth-update (8) สำหรับรายละเอียด # นี่คือโมดูลต่อแพ็คเกจ (บล็อก "หลัก") รหัสผ่าน [ความสำเร็จ = 2 ค่าเริ่มต้น = ละเว้น] pam_unix.so คลุมเครือ sha512
รหัสผ่าน [สำเร็จ = 1 user_unknown = ละเว้น default = die] pam_ldap.so try_first_pass
# นี่คือทางเลือกหากไม่มีโมดูลใดที่ทำรหัสผ่านสำเร็จ pam_deny.so # prime สแต็กที่มีค่าส่งคืนเป็นบวกหากยังไม่มีโมดูล # สิ่งนี้หลีกเลี่ยงไม่ให้เราส่งคืนข้อผิดพลาดเพียงเพราะไม่มีอะไรกำหนดรหัสความสำเร็จ # เนื่องจากโมดูลด้านบนแต่ละโมดูลจะข้ามไปรอบ ๆ รหัสผ่านที่ต้องการ pam_permit.so # และนี่คือโมดูลต่อแพ็คเกจเพิ่มเติม (บล็อก "เพิ่มเติม") # end of pam- auth-update config

ในกรณีที่เราต้องการ การเข้าสู่ระบบภายในของผู้ใช้ที่เก็บไว้ใน LDAP และเราต้องการให้สร้างโฟลเดอร์โดยอัตโนมัติ หน้าแรกเราต้องแก้ไขไฟล์ /etc/pam.d/common-session และเพิ่มบรรทัดต่อไปนี้ที่ท้ายไฟล์:

ตัวเลือก pam_mkhomedir.so skel = / etc / skel umask = 077

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

root @ mail: ~ # getent passwd 
Buzz: x: 1001: 1001: Buzz Debian First OS ,,,: / home / buzz: / bin / bash
ก้าว: x: 10000: 10000: ก้าวย่าง El Rey: / home / ก้าว: / bin / bash
เลโกลัส: x: 10001: 10000: เลโกลัสอาเชอร์: / home / เลโกลัส: / bin / bash
แกนดัล์ฟ: x: 10002: 10000: แกนดัล์ฟตัวช่วยสร้าง: / home / แกนดัล์ฟ: / bin / bash
บิลโบ: x: 10003: 10000: บิลโบ: / บ้าน / บิลโบ: / bin / ทุบตี

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

root @ mail: ~ # รีบูต

หลังจากนั้นเราจะเริ่มเซสชันท้องถิ่นบนเซิร์ฟเวอร์ mail.swl.fan ด้วยข้อมูลประจำตัวของผู้ใช้ที่เก็บไว้ในฐานข้อมูล LDAP ของ master.swl.fan. นอกจากนี้เรายังสามารถลองเข้าสู่ระบบผ่าน SSH

buzz @ sysadmin: ~ $ ssh gandalf @ mail
รหัสผ่านของ gandalf @ mail: การสร้างไดเร็กทอรี '/ home / gandalf' โปรแกรมที่มาพร้อมกับระบบ Debian GNU / Linux เป็นซอฟต์แวร์ฟรี ข้อกำหนดการแจกจ่ายที่แน่นอนสำหรับแต่ละโปรแกรมมีอธิบายไว้ในไฟล์แต่ละไฟล์ใน / usr / share / doc / * / copyright Debian GNU / Linux มาพร้อมกับการรับประกันอย่างแท้จริงโดยไม่มีการรับประกันตามขอบเขตที่กฎหมายอนุญาต
gandalf @ mail: ~ $ su
Contraseña:

root @ mail: / home / gandalf # getent group
Buzz: x: 1001: ผู้ใช้: *: 10000:

root @ mail: / home / gandalf # exit
ทางออก

gandalf @ mail: ~ $ ls -l / home /
รวม 8 drwxr-xr-x 2 ฉวัดเฉวียน     4096 มิ.ย. 17 12:25 buzz drwx ------ 2 ผู้ใช้แกนดัล์ฟ 4096 มิ.ย. 17 13:05 น

บริการไดเรกทอรีที่ใช้งานในระดับเซิร์ฟเวอร์และไคลเอนต์ทำงานได้อย่างถูกต้อง

Kerberos

จาก Wikipedia:

  • Kerberos เป็นโปรโตคอลการตรวจสอบเครือข่ายคอมพิวเตอร์ที่สร้างขึ้นโดย เอ็มไอที ที่ช่วยให้คอมพิวเตอร์สองเครื่องบนเครือข่ายที่ไม่ปลอดภัยสามารถพิสูจน์ตัวตนซึ่งกันและกันได้อย่างปลอดภัย ผู้ออกแบบให้ความสำคัญกับรูปแบบไคลเอนต์เซิร์ฟเวอร์เป็นอันดับแรกและมีการตรวจสอบความถูกต้องร่วมกัน: ทั้งไคลเอนต์และเซิร์ฟเวอร์ยืนยันตัวตน ข้อความรับรองความถูกต้องได้รับการป้องกันเพื่อป้องกัน การดักฟัง y เล่นซ้ำการโจมตี.

    Kerberos ใช้การเข้ารหัสคีย์สมมาตรและต้องการบุคคลที่สามที่เชื่อถือได้ นอกจากนี้ยังมีส่วนขยายของโปรโตคอลเพื่อให้สามารถใช้การเข้ารหัสคีย์แบบไม่สมมาตรได้

    Kerberos ขึ้นอยู่กับไฟล์ โปรโตคอล Needham-Schroeder. โดยใช้บุคคลภายนอกที่เชื่อถือได้เรียกว่า "Key Distribution Center" (KDC) ซึ่งประกอบด้วยส่วนลอจิคัลสองส่วนที่แยกจากกันคือ "เซิร์ฟเวอร์การพิสูจน์ตัวตน" (AS หรือเซิร์ฟเวอร์การรับรองความถูกต้อง) «เซิร์ฟเวอร์ออกตั๋ว» (TGS หรือ Ticket Granting Server) Kerberos ทำงานบนพื้นฐานของ "ตั๋ว" ซึ่งทำหน้าที่พิสูจน์ตัวตนของผู้ใช้

    Kerberos เก็บรักษาฐานข้อมูลของคีย์ลับ แต่ละเอนทิตีบนเครือข่ายไม่ว่าจะเป็นไคลเอนต์หรือเซิร์ฟเวอร์ - แชร์คีย์ลับที่รู้จักเฉพาะตัวเองและ Kerberos ความรู้เกี่ยวกับคีย์นี้ใช้ในการพิสูจน์ตัวตนของเอนทิตี สำหรับการสื่อสารระหว่างสองเอนทิตี Kerberos จะสร้างคีย์เซสชันซึ่งพวกเขาสามารถใช้เพื่อป้องกันปัญหาได้.

ข้อเสียของ Kerberos

De ecured:

ถึงแม้ว่า Kerberos ขจัดภัยคุกคามด้านความปลอดภัยทั่วไปอาจเป็นเรื่องยากที่จะนำไปใช้ด้วยเหตุผลหลายประการ:

  • การโอนย้ายรหัสผ่านผู้ใช้จากฐานข้อมูลรหัสผ่านมาตรฐาน ยูนิกซ์เช่น / etc / passwd หรือ / etc / shadow ไปยังฐานข้อมูลรหัสผ่าน Kerberos อาจเป็นเรื่องที่น่าเบื่อและไม่มีกลไกที่รวดเร็วในการทำงานนี้ให้สำเร็จ
  • Kerberos ถือว่าผู้ใช้แต่ละคนเชื่อถือได้ แต่กำลังใช้เครื่องที่ไม่น่าเชื่อถือบนเครือข่ายที่ไม่น่าเชื่อถือ วัตถุประสงค์หลักคือเพื่อป้องกันไม่ให้ส่งรหัสผ่านที่ไม่ได้เข้ารหัสผ่านเครือข่าย อย่างไรก็ตามหากผู้ใช้รายอื่นนอกเหนือจากผู้ใช้ที่เหมาะสมสามารถเข้าถึงเครื่องจำหน่ายตั๋ว (KDC) เพื่อตรวจสอบสิทธิ์ Kerberos จะตกอยู่ในความเสี่ยง
  • สำหรับแอปพลิเคชันที่จะใช้ Kerberos ต้องแก้ไขโค้ดเพื่อทำการเรียกที่เหมาะสมไปยังไลบรารี Kerberos แอปพลิเคชันที่ได้รับการแก้ไขด้วยวิธีนี้จะถือว่าเป็น kerberized สำหรับบางแอปพลิเคชันอาจเป็นความพยายามในการเขียนโปรแกรมที่มากเกินไปเนื่องจากขนาดของแอปพลิเคชันหรือการออกแบบ สำหรับแอปพลิเคชันอื่น ๆ ที่เข้ากันไม่ได้จะต้องทำการเปลี่ยนแปลงวิธีที่เซิร์ฟเวอร์เครือข่ายและไคลเอนต์สื่อสารกัน อีกครั้งอาจต้องใช้เวลาในการเขียนโปรแกรมเล็กน้อย โดยทั่วไปแอปพลิเคชันแบบปิดที่ไม่มีการรองรับ Kerberos มักเป็นปัญหามากที่สุด
  • สุดท้ายนี้หากคุณตัดสินใจที่จะใช้ Kerberos บนเครือข่ายของคุณคุณต้องตระหนักว่ามันเป็นทางเลือกทั้งหมดหรือไม่มีเลย หากคุณตัดสินใจที่จะใช้ Kerberos บนเครือข่ายของคุณคุณต้องจำไว้ว่าหากรหัสผ่านใด ๆ ถูกส่งผ่านไปยังบริการที่ไม่ได้ใช้ Kerberos ในการพิสูจน์ตัวตนคุณจะเสี่ยงต่อการถูกดักจับแพ็กเก็ต ดังนั้นเครือข่ายของคุณจะไม่ได้รับประโยชน์ใด ๆ จากการใช้ Kerberos เพื่อรักษาความปลอดภัยเครือข่ายของคุณด้วย Kerberos คุณควรใช้เฉพาะแอปพลิเคชันไคลเอนต์ / เซิร์ฟเวอร์ทั้งหมดที่ส่งรหัสผ่านที่ไม่ได้เข้ารหัสหรือไม่ใช้แอปพลิเคชันใด ๆ เหล่านี้บนเครือข่าย.

การใช้งานและกำหนดค่า OpenLDAP ด้วยตนเองเป็น Kerberos Back-End ไม่ใช่เรื่องง่าย อย่างไรก็ตามในภายหลังเราจะเห็นว่า Samba 4 Active Directory - Domain Controller ทำงานร่วมกันอย่างโปร่งใสสำหรับ Sysadmin, เซิร์ฟเวอร์ DNS, เครือข่าย Microsoft และ Domain Controller, เซิร์ฟเวอร์ LDAP เป็น Back-End ของวัตถุเกือบทั้งหมด และบริการรับรองความถูกต้องโดยใช้ Kerberos เป็นส่วนประกอบพื้นฐานของ Active Directory ในสไตล์ Microsoft

ณ วันนี้เราไม่จำเป็นต้องติดตั้ง "Kerberized Network" นี่คือเหตุผลที่เราไม่ได้เขียนเกี่ยวกับวิธีใช้ Kerberos

Samba 4 Active Directory - ตัวควบคุมโดเมน

สำคัญ:

ไม่มีเอกสารประกอบที่ดีไปกว่าไซต์ wiki.samba.org. Sysadmin ที่เคารพตัวเองควรเยี่ยมชมเว็บไซต์นั้น - ในภาษาอังกฤษ - และเรียกดูหน้าเว็บจำนวนมากที่อุทิศให้กับ Samba 4 ซึ่งเขียนโดย Team Samba เอง ฉันไม่เชื่อว่ามีเอกสารทางอินเทอร์เน็ตให้แทนที่ได้ อย่างไรก็ตามสังเกตจำนวนการเข้าชมที่แสดงที่ด้านล่างของแต่ละหน้า ตัวอย่างนี้คือหน้าหลักของคุณหรือ«หน้าหลัก»ถูกเยี่ยมชม 276,183 ครั้งจนถึงวันนี้ 20 มิถุนายน 2017 เวลา 10:10 น. ตามเวลามาตรฐานตะวันออก นอกจากนี้เอกสารจะได้รับการปรับปรุงให้ทันสมัยอยู่เสมอเนื่องจากหน้านั้นได้รับการแก้ไขเมื่อวันที่ 6 มิถุนายน.

จาก Wikipedia:

Samba เป็นการนำโปรโตคอลการแชร์ไฟล์ของ Microsoft Windows มาใช้งานฟรี (เดิมเรียกว่า SMB ซึ่งเพิ่งเปลี่ยนชื่อเป็น CIFS) สำหรับระบบที่เหมือน UNIX ด้วยวิธีนี้อาจเป็นไปได้ว่าคอมพิวเตอร์ที่มี GNU / Linux, Mac OS X หรือ Unix โดยทั่วไปดูเหมือนเซิร์ฟเวอร์หรือทำหน้าที่เป็นไคลเอนต์ในเครือข่าย Windows Samba ยังช่วยให้คุณตรวจสอบความถูกต้องของผู้ใช้ในฐานะ Primary Domain Controller (PDC) ในฐานะสมาชิกโดเมนและแม้กระทั่งเป็นโดเมน Active Directory สำหรับเครือข่ายที่ใช้ Windows นอกเหนือจากความสามารถในการให้บริการคิวการพิมพ์ไดเร็กทอรีที่ใช้ร่วมกันและการพิสูจน์ตัวตนด้วยไฟล์เก็บถาวรผู้ใช้ของคุณเอง

ในบรรดาระบบที่คล้าย Unix ซึ่ง Samba สามารถใช้งานได้คือการแจกแจง GNU / Linux, Solaris และตัวแปร BSD ที่แตกต่างกันระหว่าง ที่เราสามารถค้นหา Mac OS X Server ของ Apple ได้.

Samba 4 AD-DC พร้อม DNS ภายใน

  • เราเริ่มต้นจากการติดตั้งใหม่ทั้งหมด - โดยไม่มีส่วนต่อประสานกราฟิก - ของ Debian 8 "Jessie".

การตรวจสอบเบื้องต้น

root @ master: ~ # ชื่อโฮสต์
เจ้านาย
root @ master: ~ # ชื่อโฮสต์ --fqdn
master.swl.fan
root @ master: ~ # ที่อยู่ ip
1: อะไร: mtu 65536 qdisc noqueue state UNKNOWN group default link / loopback 00: 00: 00: 00: 00: 00 brd 00: 00: 00: 00: 00: 00 inet 127.0.0.1/8 ขอบเขตโฮสต์ lo valid_lft ตลอดไปที่ต้องการ _lft ตลอดไป inet6 :: โฮสต์ขอบเขต 1/128 valid_lft ตลอดไปที่ต้องการ _lft ตลอดไป 2: eth0: mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000 link / ether 00: 0c: 29: 80: 3b: 3f brd ff: ff: ff: ff: ff: ff
    inet 192.168.10.5/24 brd 192.168.10.255 ขอบเขต global eth0
       valid_lft ตลอดไปที่ต้องการ _lft ตลอดไป inet6 fe80 :: 20c: 29ff: fe80: 3b3f / 64 ขอบเขตลิงค์ valid_lft ตลอดไป recommended_lft ตลอด
root @ master: ~ # cat /etc/resolv.conf
ค้นหา swl.fan nameserver 127.0.0.1
  • ที่เราประกาศสาขา หลัก เท่านั้นก็เพียงพอแล้วสำหรับวัตถุประสงค์ของเรา.
root @ master: ~ # cat /etc/apt/sources.list
หญิงที่เข้าสังคมครั้งแรก http://192.168.10.1/repos/jessie-8.6/debian/ Jessie หลัก
หญิงที่เข้าสังคมครั้งแรก http://192.168.10.1/repos/jessie-8.6/debian/security/ jessie / อัพเดต หลัก

Postfix โดย Exim และยูทิลิตี้

root @ master: ~ # aptitude ติดตั้ง postfix htop mc deborphan

  ┌────────────────────────┤การกำหนดค่า Postfix ├───────────────────── ────┐│เลือกประเภทของการกำหนดค่าเซิร์ฟเวอร์อีเมลที่เหมาะสมกับความต้องการของคุณมากที่สุด ││││ไม่มีการกำหนดค่า: ││ทำให้การกำหนดค่าปัจจุบันเหมือนเดิม ││อินเทอร์เน็ตไซต์: ││เมลถูกส่งและรับโดยตรงโดยใช้ SMTP ││อินเทอร์เน็ตที่มี "สมาร์ทโฮสต์": ││เมลได้รับโดยตรงโดยใช้ SMTP หรือโดยการเรียกใช้เครื่องมือ││เช่น "fetchmail" อีเมลขาออกจะถูกส่งโดยใช้ "สมาร์ทโฮสต์" ││ไปรษณีย์ท้องถิ่นเท่านั้น: ││จดหมายเดียวที่จัดส่งสำหรับผู้ใช้ในพื้นที่ ไม่มี││มีเครือข่าย ││││การกำหนดค่าเมลประเภททั่วไป: ││││ไม่มีการกำหนดค่า││เว็บไซต์อินเทอร์เน็ต││อินเทอร์เน็ตที่มี "สมาร์ทโฮสต์" ││ระบบดาวเทียม││                         ไปรษณีย์ท้องถิ่นเท่านั้น                                ││││││                                     │││└────────────────────────────────────────────── ────────────────────────────┘┌──────────────────── ─────┤ Postfix Configuration ├─────────────────────────┐│ "ชื่อระบบเมล" คือชื่อโดเมนที่ ││ใช้เพื่อ "รับรอง" ที่อยู่อีเมล _ALL_ ที่ไม่มีชื่อโดเมน ซึ่งรวมถึงอีเมลที่ส่งเข้าและออกจาก "root": โปรดอย่าทำให้máquina│เครื่องของคุณส่งอีเมลจาก root@example.org ถึง││น้อยกว่า root@example.org ถาม. ││││โปรแกรมอื่น ๆ จะใช้ชื่อนี้ ต้องเป็นชื่อโดเมนที่มีคุณสมบัติเฉพาะ││ (FQDN) ││││ดังนั้นหากที่อยู่อีเมลบนเครื่องท้องถิ่นคือ││ something@example.orgค่าที่ถูกต้องสำหรับตัวเลือกนี้คือ example.org ││││ชื่อระบบเมล: ││││ master.swl.fan ___________________________________________________________ ││││ │││└────────────────────────────────────────────── ─────────────────────────────┘  

เราทำความสะอาด

root @ master: ~ # aptitude purge ~ ค
root @ master: ~ # aptitude install -f
root @ master: ~ # ความถนัดสะอาด
root @ master: ~ # autoclean ความถนัด

เราติดตั้งข้อกำหนดเพื่อรวบรวม Samba 4 และ แพ็คเกจที่จำเป็นอื่น ๆ

root @ master: ~ # aptitude ติดตั้ง acl attr autoconf bison \
สร้าง debhelper ที่จำเป็น dnsutils docbook-xml docbook-xsl flex gdb \
krb5 ผู้ใช้ libacl1-dev libaio-dev libattr1-dev libblkid-dev libbsd-dev \
libcap-dev libcups2-dev libgnutls28-dev libjson-perl \
libldap2-dev libncurses5-dev libpam0g-dev libparse-yapp-perl\
libpopt-dev libreadline-dev perl perl-module pkg-config \
python-all-dev python-dev python-dnspython python เข้ารหัส
xsltproc zlib1g -dev libgpgme11 -dev python -gpgme python -m2crypto \
libgnutls28-dbg gnutls-dev ldap-utils krb5-config.php

 ┌───────────────┤การกำหนดค่าการพิสูจน์ตัวตน Kerberos ├───────────────┐│เมื่อผู้ใช้พยายามใช้ Kerberos และระบุชื่อ││ หลักหรือผู้ใช้โดยไม่ต้องชี้แจงว่าโดเมน Kerberos ที่เป็นผู้ดูแลระบบเป็นเจ้าของโดเมนหลักใดระบบจะใช้ขอบเขต takes │เริ่มต้น  ขอบเขตเริ่มต้นยังสามารถใช้เป็นขอบเขต││ของบริการ Kerberos ที่ทำงานบนเครื่องโลคัล  ││โดยทั่วไปขอบเขตเริ่มต้นคือชื่อตัวพิมพ์ใหญ่ของโดเมน DNS ││ในเครื่อง  ││││ Kerberos เวอร์ชัน 5 ขอบเขตเริ่มต้น: ││││ SWL.FAN __________________________________________________________________ ││││ │││└────────────────────────────────────────────── ─────────────────────────────┘┌───────────────┤การกำหนดค่าการรับรองความถูกต้อง Kerberos ├───────────────┐│ป้อนชื่อของเซิร์ฟเวอร์ Kerberos ในขอบเขต SWL.FAN ของ││ Kerberos คั่นด้วยช่องว่าง  ││││เซิร์ฟเวอร์ Kerberos สำหรับอาณาจักรของคุณ: ││││ master.swl.fan ___________________________________________________________ ││││ │││└────────────────────────────────────────────── ─────────────────────────────┘┌───────────────┤การกำหนดค่าการพิสูจน์ตัวตน Kerberos ├───────────────┐│ป้อนชื่อเซิร์ฟเวอร์การดูแลระบบ (การเปลี่ยนรหัสผ่าน) ││สำหรับขอบเขต Kerberos SWL.FAN   

ขั้นตอนข้างต้นใช้เวลาสักครู่เนื่องจากเรายังไม่ได้ติดตั้งบริการ DNS ใด ๆ อย่างไรก็ตามคุณเลือกโดเมนอย่างถูกต้องตามการตั้งค่าไฟล์ / etc / hosts. จำไว้ว่าในไฟล์ / etc / resolv.conf เราได้ประกาศเป็นโดเมนเนมเซิร์ฟเวอร์สำหรับ IP 127.0.0.1.

ตอนนี้เรากำหนดค่าไฟล์ / etc / ldap / ldap / conf

root @ master: ~ # nano /etc/ldap/ldap.conf
ฐาน dc = swl, dc = พัดลม URI ldap: //master.swl.fan

สำหรับแบบสอบถามโดยใช้คำสั่ง ldapsearch สร้างจากผู้ใช้รูทเป็นประเภท ldapsearch -x -W cn = xxxxเราต้องสร้างไฟล์ /root/.ldapearc โดยมีเนื้อหาดังต่อไปนี้:

root @ master: ~ # nano .ldaprc
BINDDN CN = Administrator, CN = Users, DC = swl, DC = fan

ระบบไฟล์ต้องรองรับ ACL - Access Control List

root @ master: ~ # nano / etc / fstab
# / etc / fstab: ข้อมูลระบบไฟล์แบบคงที่ # # ใช้ 'blkid' เพื่อพิมพ์ตัวระบุที่ไม่ซ้ำกันสำหรับอุปกรณ์ #; ซึ่งอาจใช้กับ UUID = เป็นวิธีที่มีประสิทธิภาพมากขึ้นในการตั้งชื่ออุปกรณ์ # ที่ใช้งานได้แม้ว่าดิสก์จะถูกเพิ่มและลบออก ดู fstab (5) # # # / ถูกเปิด / dev / sda1 ระหว่างการติดตั้ง UUID = 33acb024-291b-4767-b6f4-cf207a71060c / ext4 user_xattr, acl, barrier = 1, noatime, error = remount-ro 0 1
# swap เปิดอยู่ / dev / sda5 ระหว่างการติดตั้ง UUID = cb73228a-615d-4804-9877-3ec225e3ae32 ไม่มี swap sw 0 0 / dev / sr0 / media / cdrom0 udf, iso9660 user, noauto 0 0

root @ master: ~ # mount -a

root @ master: ~ # touch testing_acl.txt
root @ master: ~ # setfattr -n user.test -v test testing_acl.txt
root @ master: ~ # setfattr -n security.test -v test2 testing_acl.txt
root @ master: ~ # getfattr -d testing_acl.txt
# ไฟล์: testing_acl.txt user.test = "test"

root @ master: ~ # getfattr -n security.test -d testing_acl.txt
# ไฟล์: testing_acl.txt security.test = "test2"

root @ master: ~ # setfacl -mg: adm: rwx testing_acl.txt

root @ master: ~ # getfacl testing_acl.txt
# file: testing_acl.txt # owner: root # group: root user :: rw- group :: r-- group: adm: rwx mask :: rwx other :: r--

เราได้รับแหล่งที่มา Samba 4 รวบรวมและติดตั้ง

ขอแนะนำอย่างยิ่งให้ดาวน์โหลดไฟล์ต้นฉบับของเวอร์ชัน มีเสถียรภาพ จากเว็บไซต์ https://www.samba.org/. ในตัวอย่างของเราเราดาวน์โหลดเวอร์ชัน แซมบ้า-4.5.1.tar.gz ไปทางโฟลเดอร์ /เลือก.

root @ master: ~ # cd / opt
root @ master: / opt # wget https://download.samba.org/pub/samba/stable/samba-4.5.1.tar.gz
root @ master: / opt # tar xvfz samba-4.5.1.tar.gz
รูท @ มาสเตอร์: / opt # cd samba-4.5.1 /

ตัวเลือกการกำหนดค่า

หากเราต้องการปรับแต่งตัวเลือกการกำหนดค่าเราดำเนินการ:

รูท @ มาสเตอร์: /opt/samba-4.5.1# ./ กำหนดค่า - help

และเลือกสิ่งที่เราต้องการอย่างรอบคอบ ขอแนะนำให้ตรวจสอบว่าสามารถติดตั้งแพคเกจที่ดาวน์โหลดบนการแจกจ่าย Linux ที่เราใช้อยู่หรือไม่ซึ่งในกรณีของเราคือ Debian 8.6 Jessie:

รูท @ มาสเตอร์: /opt/samba-4.5.1# . / กำหนดค่า เช็คระยะ

เรากำหนดค่ารวบรวมและติดตั้ง samba-4.5.1

  • จากข้อกำหนดที่ติดตั้งไว้ก่อนหน้านี้และไฟล์ 8604 (ซึ่งประกอบเป็น samba-4.5.1.tar.gz ขนาดกะทัดรัด) ที่มีน้ำหนักประมาณ 101.7 เมกะไบต์ - รวมโฟลเดอร์ source3 และ source4 ที่มีน้ำหนักประมาณ 61.1 เมกะไบต์เราจะได้รับสิ่งทดแทนสำหรับ Active Directory สไตล์ Microsoft มีคุณภาพและความเสถียรมากกว่าที่ยอมรับได้สำหรับสภาพแวดล้อมการผลิต เราต้องเน้นการทำงานของ Team Samba ในการส่งมอบซอฟต์แวร์เสรี Samba 4.

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

รูท @ มาสเตอร์: /opt/samba-4.5.1# ./configure - พร้อม-systemd - ปิดการใช้งานถ้วย
รูท @ มาสเตอร์: /opt/samba-4.5.1# ทำ
รูท @ มาสเตอร์: /opt/samba-4.5.1# ให้ติดตั้ง

ในระหว่างกระบวนการคำสั่ง ทำเราจะเห็นได้ว่ามีการรวบรวมแหล่งที่มาของ Samba 3 และ Samba 4 นั่นคือเหตุผลที่ Team Samba ยืนยันว่าเวอร์ชัน 4 เป็นการอัปเดตตามธรรมชาติของเวอร์ชัน 3 ทั้งสำหรับ Domain Controllers ที่ใช้ Samba 3 + OpenLDAP และ ไฟล์เซิร์ฟเวอร์หรือ Samba 4 เวอร์ชันเก่ากว่า

การจัดเตรียม Samba

เราจะใช้เป็น DNS SAMBA_ภายใน. ใน https://wiki.samba.org/index.php?title=Samba_Internal_DNS_Back_End เราจะพบข้อมูลเพิ่มเติม เมื่อพวกเขาขอรหัสผ่านของผู้ใช้ผู้ดูแลระบบเราจะต้องพิมพ์ความยาวขั้นต่ำ 8 ตัวอักษรและตัวอักษร - ตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก - และตัวเลข

ก่อนดำเนินการจัดเตรียมและเพื่อให้ชีวิตง่ายขึ้นเราได้เพิ่มไฟล์ เส้นทาง ของไฟล์ปฏิบัติการ Samba ในไฟล์ของเรา .bashrcจากนั้นเราปิดและเข้าสู่ระบบอีกครั้ง

root @ master: ~ # nano .bashrc
# ~ / .bashrc: ดำเนินการโดย bash (1) สำหรับเชลล์ที่ไม่ได้ล็อกอิน # หมายเหตุ: PS1 และ umask ถูกตั้งค่าใน / etc / profile แล้ว คุณไม่ควร # ต้องการสิ่งนี้เว้นแต่คุณต้องการค่าเริ่มต้นที่แตกต่างกันสำหรับรูท # PS1 = '$ {debian_chroot: + ($ debian_chroot)} \ h: \ w \ $' # umask 022 # คุณสามารถยกเลิกการแสดงความคิดเห็นในบรรทัดต่อไปนี้หากคุณต้องการให้ `ls 'เป็นสี: # export LS_OPTIONS =' - color = auto '# eval "` dircolors` "# alias ls =' ls $ LS_OPTIONS '# alias ll =' ls $ LS_OPTIONS -l '# alias l =' ls $ LS_OPTIONS -lA '# # นามแฝงเพิ่มเติมเพื่อหลีกเลี่ยงการผิดพลาด : # นามแฝง rm = 'rm -i' # นามแฝง cp = 'cp -i' # นามแฝง mv = 'mv -i'
ประกาศ -x PATH = "/ usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: \ / sbin: / bin: / usr / local / samba / sbin: / usr / local / samba / bin "

root @ master: ~ # exit logout การเชื่อมต่อกับ master closed xeon @ sysadmin: ~ $ ssh root @ master

root @ master: ~ # samba-tool การจัดสรรโดเมน --use-rfc2307 --interactive
อาณาจักร [SWL.FAN]: แฟน
 โดเมน [SWL]: สว
 บทบาทเซิร์ฟเวอร์ (dc สมาชิกสแตนด์อโลน) [dc]: dc
 แบ็กเอนด์ DNS (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: SAMBA_ภายใน
 ที่อยู่ IP ของผู้ส่งต่อ DNS (เขียน 'ไม่มี' เพื่อปิดใช้งานการส่งต่อ) [192.168.10.5]: 8.8.8.8
รหัสผ่านผู้ดูแลระบบ: รหัสผ่านของคุณ2017
พิมพ์รหัสผ่านอีกครั้ง: รหัสผ่านของคุณ2017
การค้นหาที่อยู่ IPv4 การค้นหาที่อยู่ IPv6 จะไม่มีการกำหนดที่อยู่ IPv6 การตั้งค่า share.ldb การตั้งค่าความลับ ldb การตั้งค่ารีจิสทรีการตั้งค่าฐานข้อมูลสิทธิพิเศษการตั้งค่า idmap db การตั้งค่า SAM db การตั้งค่าพาร์ติชัน sam.ldb และการตั้งค่าการตั้งค่า up sam.ldb rootDSE การโหลดสคีมา Samba 4 และ AD ล่วงหน้าการเพิ่ม DomainDN: DC = swl, DC = fan การเพิ่มคอนฟิกูเรชันคอนเทนเนอร์การตั้งค่าสคีมา sam.ldb การตั้งค่าข้อมูลคอนฟิกูเรชัน sam.ldb การตั้งค่าตัวระบุการแสดงผลการแก้ไขตัวระบุการแสดงการเพิ่มคอนเทนเนอร์ผู้ใช้ การแก้ไขคอนเทนเนอร์ผู้ใช้การเพิ่มคอนเทนเนอร์คอมพิวเตอร์การแก้ไขคอนเทนเนอร์คอมพิวเตอร์การตั้งค่าข้อมูล sam.ldb การตั้งค่าหลักการรักษาความปลอดภัยที่รู้จักกันดีการตั้งค่าผู้ใช้ sam.ldb และกลุ่มการตั้งค่าการเข้าร่วมด้วยตนเองการเพิ่มบัญชี DNS การสร้าง CN = MicrosoftDNS, CN = System, DC = swl, DC = fan การสร้างพาร์ติชัน DomainDnsZones และ ForestDnsZones การเติมพาร์ติชัน DomainDnsZones และ ForestDnsZones การตั้งค่า sam.ldb rootDSE ทำเครื่องหมายเป็นแบบซิงโครไนซ์การแก้ไข GUID การจัดเตรียมการกำหนดค่า Kerberos ที่เหมาะสมกับ Samba 4 ถูกสร้างขึ้นที่ /usr/local/samba/private/krb5.conf การตั้งค่าเซิร์ฟเวอร์ yp ปลอมเมื่อติดตั้งไฟล์ข้างต้นแล้วเซิร์ฟเวอร์ Samba4 ของคุณจะพร้อมใช้งานเซิร์ฟเวอร์บทบาท: โดเมนไดเรกทอรีที่ใช้งานอยู่ ชื่อโฮสต์ควบคุม: โดเมน NetBIOS หลัก: โดเมน DNS SWL: swl.fan DOMAIN SID: S-1-5-21-32182636-2892912266-1582980556

อย่าลืมคัดลอกไฟล์กำหนดค่า Kerberos ตามที่ระบุโดยเอาต์พุตของไฟล์ การจัดเตรียม:

root @ master: ~ # cp /usr/local/samba/private/krb5.conf /etc/krb5.conf

ไม่ต้องพิมพ์คำสั่ง เครื่องมือแซมบ้า ด้วยชื่อเต็มของคุณเราสร้างลิงก์สัญลักษณ์พร้อมชื่อย่อ เครื่องมือ:

root @ master: ~ # ln -s / usr / local / samba / bin / samba-tool / usr / local / samba / bin / tool

เราติดตั้ง NTP

ส่วนประกอบพื้นฐานใน Active Directory คือ Network Time Service เนื่องจากการตรวจสอบความถูกต้องผ่าน Kerberos และ Tickets การซิงโครไนซ์เวลากับ Samba 4 AD-DC จึงมีความสำคัญ

root @ master: ~ # aptitude ติดตั้ง ntp
root @ master: ~ # mv /etc/ntp.conf /etc/ntp.conf.original

root @ master: ~ # nano /etc/ntp.conf
driftfile /var/lib/ntp/ntp.drift ntpsigndsocket / usr / local / samba / var / lib / ntp_signd สถิติ loopstats peerstats clockstats filegen loopstats file loopstats type day เปิดใช้งาน filegen peerstats file peerstats type day เปิดใช้งาน filegenstats file clockstats clock type day เปิดใช้งานเซิร์ฟเวอร์ 192.168.10.1 จำกัด -4 เริ่มต้น kod notrap nomodify nopeer noquery restrict -6 default kod notrap nomodify nopeer noquery restrict default mssntp restrict 127.0.0.1 restrict :: 1 broadcast 192.168.10.255

root @ master: ~ # service ntp เริ่มต้นใหม่
root @ master: ~ # service สถานะ ntp

root @ master: ~ # tail -f / var / log / syslog

ถ้าเมื่อตรวจสอบ syslog ใช้คำสั่งด้านบนหรือใช้ Journalctl -f เราได้รับข้อความ:

19 มิ.ย. 12:13:21 อาจารย์ ntpd_intres [1498]: ผู้ปกครองเสียชีวิตก่อนที่เราจะเสร็จสิ้น

เราต้องเริ่มบริการใหม่และลองอีกครั้ง ตอนนี้เราสร้างโฟลเดอร์ ntp_signd:

root @ master: ~ # ls -ld / usr / local / samba / var / lib / ntp_signd
ls: ไม่สามารถเข้าถึง / usr / local / samba / var / lib / ntp_signd: ไม่มีไฟล์หรือไดเร็กทอรี

root @ master: ~ # mkdir / usr / local / samba / var / lib / ntp_signd
root @ master: ~ # chown รูท: ntp / usr / local / samba / var / lib / ntp_signd /
root @ master: ~ # chmod 750 / usr / local / samba / var / lib / ntp_signd / root @ master: ~ # chmod gs, g + x / usr / local / samba / var / lib / ntp_signd /

# ตามที่ร้องขอใน samba.wiki.org
root @ master: ~ # ls -ld / usr / local / samba / var / lib / ntp_signd
drwxr-x - 2 root ntp 4096 มิ.ย. 19 12:21 / usr / local / samba / var / lib / ntp_signd

เรากำหนดค่า Samba เริ่มต้นโดยใช้ systemd

root @ master: ~ # nano /lib/systemd/system/samba-ad-dc.service
[บริการ] ประเภท = forking PIDFile = / usr / local / samba / var / run / samba.pid LimitNOFILE = 16384 # EnvironmentFile = - / etc / conf.d / samba ExecStart = / usr / local / samba / sbin / samba ExecReload = / usr / bin / kill -HUP $ MAINPID [ติดตั้ง] WantedBy = multi-user.target

root @ master: ~ # systemctl เปิดใช้งาน samba-ad-dc
root @ master: ~ # รีบูต

root @ master: ~ # systemctl สถานะ samba-ad-dc
root @ master: ~ # systemctl สถานะ ntp

ตำแหน่งไฟล์ Samba 4 AD-DC

ทั้งหมด -ลบ samba-ad-dc.service ที่สร้างขึ้นใหม่- ไฟล์อยู่ใน:

รูท @ master: ~ # ls -l / usr / local / samba /
รวม 32 drwxr-sr-x 2 root staff 4096 มิ.ย. 19 11:55 น ถัง
drwxr-sr-x 2 root staff 4096 มิ.ย. 19 เวลา 11:50 น ฯลฯ
drwxr-sr-x 7 root staff 4096 มิ.ย. 19 เวลา 11:30 น ประกอบด้วย
drwxr-sr-x 15 root staff 4096 มิ.ย. 19 เวลา 11:33 น lib
drwxr-sr-x 7 root staff 4096 มิ.ย. 19 เวลา 12:40 น ส่วนตัว
drwxr-sr-x 2 root staff 4096 มิ.ย. 19 เวลา 11:33 น ถังขยะ
drwxr-sr-x 5 root staff 4096 มิ.ย. 19 เวลา 11:33 น การแชร์
drwxr-sr-x 8 root staff 4096 มิ.ย. 19 เวลา 12:28 น คือ

ในสไตล์ UNIX ที่ดีที่สุด ขอแนะนำให้เรียกดูโฟลเดอร์ต่างๆและตรวจสอบเนื้อหา

/Usr/local/samba/etc/smb.conf ไฟล์

root @ master: ~ # nano /usr/local/samba/etc/smb.conf 
# พารามิเตอร์ส่วนกลาง [global] ชื่อ netbios = MASTER realm = SWL.FAN workgroup = SWL dns forwarder = 8.8.8.8 บริการเซิร์ฟเวอร์ = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate บทบาทเซิร์ฟเวอร์ dns = ตัวควบคุมโดเมนไดเร็กทอรีที่ใช้งานอนุญาตให้อัพเดต dns = ปลอดภัยเท่านั้น idmap_ldb: ใช้ rfc2307 = ใช่ idmap config *: backend = tdb idmap config *: range = 1000000-1999999 เซิร์ฟเวอร์ ldap ต้องการการตรวจสอบสิทธิ์ที่แข็งแกร่ง = ไม่มีชื่อ printcap = / dev / null [netlogon] path = /usr/local/samba/var/locks/sysvol/swl.fan/scripts read only = No [sysvol] path = / usr / local / samba / var / locks / sysvol read only = No

root @ master: ~ # testparm
โหลดไฟล์กำหนดค่า smb จาก /usr/local/samba/etc/smb.conf ส่วนการประมวลผล "[netlogon]" ส่วนการประมวลผล "[sysvol]" ไฟล์บริการโหลดตกลง บทบาทเซิร์ฟเวอร์: ROLE_ACTIVE_DIRECTORY_DC กด Enter เพื่อดูดัมพ์ของข้อกำหนดบริการของคุณ # พารามิเตอร์โกลบอล [global] realm = SWL.FAN workgroup = SWL dns forwarder = 192.168.10.1 เซิร์ฟเวอร์ ldap ต้องการการตรวจสอบสิทธิ์ที่แข็งแกร่ง = ไม่มีแบ็กเอนด์ passdb = บทบาทเซิร์ฟเวอร์ samba_dsdb = ไดเรกทอรีที่ใช้งานอยู่ ตัวควบคุมโดเมน rpc_server: tcpip = no rpc_daemon: spoolssd = ฝัง rpc_server: spoolss = ฝัง rpc_server: winreg = ฝัง rpc_server: ntsvcs = ฝัง rpc_server: eventlog = ฝัง rpc_server: srvsvc = ฝัง rvcct_server rct ภายนอก = ใช้ rvcver_ser ภายนอก : external ไปป์ = true idmap config *: range = 1000000-1999999 idmap_ldb: use rfc2307 = yes idmap config *: backend = tdb map archive = No map readonly = no store dos attributes = Yes vfs objects = dfs_samba4 acl_xattr [netlogon] path = / usr / local / samba / var / locks / sysvol / swl.fan / scripts read only = No [sysvol] path = / usr / local / samba / var / locks / sysvol read only = No

ตรวจสอบน้อยที่สุด

root @ master: ~ # เครื่องมือแสดงระดับโดเมน
ระดับฟังก์ชันโดเมนและฟอเรสต์สำหรับโดเมน 'DC = swl, DC = fan' ระดับฟังก์ชันฟอเรสต์: (Windows) 2008 R2 ระดับฟังก์ชันโดเมน: (Windows) 2008 R2 ระดับฟังก์ชันต่ำสุดของ DC: (Windows) 2008 R2

root @ master: ~ # ldapsearch -x -W

root @ master: ~ # tool dbcheck
ตรวจสอบ 262 วัตถุตรวจสอบ 262 วัตถุ (0 ข้อผิดพลาด)

root @ master: ~ # kinit ผู้ดูแลระบบ
รหัสผ่านสำหรับ Administrator@SWL.FAN: 
root @ master: ~ # klist -f
แคชตั๋ว: ไฟล์: / tmp / krb5cc_0
ค่าเริ่มต้นหลัก: Administrator@SWL.FAN

เริ่มต้นที่ถูกต้องหมดอายุบริการหลัก 19/06/17 12:53:24 19/06/17 22:53:24 น  krbtgt/SWL.FAN@SWL.FAN
    ต่ออายุจนถึงวันที่ 20/06/17 12:53:18 น. ธง: RIA

root @ master: ~ # kdestroy
root @ master: ~ # klist -f
klist: ไม่พบไฟล์แคชข้อมูลประจำตัว '/ tmp / krb5cc_0'

root @ master: ~ # smbclient -L localhost -U%
Domain = [SWL] OS = [Windows 6.1] Server = [Samba 4.5.1] Sharename Type Comment --------- ---- ------- netlogon Disk sysvol Disk IPC $ IPC IPC บริการ (Samba 4.5.1) โดเมน = [SWL] OS = [Windows 6.1] เซิร์ฟเวอร์ = [Samba 4.5.1] ความคิดเห็นของเซิร์ฟเวอร์ --------- ------- Workgroup Master ---- ----- -------

root @ master: ~ # smbclient // localhost / netlogon -UAdministrator -c 'ls'
ป้อนรหัสผ่านของผู้ดูแลระบบ: Domain = [SWL] OS = [Windows 6.1] Server = [Samba 4.5.1] D 0 Mon Jun 19 11:50:52 2017 .. D 0 Mon Jun 19 11:51:07 2017 19091584 บล็อคขนาด 1024. 16198044 บล็อคใช้ได้

root @ master: ~ # tool dns serverinfo master -U administrator

root @ master: ~ # host -t SRV _ldap._tcp.swl.fan
_ldap._tcp.swl.fan มีบันทึก SRV 0 master.swl.fan

root @ master: ~ # host -t SRV _kerberos._udp.swl.fan
_kerberos._udp.swl.fan มีบันทึก SRV 0 100 88 master.swl.fan

root @ master: ~ # host -t A master.swl.fan
master.swl.fan มีที่อยู่ 192.168.10.5

root @ master: ~ # host -t SOA swl.fan
swl.fan มี SOA record master.swl.fan hostmaster.swl.fan 1 900 600 86400

root @ master: ~ # โฮสต์ -t NS swl.fan
swl.fan เนมเซิร์ฟเวอร์ master.swl.fan

root @ master: ~ # host -t MX swl.fan
swl.fan ไม่มีระเบียน MX

root @ master: ~ # samba_dnsupdate --verbose

root @ master: ~ # รายการผู้ใช้เครื่องมือ
ผู้ดูแลระบบ krbtgt บุคคลทั่วไป

root @ master: ~ # รายการกลุ่มเครื่องมือ
# ผลผลิตออกเป็นกลุ่มก้อน ;-)

เราจัดการ Samba 4 AD-DC ที่ติดตั้งใหม่

หากเราต้องการแก้ไขวันหมดอายุของรหัสผ่านผู้ดูแลระบบ ความซับซ้อนของรหัสผ่าน ความยาวขั้นต่ำของรหัสผ่าน ระยะเวลาต่ำสุดและสูงสุด -in วัน - ของรหัสผ่าน และเปลี่ยนรหัสผ่านผู้ดูแลระบบที่ประกาศระหว่าง การจัดเตรียมเราต้องดำเนินการคำสั่งต่อไปนี้ด้วยไฟล์ ปรับค่าตามความต้องการของคุณ:

root @ master: ~ # เครื่องมือ
การใช้งาน: เครื่องมือแซมบ้า เครื่องมือบริหารแซมบ้าหลัก ตัวเลือก: -h, --help แสดงข้อความวิธีใช้นี้และออกจากตัวเลือกเวอร์ชัน: -V, --version แสดงหมายเลขเวอร์ชันคำสั่งย่อยที่พร้อมใช้งาน: dbcheck - ตรวจสอบฐานข้อมูล AD ภายในเพื่อหาข้อผิดพลาด การมอบหมาย - การจัดการการมอบหมาย dns - การจัดการบริการชื่อโดเมน (DNS) โดเมน - การจัดการโดเมน drs - การจัดการ Directory Replication Services (DRS) dsacl - การจัดการ DS ACLs fsmo - การจัดการบทบาทแบบ Flexible Single Master Operations (FSMO) gpo - การจัดการ Group Policy Object (GPO) กลุ่ม - การจัดการกลุ่ม ldapcmp - เปรียบเทียบสองฐานข้อมูล ldap ntacl - การจัดการ NT ACLs กระบวนการ - แสดงรายการกระบวนการ (เพื่อช่วยในการดีบักบนระบบที่ไม่มี setproctitle) rodc - การจัดการ Domain Controller (RODC) แบบอ่านอย่างเดียว ไซต์ - การจัดการไซต์ spn - การจัดการ Service Principal Name (SPN) testparm - ไวยากรณ์ตรวจสอบไฟล์การกำหนดค่า เวลา - ดึงเวลาบนเซิร์ฟเวอร์ ผู้ใช้ - การจัดการผู้ใช้ สำหรับความช่วยเหลือเพิ่มเติมเกี่ยวกับคำสั่งย่อยเฉพาะโปรดพิมพ์: samba-tool (-h | - ช่วย)

root @ master: ~ # tool user setexpiry administrator --noexpiry
root @ master: ~ # tool domain passwordsettings set --min-pwd-length = 7
root @ master: ~ # tool domain passwordsettings set --min-pwd-age = 0
root @ master: ~ # tool domain passwordsettings set --max-pwd-age = 60
root @ master: ~ # tool user setpassword --filter = samaccountname = Administrator --newpassword = Passw0rD

เราเพิ่มระเบียน DNS หลายรายการ

root @ master: ~ # tool dns
การใช้งาน: samba-tool dns การจัดการบริการชื่อโดเมน (DNS) ตัวเลือก: -h, --help แสดงข้อความช่วยเหลือนี้และออกจากคำสั่งย่อย Available: add - Add a DNS record delete - Delete a DNS record query - Query a name roothints - ค้นหาคำแนะนำรูท serverinfo - สอบถามข้อมูลเซิร์ฟเวอร์ อัปเดต - อัปเดตโซนระเบียน DNS - สร้างโซน zonedelete - ลบโซน zoneinfo - สอบถามข้อมูลโซน zonelist - ค้นหาโซน สำหรับความช่วยเหลือเพิ่มเติมเกี่ยวกับคำสั่งย่อยเฉพาะโปรดพิมพ์: samba-tool dns (-h | - ช่วย)

เมลเซิร์ฟเวอร์

root @ master: ~ # tool dns เพิ่ม master swl.fan mail ผู้ดูแลระบบ 192.168.10.9 -U
root @ master: ~ # tool dns เพิ่ม master swl.fan swl.fan MX "mail.swl.fan 10" -U administrator

IP คงที่ของเซิร์ฟเวอร์อื่น

root @ master: ~ # tool dns เพิ่ม master swl.fan sysadmin A 192.168.10.1 -U administrator
root @ master: ~ # tool dns เพิ่ม master swl.fan fileserver A 192.168.10.10 -U administrator
root @ master: ~ # tool dns เพิ่ม master swl.fan proxy A 192.168.10.11 -U administrator
root @ master: ~ # tool dns เพิ่ม master swl.fan chat A 192.168.10.12 -U administrator

โซนย้อนกลับ

root @ master: ~ # tool dns zonecreate master 10.168.192.in-addr.arpa -U administrator
รหัสผ่านสำหรับ [SWL \ administrator]: สร้างโซน 10.168.192.in-addr.arpa เรียบร้อยแล้ว

root @ master: ~ # tool dns เพิ่ม master 10.168.192.in-addr.arpa 5 PTR master.swl.fan - ผู้ดูแลระบบ
root @ master: ~ # tool dns เพิ่ม master 10.168.192.in-addr.arpa 9 PTR mail.swl.fan - ผู้ดูแลระบบ
root @ master: ~ # tool dns เพิ่ม master 10.168.192.in-addr.arpa 1 PTR sysadmin.swl.fan - ผู้ดูแลระบบ
root @ master: ~ # tool dns เพิ่ม master 10.168.192.in-addr.arpa 10 PTR fileserver.swl.fan - ผู้ดูแลระบบ
root @ master: ~ # tool dns เพิ่ม master 10.168.192.in-addr.arpa 11 PTR proxy.swl.fan - ผู้ดูแลระบบ
root @ master: ~ # tool dns เพิ่ม master 10.168.192.in-addr.arpa 12 PTR chat.swl.fan - ผู้ดูแลระบบ

ตรวจสอบ

root @ master: ~ # tool dns query master swl.fan mail ผู้ดูแลระบบ ALL -U
รหัสผ่านสำหรับ [SWL \ administrator]: Name =, Records = 1, Children = 0 A: 192.168.10.9 (แฟล็ก = f0, serial = 2, ttl = 900)

root @ master: ~ # โฮสต์หลัก
master.swl.fan มีที่อยู่ 192.168.10.5
root @ master: ~ # โฮสต์ sysadmin
sysadmin.swl.fan มีที่อยู่ 192.168.10.1
root @ master: ~ # เมลโฮสต์
mail.swl.fan มีที่อยู่ 192.168.10.9
root @ master: ~ # โฮสต์แชท
chat.swl.fan มีที่อยู่ 192.168.10.12
root @ master: ~ # โฮสต์พร็อกซี
proxy.swl.fan มีที่อยู่ 192.168.10.11
root @ master: ~ # โฮสต์ไฟล์เซิร์ฟเวอร์
fileserver.swl.fan มีที่อยู่ 192.168.10.10
root @ master: ~ # โฮสต์ 192.168.10.1
1.10.168.192.in-addr.arpa ตัวชี้ชื่อโดเมน sysadmin.swl.fan
root @ master: ~ # โฮสต์ 192.168.10.5
5.10.168.192.in-addr.arpa ตัวชี้ชื่อโดเมน master.swl.fan
root @ master: ~ # โฮสต์ 192.168.10.9
9.10.168.192.in-addr.arpa ตัวชี้ชื่อโดเมน mail.swl.fan
root @ master: ~ # โฮสต์ 192.168.10.10
10.10.168.192.in-addr.arpa ตัวชี้ชื่อโดเมน fileserver.swl.fan
root @ master: ~ # โฮสต์ 192.168.10.11
11.10.168.192.in-addr.arpa ตัวชี้ชื่อโดเมน proxy.swl.fan
root @ master: ~ # โฮสต์ 192.168.10.12
12.10.168.192.in-addr.arpa ตัวชี้ชื่อโดเมน chat.swl.fan

สำหรับคนที่อยากรู้อยากเห็น

root @ master: ~ # ldbsearch -H /usr/local/samba/private/sam.ldb.d/ \
DC = DOMAINDNSZONES, DC = SWL, DC = FAN.ldb | grep dn:

เราเพิ่มผู้ใช้

root @ master: ~ # ผู้ใช้เครื่องมือ
การใช้งาน: ผู้ใช้เครื่องมือ samba การจัดการผู้ใช้ ตัวเลือก: -h, --help แสดงข้อความวิธีใช้นี้และออกจากคำสั่งย่อย Available: add - Create a new user สร้าง - สร้างผู้ใช้ใหม่ ลบ - ลบผู้ใช้ ปิดใช้งาน - ปิดการใช้งานผู้ใช้ เปิดใช้งาน - เปิดใช้งานผู้ใช้ getpassword - รับฟิลด์รหัสผ่านของบัญชีผู้ใช้ / คอมพิวเตอร์ list - รายชื่อผู้ใช้ทั้งหมด รหัสผ่าน - เปลี่ยนรหัสผ่านสำหรับบัญชีผู้ใช้ (รหัสที่ให้ไว้ในการตรวจสอบสิทธิ์) setexpiry - กำหนดวันหมดอายุของบัญชีผู้ใช้ setpassword - ตั้งค่าหรือรีเซ็ตรหัสผ่านของบัญชีผู้ใช้ syncpasswords - ซิงค์รหัสผ่านของบัญชีผู้ใช้ สำหรับความช่วยเหลือเพิ่มเติมเกี่ยวกับคำสั่งย่อยเฉพาะโปรดพิมพ์: samba-tool user (-h | - ช่วย)

root @ master: ~ # ผู้ใช้เครื่องมือสร้าง trancos Trancos01
สร้างผู้ใช้ 'trancos' สำเร็จแล้ว
root @ master: ~ # ผู้ใช้เครื่องมือสร้างแกนดัล์ฟ Gandalf01
สร้างผู้ใช้ 'แกนดัล์ฟ' สำเร็จแล้ว
root @ master: ~ # ผู้ใช้เครื่องมือสร้างเลโกลัสเลโกลัส 01
สร้างผู้ใช้ 'เลโกลัส' สำเร็จแล้ว
root @ master: ~ # รายการผู้ใช้เครื่องมือ
ผู้ดูแลระบบแกนดัล์ฟเลโกลัสก้าวย่าง krbtgt Guest

การดูแลระบบผ่านอินเทอร์เฟซแบบกราฟิกหรือผ่านเว็บไคลเอนต์

เยี่ยมชม wiki.samba.org สำหรับข้อมูลโดยละเอียดเกี่ยวกับวิธีการติดตั้งไฟล์ ไมโครซอฟต์ RSAT o เครื่องมือการดูแลเซิร์ฟเวอร์ระยะไกล หากคุณไม่ต้องการนโยบายคลาสสิกที่เสนอโดย Microsoft Active Directory คุณสามารถติดตั้งแพคเกจได้ ldap บัญชีผู้จัดการ ซึ่งมีอินเทอร์เฟซที่เรียบง่ายสำหรับการดูแลระบบผ่านเว็บเบราว์เซอร์

แพคเกจโปรแกรม Microsoft Remote Server Administration Tools (RSAT) รวมอยู่ในระบบปฏิบัติการ Windows Server

เราเข้าร่วมโดเมนกับไคลเอนต์ Windows 7 ชื่อ "seven"

เนื่องจากเราไม่มีเซิร์ฟเวอร์ DHCP ในเครือข่ายสิ่งแรกที่เราต้องทำคือกำหนดค่าการ์ดเครือข่ายของไคลเอนต์ด้วย IP คงที่ประกาศว่า DNS หลักจะเป็น IP ของ แซมบ้าโฆษณา DCและตรวจสอบว่าเปิดใช้งานตัวเลือก "ลงทะเบียนที่อยู่ของการเชื่อมต่อนี้ใน DNS" แล้ว ไม่ได้ใช้งานเพื่อตรวจสอบว่าชื่อ«เจ็ด»ยังไม่ได้ลงทะเบียนใน Samba Internal DNS

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

ผู้ดูแลระบบที่มีประสบการณ์ Windows บางอย่างจะพบว่าการตรวจสอบใด ๆ ที่ทำกับไคลเอนต์จะให้ผลลัพธ์ที่น่าพอใจ

ข้อมูลอย่างย่อ

ฉันหวังว่าบทความนี้จะเป็นประโยชน์กับผู้อ่านชุมชน DesdeLinux.

ลาก่อน!


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา

  1.   กอนซาโล่มาร์ติเนซ dijo

    บทความยาว แต่ละเอียดดีมากทีละขั้นตอนเกี่ยวกับวิธีการทำทุกอย่าง

    ฉันเน้น NIS แต่ความจริงก็คือแม้ว่าฉันจะรู้เกี่ยวกับการดำรงอยู่ของมัน แต่ฉันไม่เคยรู้เลยว่ามันทำงานอย่างไรเพราะพูดตามตรงมันทำให้ฉันรู้สึกประทับใจเสมอว่ามันตายแล้วถัดจาก LDAP และ Samba 4

    PS: ขอแสดงความยินดีกับโครงการส่วนตัวใหม่ของคุณ! น่าเสียดายที่คุณจะไม่ได้เขียนต่อที่นี่ แต่อย่างน้อยก็ยังมีสถานที่ให้ติดตามคุณ

  2.   โฮทูกิ dijo

    บทช่วยสอนที่ยิ่งใหญ่เช่นเคยสำหรับรายการโปรดของฉันทักทาย Fico
    ขอแสดงความยินดีกับโครงการ

  3.   IWO dijo

    ส่วน NIS นั้นยอดเยี่ยมมากฉันเห็นใจ Gonzalo Martinez ฉันรู้สั้น ๆ แต่ไม่รู้ว่าจะนำไปใช้อย่างไรและใช้ในสถานการณ์ใด
    ขอขอบคุณอีกครั้งสำหรับ "ลำต้น" อันยิ่งใหญ่ของบทความทางทฤษฎีและการปฏิบัติ
    ในที่สุดความสำเร็จใหม่ในโครงการใหม่« gigainside »

  4.   เฟเดริโก้ dijo

    ขอบคุณทุกคนมากสำหรับความคิดเห็น !!!.
    ความนับถือ

  5.   มัสซอล dijo

    smb.conf ที่คุณสอนไม่มีลิงค์ใด ๆ กับ LDAP มันเป็นเช่นนั้นโดยตั้งใจหรือฉันทิ้งอะไรไว้?

  6.   ฟีโก dijo

    mussol: นี่คือ Samba 4 Active Directory Domain Controller ที่มีเซิร์ฟเวอร์ LDAP ในตัวอยู่แล้ว

  7.   วินเซนต์ dijo

    คุณช่วยแสดงความคิดเห็นเกี่ยวกับวิธีการรวม mac (apple) กับ samba 4 AD-DC ได้ไหม
    ขอบคุณ

  8.   จารามิเรซ dijo

    คุณเป็นอย่างไร;

    ขอบคุณสำหรับคู่มือนี้ดีมาก ฉันมีคำถามเกี่ยวกับข้อความที่ปรากฏให้ฉันเห็น

    root @ AD: ~ # nping –tcp -p 53 -c 3 ad.rjsolucionessac.com
    ไม่สามารถแก้ไขชื่อโฮสต์ / IP ที่กำหนด: ad.rjsolucionessac.com โปรดทราบว่าคุณไม่สามารถใช้ช่วง IP สไตล์ "/ mask" และ "1-4,7,100-" ได้
    ไม่พบเป้าหมายที่ถูกต้อง โปรดตรวจสอบให้แน่ใจว่าโฮสต์ที่ระบุเป็นที่อยู่ IP ในรูปแบบมาตรฐานหรือชื่อโฮสต์ที่สามารถแก้ไขได้ด้วย DNS
    รูท @ AD: ~ #