ดัชนีทั่วไปของซีรี่ส์: 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 ราวกับว่าพวกเขาเป็นผู้ใช้ภายในเครื่องและอื่น ๆ
- การตรวจสอบ Squid + PAM บน CentOS 7.
- ผู้ใช้ภายในและการจัดการกลุ่ม
- NSD Authoritarian DNS Server + Shorewall
- IM ของฉันและผู้ใช้ในท้องถิ่น
- Postfix + Dovecot + Squirrelmail และผู้ใช้ในพื้นที่
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 ประกอบด้วยส่วนประกอบหลักหลายอย่าง ได้แก่ :
- Custom LDAP โดยทั้ง Microsoft และ Samba
- โดเมน Microsoft Windows o โดเมน Windows โดยพื้นฐานแล้วคือ Microsoft Network
- ตัวควบคุมโดเมนของ Microsoft o ตัวควบคุมโดเมน
- Kerberos ปรับแต่งโดยทั้ง Microsoft และ Samba
เราต้องไม่สับสนกับไฟล์ บริการไดเรกทอรี 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.
ลาก่อน!
บทความยาว แต่ละเอียดดีมากทีละขั้นตอนเกี่ยวกับวิธีการทำทุกอย่าง
ฉันเน้น NIS แต่ความจริงก็คือแม้ว่าฉันจะรู้เกี่ยวกับการดำรงอยู่ของมัน แต่ฉันไม่เคยรู้เลยว่ามันทำงานอย่างไรเพราะพูดตามตรงมันทำให้ฉันรู้สึกประทับใจเสมอว่ามันตายแล้วถัดจาก LDAP และ Samba 4
PS: ขอแสดงความยินดีกับโครงการส่วนตัวใหม่ของคุณ! น่าเสียดายที่คุณจะไม่ได้เขียนต่อที่นี่ แต่อย่างน้อยก็ยังมีสถานที่ให้ติดตามคุณ
บทช่วยสอนที่ยิ่งใหญ่เช่นเคยสำหรับรายการโปรดของฉันทักทาย Fico
ขอแสดงความยินดีกับโครงการ
ส่วน NIS นั้นยอดเยี่ยมมากฉันเห็นใจ Gonzalo Martinez ฉันรู้สั้น ๆ แต่ไม่รู้ว่าจะนำไปใช้อย่างไรและใช้ในสถานการณ์ใด
ขอขอบคุณอีกครั้งสำหรับ "ลำต้น" อันยิ่งใหญ่ของบทความทางทฤษฎีและการปฏิบัติ
ในที่สุดความสำเร็จใหม่ในโครงการใหม่« gigainside »
ขอบคุณทุกคนมากสำหรับความคิดเห็น !!!.
ความนับถือ
smb.conf ที่คุณสอนไม่มีลิงค์ใด ๆ กับ LDAP มันเป็นเช่นนั้นโดยตั้งใจหรือฉันทิ้งอะไรไว้?
mussol: นี่คือ Samba 4 Active Directory Domain Controller ที่มีเซิร์ฟเวอร์ LDAP ในตัวอยู่แล้ว
คุณช่วยแสดงความคิดเห็นเกี่ยวกับวิธีการรวม mac (apple) กับ samba 4 AD-DC ได้ไหม
ขอบคุณ
คุณเป็นอย่างไร;
ขอบคุณสำหรับคู่มือนี้ดีมาก ฉันมีคำถามเกี่ยวกับข้อความที่ปรากฏให้ฉันเห็น
root @ AD: ~ # nping –tcp -p 53 -c 3 ad.rjsolucionessac.com
ไม่สามารถแก้ไขชื่อโฮสต์ / IP ที่กำหนด: ad.rjsolucionessac.com โปรดทราบว่าคุณไม่สามารถใช้ช่วง IP สไตล์ "/ mask" และ "1-4,7,100-" ได้
ไม่พบเป้าหมายที่ถูกต้อง โปรดตรวจสอบให้แน่ใจว่าโฮสต์ที่ระบุเป็นที่อยู่ IP ในรูปแบบมาตรฐานหรือชื่อโฮสต์ที่สามารถแก้ไขได้ด้วย DNS
รูท @ AD: ~ #