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.