আরএইচসিএসএ সিরিজ: আরএইচইএল 7 - পার্ট 14 এ এলডিএপি-ভিত্তিক প্রমাণীকরণ সেট আপ করা হচ্ছে


আমরা এই নিবন্ধটি কিছু এলডিএপি বেসিক (এটি কী, এটি কোথায় ব্যবহৃত হয় এবং কেন) রুপরেখার মাধ্যমে শুরু করব এবং কিভাবে একটি এলডিএপি সার্ভার সেট আপ করতে হবে এবং একটি ক্লায়েন্টকে Red Hat Enterprise Linux 7 সিস্টেম ব্যবহার করে প্রমাণীকরণের জন্য কনফিগার করতে হবে।

যেমনটি আমরা দেখতে পাব, অন্যান্য বেশ কয়েকটি সম্ভাব্য অ্যাপ্লিকেশন পরিস্থিতি রয়েছে তবে এই গাইডটিতে আমরা পুরোপুরি এলডিএপি-ভিত্তিক প্রমাণীকরণের দিকে মনোনিবেশ করব। এছাড়াও, দয়া করে মনে রাখবেন যে বিষয়টির বিশালতার কারণে আমরা কেবল এখানে এর মূল বিষয়গুলি আবরণ করব, তবে আপনি আরও গভীরতার সাথে বিশদে বিশদ বিবরণের জন্য সংক্ষেপে বর্ণিত ডকুমেন্টেশনগুলি উল্লেখ করতে পারেন।

একই কারণে, আপনি নোট করবেন যে আমি সংক্ষিপ্ততার জন্য এলডিএপি সরঞ্জামগুলির ম্যান পেজগুলির জন্য কয়েকটি উল্লেখগুলি রেখে দেওয়ার সিদ্ধান্ত নিয়েছি, তবে সম্পর্কিত ব্যাখ্যাগুলি আঙ্গুলের দূরত্বে রয়েছে (উদাহরণস্বরূপ, ম্যান এলডিপ্যাডড)।

এটি বলেছিল, আসুন শুরু করা যাক।

আমাদের পরীক্ষার পরিবেশ দুটি RHEL 7 বাক্স নিয়ে গঠিত:

Server: 192.168.0.18. FQDN: rhel7.mydomain.com
Client: 192.168.0.20. FQDN: ldapclient.mydomain.com

আপনি যদি চান, আপনি পার্ট 12 এ ইনস্টল থাকা মেশিনটি ব্যবহার করতে পারেন: ক্লায়েন্ট হিসাবে কিকস্টার্ট ব্যবহার করে আরএইচএল 7 ইনস্টলেশন স্বয়ংক্রিয় করুন।

এলডিএপি হ'ল লাইটওয়েট ডিরেক্টরি এক্সেস প্রোটোকল এবং এটি এমন একটি প্রোটোকল সংকলন ধারণ করে যা কোনও ক্লায়েন্টকে নেটওয়ার্কের মাধ্যমে, কেন্দ্রীয়ভাবে সঞ্চিত তথ্য (যেমন লগইন শেলগুলির ডিরেক্টরি, হোম ডিরেক্টরিগুলির পরম পথ এবং অন্যান্য সাধারণ সিস্টেম ব্যবহারকারী তথ্য, উদাহরণস্বরূপ) যা বিভিন্ন স্থান থেকে অ্যাক্সেসযোগ্য বা প্রচুর পরিমাণে শেষ ব্যবহারকারীদের কাছে উপলব্ধ হওয়া উচিত (অন্য উদাহরণটি কোনও সংস্থার সমস্ত কর্মচারীর বাড়ির ঠিকানা এবং ফোন নম্বরগুলির একটি ডিরেক্টরি হতে পারে)।

এ জাতীয় (এবং আরও) তথ্য কেন্দ্রীয়ভাবে রাখার অর্থ এটি ব্যবহারের অনুমতি প্রাপ্ত প্রত্যেককেই এটি আরও সহজেই রক্ষণাবেক্ষণ এবং অ্যাক্সেস করতে পারে।

নিম্নলিখিত চিত্রটি এলডিএপি-র একটি সরলীকৃত চিত্র সরবরাহ করে এবং আরও বিস্তারিতভাবে নীচে বর্ণিত:

