Dasturlash

FreeBSD 15 va FreeIPA integratsiyasi: Kerberos va LDAP yordamida xavfsiz autentifikatsiya

30-mart, 2026, 06:004 ko'rish3 daqiqa o'qish
FreeBSD 15 va FreeIPA integratsiyasi: Kerberos va LDAP yordamida xavfsiz autentifikatsiya

FreeBSD operatsion tizimi 15‑versiyasida Heimdal Kerberosdan MIT Kerberosga o'zgarganligi sababli, Linux‑dasturlari bilan birgalikda FreeIPA/IDMga ulanish endi ancha soddalashdi. Ushbu maqolada, Kerberos va LDAP asosidagi autentifikatsiyani nslcd demoni yordamida qanday sozlashni bosqichma‑bosqich ko'rib chiqamiz.

Kerberos va LDAP nima?

  • Kerberos – tarmoqda foydalanuvchi identifikatsiyasini xavfsiz amalga oshiruvchi protokol. U foydalanuvchi va server o'rtasida maxfiy kalitlar almashinadi.
  • LDAP (Lightweight Directory Access Protocol) – foydalanuvchi ma'lumotlari, guruhlar va boshqa katalog ma'lumotlarini saqlash va olish uchun ishlatiladi.

FreeIPA/IDM bu ikki texnologiyani birlashtiradi, natijada bir marta kirish (SSO) va markaziy boshqaruv imkoniyatlari paydo bo'ladi.

Kerakli paketlarni o'rnatish

Avvalo, pkg repozitoriyasini quarterlydan latestga o'zgartiramiz, shunda eng yangi paketlar olinadi:

mkdir -p /usr/local/etc/pkg/repos
sed s/quarterly/latest/g /etc/pkg/FreeBSD.conf > /usr/local/etc/pkg/repos/FreeBSD.conf

Keyin quyidagi paketlarni o'rnatamiz:

pkg install -y nss-pam-ldapd pam_mkhomedir sudo doas

nss-pam-ldapd – LDAPga ulanish uchun yengil nslcd demoni, pam_mkhomedir foydalanuvchi birinchi marta kirganda uy katalogini avtomatik yaratadi.

FreeIPA serverida hostni ro'yxatga olish

FreeIPA konsolida yangi FreeBSD hostini qo'shish va keytab faylini olish kerak:

kinit admin
ipa host-add fbsd15.lab.org
ipa-getkeytab -s rhidm.lab.org -p host/fbsd15.lab.org@LAB.ORG -k /root/fbsd15.keytab

Keytab faylini FreeBSD mashinasiga ko'chiramiz va /etc/krb5.keytabga joylashtiramiz:

scp /root/fbsd15.keytab fbsd15:/root/
cp /root/fbsd15.keytab /etc/krb5.keytab
chmod 640 /etc/krb5.keytab

Kerberos konfiguratsiyasi

/etc/krb5.conf faylini quyidagicha yaratamiz:

[libdefaults]
    default_realm = LAB.ORG
    dns_lookup_kdc = false
    dns_lookup_realm = false
[realms]
    LAB.ORG = {
        kdc = rhidm.lab.org
        admin_server = rhidm.lab.org
    }
[domain_realm]
    .lab.org = LAB.ORG
    lab.org = LAB.ORG

nslcd konfiguratsiyasi

/usr/local/etc/nslcd.conf faylida LDAP server manzili, baza DN va Kerberos kaliti ko'rsatiladi:

uri ldap://rhidm.lab.org
base dc=lab,dc=org
sasl_mech GSSAPI
sasl_realm LAB.ORG
map passwd loginShell "/bin/sh"

Demonni ishga tushurish va avtomatik yuklanishini yoqish:

service nslcd enable
service nslcd start

nsswitch sozlamalari

Fayl /etc/nsswitch.confda passwd va group ma'lumotlari files (mahalliy) va ldap (masofaviy) manbalardan olinadi:

passwd: files ldap
group:  files ldap
hosts:   files dns

SSH va PAM integratsiyasi

SSH daemonini Kerberos orqali autentifikatsiyani qo'llab-quvvatlash uchun /etc/ssh/sshd_configga quyidagilarni qo'shamiz:

GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
GSSAPIStrictAcceptorCheck no

Keyin SSH xizmatini qayta ishga tushuramiz:

service sshd restart

PAM konfiguratsiyasiga pam_mkhomedir.so modulini qo'shish orqali foydalanuvchi birinchi kirganda uy katalogi avtomatik yaratiladi:

session optional pam_mkhomedir.so mode=0700

Qo'shimcha ruxsatlar

Administratorlar guruhiga foydalanuvchini qo'shish va sudo yoki doas orqali parolsiz bajarish imkoniyatini berish:

pw groupmod wheel -m vermaden
echo "%wheel ALL=(ALL:ALL) NOPASSWD: ALL" >> /usr/local/etc/sudoers
cat > /usr/local/etc/doas.conf <

Sinov va yakuniy tekshiruv

Kerberos biletini olish (kinit) va SSH orqali kirish muvaffaqiyatli amalga oshiriladi:

kinit vermaden@LAB.ORG
ssh fbsd15 -l vermaden

Natijada foydalanuvchi /home/vermaden katalogiga kiradi, sudo va doas buyruqlari parolsiz ishlaydi. Bu usul MIT Kerberos va nslcd yordamida FreeBSD 15‑ni FreeIPA/IDM bilan to'liq integratsiya qiladi, murakkab sssd o'rniga yengil, barqaror yechim taklif etadi.

Manba: Hacker News
#freebsd #freeipa #kerberos #ldap #nslcd
Telegram da muhokama qilish