আরএইচসিএসএ সিরিজ: আরএইচইএল 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 ইনস্টলেশন স্বয়ংক্রিয় করুন।
এলডিএপি হ'ল লাইটওয়েট ডিরেক্টরি এক্সেস প্রোটোকল এবং এটি এমন একটি প্রোটোকল সংকলন ধারণ করে যা কোনও ক্লায়েন্টকে নেটওয়ার্কের মাধ্যমে, কেন্দ্রীয়ভাবে সঞ্চিত তথ্য (যেমন লগইন শেলগুলির ডিরেক্টরি, হোম ডিরেক্টরিগুলির পরম পথ এবং অন্যান্য সাধারণ সিস্টেম ব্যবহারকারী তথ্য, উদাহরণস্বরূপ) যা বিভিন্ন স্থান থেকে অ্যাক্সেসযোগ্য বা প্রচুর পরিমাণে শেষ ব্যবহারকারীদের কাছে উপলব্ধ হওয়া উচিত (অন্য উদাহরণটি কোনও সংস্থার সমস্ত কর্মচারীর বাড়ির ঠিকানা এবং ফোন নম্বরগুলির একটি ডিরেক্টরি হতে পারে)।
এ জাতীয় (এবং আরও) তথ্য কেন্দ্রীয়ভাবে রাখার অর্থ এটি ব্যবহারের অনুমতি প্রাপ্ত প্রত্যেককেই এটি আরও সহজেই রক্ষণাবেক্ষণ এবং অ্যাক্সেস করতে পারে।
নিম্নলিখিত চিত্রটি এলডিএপি-র একটি সরলীকৃত চিত্র সরবরাহ করে এবং আরও বিস্তারিতভাবে নীচে বর্ণিত:
উপরোক্ত চিত্রের বিশদ বিবরণ।
- একটি এলডিএপি ডিরেক্টরিতে একটি এন্ট্রি একটি একক ইউনিট বা তথ্য উপস্থাপন করে এবং একটি স্বতন্ত্র নাম বলা হয় যা দ্বারা স্বতন্ত্রভাবে চিহ্নিত করা হয়
- একটি অ্যাট্রিবিউট হ'ল প্রবেশের সাথে সম্পর্কিত তথ্যের একটি অংশ (উদাহরণস্বরূপ, ঠিকানা, উপলভ্য যোগাযোগের ফোন নম্বর এবং ইমেল ঠিকানা)
- প্রতিটি বৈশিষ্ট্য স্পেস-বিভাজিত তালিকায় থাকা এক বা একাধিক মান নির্ধারিত হয়। প্রবেশমূল্য অনুসারে অনন্য যে মানটিকে একটি সম্পর্কিত স্বতন্ত্র নাম বলা হয়
বলা হচ্ছে, চলুন সার্ভার এবং ক্লায়েন্ট ইনস্টলেশনগুলির সাথে এগিয়ে চলুন।
একটি এলডিএপি সার্ভার এবং ক্লায়েন্ট ইনস্টল এবং কনফিগার করা
আরএইচএল 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
কোথায়:
- পাসওয়ার্ড হ্যাশ স্ট্রিংটি আগে প্রাপ্ত।
- সিএন = কনফিগারেশন বিশ্বব্যাপী কনফিগারেশন বিকল্পগুলি নির্দেশ করে।
- ওএলসিডিটাবেস একটি নির্দিষ্ট ডাটাবেস উদাহরণের নাম নির্দেশ করে এবং সাধারণত /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 - এলডিএপি কনফিগারেশনটি দেখুন।
নীচের মন্তব্য ফর্মটি ব্যবহার করে আপনার কোনও প্রশ্ন ছাড়তে নির্দ্বিধায় যোগাযোগ করুন।