উপরোক্ত চিত্রের বিশদ বিবরণ।

  1. একটি এলডিএপি ডিরেক্টরিতে একটি এন্ট্রি একটি একক ইউনিট বা তথ্য উপস্থাপন করে এবং একটি স্বতন্ত্র নাম বলা হয় যা দ্বারা স্বতন্ত্রভাবে চিহ্নিত করা হয়
  2. একটি অ্যাট্রিবিউট হ'ল প্রবেশের সাথে সম্পর্কিত তথ্যের একটি অংশ (উদাহরণস্বরূপ, ঠিকানা, উপলভ্য যোগাযোগের ফোন নম্বর এবং ইমেল ঠিকানা)
  3. প্রতিটি বৈশিষ্ট্য স্পেস-বিভাজিত তালিকায় থাকা এক বা একাধিক মান নির্ধারিত হয়। প্রবেশমূল্য অনুসারে অনন্য যে মানটিকে একটি সম্পর্কিত স্বতন্ত্র নাম বলা হয়

বলা হচ্ছে, চলুন সার্ভার এবং ক্লায়েন্ট ইনস্টলেশনগুলির সাথে এগিয়ে চলুন।

একটি এলডিএপি সার্ভার এবং ক্লায়েন্ট ইনস্টল এবং কনফিগার করা

আরএইচএল 7-এ, এলডিএপি ওপেনএলডিএপি প্রয়োগ করে। সার্ভার এবং ক্লায়েন্ট ইনস্টল করতে, নিম্নলিখিত কমান্ডগুলি যথাক্রমে ব্যবহার করুন:

# yum update && yum install openldap openldap-clients openldap-servers
# yum update && yum install openldap openldap-clients nss-pam-ldapd

ইনস্টলেশনটি সম্পূর্ণ হয়ে গেলে, কিছু জিনিস আমরা দেখি। নিম্নলিখিত পদক্ষেপগুলি কেবলমাত্র সার্ভারে সম্পাদন করা উচিত, যদি না স্পষ্টভাবে উল্লেখ করা থাকে:

১. নিশ্চিত করুন যে সার্ভার এবং ক্লায়েন্ট উভয়ই নিম্নলিখিত বুলিয়ানগুলিকে অবিচ্ছিন্নভাবে সক্ষম করে সেলইনাক্স পথে না চলে:

# setsebool -P allow_ypbind=0 authlogin_nsswitch_use_ldap=0

যেখানে এলডিএপি-ভিত্তিক প্রমাণীকরণের জন্য অনুমতি_পাইবাইন্ডের প্রয়োজন হয় এবং কিছু অ্যাপ্লিকেশন দ্বারা authlogin_nsswitch_use_ldap প্রয়োজন হতে পারে।

2. পরিষেবাটি সক্ষম করুন এবং শুরু করুন:

# systemctl enable slapd.service
# systemctl start slapd.service

মনে রাখবেন যে আপনি সিস্টেমটিটিএল দিয়ে পরিষেবাটি অক্ষম, পুনঃসূচনা বা বন্ধ করতে পারেন:

# systemctl disable slapd.service
# systemctl restart slapd.service
# systemctl stop slapd.service

৩. যেহেতু স্ল্যাপড সার্ভিসটি এলডিএপ ব্যবহারকারী হিসাবে চালিত হয় (যা আপনি PS -e -o pid, uname, comm | grep slapd দিয়ে যাচাই করতে পারেন), সার্ভারের জন্য এই জাতীয় ব্যবহারকারীর/var/lib/ldap ডিরেক্টরি থাকা উচিত প্রশাসনিক সরঞ্জামগুলি দ্বারা তৈরি এন্ট্রিগুলিকে সংশোধন করতে সক্ষম করুন যা কেবলমাত্র রুট হিসাবে চালানো যায় (এক মিনিটের মধ্যে এটির আরও বেশি)।

এই ডিরেক্টরিটির মালিকানা পুনরাবৃত্তভাবে পরিবর্তন করার আগে, এতে স্লাপডের জন্য নমুনা ডাটাবেস কনফিগারেশন ফাইলটি অনুলিপি করুন:

# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
# chown -R ldap:ldap /var/lib/ldap

৪. একটি ওপেনলডিএপি প্রশাসনিক ব্যবহারকারী সেট আপ করুন এবং একটি পাসওয়ার্ড বরাদ্দ করুন:

# slappasswd

