| Siec TCP/IP || Otoczenie Sieciowe || Poczta || Usnet || FTP || Konto Shellowe || Czat || IRC || Serwer PROXY |

Otoczenie sieciowe - Sieć SMB

utworzono: 26/06/2002 :: modyfikacja: 04/06/2006
autor: Marcin Moczkowski :: glappo (at) banita (dot) pl

Logowanie do Domeny Windows NT

Żeby korzystać z logowania do domeny NT w systemach Unix należy mieć oczywiście pakiet Samby oraz należy posiadać zwykłe konto na serwerze będącym podstawowym kontrolerem domeny (PDC) czyli na Archiwum (banita.pl). Następnie owe konto musi być uaktywnione jako konto SMB. Oczywiście jeśli nie posiadasz konta lub nie jest one odpowiednio ustawione dla SMB to zgłoś się do admina. Owe konto SMB posiada inne hasło mimo tego samego loginu jak na zwykłym koncie, gdyż baza haseł miedzy nimi nie jest synchronizowana. Kiedy otrzymasz od niego dane konta możesz przystąpić do konfiguracji Logowania do Domeny na twoim komputerze. Jako że protokół SMB jest "kojarzony" z systemami Windows, twoja Samba będzie używać logowania do domeny NT głównie jako uwierzytelniania użytkowników, chcących się dostać do twoich udostępnień ale możesz też ją skonfigurować żeby użytkownik logujący się do środowiska graficznego KDE był tez uwierzytelniany w domenie NT. Poza dołączeniem Samby do domeny NT lub AD możesz w niej wprowadzić tylko po prostu kontrole dostępu przy użyciu serwera haseł.

Cały opis bazuje na ręcznej modyfikacji odpowiednich plików w konsoli systemu. Może się wydawać to karkołomnym zajęciem. W dystrybucjach Linuksa RedHat/Fedora i pokrewnych jest narzędzie do konfiguracji graficznej autentyfikacji o nawie Authentication Configuration Tool. Jednak dopiero w wersji Fedora Core 2 zostało one rozszerzone o możliwość konfiguracji Winbind a co za tym idzie proste podłączenie twojego Linuksa do domeny NT/AD. Narzędzie Authentication Configuration Tool włącza się komendą system-config-authentication, strona domowa projektu http://fedora.redhat.com/projects/config-tools/authconfig.html.

Polecam również lekturę działu Programy wspomagające udostępnianie gdzie opisano program SADMS - Samba as Active Directory Member ServerStation, służący do zarządzania Sambą będącą członkiem domeny Active Directory.

 Poniższy opis jest przewodnikiem po tym jak i gdzie zmodyfikować ręcznie odpowiednie pliki ale przy okazji jak to zrobić przy użyciu Authentication Configuration Tool, co jest juz naprawdę bardzo proste. Owe czynności możesz wykonać tylko z prawami administratora czyli pewno jako "root".

Przygotowanie systemu

Przygotowanie systemu sprowadza się właściwie tylko do instalacji pakietu Samba wraz z Winbind odpowiedzialnym za rozwiązywanie, dodawanie i usuwanie użytkowników i grup z domeny NT na twoim systemie uniksowym. Następnie musisz przejść do pliku /etc/nsswitch.conf i zmodyfikować dwa wpisy (passwd i group) odpowiedzialne za odnajdywanie użytkowników i grup oraz haseł przez twój system. Dodajesz na końcu tych wierszy wpis winbind pozostawiając wcześniejsze dane najlepiej niezmienione (mogą być to np. files jak poniżej lub compat). Po modyfikacji wycinek pliku /etc/nsswitch.conf będzie się prezentował w następujący sposób:

passwd: files winbind
shadow: files
group: files winbind

Powyżej zostały pogrubione dodane wartości, pamiętaj że twój plik może się różnić wpisami ale musi zawierać po modyfikacji opcje winbind.

