অনেক Linux পরিষেবা (apache, nginx, ইত্যাদি) keytab ব্যবহার করতে পারে একটি পাসওয়ার্ড প্রবেশ না করেই সক্রিয় ডিরেক্টরিতে Kerberos প্রমাণীকরণের জন্য ফাইল। কীট্যাব ফাইলটি Kerberos প্রিন্সিপালের নাম এবং সংশ্লিষ্ট এনক্রিপ্ট করা কী (Kerberos পাসওয়ার্ড থেকে প্রাপ্ত) রাখে। এই নিবন্ধে আমরা দেখাব কিভাবে ktpass ব্যবহার করে একটি লিঙ্ক করা অ্যাক্টিভ ডিরেক্টরি অ্যাকাউন্টের SPN-এর জন্য একটি কীট্যাব ফাইল তৈরি করতে হয়। টুল.
প্রায়শই, একটি পৃথক অ্যাক্টিভ ডিরেক্টরি ব্যবহারকারী অ্যাকাউন্ট তৈরি করা হয় একটি পরিষেবার জন্য যার জন্য একটি কীট্যাব ফাইল ব্যবহার করা প্রয়োজন। যাইহোক, আপনি এটি করতে একটি কম্পিউটার অবজেক্ট ব্যবহার করতে পারেন। তারপরে পরিষেবার নামটি অ্যাকাউন্টের সাথে আবদ্ধ হয় (ServicePrincipalName৷ — SPN ) SPN কে Kerberos প্রমাণীকরণ দ্বারা একটি AD অ্যাকাউন্টে একটি পরিষেবার দৃষ্টান্ত ম্যাপ করতে ব্যবহার করা হয় (এ কারণে অ্যাপগুলি ব্যবহারকারীর নাম না জানলেও পরিষেবা হিসাবে প্রমাণীকরণ করতে পারে)।
প্রথমে, AD এ একটি পরিষেবা অ্যাকাউন্ট তৈরি করুন এবং এটির জন্য একটি পরিচিত পাসওয়ার্ড সেট করুন। আপনি গ্রাফিক ADUC কনসোল (dsa.msc) থেকে বা PowerShell-এ New-ADUser cmdlet ব্যবহার করে একটি অ্যাকাউন্ট তৈরি করতে পারেন (PowerShell অ্যাক্টিভ ডিরেক্টরি মডিউল থেকে):
New-ADUser -Name "web" -GivenName "nginx web app" -SamAccountName "web" -UserPrincipalName "[email protected]" -Path "OU=Services,OU=Munich,OU=DE,DC=test,DC=com" –AccountPassword (ConvertTo-SecureString “Sup6r!Pa$s” -AsPlainText -force) -Enabled $true
গ্রাফিক কনসোলে বা PowerShell-এ পরিষেবা অ্যাকাউন্টের জন্য "ব্যবহারকারী পাসওয়ার্ড পরিবর্তন করতে পারে না" এবং "পাসওয়ার্ড কখনই মেয়াদ শেষ হয় না" বিকল্পগুলি সক্ষম করুন:
Get-ADUser web|Set-ADUser -PasswordNeverExpires:$True -CannotChangePassword:$true
পরবর্তী ধাপে ব্যবহারকারীর অ্যাকাউন্টে একটি পরিষেবা প্রধান নাম (SPN) আবদ্ধ করুন। আপনাকে আলাদাভাবে এই পদক্ষেপটি সম্পাদন করতে হবে না, যেহেতু ktpass একটি কীট্যাব ফাইল তৈরি করার সময় এটি স্বয়ংক্রিয়ভাবে করে (আমি আপনাকে প্রক্রিয়াটি আরও ভালভাবে বোঝার জন্য এটি করব)।
নিম্নলিখিত SPN রেকর্ডটিকে ওয়েব-এ আবদ্ধ করুন৷ অ্যাকাউন্ট:
setspn -A HTTP/[email protected] web
AD ব্যবহারকারীর সাথে যুক্ত SPN রেকর্ডের তালিকা প্রদর্শন করুন:
setspn -L web
একটি কীট্যাব ফাইল তৈরি করতে, নিম্নলিখিত কমান্ডটি ব্যবহার করা হয়:
ktpass -princ HTTP/[email protected] -mapuser web -crypto ALL -ptype KRB5_NT_PRINCIPAL -pass Sup6r!Pa$s -target mundc01.test.com -out c:\share\web.keytab
Successfully mapped HTTP/www.test.com to web. Password successfully set! Key created. Output keytab to c:\share\webt.keytab: Keytab version: 0x502 keysize 53 HTTP/[email protected] ptype 1 (KRB5_NT_PRINCIPAL) vno 4 etype 0x1 (DES-CBC-CRC) keylength 8 (0x73f868856e046449)
কমান্ডটি HTTP/[email protected] পরিষেবার SPN রেকর্ডের জন্য একটি কীট্যাব ফাইল (c:\share\webt.keytab) তৈরি করেছে। SPN রেকর্ড নির্দিষ্ট পাসওয়ার্ড দিয়ে ওয়েব অ্যাকাউন্টে আবদ্ধ।
নিশ্চিত করুন যে পরিষেবাটির জন্য SPN রেকর্ডটি সফলভাবে তৈরি করা হয়েছে (যদি আপনি এটি ম্যানুয়ালি তৈরি না করেন):
setspn -Q */[email protected]
আপনি দেখতে পাচ্ছেন যে SPN রেকর্ড পাওয়া গেছে (বিদ্যমান SPN পাওয়া গেছে! ) এটি ওয়েব অ্যাকাউন্টের সাথে আবদ্ধ৷
কীট্যাব ফাইলের বিষয়বস্তু দেখার জন্য উইন্ডোজের বিল্ট-ইন টুল নেই। কিন্তু আপনার কম্পিউটারে Java JRE ইনস্টল করা থাকলে, আপনি klist.exe ব্যবহার করতে পারেন জাভা ডিস্ট্রিবিউশন প্যাকেজে অন্তর্ভুক্ত।
cd "c:\Program Files\Java\jre1.8.0_181\bin"
klist.exe -K -e -t -k c:\PS\web_host.keytab
Key tab: c:\PS\web_host.keytab, 5 entries found.
আসুন কীট্যাব ফাইলের বিষয়বস্তু দেখি। SPN, কী, টাইমস্ট্যাম্প, একটি এনক্রিপশন অ্যালগরিদম এবং একটি কী সংস্করণ (KVNO — কী সংস্করণ নম্বর) এখানে উল্লেখ করা হয়েছে।
একটি কীট্যাব ফাইল তৈরি করার সময়, ktpass msDS-KeyVersionNumber বৃদ্ধি করে ব্যবহারকারীর অ্যাকাউন্টের বৈশিষ্ট্যের মান (আপনি এটি AD অ্যাট্রিবিউট এডিটরে দেখতে পারেন) এবং কীট্যাব টেবিলে একটি KVNO হিসাবে মান ব্যবহার করে।
আপনি যদি অ্যাকাউন্টের পাসওয়ার্ড পরিবর্তন করেন, তাহলে অ্যাট্রিবিউটের মান এক দ্বারা বৃদ্ধি পাবে এবং ll পূর্ববর্তী KVNO সহ কীট্যাব এন্ট্রিগুলি অবৈধ হয়ে যাবে (এমনকি যদি একটি নতুন পাসওয়ার্ড পুরানোটির সাথে সম্পূর্ণ মেলে)। AD-তে ব্যবহারকারীর পাসওয়ার্ড পরিবর্তন হলে, আপনাকে আবার একটি কীট্যাব ফাইল তৈরি করতে হবে।
একটি কীট্যাব ফাইল বিভিন্ন SPN-এর কী রাখতে পারে। ktpass ব্যবহার করে কীট্যাব ফাইলে অতিরিক্ত SPN এবং কী যোগ করা হয় প্যারামিটার (-in
, -setupn
,-setpass
)।
আপনি যে কীট্যাব ফাইলটি পেয়েছেন তার আরও ব্যবহার নির্ভর করে এটি যে পরিষেবাটিতে প্রয়োগ করা হয়েছে তার উপর। উদাহরণস্বরূপ, এখানে আপনি Zabbix-এ একটি স্বচ্ছ SSO ব্যবহারকারী প্রমাণীকরণের জন্য একটি কীট্যাব ফাইল কীভাবে ব্যবহার করবেন তা শিখতে পারেন। এছাড়াও, আপনার কীট্যাব ফাইলগুলিকে সুরক্ষিত রাখতে ভুলবেন না (যে কেউ কীট্যাব ফাইলের বিষয়বস্তু পড়তে সক্ষম তারা এটির যেকোনো কী ব্যবহার করতে সক্ষম হবে)।