สวัสดีเพื่อน!. มาดูเรื่องนี้กันและตามที่เราแนะนำให้อ่านบทความก่อนหน้าสามบทความในซีรีส์:
- บริการไดเรกทอรีกับ LDAP บทนำ.
- บริการไดเรกทอรีที่มี LDAP [2]: NTP และ dnsmasq.
- Directory Service พร้อม LDAP [3]: Isc-DHCP-Server และ Bind9.
DNS, DHCP และ NTP เป็นบริการที่จำเป็นขั้นต่ำสำหรับไดเร็กทอรีอย่างง่ายของเราโดยยึดตามไฟล์ OpenLDAP เนทีฟทำงานได้อย่างถูกต้องบนไฟล์ Debian 6.0 "บีบ"หรือใน Ubuntu 12.04 LTS "Precise Pangolin"
ตัวอย่างเครือข่าย:
Lan: 10.10.10.0/24
Dominio: amigos.cu
Servidor: mildap.amigos.cu
Sistema Operativo Servidor: Debian 6 "Squeeze
Dirección IP del servidor: 10.10.10.15
Cliente 1: debian7.amigos.cu
Cliente 2: raring.amigos.cu
Cliente 3: suse13.amigos.cu
Cliente 4: seven.amigos.cu
ในส่วนที่หนึ่งเราจะเห็น:
- การติดตั้ง OpenLDAP (ตบ 2.4.23-7.3)
- ตรวจสอบหลังการติดตั้ง
- ดัชนีที่ต้องคำนึงถึง
- กฎการควบคุมการเข้าถึงข้อมูล
- การสร้างใบรับรอง TLS ใน Squeeze
ในส่วนที่สองเราจะดำเนินการต่อด้วย:
- การตรวจสอบผู้ใช้ภายใน
- เติมฐานข้อมูล
- จัดการฐานข้อมูลโดยใช้ยูทิลิตี้คอนโซล
- สรุปจนถึงตอนนี้ ...
การติดตั้ง OpenLDAP (ตบ 2.4.23-7.3)
เซิร์ฟเวอร์ OpenLDAP ถูกติดตั้งโดยใช้แพ็คเกจ ตบ. เราต้องติดตั้งแพคเกจด้วย ldap-utilsซึ่งให้เครื่องมือฝั่งไคลเอ็นต์แก่เราตลอดจนยูทิลิตี้ของ OpenLDAP เอง
: ~ # aptitude ติดตั้ง sldap-utils
ในระหว่างกระบวนการติดตั้งไฟล์ ดีเบตคอนเฟอเรนซ์ มันจะถามเราสำหรับรหัสผ่านผู้ดูแลระบบหรือผู้ใช้«ผู้ดูแลระบบ«. นอกจากนี้ยังมีการติดตั้งการอ้างอิงจำนวนหนึ่ง ผู้ใช้ถูกสร้างขึ้น openldap; การกำหนดค่าเซิร์ฟเวอร์เริ่มต้นถูกสร้างขึ้นเช่นเดียวกับไดเร็กทอรี LDAP
ใน OpenLDAP เวอร์ชันก่อนหน้านี้การกำหนดค่า daemon ตบ ทำทั้งหมดผ่านไฟล์ /etc/ldap/slapd.conf. ในเวอร์ชันที่เราใช้และใหม่กว่าการกำหนดค่าจะทำในแบบเดียวกัน ตบและเพื่อจุดประสงค์นี้ก DIT «แผนผังข้อมูลไดเรกทอรี»หรือแผนผังข้อมูลไดเรกทอรีแยกกัน
วิธีการกำหนดค่าที่เรียกว่า RTC «การกำหนดค่าตามเวลาจริง»การกำหนดค่าตามเวลาจริงหรือเป็นวิธีการ cn = configช่วยให้เรากำหนดค่าไฟล์ ตบ โดยไม่ต้องเริ่มบริการใหม่
ฐานข้อมูลคอนฟิกูเรชันประกอบด้วยชุดของไฟล์ข้อความในรูปแบบ แอลดีไอเอฟ «รูปแบบการแลกเปลี่ยนข้อมูล LDAP»รูปแบบ LDAP สำหรับการแลกเปลี่ยนข้อมูลซึ่งอยู่ในโฟลเดอร์ /etc/ldap/slapd.d.
เพื่อให้ทราบถึงการจัดระเบียบโฟลเดอร์ ตบ dเริ่มกันเลย:
: ~ # ls -lR /etc/ldap/slapd.d/ /etc/ldap/slapd.d/: ทั้งหมด 8 drwxr-x --- 3 openldap openldap 4096 16 กุมภาพันธ์ 11:08 cn = config -rw ------- 1 openldap openldap 407 ก.พ. 16 11:08 cn = config.ldif /etc/ldap/slapd.d/cn=config: ทั้งหมด 28 -rw ------- 1 openldap openldap 383 ก.พ. 16 11:08 cn = module {0} .ldif drwxr-x --- 2 openldap openldap 4096 16 ก.พ. 11 08:1 cn = schema -rw ------- 325 openldap openldap 16 ก.พ. 11 08:1 cn = schema.ldif -rw ------- 343 openldap openldap 16 ก.พ. 11 08:0 olcBackend = {1} hdb.ldif -rw ------- 472 openldap openldap 16 11 ก.พ. 08:0 olcDatabase = {1} config.ldif -rw ------- 586 openldap openldap 16 11 ก.พ. 08:1 olcDatabase = {- 1} frontend.ldif -rw ------- 1012 openldap openldap 16 11 ก.พ. 08:1 olcDatabase = {40} hdb.ldif /etc/ldap/slapd.d/cn = config / cn = schema: total 1 -rw ------- 15474 openldap openldap 16 11 ก.พ. 08:0 cn = {1} core.ldif -rw ------- 11308 openldap openldap 16 11 ก.พ. 08:1 cn = {1} cosine.ldif -rw ------- 6438 openldap openldap 16 11 กุมภาพันธ์ 08:2 cn = {1} nis.ldif -rw ------- 2802 openldap openldap 16 11 ก.พ. 08:3 cn = {XNUMX} inetorgperson.ldif
หากเราดูผลลัพธ์ก่อนหน้าเล็กน้อยเราจะเห็นว่าไฟล์ แบ็กเอนด์ ที่ใช้ใน Squeeze คือประเภทฐานข้อมูล เอชดีบีซึ่งเป็นตัวแปรของ บีดีบี "ฐานข้อมูล Berkeley" และเป็นแบบลำดับชั้นอย่างสมบูรณ์และสนับสนุนการเปลี่ยนชื่อต้นไม้ย่อย หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับสิ่งที่เป็นไปได้ แบ็กเอนด์ ที่รองรับ OpenLDAP โปรดไปที่ http://es.wikipedia.org/wiki/OpenLDAP.
นอกจากนี้เรายังเห็นว่ามีการใช้ฐานข้อมูลที่แยกจากกันสามฐานนั่นคือฐานข้อมูลที่อุทิศให้กับการกำหนดค่าอีกฐาน ส่วนหน้าและอันสุดท้ายคือฐานข้อมูล เอชดีบี ต่อ se.
นอกจากนี้ ตบ ได้รับการติดตั้งตามค่าเริ่มต้นด้วยแผนผัง แกน, โคไซน์, NIS e คนเล่นเน็ต.
ตรวจสอบหลังการติดตั้ง
ในเทอร์มินัลเราดำเนินการและอ่านผลลัพธ์อย่างใจเย็น เราจะตรวจสอบโดยเฉพาะอย่างยิ่งกับคำสั่งที่สองการกำหนดค่าที่อนุมานจากการแสดงรายการโฟลเดอร์ ตบ d.
: ~ # ldapsearch -Q -LLL -Y ภายนอก -H ldapi: /// -b cn = config | เพิ่มเติม: ~ # ldapsearch -Q -LLL -Y EXTERNAL -H ldapi: /// -b cn = config dn dn: cn = config dn: cn = module {0}, cn = config dn: cn = schema, cn = config dn: cn = {0} core, cn = schema, cn = config dn: cn = {1} โคไซน์ , cn = schema, cn = config dn: cn = {2} nis, cn = schema, cn = config dn: cn = {3} inetorgperson, cn = schema, cn = config dn: olcBackend = {0} hdb, cn = config dn: olcDatabase = {- 1} frontend, cn = config dn: olcDatabase = {0} config, cn = config dn: olcDatabase = {1} hdb, cn = config
คำอธิบายของแต่ละเอาต์พุต:
- cn = config: พารามิเตอร์ส่วนกลาง
- cn = โมดูล {0}, cn = config: โมดูลโหลดแบบไดนามิก
- cn = schema, cn = config: ประกอบด้วยไฟล์ ฮาร์ดโค้ด ในระดับของแผนผังระบบ
- cn = {0} core, cn = schema, cn = config: ฮาร์ดโค้ด ของแผนผังเคอร์เนล
- cn = {1} โคไซน์, cn = สคีมา, cn = config: โครงการ โคไซน์.
- cn = {2} nis, cn = schema, cn = config: โครงการ นิส
- cn = {3} inetorgperson, cn = schema, cn = config: โครงการ คนเล่นเน็ต.
- olcBackend = {0} hdb, cn = config: แบ็กเอนด์ ประเภทการจัดเก็บข้อมูล เอชดีบี.
- olcDatabase = {- 1} frontend, cn = config: ส่วนหน้า ของฐานข้อมูลและพารามิเตอร์เริ่มต้นสำหรับฐานข้อมูลอื่น
- olcDatabase = {0} config, cn = config: ฐานข้อมูลการกำหนดค่าของ ตบ (cn = config).
- olcDatabase = {1} hdb, cn = config: อินสแตนซ์ของฐานข้อมูล (dc = เพื่อน, dc = cu)
: ~ # ldapsearch -x -LLL -H ldap: /// -b dc = ตัวอย่าง dc = com dn dn: dc = friends, dc = cu dn: cn = admin, dc = friends, dc = cu
- dc = เพื่อน, dc = cu: โครงสร้างข้อมูลไดเรกทอรีฐาน DIT
- cn = admin, dc = friends, dc = cu: Administrator (rootDN) ของ DIT ที่ประกาศระหว่างการติดตั้ง
หมายเหตุ: ส่วนต่อท้ายฐาน dc = เพื่อน, dc = cuเอามัน ดีเบตคอนเฟอเรนซ์ ระหว่างการติดตั้งจาก เอฟคิวดีเอ็น ของเซิร์ฟเวอร์ Mildap.amigos.cu.
ดัชนีที่ต้องคำนึงถึง
การจัดทำดัชนีของรายการจะดำเนินการเพื่อปรับปรุงประสิทธิภาพของการค้นหาในไฟล์ DITด้วยเกณฑ์การกรอง ดัชนีที่เราจะพิจารณาเป็นค่าต่ำสุดที่แนะนำตามแอตทริบิวต์ที่ประกาศในสคีมาเริ่มต้น
ในการแก้ไขดัชนีในฐานข้อมูลแบบไดนามิกเราสร้างไฟล์ข้อความในรูปแบบ แอลดีไอเอฟและต่อมาเราจะเพิ่มลงในฐานข้อมูล เราสร้างไฟล์ olcDbIndex.ldif และเราปล่อยให้มันมีเนื้อหาต่อไปนี้:
: ~ # นาโน olcDbIndex.ldif dn: olcDatabase = {1} hdb, cn = config changetype: modified add: olcDbIndex olcDbIndex: uidNumber eq - เพิ่ม: olcDbIndex olcDbIndex: gidNumber eq - เพิ่ม: olcDbIndex olcDbIndex: memberUid eq login, olc เข้าสู่ระบบ olc, olcDbIndex: memberUid eq เข้าสู่ระบบ olc : loginShell eq, olcDbIndex: เข้าสู่ระบบ - เพิ่ม: olcDbIndex olcDbIndex: uid pres, sub, eq - เพิ่ม: olcDbIndex olcDbIndex: cn pres, sub, eq - เพิ่ม: olcDbIndex olcDbIndex: sn pres, sub, olcDbnd - add: sn pres, sub, olcDbnd - add: , ou pres, eq, sub - add: olcDbIndex olcDbIndex: displayName pres, sub, eq - add: olcDbIndex olcDbIndex: default sub - add: olcDbIndex olcDbIndex: mail eq, subinitial - add: olcDbIndex olcDbInd
เราเพิ่มดัชนีลงในฐานข้อมูลและตรวจสอบการแก้ไข:
: ~ # ldapmodify -Y ภายนอก -H ldapi: /// -f ./olcDbIndex.ldif : ~ # ldapsearch -Q -LLL -Y ภายนอก -H ldapi: /// -b \ cn = config '(olcDatabase = {1} hdb)' olcDbIndex dn: olcDatabase = {1} hdb, cn = config olcDbIndex: objectClass eq olcDbIndex: uidNumber, gidNumber eq olcDbIndex: memberUid eq, pres, sub olcDbIndex: loginShell eq olcDbIndex: uid presq olc: old presnd e cn presq olcDbIndex: sn pres, sub, eq olcDbIndex: givenName, ou pres, eq, sub olcDbIndex: displayName pres, sub, eq olcDbIndex: default sub olcDbIndex: mail eq, subinitial olcDbIndex: dc eq
กฎการควบคุมการเข้าถึงข้อมูล
Access Control เรียกว่ากฎที่กำหนดขึ้นเพื่อให้ผู้ใช้สามารถอ่านแก้ไขเพิ่มและลบข้อมูลในฐานข้อมูล Directory ได้ในขณะที่เราจะเรียก Access Control Lists หรือ«รายการควบคุมการเข้าถึง ACL»ไปยังนโยบายที่กำหนดค่ากฎ
หากต้องการทราบว่า ACL ถูกประกาศตามค่าเริ่มต้นในระหว่างกระบวนการติดตั้งไฟล์ ตบเราดำเนินการ:
: ~ # ldapsearch -Q -LLL -Y ภายนอก -H ldapi: /// -b \ cn = config '(olcDatabase = {1} hdb)' olcAccess : ~ # ldapsearch -Q -LLL -Y ภายนอก -H ldapi: /// -b \ cn = config '(olcDatabase = {- 1} ส่วนหน้า)' olcAccess : ~ # ldapsearch -Q -LLL -Y ภายนอก -H ldapi: /// -b \ cn = config '(olcDatabase = {0} config)' olcAccess : ~ # ldapsearch -Q -LLL -Y ภายนอก -H ldapi: /// -b \ cn = config '(olcAccess = *)' olcAccess olcSuffix
แต่ละคำสั่งข้างต้นจะแสดงไฟล์ ACL จนถึงตอนนี้เราได้ประกาศไว้ในไดเรกทอรีของเรา โดยเฉพาะคำสั่งสุดท้ายจะแสดงทั้งหมดในขณะที่คำสั่งสามข้อแรกให้กฎการควบคุมการเข้าถึงสำหรับทั้งสาม DIT มีส่วนร่วมใน ตบ.
ในเรื่องของ ACL และเพื่อไม่ให้บทความยาวมากเราขอแนะนำให้อ่านหน้าคู่มือ คนตบการเข้าถึง.
เพื่อรับประกันการเข้าถึงของผู้ใช้และผู้ดูแลระบบเพื่ออัปเดตรายการของพวกเขา เข้าสู่ระบบShell y ตุ๊กแกเราจะเพิ่ม ACL ต่อไปนี้:
## เราสร้างไฟล์ olcAccess.ldif และปล่อยให้มีเนื้อหาต่อไปนี้: ~ # nano olcAccess.ldif dn: olcDatabase = {1} hdb, cn = config changetype: modified add: olcAccess olcAccess: {1} to attrs = loginShell, gecos by dn = "cn = admin, dc = friends, dc = cu" เขียนด้วยตนเองเขียนโดย * อ่าน ## เราเพิ่ม ACL : ~ # ldapmodify -Y ภายนอก -H ldapi: /// -f ./olcAccess.ldif # เราตรวจสอบการเปลี่ยนแปลง ldapsearch -Q -LLL -Y ภายนอก -H ldapi: /// -b \ cn = config '(olcAccess = *)' olcAccess olcSuffix
การสร้างใบรับรอง TLS ใน Squeeze
ในการตรวจสอบความถูกต้องอย่างปลอดภัยกับเซิร์ฟเวอร์ OpenLDAP เราต้องดำเนินการผ่านเซสชันที่เข้ารหัสซึ่งเราสามารถทำได้โดยใช้ TLS « Transport Layer Security » o Secure Transport Layer
เซิร์ฟเวอร์ OpenLDAP และไคลเอนต์สามารถใช้ไฟล์ กรอบ TLS เพื่อให้ความคุ้มครองเกี่ยวกับความสมบูรณ์และการรักษาความลับตลอดจนการสนับสนุนการตรวจสอบความปลอดภัย LDAP ผ่านกลไก SASL «การรับรองความถูกต้องและเลเยอร์ความปลอดภัยอย่างง่าย« ภายนอก.
เซิร์ฟเวอร์ OpenLDAP สมัยใหม่นิยมใช้ */ StartTLS /* o เริ่ม Secure Transport Layer ไปที่ / protocolLDAPS: ///ซึ่งล้าสมัย มีคำถามโปรดไปที่ * เริ่ม TLS v. ldaps: // * en http://www.openldap.org/faq/data/cache/605.html
เพียงแค่ปล่อยไฟล์ที่ติดตั้งไว้ตามค่าเริ่มต้น / etc / default / Slapd ด้วยคำสั่ง SLAPD_SERVICES = » ldap: /// ldapi: /// »โดยมีจุดประสงค์เพื่อใช้แชนเนลที่เข้ารหัสระหว่างไคลเอนต์และเซิร์ฟเวอร์และแอ็พพลิเคชันเสริมเองเพื่อจัดการ OpenLDAP ที่ติดตั้งภายในเครื่อง
วิธีการที่อธิบายไว้ที่นี่ขึ้นอยู่กับแพ็คเกจ Gnutls-bin y ssl-ใบรับรอง ใช้ได้กับ Debian 6 "Squeeze" และสำหรับ Ubuntu Server 12.04 สำหรับ Debian 7 "Wheezy" อีกวิธีหนึ่งตาม OpenSSL.
การสร้างใบรับรองใน Squeeze จะดำเนินการดังนี้:
1.- เราติดตั้งแพ็คเกจที่จำเป็น : ~ # aptitude ติดตั้ง gnutls-bin ssl-cert 2.- เราสร้างคีย์หลักสำหรับผู้ออกใบรับรอง : ~ # sh -c "certtool --generate-privkey> /etc/ssl/private/cakey.pem" 3.- เราสร้างเทมเพลตเพื่อกำหนด CA (ผู้ออกใบรับรอง) : ~ # nano /etc/ssl/ca.info cn = Cuban Friends ca cert_signing_key 4.- เราสร้าง CA Self Signed หรือ Self-Signed Certificate สำหรับลูกค้า : ~ # certtool - สร้างการลงนามด้วยตนเอง \ --load-privkey /etc/ssl/private/cakey.pem \ --template /etc/ssl/ca.info \ --outfile / etc / ssl / certs / cacert.pem 5.- เราสร้างคีย์ส่วนตัวสำหรับเซิร์ฟเวอร์ : ~ # certtool --generate-privkey \ --bits 1024 \ --outfile /etc/ssl/private/mildap-key.pem หมายเหตุ: แทนที่ "อ่อนโยน"ในชื่อไฟล์ด้านบนตามเซิร์ฟเวอร์ของคุณเองการตั้งชื่อใบรับรองและคีย์ทั้งสำหรับเซิร์ฟเวอร์และสำหรับบริการที่ใช้งานจะช่วยให้เราเก็บข้อมูลได้ชัดเจน 6.- เราสร้างไฟล์ /etc/ssl/mildap.info ด้วยเนื้อหาต่อไปนี้: : ~ # nano /etc/ssl/mildap.info องค์กร = Cuban Friends cn = mildap.amigos.cu tls_www_server encryption_key Sign_key expiration_days = 3650 หมายเหตุ: ในเนื้อหาข้างต้นเราขอประกาศว่าใบรับรองมีอายุ 10 ปี ต้องปรับพารามิเตอร์ตามความสะดวกของเรา 7.- เราสร้างใบรับรองเซิร์ฟเวอร์ : ~ # certtool - สร้างใบรับรอง \ --load-privkey /etc/ssl/private/mildap-key.pem \ --load-ca-certificate /etc/ssl/certs/cacert.pem \ --load- ca-privkey /etc/ssl/private/cakey.pem \ --template /etc/ssl/mildap.info \ --outfile /etc/ssl/certs/mildap-cert.pem
จนถึงตอนนี้เราได้สร้างไฟล์ที่จำเป็นแล้วเราต้องเพิ่มตำแหน่งของใบรับรองที่ลงนามด้วยตนเองลงในไดเรกทอรีเท่านั้น cacert.pem; ของใบรับรองเซิร์ฟเวอร์ Mildap-cert.pem; และคีย์ส่วนตัวของเซิร์ฟเวอร์ Mildap-key.pem. เราต้องปรับการอนุญาตและเจ้าของไฟล์ที่สร้างขึ้นด้วย
: ~ # นาโน /etc/ssl/certinfo.ldif dn: cn = config เพิ่ม: olcTLSCACertificateFile olcTLSCACertificateFile: /etc/ssl/certs/cacert.pem - เพิ่ม: olcTLSCertificateFile olcTLSCertificateFile: /etc/ssl/certificate/mildap-certificateCertificate ฯลฯ : ฯลฯ /mildap-key.pem 8.- เราเพิ่ม: ~ # ldapmodify -Y EXTERNAL -H ldapi: /// -f /etc/ssl/certinfo.ldif 9.- เราปรับเปลี่ยนเจ้าของและสิทธิ์ : ~ # adduser openldap ssl-cert: ~ # chgrp ssl-cert /etc/ssl/private/mildap-key.pem: ~ # chmod g + r /etc/ssl/private/mildap-key.pem: ~ # chmod หรือ /etc/ssl/private/mildap-key.pem
ใบรับรอง cacert.pem เป็นสิ่งที่เราต้องคัดลอกในไคลเอนต์แต่ละราย ในการใช้ใบรับรองนี้บนเซิร์ฟเวอร์เราจะต้องประกาศในไฟล์ /etc/ldap/ldap.conf. ในการดำเนินการนี้เราแก้ไขไฟล์และปล่อยให้มีเนื้อหาต่อไปนี้:
: ~ # นาโน /etc/ldap/ldap.conf ฐาน dc = เพื่อน, dc = cu URI ldap: //mildap.amigos.cu TLS_CACERT /etc/ssl/certs/cacert.pem
สุดท้ายและเพื่อเป็นการตรวจสอบเราเริ่มบริการใหม่ ตบ และเราตรวจสอบผลลัพธ์ของไฟล์ syslog จากเซิร์ฟเวอร์เพื่อดูว่าบริการเริ่มต้นใหม่อย่างถูกต้องหรือไม่โดยใช้ใบรับรองที่ประกาศใหม่
: ~ # บริการตบเริ่มต้นใหม่ : ~ # หาง / var / log / syslog
หากบริการไม่เริ่มต้นใหม่อย่างถูกต้องหรือเราสังเกตเห็นข้อผิดพลาดร้ายแรงในไฟล์ syslogอย่าท้อถอย เราสามารถพยายามซ่อมแซมความเสียหายหรือเริ่มต้นใหม่ หากเราตัดสินใจที่จะเริ่มต้นจากศูนย์การติดตั้งไฟล์ ตบไม่จำเป็นต้องฟอร์แมตเซิร์ฟเวอร์ของเรา
ในการลบทุกอย่างที่เราทำไปแล้วไม่ว่าจะด้วยเหตุผลใดก็ตามเราต้องถอนการติดตั้งแพคเกจ ตบแล้วลบโฟลเดอร์ / var / lib / ldap. เราต้องทิ้งไฟล์ไว้ในเวอร์ชันดั้งเดิมด้วย /etc/ldap/ldap.conf.
เป็นเรื่องยากที่ทุกอย่างจะทำงานได้อย่างถูกต้องในครั้งแรก 🙂
โปรดจำไว้ว่าในงวดหน้าเราจะเห็น:
- การตรวจสอบผู้ใช้ภายใน
- เติมฐานข้อมูล
- จัดการฐานข้อมูลโดยใช้ยูทิลิตี้คอนโซล
- สรุปจนถึงตอนนี้ ...
เจอกันเร็ว ๆ นี้เพื่อน!.
ครู!!!
มันเกิดขึ้นกับตู!
เป็นเลิศ
สิ่งที่ชอบทั้งหมดของโลกสำหรับคุณ
????
ขอบคุณมากฮิวโก้ !!! รอติดตามบทความต่อไปเรื่อง
สวัสดี:
น่าสนใจชุดบทความของคุณ
ฉันประหลาดใจที่ได้อ่านข้อความนี้: "เซิร์ฟเวอร์ OpenLDAP สมัยใหม่ชอบใช้ StartTLS หรือ Start a Secure Transport Layer กับโปรโตคอล TLS / SSL เก่าซึ่งล้าสมัยแล้ว"
คุณอ้างว่าในทุกกรณีแม้ว่าจะอยู่นอกขอบเขต LDAP ก็ตาม STARTTLS เป็นกลไกการป้องกันที่เหนือกว่า TSL / SSL หรือไม่?
ขอบคุณสำหรับความคิดเห็น โปรดทราบว่าฉันหมายถึง OpenLDAP ฉันไม่เกินเลย ใน http://www.openldap.org/faq/data/cache/185.htmlคุณสามารถอ่านสิ่งต่อไปนี้:
Transport Layer Security (TLS) เป็นชื่อมาตรฐานสำหรับ Secure Socket Layer (SSL) โดยทั่วไปข้อกำหนด (เว้นแต่จะได้รับการรับรองด้วยหมายเลขเวอร์ชันที่เฉพาะเจาะจง) โดยทั่วไปแล้วสามารถแลกเปลี่ยนกันได้
StartTLS เป็นชื่อของการดำเนินการ LDAP มาตรฐานสำหรับการเริ่มต้น TLS / SSL TLS / SSL เริ่มต้นเมื่อการดำเนินการ LDAP นี้เสร็จสมบูรณ์ ไม่จำเป็นต้องมีพอร์ตสำรอง บางครั้งเรียกว่าการดำเนินการอัปเกรด TLS เนื่องจากอัปเกรดการเชื่อมต่อ LDAP แบบปกติเป็นแบบที่มีการป้องกันโดย TLS / SSL
ldaps: // และ LDAPS หมายถึง "LDAP over TLS / SSL" หรือ "LDAP Secured" TLS / SSL เริ่มต้นเมื่อเชื่อมต่อกับพอร์ตอื่น (ปกติ 636) แม้ว่าพอร์ต LDAPS (636) จะถูกลงทะเบียนสำหรับการใช้งานนี้ แต่รายละเอียดของกลไกการเริ่มต้น TLS / SSL ก็ไม่ได้เป็นมาตรฐาน
เมื่อเริ่มต้นแล้วจะไม่มีความแตกต่างระหว่าง ldaps: // และ StartTLS พวกเขาแชร์ตัวเลือกการกำหนดค่าเดียวกัน (ยกเว้น ldaps: // ต้องการการกำหนดค่าของตัวฟังแยกต่างหากดูตัวเลือก sld (8) s -h) และส่งผลให้เหมือนกับการสร้างบริการความปลอดภัย
หมายเหตุ
1) ldap: // + StartTLS ควรนำไปยังพอร์ต LDAP ปกติ (ปกติ 389) ไม่ใช่ ldaps: // พอร์ต
2) ldaps: // ควรนำไปยังพอร์ต LDAPS (ปกติ 636) ไม่ใช่พอร์ต LDAP
ขออภัยฉันยังไม่แน่ใจว่าทำไมคุณถึงอ้างว่า: 1) เซิร์ฟเวอร์สมัยใหม่ชอบ STARTTLS เป็น SSL / TLS; 2) STARTTLS นั้นทันสมัยเทียบกับ SSL / TLS ที่ล้าสมัย
ฉันต่อสู้มาครึ่งเดือนกับการกำหนดค่าไคลเอนต์เมลต่างๆที่เข้าถึงเซิร์ฟเวอร์ด้วย SSL (โดยใช้ไลบรารี openssl เหมือนกับซอฟต์แวร์ฟรีส่วนใหญ่) พร้อมใบรับรอง CA ใน / etc / ssl / certs / และอุปกรณ์อื่น ๆ และสิ่งที่ฉันได้เรียนรู้คือ 1) STARTTLS เข้ารหัสเฉพาะการรับรองความถูกต้องเซสชันเท่านั้น 2) SSL เข้ารหัสเนื้อหาทั้งหมดของเซสชันอย่างแน่นอน ดังนั้นจึงไม่มีทางเทคนิค STARTTLS เหนือกว่า SSL; ฉันค่อนข้างจะคิดตรงกันข้ามเนื่องจากเนื้อหาของเซสชันของคุณเดินทางโดยไม่ได้เข้ารหัสผ่านเครือข่าย
สิ่งที่แตกต่างอีกประการหนึ่งคือขอแนะนำให้ใช้ STARTTLS ด้วยเหตุผลอื่นที่ฉันไม่ทราบ: เพื่อความเข้ากันได้กับ MSWindows เนื่องจากการใช้งานมีความเสถียรมากกว่าหรือได้รับการทดสอบที่ดีกว่า ... ฉันไม่รู้ นั่นคือเหตุผลที่ฉันถามคุณ
จากคำพูดจากคู่มือที่คุณแนบมาให้ฉันในคำตอบของคุณฉันเห็นว่าความแตกต่างระหว่าง ldap: // และ ldaps: // เทียบเท่ากับความแตกต่างระหว่าง imap: // และ imaps: // หรือระหว่าง smtp : // และ smtps: //: มีการใช้พอร์ตอื่นมีการเพิ่มรายการเพิ่มเติมบางรายการในไฟล์การกำหนดค่า แต่พารามิเตอร์ที่เหลือจะถูกเก็บไว้ แต่นั่นไม่ได้บ่งบอกอะไรเกี่ยวกับการเลือกใช้ STARTTLS หรือไม่
ทักทายและขออภัยสำหรับการตอบกลับ ฉันแค่พยายามเรียนรู้เพิ่มเติมเล็กน้อย
ดูเป็นเรื่องยากมากที่ในบทความของฉันฉันอ้างสิทธิ์ในความสามารถนั้นโดยไม่ได้รับการสนับสนุนจากสิ่งพิมพ์ที่จริงจัง ในตอนท้ายของซีรีส์ฉันจะรวมลิงค์ทั้งหมดไปยังเอกสารที่ฉันคิดว่าจริงจังและฉันได้ปรึกษากันเพื่อเขียนโพสต์ ฉันเลื่อนลิงค์ต่อไปนี้ให้คุณ:
https://wiki.debian.org/LDAP/OpenLDAPSetup
คู่มือเซิร์ฟเวอร์ Ubuntu https://code.launchpad.net/serverguide
OpenLDAP- ทางการ http://www.openldap.org/doc/admin24/index.html
LDAP ผ่าน SSL / TLS และ StartTLS http://tt4cs.wordpress.com/2014/01/18/ldap-over-ssltls-and-starttls/
นอกจากนี้ฉันได้ศึกษาเอกสารประกอบที่ติดตั้งมากับแต่ละแพ็คเกจ
ปัญหาด้านความปลอดภัยโดยทั่วไปและความแตกต่างระหว่าง StartTLS และ TLS / SSL เป็นเรื่องทางเทคนิคมากและมีความลึกซึ้งมากจนฉันไม่คิดว่าตัวเองมีความรู้ที่จำเป็นในการให้คำอธิบายดังกล่าว ฉันคิดว่าเราสามารถพูดคุยกันต่อทางอีเมลได้
นอกจากนี้ฉันระบุว่าไม่สามารถใช้ LDAPS: // ได้ที่ไหน ถ้าคิดว่าปลอดภัยกว่าก็ลุย !!!
ฉันไม่สามารถช่วยคุณได้อีกต่อไปและขอขอบคุณสำหรับความคิดเห็นของคุณ
ความชัดเจนอีกเล็กน้อยที่คุณจะได้รับ - เสมอเกี่ยวกับ OpenLDAP- ใน:
http://www.openldap.org/faq/data/cache/605.html
การดำเนินการเพิ่มเติม StartTLS [RFC 2830] เป็นกลไกมาตรฐานของ LDAPv3 สำหรับการเปิดใช้งานการป้องกันความลับของข้อมูล TLS (SSL) กลไกนี้ใช้การดำเนินการเสริม LDAPv3 เพื่อสร้างการเชื่อมต่อ SSL / TLS ที่เข้ารหัสภายในการเชื่อมต่อ LDAP ที่กำหนดไว้แล้ว แม้ว่ากลไกจะได้รับการออกแบบมาเพื่อใช้กับ TLSv1 แต่การใช้งานส่วนใหญ่จะเปลี่ยนกลับเป็น SSLv3 (และ SSLv2) หากจำเป็น
ldaps: // เป็นกลไกในการสร้างการเชื่อมต่อ SSL / TLS ที่เข้ารหัสสำหรับ LDAP ต้องใช้พอร์ตแยกกันโดยทั่วไปคือ 636 แม้ว่าเดิมจะออกแบบมาเพื่อใช้กับ LDAPv2 และ SSLv2 การใช้งานจำนวนมากสนับสนุนการใช้งานกับ LDAPv3 และ TLSv1 แม้ว่าจะไม่มีข้อกำหนดทางเทคนิคสำหรับ ldaps: // แต่ก็ใช้กันอย่างแพร่หลาย
ldaps: // เลิกใช้งานแล้วเนื่องจาก Start TLS [RFC2830] OpenLDAP 2.0 รองรับทั้งสองอย่าง
ด้วยเหตุผลด้านความปลอดภัยควรกำหนดค่าเซิร์ฟเวอร์ไม่ให้ยอมรับ SSLv2
นี่จะเป็นหนึ่งในบทความที่ผู้ใช้จะไม่แสดงความคิดเห็นเนื่องจากพวกเขาดูสื่อลามกบนสถานี Linux เท่านั้นพวกเขาจึงไม่สนใจเกี่ยวกับ ldap ฉันมีบริการที่เกี่ยวข้องหลายอย่างภายในเครือข่ายที่แตกต่างกันสำหรับ บริษัท ที่ฉันทำงานให้ บทความดี !!
ขอบคุณสำหรับความคิดเห็น !!!. และคำแถลงของคุณเป็นความจริงมากเกี่ยวกับความคิดเห็นบางส่วนในบทความของฉัน อย่างไรก็ตามฉันได้รับการติดต่อจากผู้อ่านที่สนใจหรือจากผู้อื่นที่ดาวน์โหลดบทความเพื่ออ่านและสมัครในภายหลัง
การแสดงความคิดเห็นผ่านความคิดเห็นมีประโยชน์เสมอแม้ว่าจะเป็น: ฉันบันทึกไว้เพื่ออ่านในภายหลังน่าสนใจหรือความคิดเห็นอื่น
ความนับถือ
ฟรีเก้ !!! ขอบคุณสำหรับความคิดเห็น ฉันได้รับความคิดเห็นของคุณทางไปรษณีย์ แต่ไม่เห็นแม้ว่าฉันจะรีเฟรชหน้าเว็บหลายครั้ง เพื่อนคุณสามารถทดสอบสิ่งนี้และบทความก่อนหน้านี้ได้โดยไม่มีปัญหาใน Squeeze หรือ Ubuntu Server 12.04 ในใบรับรอง Wheezy ถูกสร้างขึ้นแตกต่างกันโดยใช้ OpenSSL แต่ไม่มีอะไร. ขอแสดงความนับถือพี่ชาย !!!.
@thisnameisfalse: พนักงานที่ดีที่สุดจะเบลอ ขอบคุณสำหรับความคิดเห็นของคุณฉันคิดว่าย่อหน้าที่เป็นปัญหาควรเป็นดังนี้:
เซิร์ฟเวอร์ OpenLDAP สมัยใหม่ชอบใช้ StartTLS หรือ Start a Secure Transport Layer ไปยังโปรโตคอล LDAPS: // ซึ่งล้าสมัย มีคำถามใด ๆ โปรดไปที่เริ่ม TLS v ldaps: // en http://www.openldap.org/faq/data/cache/605.html
ความนับถือ
พอดีตอนนี้มีการบ้านเรื่อง ldap
คุณไม่สามารถรวมทุกอย่างไว้ในไฟล์เดียวเพื่อให้คุณสามารถดาวน์โหลดบทช่วยสอนทั้งหมดได้
ฉันเป็นช่างเทคนิคคอมพิวเตอร์ที่มีประสบการณ์มากมายใน Linux แต่ฉันก็ยังหลงทางอยู่ตรงกลางของบทความ จากนั้นฉันจะอ่านซ้ำอย่างรอบคอบมากขึ้น ขอบคุณมากสำหรับการสอน
แม้ว่าจะเป็นเรื่องจริงที่ช่วยให้เราเข้าใจมากขึ้นว่าทำไม ActiveDirectory จึงถูกเลือกสำหรับสิ่งเหล่านี้ มีจักรวาลแห่งความแตกต่างเมื่อพูดถึงความเรียบง่ายของการกำหนดค่าและการนำไปใช้งาน
ความนับถือ
ขอบคุณทุกท่านสำหรับการแสดงความคิดเห็น!
@jose monge ฉันหวังว่ามันจะช่วยคุณได้
@walter ในตอนท้ายของโพสต์ทั้งหมดฉันจะดูว่าฉันสามารถสร้างบทสรุปในรูปแบบ html หรือ pdf ได้หรือไม่
@eVeR ในทางกลับกัน OpenLDAP นั้นง่ายกว่า - แม้ว่าจะดูเหมือนไม่ใช่ Active Directory ก็ตาม รอบทความถัดไปแล้วคุณจะเห็น
คำถามฉันทำการติดตั้งทีละขั้นตอน แต่เมื่อรีสตาร์ทบริการ sld มันทำให้ฉันเกิดข้อผิดพลาดต่อไปนี้>
30 ก.ค. 15:27:37 น. xxxx ตบ [1219]: @ (#) $ OpenLDAP: ตบ (Ubuntu) (17 มี.ค. 2014 21:20:08 น.) $ # 012 # 011buildd @ aatxe: /build/buildd/openldap-2.4.31 .XNUMX / เดเบียน / สร้าง / เซิร์ฟเวอร์ / ตบ
30 ก.ค. 15:27:37 xxxxx ตบ [1219]: UNKNOWN attributeDescription "CHANGETYPE" แทรกแล้ว
30 ก.ค. 15:27:37 xxxxx ตบ [1219]: UNKNOWN attributeDescription "ADD" แทรก
30 ก.ค. 15:27:37 น. xxxxx [1219]: <= str2entry: Slap_str2undef_ad (-): empty Attribute
30 ก.ค. 15:27:37 xxxxx ตบ [1219]: ตบหยุด
30 ก.ค. 15:27:37 น. xxxxx [1219]: connections_destroy: nothing to destroy.
คุณสามารถถามในฟอรัม😀 http://foro.desdelinux.net/
สำหรับทุกคนที่เห็นโพสต์ที่ยอดเยี่ยมและอธิบายได้ดีและปัญหานี้เกิดขึ้นเมื่อสร้าง ACL:
ldapmodify: รายการรูปแบบที่ไม่ถูกต้อง (บรรทัดที่ 5): "olcDatabase = {1} hdb, dc = config"
หลังจากครุ่นคิดค้นหาอินเทอร์เน็ตปรากฎว่า ldapmodify เป็นประเภทที่แม่นยำที่สุดบนหน้าเว็บ เป็นเรื่องที่น่าตกใจกับการใส่อักขระผิดตำแหน่งและการเว้นวรรคต่อท้าย โดยไม่ต้องกังวลใจอีกต่อไปคำแนะนำคือให้เขียนตามเงื่อนไขติดกันหรือโดย X เขียนด้วยตนเองเขียนโดย * read หากยังใช้งานไม่ได้ให้ติดตั้ง Notepad ++> View> Show symbol และสุดท้ายตายไปยังอักขระที่มองไม่เห็น ฉันหวังว่าจะมีคนช่วย
สร้างใบรับรองสำหรับ Debian Wheezy โดยใช้ OpenSSL ซึ่งสามารถให้บริการ:
http://blog.phenobarbital.info/2014/10/openldap-tlsssl-configuracion-basica-y-aseguramiento/