W Authentication Configuration Tool w Fedora Core 2, powyższa czynność sprowadza się do zaznaczenia na samym dole opcji związanej z Winbind. Czyli "Enable Winbind Suport" w zakładce "Informacje o użytkowniku" ("User Information"), jak pokazano na obrazku poniżej.

Konfiguracja Samby wraz Winbind

Używając Samby masz do wyboru aż trzy sposoby podłączenia się pod kontroler domeny. Dwa z nich to właściwie wybór jakiej domeny będziesz używał, czyli klasycznej NT czy nowszej AD. Możesz jeszcze użyć kontrolera domeny tylko do sprawdzania haseł czyli jako serwera haseł. Stąd też główna zauważalna od razu różnica między kontrola dostępu na poziomie domeny NT/AD i serwera haseł sprowadza się właściwie tylko do sprawdzenia na innym serwerze poprawności użytkownika/hasła. Kiedy używamy security = domain lub security = ADS, Samba używa ściślejszej integracji w domenie NT/AD dzięki czemu może tworzyć/kasować użytkowników na żądanie. Dodatkowo wraz z autentyfikacją użytkownika przesyłane są dane o nim z kontrolera domeny NT, m.in. takie jak nazwa użytkownika, nazwisko, opis, przynależności do grup NT, dane konta, profile i wiele innych. Natomiast w security = server Samba jest tylko informowana czy dany użytkownik ma poprawny login i hasło a przez to czy może się dostać do naszych zasobów.

Dodatkowo gdy masz ustawione security = server każdy demon Samby trzyma połączenie z kontrolerem domeny tak długo jak jest mu potrzebne, co może spowodować odrzucanie kolejnych połączeń przez kontroler domeny jeśli ma on ograniczenie na ilość podłączeń. To jest oczywiście jest powszechne w serwerowych wersjach Windows gdzie związane jest to z wykupieniem kolejnych licencji. Natomiast gdy masz ustawione np. security = domain połączenie z kontrolerem domeny jest nawiązywane tylko na czas uwierzytelniania i potem zrywane, co pozwoli ci chociażby odciążyć serwery PDC/BDC.

W Authentication Configuration Tool w Fedora Core 2, należy teraz zaznaczyć na samym dole opcje "Enable Winbind Suport" w zakładce "Uwierzytelnianie" ("Autentication"), jak pokazano na obrazku poniżej. A następnie wybrać konfiguracje Winbind czyli "Configure Winbind" co zostanie dalej omówione.

Samba jako członek domeny NT

Opis dotyczy jak podłączyć Sambę 2.0/2.2/3.0 jako członka do domeny NT w stylu Windows NT 3.x/4.0, czyli do klasycznego modelu domeny. Należy jednak zaznaczyć że w Sambie 2.0 nie funkcjonuje prawidłowa enumeracja użytkowników i grup domenowych czyli odwzorowanie takowych na lokalnych użytkowników systemowych. Demon odpowiedzialny za ten proces czyli Winbind pojawił się dopiero na dobre w Sambie 2.2.2. Jest t o opis tylko niezbędnych kroków bez opisu kompletnej konfiguracji Samby.

  • Przejdź do pliku konfiguracyjnego Samby (czyli /etc/samba/smb.conf) i dodaj do niego poniższe wpisy:
    ---------- plik konfiguracyjny smb.conf dla Samby 2.0/2.2/3.0 jako członka domeny NT ----------
    [global]
    workgroup = WARIACI
    security = domain
    password server = archiwum
    domain master = No
    local master = No
    << deklaracja sekcji ustawień globalnych
    << nazwa grupy roboczej w tym wypadku domeny
    << deklaracja członkowstwa w domenie NT
    << nazwa serwera haseł, można ustawić *
    << żeby Samba nie została domenową przeglądarką
    << żeby Samba nie została lokalną przeglądarką
    ----------
    Powyższe wpisy są konieczne do uruchomienia Samby podłączonej do domeny ale nie jest to kompletny plik konfiguracyjny, dla Samby 2.2/3.0 przeczytaj dalej jeszcze o konfiguracji Winbind.
  • Teraz wygeneruj konto dla komputera, czyli dołącz się do domeny NT, przy pomocy następującej komendy:
    smbpasswd -j WARIACI -r Archiwum -U Administrator%hasło
    gdzie "WARIACI" to nazwa domeny NT do której się dołączasz a "Archiwum" to nazwa głównego kontrolera tej domeny. "Administrator%hasło" to oczywiście admin domeny NT wraz z jego hasłem, jeśli kontrolerem jest Samba (jak na banita.pl) to jest to często "root", jeśli kontrolerem jest Windows wtedy pewno "Administrator". Jeśli powyższa komenda zakończy się sukcesem ujrzysz taka wiadomość:
    smbpasswd: Joined domain WARIACI
  • W Sambie 3.0 podłączenie do domeny, a dokładnie utworzenie konta maszyny swojej w domenie NT możesz wykonać używając komend:
    net rpc getsid
    net rpc join -S Archiwum -U Administrator%hasło

    gdzie "Archiwum" to nazwa głównego kontrolera domeny NT. "Administrator%hasło" to oczywiście admin domeny NT wraz z jego hasłem, jeśli kontrolerem jest Samba (jak na banita.pl) to jest to często "root", jeśli kontrolerem jest Windows wtedy pewno "Administrator". Jeśli powyższa komenda zakończy się sukcesem ujrzysz taka wiadomość:
    Joined domain WARIACI
  • Pozostało ci teraz ponownie uruchomić Sambę czyli wpisz:
    /etc/init.d/smb restart