যেমনটি পরবর্তী ছবিতে প্রদর্শিত হয়েছে:

এবং নিম্নলিখিত বিষয়বস্তু সহ একটি LDIF ফাইল (ldaprootpasswd.ldif) তৈরি করুন:

dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}PASSWORD

কোথায়:

  1. পাসওয়ার্ড হ্যাশ স্ট্রিংটি আগে প্রাপ্ত।
  2. সিএন = কনফিগারেশন বিশ্বব্যাপী কনফিগারেশন বিকল্পগুলি নির্দেশ করে।
  3. ওএলসিডিটাবেস একটি নির্দিষ্ট ডাটাবেস উদাহরণের নাম নির্দেশ করে এবং সাধারণত /etc/openldap/slapd.d/cn=config এর ভিতরে পাওয়া যায়

পূর্বে সরবরাহিত তাত্ত্বিক পটভূমি উল্লেখ করে ldaprootpasswd.ldif ফাইলটি এলডিএপি ডিরেক্টরিতে একটি এন্ট্রি যুক্ত করবে। সেই এন্ট্রিতে প্রতিটি লাইন একটি বৈশিষ্ট্য উপস্থাপন করে: মান জোড় (যেখানে ডিএন, চানজেটাইপ, অ্যাড এবং ওলসিআরপিপিডাব্লু হ'ল বৈশিষ্ট্য এবং প্রতিটি কোলনের ডানদিকে স্ট্রিংগুলি তাদের সম্পর্কিত মান হয়)।

আমরা আরও এগিয়ে যাওয়ার সাথে সাথে আপনি এটি মাথায় রাখতে চাইতে পারেন, এবং দয়া করে নোট করুন যে আমরা এই নিবন্ধটির বাকি অংশে একই সাধারণ নামগুলি (সিএন =) ব্যবহার করছি, যেখানে প্রতিটি পদক্ষেপ পূর্ববর্তীটির উপর নির্ভর করে ।

৫. এখন, ldap সার্ভারের উল্লেখ করে ইউআরআই উল্লেখ করে সংশ্লিষ্ট এলডিএপি এন্ট্রি যুক্ত করুন, যেখানে কেবল প্রোটোকল/হোস্ট/পোর্ট ক্ষেত্রের অনুমতি রয়েছে।

# ldapadd -H ldapi:/// -f ldaprootpasswd.ldif 

আউটপুট এর অনুরূপ হওয়া উচিত:

এবং /ইত্যাদি/ওপেনড্যাপ/স্কিমা ডিরেক্টরি থেকে কিছু প্রাথমিক LDAP সংজ্ঞা আমদানি করুন:

# for def in cosine.ldif nis.ldif inetorgperson.ldif; do ldapadd -H ldapi:/// -f /etc/openldap/schema/$def; done

L. এলডিএপকে এটির ডাটাবেসে আপনার ডোমেনটি ব্যবহার করতে দিন।

অন্য একটি এলডিআইএফ ফাইল তৈরি করুন, যাকে আমরা নীচের বিষয়বস্তু সহ ldapdomain.ldif বলব, আপনার ডোমেন (ডোমেন উপাদান ডি সি =) এবং পাসওয়ার্ডকে যথাযথ হিসাবে প্রতিস্থাপন করুন:

dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth"
  read by dn.base="cn=Manager,dc=mydomain,dc=com" read by * none

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=mydomain,dc=com

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=Manager,dc=mydomain,dc=com

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}PASSWORD

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by
  dn="cn=Manager,dc=mydomain,dc=com" write by anonymous auth by self write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=Manager,dc=mydomain,dc=com" write by * read

তারপরে এটি লোড করুন:

# ldapmodify -H ldapi:/// -f ldapdomain.ldif

Now. এখন আমাদের এলডিএপ ডিরেক্টরিতে কিছু এন্ট্রি যুক্ত করার সময় এসেছে। বৈশিষ্ট্য এবং মানগুলি নিম্নলিখিত ফাইলটিতে একটি কোলন (:) দ্বারা পৃথক করা হয়, যার নাম আমরা বেসল্ডডাপডোমেন.ল্ডিফ রাখব:

dn: dc=mydomain,dc=com
objectClass: top
objectClass: dcObject
objectclass: organization
o: mydomain com
dc: mydomain

