چطور میتونم لینوکس به یک دمین کنترلر ویندور سرور2008 R2
join کنم؟؟
موضوعات مشابه:
- [حل شده] join
- join نشدن به دامین
- مشکل join نشدن به دامین
- مشکل در join شدن به دومین
- مشکل در Join شدن به دامین
چطور میتونم لینوکس به یک دمین کنترلر ویندور سرور2008 R2
join کنم؟؟
موضوعات مشابه:
- [حل شده] join
- join نشدن به دامین
- مشکل join نشدن به دامین
- مشکل در join شدن به دومین
- مشکل در Join شدن به دامین
برای اینکه لینوکس خود را عضو دامین ویندوزی کنیم از Samba ، winbind و Kerberos کمک می گیریم . پس نیاز هست تا این سه بسته را تهیه و نصب کنید . البته هر سه این بسته در سی دی اغلب توزیع های لینوکس موجود است و اگر الان می خواهید لینوکس را نصب کنبد می توانید در هنگام نصب این بسته ها را نیز انتخاب کنید . برای این آموزش من از توزیع Fedora Core 5 و همچنین windows 2003 که اکتیو دایرکتوری بر روی آن در حال اجرا است استفاده کردم .
Linux Box ( FC 5 ) --------------- 192.168.0.20 ---------------- cahe.linux.com
Windows BOX (2003)------------ -192.168.0.254 ------------omid.linux-notes.ir
پس نام دامین ویندوزی linux-notes.ir است . و در فایل هایی که در ادامه پیکربندی می کنیم هرجا مقدار REALM خواسته شد باید از همین نام استفاده کرد و
۱- تنظیمات Name Resolution:
در هنگام نصب اکتیو دایرکتوری در ویندوز سرویس DNS نیز راه اندازی می شود . برای اجرای فرامینی که در ادامه خواهد آمد باید عمل Name Resolution در کلاینت لینوکس انجام گیرد . می توانید به راحتی dns لینوکس را سرور ویندوز قرار دهید . یا نام و آی پی ویندوز را در فایل /etc/hosts قرار دهید.
#/etc/hosts
127.0.0.1 localhost localhost.localdomain
192.168.0.254 omid.linux-notes.ir omid
192.168.0.20 cache.linux.com cache
۲ –اگر سرویس های Samba و winbind در لینوکس شما در حال اجرا است آنها را متوقف کنید .
Service smb stop
Service winbind stop
۳- تنظیمات Samba
Samba را می توان پلی بین سیستم عامل ها تعریف کرد . سیستم عامل ها از جمله ویندوز و لینوکس .
به عنوان مثال برای دسترسی به فولدر های به اشتراک گذاشته شده در ویندوز از طریق لینوکس یا بالعکس. اینجا نمی خواهم در مورد samba و کانفیگ های مختلف ان توضیح بدهم و پیکربندی که برای join کردن لینوکس به وینوز نیاز داریم در اختیار شما قرار می دهم . برای بررسی مفاهیم تگ ها می توانید به وبسایت Samba رجوع کنید . .
فایل پیکربندی samba در مسیر /etc/samba به نام smb.conf موجود است . برای پیکربندی Samba در این حالت فقط کافی است تگ های زیر تغییر دهید .
realm = LINUX-NOTES.IR
security = ADS
encrypt passwords = yes
password server = omid.linux-notes.ir
winbind separator = +
winbind enum users = yes
winbind enum groups = yes
winbind uid = 10000-20000
winbind gid = 10000-20000
workgroup = LINUX-NOTES0
توجه داشته باشید که برای پارامتر REALM باید نام دامنه را با حروف بزرگ بنویسید .
اگر چه تغییر تگ workgroup ضروری نیست ولی برای جلوگیری از اخطار Samba هنگام join کردن لینوکس به ویندوز بهتر است آنرا با نام NetBios ویندوز مقدار دهی کنید . برای بدست آوردن نام NetBios میتوانید از دستور nbtstat –n بهره بگیرید .
برای چک کردن تنظیمات فایل smb.conf از لحاظ املا و دستوری می توانید از دستور testparm بهره بگیرید .
۴ – تنظیمات Kerberos
برای پیکربندی Kerberos فایل krb5.conf که در پوشه /etc است را به صورت زیر ویرایش کنید .
[logging]
default = FILE:/var/log/krb5lib.log
[libdefaults]
ticket_lifetime = 24000
clock_skew = 300
default_realm = LINUX-NOTES.IR
[realms]
LINUX-NOTES.IR = {
kdc = omid.linux-notes.ir
admin_server = omid.linux-notes.ir
default_domain = linux-notes.ir
}
[domain_realm]
.linux-notes.ir = LINUX-NOTES.IR
linux-notes.ir = LINUX-NOTES.IR
۵ – اجرای دستور net
net ads join –S MACHINE_NAME –U username%password
MACHINE_NAME: نام کامل ماشین ویندوز که در اینجا omid.linux-notes.ir است
username : نام کاربری با اختیارات در سطح ادمین دامین مثلا Administrator
Password : پسوورد کاربر با اختیارات domain administrator در ویندوز
خوب لینوکس شما به دامین join شد . برای تست این موضوع می توانید از دستورnet jointest استفاده کنید .
و نام کامپیوتر در لیست کامپیوتر های عضو شده در دامین قرار می گیرد.
۶- اجرای سرویس های samba و winbind :
service smb start
service winbind start
اکنون با استفاده از دو دستور wbinfo –g و wbinfo –u می توانیم تست کنیم که آیا لینوکس ما قادر است اطلاعاتی از اکتیو دایرکتوری بخواند یا نه .
خوب تا این مرحله linux ما به دامین join شد و کاملا تست شد . اگر هدف شما فقط join کردن لینوکس باشد تا همین مرحله کافی است .
ولی اگر می خواهید کاربران موجود در اکتیو دایرکتوری بتوانند در لینوکس شما login کنند هنوز دو مرحله دیگر باید طی کنید .
۷ – تنظیمات nssswitch.conf که در شاخه /etc واقع است .
passwd: winbind compat
group: winbind compat
shadow: winbind compat
۸ - تنظیمات pam :
هرگونه اشتباه در این مرحله باعث می شود تا شما نتوانید به سیستم وارد شوید پس قبل ار هرکاری از تنظیمات پشتیبان تهیه کنید و یک boodisk برای استفاده در صورت لزوم درست کنید .
برای تنظیمات pam باید فایل login در شاخه /etc/pam.d را ویرایش کنید :
auth required pam_securetty.so
auth sufficient pam_winbind.so
auth sufficient pam_unix.so use_first_pass
auth required pam_stack.so service=system-auth
auth required pam_nologin.so
account sufficient pam_winbind.so
account required pam_stack.so service=system-auth
password required pam_stack.so service=system-auth
session required pam_stack.so service=system-auth
session optional pam_console.so
اکنون می توانید با استفاده از + با کاربران تعریف شده در اکتیو دایرکتوری به لینوکس وارد شوید .
خوب کار تمام شد ولی تنظیم نکردن دقیق پارامتر ها با برخی موانع می تواند برای ما مشکل ساز شود که در زیر چندین ایراد رایج و طریقه حل آنها را برای شما می نویسم.
Clock Skew Too greate
هنگامی join شدن لینوکس به ویندوز باید یک کلید Kerberos بین کلاینت ویندوز و لینوکس ردوبدل بشود .
که اگر اختلاف زمانی بین کلاینت لینوکس و ویندوز بیشتر از 5 دقیق باشد . این عمل امکان پذیر نیست . راه حلی که در اکثر مطالب موجود در اینترنت ارائه شده راه اندازی ntp در ویندوز و لینوکس و تنظیم زمان و تاریخ آنها با یک ntp server جهانی . ولی نیازی به این کار نیست . شما می توانید فقط با اجرای دستور ntpdate این مشکل را حل کنید .
ntpdate 192.168.0.254
که 192.168.0.254 آی پی سرور ویندوز است .
اگر چه در تست هایی که در FC5 و FC6 انجام دادم این دستور یک ساعت اختلاف بین زمان ویندوز و لینوکس ایجاد می کند
ولی این مشکل را به کلی برطرف می کند .
۲ – Insufficient access
همانطور که حدس زدید اگر کاربری که از آن در دستور net join استفاده می کنیم . دسترسی در سطح domain admin نداشته باشد این ایراد رخ خواهد داد .
و بالاخره چهارمین ایراد که زمانی برای برطرف کردن آن 3 روز کامل وقت گذاشتم و علت آن چیزی بجز تنظیم کردن اشتباه فایل krb5.conf نیست .
همیشه فکر می کردم من اولین و آخرین نفری هستم که به این ایراد بر می خورم ولی چند روز پیش وقتی در یکی از فروم ها با پستی برخوردم که نویسنده آن همین مشکل را داشت تصمیم گرفتم این ایراد را نیز به این آموزش اضافه کنم.
مشکل این ایراد از بی Error ای است . با اجرای دستور net ads join … بدون گرفتن هیچ ایرادی دستگاه join نمی شود و به پرامپت نیز بر نمی گردد .
در این حالت بهترین راه حل چک کردن دوباره پیکربندی Kerberos است . ولی روش دیگری هم برای حل این مشکل وجود دارد .
در این حالت اگر even viewer ویندوز را چک کنید ایرادی با این محتوا مشاهده خواهید کرد .
While processing a TGS request for the target server cifs/cache,
the account CACHE$@LINUX-NOTES.IR did not have a suitable key for generating a Kerberos ticket
(the missing key has an ID of 8). The requested etypes were 2.
The accounts available etypes were 23 -133 -128 3 1.
For more information, see Help and Support Center at
می توان برای حل این مشکل کلید مورد نیاز Kerberos که برای join شدن نیاز است ردوبدل شود خودتان تولید کرده و آنرا به لینوکس منتقل کنید . برای این کار شما به windows 2003 support tools دارید . از اینجا آنرا دانلود و نصب نمایید . ( البته در سی دی ویندوز 2003 موجود است ) و در محیط cmd مخصوصی که در اختیاز شما قرار می دهد طبق این دستورات کلید را به صورت دستی تولید کنید . مثلا نام کلید cache.keytab است . این فایل را در مسیر /etc کپی نمایید و دستورات زیر را به ترتیب اجرا نمایید تا کلید به لینوکس شما اضاف شود و دستور net join … رو دوباره اجرا کنید :
ktutil
rkt cache.keytab
wkt /etc/krb5.keytab
q
برای اینکه چک کنید آیا کلید به لینوکس شما اضافه شده است یا خیر میتوانید از دستور klist –ke استفاده کنید .