Podłączenie do domeny NT za pomocą  Authentication Configuration Tool w Fedora Core 2Po wybraniu wcześniej w zakładce "Uwierzytelnianie" ("Autentication") konfiguracji Winbind czyli "Configure Winbind" ustawiasz dane potrzebne do logowania do domeny NT. Wpierw ustawiasz "Security Model" na "domain", następnie w "Winbind Domain" wpisujesz nazwę domeny NT tutaj "wariaci". Dalej pozostało ustawić "Winbind Domain Controllers" na "archiwum" czyli nasze PDC dla tej domeny ale może być też "*" oraz "Tample Shell" dla dynamicznie tworzonych użytkowników domenowych zależnie od uznania na "/bin/false" lub "bin/bash".

Teraz wybierasz "Join Domain", wtedy ujrzysz okno jak poniżej.  Wpisujesz dane administratora domeny NT wraz z jego hasłem. Jeśli kontrolerem jest Samba (jak na banita.pl) to jest to często "root", jeśli kontrolerem jest Windows wtedy pewno "Administrator".

Teraz będziesz mógł np. udostępniać zasoby twojego komputera nie tylko uwierzytelniając ich na twoich lokalnych kontach ale tez przy użyciu kont SMB istniejących w domenie NT. Zauważ jednak że nawet jeśli autentykacja jest przeprowadzana przez PDC czyli domenie NT, wszyscy użytkownicy korzystający z serwera Samba muszą nadal mieć ważne konto UNIX na tej maszynie, tyle że nie musisz już im tworzyć wpisów w pliku haseł czyli np. smbpasswd.. Możesz cały proces tworzenia kont zautomatyzować, co polecam, poprzez użycie demona Winbind o czym przeczytasz dalej.

Samba jako członek domeny AD (Active Directory)