dn: cn=Manager,dc=mydomain,dc=com
objectClass: organizationalRole
cn: Manager
description: Directory Manager

dn: ou=People,dc=mydomain,dc=com
objectClass: organizationalUnit
ou: People

dn: ou=Group,dc=mydomain,dc=com
objectClass: organizationalUnit
ou: Group

এলডিএপি ডিরেক্টরিতে এন্ট্রি যুক্ত করুন:

# ldapadd -x -D cn=Manager,dc=mydomain,dc=com -W -f baseldapdomain.ldif

৮. ldapuser (adduser ldapuser) নামে একটি এলডিএপি ব্যবহারকারী তৈরি করুন, তারপরে ldapgroup.ldif তে একটি এলডিএপি গ্রুপের সংজ্ঞা তৈরি করুন।

# adduser ldapuser
# vi ldapgroup.ldif

নিম্নলিখিত সামগ্রী যুক্ত করুন।

dn: cn=Manager,ou=Group,dc=mydomain,dc=com
objectClass: top
objectClass: posixGroup
gidNumber: 1004

যেখানে gdNumber হল/ইত্যাদি/গ্রুপে জিআইডি হ'ল ldapuser) এবং এটি লোড করুন:

# ldapadd -x -W -D "cn=Manager,dc=mydomain,dc=com" -f ldapgroup.ldif

9. ব্যবহারকারী ldapuser ( ldapuser.ldif ) এর সংজ্ঞা সহ একটি এলডিআইএফ ফাইল যুক্ত করুন:

dn: uid=ldapuser,ou=People,dc=mydomain,dc=com
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: ldapuser
uid: ldapuser
uidNumber: 1004
gidNumber: 1004
homeDirectory: /home/ldapuser
userPassword: {SSHA}fiN0YqzbDuDI0Fpqq9UudWmjZQY28S3M
loginShell: /bin/bash
gecos: ldapuser
shadowLastChange: 0
shadowMax: 0
shadowWarning: 0

এবং এটি লোড করুন:

# ldapadd -x -D cn=Manager,dc=mydomain,dc=com -W -f ldapuser.ldif

তেমনি, আপনি সবে তৈরি করা ব্যবহারকারীর এন্ট্রি মুছতে পারেন:

# ldapdelete -x -W -D cn=Manager,dc=mydomain,dc=com "uid=ldapuser,ou=People,dc=mydomain,dc=com"

10. ফায়ারওয়ালের মাধ্যমে যোগাযোগের অনুমতি দিন:

# firewall-cmd --add-service=ldap

১১. শেষ, তবে কম নয়, ক্লায়েন্টকে এলডিএপি ব্যবহার করে প্রমাণীকরণ করতে সক্ষম করুন।

আমাদের এই চূড়ান্ত পদক্ষেপে সহায়তা করার জন্য, আমরা authconfig ইউটিলিটি (সিস্টেম অনুমোদনের সংস্থানগুলি কনফিগার করার জন্য একটি ইন্টারফেস) ব্যবহার করব।

নিম্নলিখিত কমান্ডটি ব্যবহার করে, অনুরোধ করা ব্যবহারকারীর জন্য হোম ডিরেক্টরি তৈরি করা হয় যদি এটি LDAP সার্ভারের বিরুদ্ধে প্রমাণীকরণ সাফল্যের পরে উপস্থিত না থাকে:

# authconfig --enableldap --enableldapauth --ldapserver=rhel7.mydomain.com --ldapbasedn="dc=mydomain,dc=com" --enablemkhomedir --update

সারসংক্ষেপ

এই নিবন্ধে আমরা কীভাবে একটি এলডিএপি সার্ভারের বিরুদ্ধে মৌলিক প্রমাণীকরণ সেট আপ করতে হবে তা ব্যাখ্যা করেছি। বর্তমান নির্দেশিকায় বর্ণিত সেটআপটি আরও কনফিগার করতে, দয়া করে টিএলএস ব্যবহার করে সুরক্ষা সেটিংসে বিশেষ মনোযোগ দিয়ে RHEL 7 সিস্টেম প্রশাসকের গাইডের অধ্যায় 13 - এলডিএপি কনফিগারেশনটি দেখুন।

নীচের মন্তব্য ফর্মটি ব্যবহার করে আপনার কোনও প্রশ্ন ছাড়তে নির্দ্বিধায় যোগাযোগ করুন।