Active Directory jest usługą katalogową dla systemów windows. Poniższy przewodnik pokazuje jak przyłączyć komputer z linuksem PLD 3.0 (TH) do usługi AD z kontrolerem domeny opartym na win2000 server.

Uwaga: Jeżeli mamy komputer z 2 systemami, windows i linux to najlepiej jest im przydzielić inne nazwy hostow. Kontroler domeny rozpoznaje system na danym komputerze i jeżeli ten sam komputer z tą samą nazwą hosta i 2 różnymi systemami połączy się z domeną to kontroler domeny z każdą zmianą systemu po prostu głupieje i twierdzi ze takiego konta maszyny nie ma. Spowoduje to konieczność usunięcia i ponownego zakładania konta dla hosta przy każdej zmianie systemu. W mojej sytuacji mam przypisane osobne ip do każdego systemu i różne nazwy hostów. Nie muszę chyba tez przypominać żeby zrobić kopię modyfikowanych plików, zwłaszcza pama, jak coś pójdzie nie tak to skończy się to niemożliwością zalogowania do systemu.

Teraz co jest potrzebne. Potrzebujemy konta z prawami dodawania kont w domenie, najlepiej admina domeny i roota na linuksie. Potrzebujemy także zsynchronizować czas z kontrolerem domeny, jeżeli różnica czasów będzie większa niż 5 min to po prostu się do takiej domeny nie podłączymy. Do synchronizacji czasu potrzebny jest pakiet ntp. Potrzeba jeszcze pakietów samba, winbind i kerberos.

Instalujemy powyższe poleceniem

poldek -i samba samba-common samba-winbind samba-client krb5-libs krb5-client krb5-common

Załóżmy ze nasza domena to domena.local (może to być domena.local.org.pl lub cokolwiek innego), nazwa komputera to linux a nazwa kontrolera to server1. Tak wyglądają moje pliki konfiguracyjne:

/etc/nsswitch.conf

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
#
passwd: files winbind
group: files winbind
shadow: files winbind
hosts: files dns
networks: files dns
protocols: files
services: files
ethers: files
rpc: files
netgroup: files

Ta modyfikacja pozwala na sprawdzanie poleceniu passwd użytkownikow i grup z listy winbind. Winbind jest odpowiedzialny ze odwzorowanie kont domeny na konta uniksowe, linux widzi je wtedy jako natywne konta.

Konfiguracja kerberos (uwaga na duże litery!!!!!) /etc/krb5.conf

[kdc]
profile = /var/lib/kerberos/kdc.conf

[libdefaults]
default_realm = DOMENA.LOCAL
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
forwardable = true

[realms]
DOMENA.LOCAL = {
kdc = server1.domena.local
}

[domain_realm]
.kerberos.server = DOMENA.LOCAL
# domena.local = server1.domena.local

[logging]
default = FILE:/var/log/kerberos/krb5
kdc = FILE:/var/log/kerberos/krb5kdc
admin_server = FILE:/var/log/kerberos/kadmin

[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
# krb4_convert = false
}

Konfiguracja samby (wklejam tylko sekcję global, znowu uwaga na duże litery) /etc/samba/smb.conf

[global]

workgroup = DOMENA
security = ADS
encrypt passwords = yes
password server = *
realm = DOMENA.LOCAL
domain master = No
local master = No
template homedir = /home/users/%D/%U
template shell = /bin/bash
winbind enum users = yes
winbind enum groups = yes
# winbind use default domain = yes
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind separator = +
winbind cache time = 300
# winbind enable local accounts = yes
winbind trusted domains only = no

Ostatni krok to konfiguracja pama. W systemach redhatopodobnych (np. PLD) wystarczy modyfikacja pliku /etc/pam.d/system-auth

#%PAM-1.0
auth required pam_listfile.so item=user sense=deny file=/etc/security/blacklist onerr=succeed
auth required pam_env.so
auth sufficient pam_winbind.so
auth required pam_tally.so deny=0 file=/var/log/faillog onerr=succeed
auth required pam_unix.so try_first_pass

account sufficient pam_winbind.so
account required pam_tally.so file=/var/log/faillog onerr=succeed
account required pam_time.so
account required pam_unix.so

# password [success=1 ignore=reset abort=die default=bad] pam_pwgen.so upper=1 digit=1
password required pam_cracklib.so try_first_pass difok=2 minlen=8 dcredit=2 ocredit=2 retry=3
password required pam_unix.so try_first_pass blowfish shadow use_authtok
password required pam_exec.so failok seteuid /usr/bin/make -C /var/db
# password required pam_exec.so failok seteuid /usr/bin/make -C /var/yp

session optional pam_keyinit.so revoke
session required pam_limits.so change_uid
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
session required pam_mkhomedir.so skel=/etc/skel/ umask=0077

Tutaj dodane zostaly tylko linie zawierajace pam_winbind.so i pam_mkhomedir.so.

Teraz pozostaje zrestartować usługi samba i winbind.

service smb restart
service winbind restart

Podłączamy się do domeny

net ads join -U admin

gdzie admin to konto z uprawnieniami admina domeny Powinniśmy zostać zapytani o hasło admina, po poprawnej weryfikacji system powinien wyswietlić coś takiego

Using short domain name -- DOMENA
Joined 'LINUX' to realm 'DOMENA.LOCAL'

Teraz testujemy połączenie z domeną, odwzorowanie użytkownikow i grup

net ads testjoin

Powinniśmy otrzymać

Join is OK
wbinfo -u

powinno wyświetlić konta użytkowników domeny

wbinfo -g

powinno wyświetlić grupy

wbinfo -a użytkownik%hasło

sprawdza czy użytkownik może zalogować się do domeny. Teraz możemy się logować do systemu na konta w domenie. Jako nazwę użytkownika podajemy DOMENA+user gdzie user to nazwa użytkownika w domenie. Katalogi domowe użytkowników będą tworzone w /home/users/DOMENA/ podczas pierwszego logowania.

Powyższa konfiguracja będzie wygladać inaczej na systemie win2003 R2 i pewnie win2008 przy włączonej integracji z systemami unix, w win2003 R2 to się nazywa RFC 2307 schema.

Jest to prawie kompletny opis jak zmusić PLD do poprawnej autoryzacji w domenie Active Directory. W miarę upływu czasu mam nadzieję dalej rozwijać ten przewodnik.

pl/przewodniki/linux-w-domenie-active-directory.txt · ostatnio zmienione: 2008/06/18 09:53 przez paszczus
chimeric.de = chi`s home Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0 Powered by Lighttpd - fly light