Opis dotyczy jak podłączyć Sambę 3.0 jako członka do domeny Active  Directory czyli w stylu Windows NT 2000/2003, za pomocą uwierzytelnia Kerberos. Jest t o opis tylko niezbędnych kroków bez opisu kompletnej konfiguracji Samby. Będziesz musiał mieć zainstalowany Kerberos (KRB5-workstation) na maszynie zawierającej Sambę 3.0.

  • Przejdź do pliku konfiguracyjnego Samby (czyli /etc/samba/smb.conf) i dodaj do niego poniższe wpisy:
    ---------- plik konfiguracyjny smb.conf dla Samby 3.0 jako członka domeny NT ----------
    [global]
    workgroup = WARIACI
    security =
    ADS
    password server = kerberos.server
    realm = nazwa.dns.servera.kerberos
    domain master = No
    local master = No
    << deklaracja sekcji ustawień globalnych
    << nazwa grupy roboczej w tym wypadku domeny
    << deklaracja członkowstwa w domenie AD
    << nazwa serwera kerberos, można ustawić *
    <<
    zazwyczaj nazwa DNS serwera kerberos
    << żeby Samba nie została domenową przeglądarką
    << żeby Samba nie została lokalną przeglądarką

    ----------
    Powyższe wpisy są konieczne do uruchomienia Samby podłączonej do domeny ale nie jest to kompletny plik konfiguracyjny, dla Samby 3.0 przeczytaj dalej jeszcze o konfiguracji Winbind.

  • Musisz jeszcze skonfigurować Kerberos czyli dobrać się do pliku /etc/krb5.conf, jego minimalna konfiguracja to
    [libdefaults]
    default_realm = zazwyczaj.nazwa.dns.servera.kerberos
    [realms]
    YOUR.KERBEROS.REALM = {
    kdc = twój.kerberos.server
    }
    [domain_realms]
    .kerberos.server = zazwyczaj.nazwa.dns.servera.kerberos
  • Podłączenie do domeny, a dokładnie utworzenie konta maszyny swojej w domenie AD, możesz wykonać używając komend :
    net ads join -U Administrator%password
    gdzie "Archiwum" to nazwa głównego kontrolera domeny NT. "Administrator%hasło" to oczywiście admin domeny NT wraz z jego hasłem, jeśli kontrolerem jest Samba (jak na banita.pl) to jest to często "root", jeśli kontrolerem jest Windows wtedy pewno "Administrator". Jeśli powyższa komenda zakończy się sukcesem ujrzysz taka wiadomość:
    Joined domain WARIACI
  • Pozostało ci teraz ponownie uruchomić Sambę czyli wpisz:
    /etc/init.d/smb restart

Podłączenie do domeny AD za pomocą  Authentication Configuration Tool w Fedora Core 2.  Po wybraniu wcześniej w zakładce "Uwierzytelnianie" ("Autentication") konfiguracji Winbind czyli "Configure Winbind" ustawiasz dane potrzebne do logowania do domeny AD. Wpierw ustawiasz "Security Model" na "ads", następnie w "Winbind Domain" wpisujesz nazwę domeny AD tutaj "wariaci". Dalej pozostało ustawić "Winbind Domain Controllers" na "kerberos.server" czyli nasze PDC dla tej domeny ale może być też "*", "Winbind ADS Reakm" jako "nazwa.dns.servera.kerberos" (zazwyczaj nazwa DNS serwera kerberos) oraz "Tample Shell" dla dynamicznie tworzonych użytkowników domenowych zależnie od uznania na "/bin/false" lub "bin/bash".

Teraz wybierasz "Join Domain", wtedy ujrzysz okno jak poniżej.  Wpisujesz dane administratora domeny AD wraz z jego hasłem. Jeśli kontrolerem jest Samba (jak na banita.pl) to jest to często "root", jeśli kontrolerem jest Windows wtedy pewno "Administrator".

Teraz będziesz mógł np. udostępniać zasoby twojego komputera nie tylko uwierzytelniając ich na twoich lokalnych kontach ale tez przy użyciu kont SMB istniejących w domenie NT. Zauważ jednak że nawet jeśli autentykacja jest przeprowadzana przez PDC czyli domenie AD, wszyscy użytkownicy korzystający z serwera Samba muszą nadal mieć ważne konto UNIX na tej maszynie, tyle że nie musisz już im tworzyć wpisów w pliku haseł czyli np. smbpasswd.. Możesz cały proces tworzenia kont zautomatyzować, co polecam, poprzez użycie demona Winbind o czym przeczytasz dalej.

Samba i serwer haseł

