پرش به محتوا

عضویت Debian در Active Directory با realmd و SSSD

سرور Debian را به دامین ویندوزی وصل کنید تا کاربران دامین با نام کوتاه وارد شوند، پوشه‌ی خانه خودکار ساخته شود و فقط یک گروه دامین دسترسی SSH و sudo داشته باشد.

Debian 13سطح: متوسطبرای: Debian 13، Debian 12به‌روزرسانی: ۱۷ آبان ۱۴۰۵

۱. پیش‌نیازها

  • DNS سرور باید روی DCها باشد تا رکوردهای SRV دامین پیدا شوند.
  • ساعت با DC هماهنگ باشد، چون Kerberos اختلاف بیش از ۵ دقیقه را نمی‌پذیرد.
bash
resolvectl status 2>/dev/null | grep 'DNS Servers' || cat /etc/resolv.conf
sudo apt install -y chrony
echo "server dc01.corp.sahor.ir iburst" | sudo tee /etc/chrony/sources.d/ad.sources
sudo systemctl restart chrony && chronyc sources

۲. نصب بسته‌ها

bash
sudo apt install -y realmd sssd sssd-tools libnss-sss libpam-sss adcli \
  samba-common-bin oddjob oddjob-mkhomedir krb5-user

در پرسش نصب krb5-user، realm را با حروف بزرگ وارد کنید: CORP.SAHOR.IR.

۳. کشف و عضویت

bash
sudo realm discover corp.sahor.ir
sudo realm join --user=Administrator --computer-ou="OU=Linux,OU=Servers,DC=corp,DC=sahor,DC=ir" corp.sahor.ir
sudo realm list

حساب کامپیوتر در OU مشخص‌شده ساخته می‌شود. به‌جای Administrator بهتر است از حسابی استفاده کنید که فقط اجازه‌ی افزودن کامپیوتر به همان OU را دارد.

۴. تنظیم SSSD

در /etc/sssd/sssd.conf بخش دامین را تغییر دهید تا کاربران با ali به‌جای ali@corp.sahor.ir وارد شوند:

ini
[domain/corp.sahor.ir]
use_fully_qualified_names = False
fallback_homedir = /home/%u
default_shell = /bin/bash
ad_gpo_access_control = permissive

ساخت خودکار پوشه‌ی خانه و راه‌اندازی دوباره:

bash
sudo pam-auth-update --enable mkhomedir
sudo systemctl restart sssd
id ali

۵. محدود کردن ورود

پیش‌فرض این است که همه‌ی کاربران دامین بتوانند وارد شوند. ورود را به یک گروه محدود کنید:

bash
sudo realm deny --all
sudo realm permit -g linux-admins

دسترسی sudo برای همان گروه:

bash
echo '%linux-admins ALL=(ALL:ALL) ALL' | sudo tee /etc/sudoers.d/ad-admins
sudo chmod 440 /etc/sudoers.d/ad-admins
sudo visudo -cf /etc/sudoers.d/ad-admins

اگر نام گروه فاصله دارد، فاصله را با \` بنویسید: `%linux\ admins.

۶. آزمایش و عیب‌یابی

bash
ssh ali@debian01.corp.sahor.ir
sudo sssctl domain-status corp.sahor.ir
sudo sss_cache -E          # clear cache after changing group membership in AD
sudo journalctl -u sssd -n 50 --no-pager

یک حساب محلی با دسترسی sudo نگه دارید. اگر ارتباط با DC قطع شود، فقط کاربرانی که قبلاً وارد شده‌اند از cache می‌توانند وارد شوند.