Opis dotyczy jak podłączyć Sambę 2.0/2.2/3.0 do  zewnętrznego serwera uwierzytelniającego. Nie ma tutaj żadnych powiązań znanch z członkowstwa w domenie NT/AD, a tylko samo sprawdzanie poprawności hasła podłączającego się użytkownika Jest t o opis tylko niezbędnych kroków bez opisu kompletnej konfiguracji Samby.

  • Przejdź do pliku konfiguracyjnego Samby (czyli /etc/samba/smb.conf) i dodaj do niego poniższe wpisy:
    ---------- plik konfiguracyjny smb.conf dla Samby 2.0/2.2/3.0 jako członka domeny NT ----------
    [global]
    workgroup = WARIACI
    security =
    server
    password server = archiwum
    domain master = No
    local master = No
    << deklaracja sekcji ustawień globalnych
    << nazwa grupy roboczej
    << deklaracja uwierzytelniania o zewnętrzny serwer
    << nazwa serwera haseł, można ustawić *
    << żeby Samba nie została domenową
    przeglądarką
    << żeby Samba nie została lokalną przeglądarką

    ----------
    Powyższe wpisy są konieczne do uruchomienia Samby podłączonej do serwera haseł ale nie jest to kompletny plik konfiguracyjny, dla Samby 3.0 przeczytaj dalej jeszcze o konfiguracji Winbind.

  • Pozostało ci teraz ponownie uruchomić Sambę czyli wpisz:
    /etc/init.d/smb restart

Podłączenie do serwera haseł za pomocą  Authentication Configuration Tool w Fedora Core 2Po wybraniu wcześniej w zakładce "Uwierzytelnianie" ("Autentication") konfiguracji Winbind czyli "Configure Winbind" ustawiasz dane potrzebne do logowania do domeny AD. Wpierw ustawiasz "Security Model" na "server", następnie w "Winbind Domain" wpisujesz nazwę domeny AD tutaj "wariaci". Dalej pozostało tylko ustawić "Winbind Domain Controllers" na "archwium" czyli nasze PDC dla tej domeny ale może być też "*".

Teraz będziesz mógł np. udostępniać zasoby twojego komputera nie tylko uwierzytelniając ich na twoich lokalnych kontach ale tez przy użyciu kont SMB istniejących na innym serwerze SMB. Zauważ jednak że nawet jeśli autentykacja jest przeprowadzana przez inny serwer, wszyscy użytkownicy korzystający z serwera Samba muszą nadal mieć ważne konto UNIX na tej maszynie, tyle że nie musisz już im tworzyć wpisów w pliku haseł czyli np. smbpasswd.. Możesz cały proces tworzenia kont zautomatyzować, co polecam, poprzez użycie demona Winbind o czym przeczytasz dalej.

Konfiguracja Winbind

Demon Winbind służy do automatycznej enumeracji (czyli odwzorowania) użytkowników i grup domenowych na lokalne konta użytkowników i grup. Cała zabawa wynika m.in. z tego powodu że każdy system typu Unix potrzebuje realnego czyli lokalnego konta użytkownika do działania jego procesów w tym wypadku do zalogowania się użytkownika domenowego na lokalnej maszynie. Oczywiście możesz tworzyć na lokalnej maszynie ręcznie konta dla użytkowników domenowych ale przy większych sieciach przestaje to mieć sens, zresztą nie ma jak automatyzacja w tym wypadku Winbind.

Jeśli całość konfigurujesz za pomocą  Authentication Configuration Tool w Fedora Core 2, poniższe kroki masz juz raczej poprawnie skonfigurowane na etapie ustawiania "Configure Winbind", wiec możesz tylko czytać to jako sprawdzenie i wyjaśnienie wpisów.

---------- plik konfiguracyjny smb.conf dla Samby 2.2/3.0 jako członka domeny  ----------

[global]
template homedir = /home/%D/%U
template shell = /bin/bash
winbind enum users = yes
winbind enum groups
= yes
winbind uid = 10000-20000
winbind gid = 10000-20000

winbind separator = +
<< deklaracja sekcji ustawień globalnych
<< lokalizacja katalogów domowych użytkowników domenowych
<< deklaracja powłoki systemowej
użytkowników domenowych
<<
winbind ma enumerować użytkowników domenowych
<<
winbind ma enumerować grupy domenowe
<< zakres uid nadawanych dla użytkowników domenowych
<< zakres gid nadawanych dla grup domenowych
<< separator rozdzielający nazwę domeny od użytkownika (domyślnie '/')

Uwaga: Utwórz teraz katalog  /home/DOMENA-WINDOWS, gdzie DOMENA-WINDOWS to pisana dużymi literami nazwa netbios domeny.

---------- dodatkowe opcje dla Winbind, których raczej nie będziesz musiał zmieniać ----------
# czas w sekundach przechowywania haseł zanim ponownie zostanie odpytany kontroler domeny NT, domyślnie:
winbind cache time = 300
# parametr odpowiedzialny za kontrole tworzenia kont lokalnych (m.in. za pomocą 'add user script') przekazywanych przez Winbind,
domyślnie:
winbind enable local accounts = yes
# parametr pozwalający Sambie będącej członkiem domeny kontrolowanej przez inną Sambę na używanie kont uniksowych dystrybuowanych przez inne usługi jak NIS, rsync, LDAP
winbind trusted domains only = no
----------

Z powyższym konfigiem Winbind automagicznie utworzy konto lokalne użytkownika domenowego, zawsze kiedy zostanie on prawidłowo autentyfikowany i kiedy zostanie to zażądane. Pozostało ci teraz ponownie uruchomić Sambę oraz Winbind czyli wpisz:
/etc/init.d/smb restart
/etc/init.d/winbind restart

Żeby sprawdzić poprawność działania demona Winbind używa się komendy wbinfo, np.:
wbinfo -t sprawdzenie czy twój system posiada prawidłowe konto maszyny w domenie
wbinfo -u oraz wbinfo -g wylistowanie odpowiednio wszystkich domenowych użytkowników i grup
wbinfo -a windowsdomain+domainuser%userpassword sprawdzenie metody autentyfikacji oraz rezultatu danego użytkownika domenowego

Konfiguracja uwierzytelniania poprzez moduły PAM

Moduły PAM (Password Authentication Module) służą do uwierzytelniania oraz nakładania ograniczeń na konta w systemach Unix. Pierwotnie PAM powstał w systemie Solaris, a  następnie została opracowana implementacja na inne systemy uniksowe. Standardowo używane są m.in. w większości dystrybucji Linuksa do kontroli dostępu do zasobów w tym uwierzytelniania użytkowników. Pliki konfiguracyjne PAM zawarte są w katalogu /etc/pam.d/, gdzie każdy plik odpowiada za uwierzytelnianie danej usługi, natomiast plik other (standardowo zabraniając jakiegokolwiek dostępu) jest odpowiedzialny za resztę która jest nie zdefiniowana. Tak naprawdę teraz będzie najciekawsza zabawa związana z uwierzytelnianiem "czegokolwiek" o domenę NT poprzez Sambę i Winbind. Wystarczy się tylko dobrać do odpowiedniego pliku PAM konfigurującego uwierzytelnianie do danej usługi lub do jednego zbiorczego do którego odwołują się pozostałe jak to jest np. w Redhat/Fedora Linux. Modyfikacja polega z reguły na dodaniu lub modyfikacji dwu wpisów w odpowiednim miejscu w stylu:

auth sufficient pam_winbind.so
account required pam_winbind.so

uwierzytelnianie konsoli (trybu znakowego) w oparciu o domenę NT

Dobierz się (czyli edytuj ;-) plik /etc/pam.d/login i dopisz w nim wierze które zostały pogrubione:

auth required pam_securetty.so
auth required pam_nologin.so
auth sufficient pam_winbind.so
auth required pam_pwdb.so use_first_pass shadow nullok
auth optional pam_mail.so
account required pam_winbind.so
session required pam_mkhomedir.so skel=/etc/skel umask=0022
session required pam_pwdb.so
session optional pam_lastlog.so
password required pam_pwdb.so

uwierzytelnianie KDE (trybu graficznego) w oparciu o domenę NT

Dobierz się (czyli edytuj ;-) plik /etc/pam.d/kde i dopisz w nim wierze które zostały pogrubione:

auth required pam_nologin.so
auth sufficient pam_winbind.so
auth required pam_pwdb.so use_first_pass shadow nullok
account required pam_winbind.so
password required pam_cracklib.so type=user retry=3
password required pam_pwdb.so use_authtok
session required pam_mkhomedir.so skel=/etc/skel umask=0022
session required pam_pwdb.so

oraz uwierzytelnienie dla ustawionego na hasło wygaszacza ekranu, plik /etc/pam.d/kscreensaver:

auth sufficient pam_winbind.so
auth required pam_pwdb.so use_first_pass shadow nullok

uwierzytelnianie dostępu do zasobów Samby w oparciu o domenę NT

Dobierz się (czyli edytuj ;-) plik /etc/pam.d/samba i dopisz w nim wierze które zostały pogrubione:

auth sufficient pam_winbind.so
auth required pam_pwdb.so use_first_pass nullok nodelay
account sufficient pam_winbind.so
account required pam_pwdb.so nodelay
session required pam_pwdb.so nodelay
password required pam_pwdb.so shadow md5

Analogicznie możesz postąpić z każdym innym plikiem (poza other) odpowiedzialnym za określona usługę np. FTP

uwierzytelnianie wszystkich usług w oparciu o domenę NT (Redhat/Fedora)

W konfiguracji PAM, które są m.in. w Redhat 9/Fedora Linux system odwołuje się do jednego pliku zbiorczego czyli /etc/pam.d/system-auth który trzeba doprowadzić do takiej postaci:

#%PAM-1.0
auth required /lib/security/$ISA/pam_env.so
auth sufficient /lib/security/$ISA/pam_unix.so likeauth nullok
auth sufficient /lib/security/$ISA/pam_winbind.so use_first_pass
auth required /lib/security/$ISA/pam_deny.so

account required /lib/security/$ISA/pam_unix.so
account sufficient /lib/security/$ISA/pam_winbind.so use_first_pass

password required /lib/security/$ISA/pam_cracklib.so retry=3 type=
# Note: The above line is complete. There is nothing following the '='
password sufficient /lib/security/$ISA/pam_unix.so nullok use_authtok md5 shadow
password sufficient /lib/security/$ISA/pam_winbind.so use_first_pass
password required /lib/security/$ISA/pam_deny.so

session required /lib/security/$ISA/pam_limits.so
session sufficient /lib/security/$ISA/pam_unix.so
session sufficient /lib/security/$ISA/pam_winbind.so use_first_pass

rozwiązanie problemu z katalogami użytkowników domenowych (Redhat/Fedora)

W konfiguracji PAM, w m.in. w Redhat 9/Fedora Linux prawdopodobnie będziesz musiał jeszcze dodać poprawkę żeby były poprawnie tworzone katalogi użytkowników domenowych. Poprawka jest jednolinijkowa i dopisujesz ją na końcu odpowiedniego pliku w /etc/pam.d/. Owa linijka to:

session required /lib/security/pam_mkhomedir.so skel=/etc/skel/ umask=0077

Warto to dopisać co najmniej do pliku gdm (uwierzytelnianie w trybie graficznym) oraz login (uwierzytelnianie w trybie znakowym czyli konsola). Oba pliki oczywiście znajdują się w katalogu /etc/pam.d/.

Mam nadzieje że nie przeoczyłeś wcześniej utworzenia teraz katalogu  /home/DOMENA-WINDOWS, gdzie DOMENA-WINDOWS to pisana dużymi literami nazwa netbios domeny. Oczywiście jeśli na taki katalog wskazuje konfiguracja Winbind (opcja w smb.conf "template homedir").

Zauważ że jest możliwa spora ilość kombinacji modułów PAM i powyższe przykłady nie będą dokładnie pasować do twojego systemu. Wtedy będziesz musiał albo poeksperymentować lub poszukać gotowego rozwiązania. W każdym razie zanim zaczniesz zabawę z katalogiem /etc/pam.d/ zrób jego kopie zapasową żebyś ewentualnie maił z czego korzystać jak sypnie się twoja konfiguracja i się nie będziesz mógł zalogować do systemu.

Polecam jeszcze zajrzeć na dwie strony jeśli Winbind nie wystarcza:

  • PADL Software Pty Ltd czyli darmowe narzędzia PAM i LDAP - www.padl.com

  • Vintela Inc. czyli płatny Vintela Authentication Services - www.vintela.com

Logowanie przy użyciu konta domenowego

Jak już przebrnąłeś jakimś cudem przez powyższy horror to możesz się załogować na twój system Unix (np. Linux) przy uzyciu konta domenowego. Żeby to uczynić logując się do systemu podajesz użytkownika w postaci:

domenawindows+użytkownik

następnie już tylko wbijasz hasło. Zauważ że znak separatora czyli tutaj plus (+) został ustawiony wcześniej przy konfiguracji Winbind, przez opcje "winbind separator = +", więc jeśli ustawiłeś coś innego może się to różnic. Tak samo logujesz się w środowisku graficznym czyli np. KDE lub w wierszu poleceń czyli konsoli. Oczywiście możesz też dalej się zalogować na lokalne konto w systemie Unix (np. Linux) gdyby np. logowanie na konto domenowe zawiodło.

Może się zdarzyć że będziesz miał problem z zalogowaniem się na konto domenowe podając prawidłowe dane i oczywiście kontroler domeny będzie dostępny. Problemem są jak zwykle różnice miedzy systemami Windows a Unix. Mianowicie w systemach Unix nazwa użytkownika oraz grupy nie może zawierać spacji gdyż wszystko co jest po spacji jest traktowane jako parametr, oczywiście w Windows nie jest to problem.

Problem objawia się że podczas logowania się na użytkownika domenowego w konsoli czyli trybie tekstowym systemu Unix (np. Linux) mimo że się zalogujesz dostaniesz komunikat "[: too many arguments", pod KDE nawet się nie zalogujesz. Rozwiązanie to pozbycie się spacji z kont użytkowników i grup domenowych. Czyli biegniesz do podstawowego kontrolera domeny który działa na Windows i sprawa ci problem. Musisz zmienić nazwę grupy z "Użytkownicy Domeny" na np. "UżytkownicyDomeny" i problem z głowy.

Logowanie tylko użytkowników danej domeny

Często poruszany problem użytkowników systemów Samba/Unix skonfigurowanych jako członkowie domen NT/AD wraz z uruchomiona usługa Winbind polega na tym że chcą wpuszczać na swój serwer tylko użytkowników danej domeny. Rozwiązaniem jest ustawienie opcji globalnej `allow trusted domains = no`. Opis tej opcji zaczerpnięty z podręcznika do  smb.conf:

"allow trusted domains (G)

Ta opcja odnosi efekty tylko gdy opcja "security" jest ustawiona na server lub domain. Jeśli jest ustawiona na no, wtedy próby połączenia się z zasobem z domeny lub grupy roboczej innej niż ta, w której smbd działa, zawiodą nawet jeśli ta domena jest zaufana dla zdalnego serwera przeprowadzającego autentykację.

Jest to użyteczne, jeśli chcesz, żeby twój serwer Samba udzielał zasobów tylko użytkownikom w domenie której jest członkiem. Jako
przykład przypuśćmy, że mamy dwie domeny DOMA i DOMB. DOMB jest zaufana dla DOMA która zawiera serwer Samba. W normalnych okolicznościach, użytkownik z kontem w DOMB może uzyskać dostęp do zasobów konta UNIX z tą samą nazwą konta na serwerze Samba nawet, jeśli nie ma konta w DOMA. To może utrudniać implementację ograniczenia bezpieczeństwa.

Domyślnie: allow trusted domains = yes"


Drukuj Dokument