Samba jako PDC

Z wiki linux-user
Skocz do: nawigacji, wyszukiwania
m
m (Konfiguracja)
 
Linia 1: Linia 1:
 
[[category:Serwer]]
 
[[category:Serwer]]
Samba '''PDC''' czyli Samba '''Primary Domain Controller''' w tym how to zostanie przedstawiona jedna z możliwych konfiguracji oprogramowania '''Samba''' do działania w roli kontrolera domeny.  
+
Samba '''PDC''' czyli Samba '''Primary Domain Controller''' w tym how to zostanie przedstawiona jedna z możliwych konfiguracji oprogramowania '''Samba''' do działania w roli kontrolera domeny. Samba korzysta z protokołu '''SMB''' (''Server Message Block'') i wykorzystuje porty 137/UDP, 138/UDP, 139/TCP, opcjonalnie 445/TCP. Więcej na temat samej Samby możesz dowiedzieć się [[Samba|tutaj]].
Konfiguracja została przetestowana na systemie [[Ubuntu]] 12.04 LTS 64 bit.
+
Poniższa konfiguracja została przetestowana na systemie [[Ubuntu]] 12.04 LTS 64 bit.
 
=== Cele ===
 
=== Cele ===
 
* podpięcie stacji roboczych do domeny
 
* podpięcie stacji roboczych do domeny
Linia 8: Linia 8:
 
* wymuszanie zmiany haseł dla użytkowników końcowych
 
* wymuszanie zmiany haseł dla użytkowników końcowych
  
 +
=== Instalacja ===
 +
W moim przypadku pakiet '''Samba''' wraz z oprogramowaniem takim jak '''smbclient''' czy '''samba-common''' został zainstalowany wraz z instalacją systemu w wersji 3.6.3. Jeśli jednak jesteś zmuszony do instalacji własnoręcznie wydaj polecenie
 +
sudo apt-get install samba*
 +
po wydaniu powyższego polecenia powinieneś mieć zainstalowane wszystkie potrzebne pakiety samby.
 +
 +
=== Konfiguracja ===
 +
Główny plik konfiguracyjny samby znajduje się w ścieżce
 +
/etc/samba/
 +
i jest nim plik o nazwie '''smb.conf'''. Plik ''smb.conf'' świeżo po instalacji zawiera już wstępnie skonfigurowany serwer oraz wiele linijek komentarzy, które warto poczytać, jednak my przeprowadzimy własną konfigurację dlatego orginalny plik samby kopiujemy w bezpieczne miejsce i tworzymy nowy plik ''smb.conf''
 +
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf-org
 +
sudo touch /etc/samba/smb.conf
 +
Przykładowa konfiguracja pliku ''smb.conf''
 +
[global]
 +
        workgroup = LINUX
 +
        server string = %h server (fs Samba)
 +
        security = domain
 +
        hide dot files = yes
 +
        hosts allow = 127.0.0.1 127.0.1.1 192.168.2.
 +
        passdb backend = tdbsam
 +
        add machine script = /usr/sbin/useradd -d /dev/null -g samba-machines -c 'konto maszyny %I' -s /bin/false %u
 +
        username map = /etc/samba/smbusers
 +
        unix password sync = Yes
 +
        log level = 3
 +
        name resolve order = wins bcast hosts
 +
        domain logons = Yes
 +
        domain master = Yes
 +
        local master = Yes
 +
        wins support = Yes
 +
        dos file times = yes
 +
        announce as =  NT server
 +
        idmap uid = 15000-20000
 +
        idmap gid = 15000-20000
 +
        admin users = root
 +
        encrypt passwords = yes  #szyfrowanie haseł
 +
        logon home = %L%UNetlogon
 +
        logon path =
 +
        logon script = logon.bat
 +
        logon drive = N:
 +
        nt pipe support = yes
 +
        nt acl support = no
 +
        unix password sync = Yes
 +
        pam password change = Yes
 +
        lanman auth = Yes
 +
        #ntlm auth = no
 +
        read raw = yes
 +
        write raw = yes
 +
#      buforowanie katalogów
 +
        getwd cache = yes
 +
# buforowanie zapisu plików zdecydownaie poprawia predkosc
 +
        time server = yes
 +
[home]
 +
        comment = Home
 +
        path = /home/samba/users/%U
 +
        read only = No
 +
        browsable = yes
 +
        guest ok = no
 +
        create mask = 0600
 +
        directory mask = 0700
 +
[netlogon]
 +
        comment = Network Logon Service
 +
        path = /home/samba/netlogon
 +
        browsable = no
 +
        read only = yes
 +
        public = no
 +
[profile]
 +
        comment = User profiles
 +
        path = /home/samba/profiles
 +
        browsable = yes
 +
        writable = yes
 +
        create mask = 0600
 +
        directory mask = 0700
 +
[Wspolny]
 +
        comment = Wspolny
 +
        path = /home/samba/allusers
 +
        browsable = yes
 +
        guest ok = yes
 +
        read only = No
 +
        public = yes
 +
[Muzyka]
 +
        comment = Katalog z muzyka #komentarz
 +
        path = /home/samba/muzyka  #ścieżka na serwerze do katalogu
 +
        browsable = yes #możliwy do przeszukiwania
 +
        writable = yes #zapisywalny
 +
        read only = no #tylko do odczytu
 +
        force create mode = 0770 #wymuszamy tworzenie plików z odpowiednimi prawami
 +
        force group = smbusers #wszystkie dodane pliki będą w grupie
 +
 +
[kowalski]
 +
        path = /home/kowalski/
 +
        valid users = root, kowalski
 +
        guest ok = no
 +
        read only = No
 +
 +
Pamiętaj, że wszystkie katalogi w opcjach ''path'' muszą istnieć.
 +
sudo mkdir /home/samba
 +
sudo mkdir /home/samba/netlogon
 +
sudo mkdir /home/samba/profiles
 +
sudo mkdir /home/samba/allusers
 +
sudo mkdir /home/samba/muzyka
 +
sudo mkdir /home/slawek/users/kowalski
 +
ostatnia sekcja ''[kowalski]'' jest przeznaczona tylko dla użytkownika kowalski i taki również użytkownik musi istnieć w systemie z katalogiem domowym znajdującym się w ścieżce ''/home/kowalski''.<br />
 +
Następnie tworzymy grupę dla użytkowników, którzy będą korzystać z serwera Samba, dajemy odpowiednie uprawnienia do katalogów oraz tworzymy użytkowników i maszyny.<br />
 +
Dodajemy grupę o nazwie ''samba''
 +
sudo groupadd smbusers
 +
zmieniamy prawa do katalogów
 +
sudo chown -R root:smbusers /home/samba/
 +
sudo chmod 774 /home/samba/allusers/
 +
sudo chmod 770 /home/samba/profiles/
 +
sudo chmod 750 /home/samba/netlogon/
 +
sudo chmod 770 /home/samba/muzyka/
 +
sudo chown root:smbusers /home/samba/muzyka/
 +
sudo chmod 700 /home/samba/users/kowalski
 +
sudo chown kowalski:smbusers /home/samba/users/kowalski
 +
sudo chown root:smbusers /home/samba/netlogon #pamiętać aby dać prawa do wykonania grupie dla pliku logon.bat
 +
Katalogi musimy tworzyć dla każdego użytkownika z ręki lub podczas dodawania użytkownika do systemu za pomocą polecenia [[useradd]] z opcją  '''-d /katalog/usera'''. Katalogi jak i nazwy grup powinieneś dostosować do własnych preferencji. Do konfigurowania samby możesz również użyć opcji, które zostały przedstawione na stronie [[samba]]. <br />
 +
 +
=== Profil lokalny a mobilny ===
 +
Profil lokalny czyli wszystkie ustawienia oraz pliki z profilów użytkowników samby są przechowywane na lokalnej maszynie każdego użytkownika, natomiast z profilami mobilnymi jest dokładnie odwrotnie. Sprawę związaną z profilami rozwiązujemy poleceniem
 +
logon path =
 +
w pliku konfiguracyjnym samby. Jeśli zostawimy tą opcję pustą to będziemy mieli sambę z domeną i profilami lokalnymi. Jeśli powyższa obcja będzie wyglądać następująco
 +
logon path =  %L%UProfile
 +
utworzymy dla naszej domeny profile mobilne (dynamiczna ścieżka dla profili, systemu Windows NT/XP/2000/2003), pamiętaj, że musi istnieć zasób samby ''[Profile]''.
 +
=== Użytkownicy ===
 +
Na początku zakładamy konto dla użytkownika [[root]] będziemy go potrzebowali jedynie do kontaktowania się z serwerem samby na początku zakładania domeny np w systemie Windows.
 +
smbpasswd -a root
 +
Dla każdego użytkownika musimy dodać tzw maszyne zaufania czyli komputer + użytkownika bez dostępu do powłoki
 +
zakładamy grupę dla maszyn
 +
sudo groupadd samba-machines
 +
dodajemy zwykłego użytkownika systemu
 +
useradd kowalski
 +
nadajemy mu hasło
 +
passwd kowalski
 +
dodajemy komputer użytkownika do samby
 +
smbpasswd -a -m kowalski
 +
dodajemy użytkownika do samby
 +
smbpasswd -a kowalski
 +
taką samą czynność musimy przeprowadzić dla każdego użytkownika, który ma mieć jakiś dostęp do zasobów samby oczywiście bez  zakładania nowych grup.
 +
 +
restartujemy sambę
 +
sudo service smbd restart
 +
to samo robimy z demonem nmbd
 +
sudo service nmbd restart
 +
i uruchamiamy winbinda
 +
sudo service winbind start
 +
uruchamiamy sambę przy wstawaniu systemu
 +
chkconfig smbd on
 +
oraz
 +
chkconfig nmbd on
 +
i
 +
chkconfig winbind on
 +
Uwaga domyślnie możesz nie mieć zainstalowanego programu [[chkconfig]], dlatego przed wydaniem powyższych komend musisz zainstalować ten pakiet poleceniem
 +
sudo apt-get install chkconfig
 +
 +
=== Inne ===
 +
Ciekawym rozwiązaniem jest polecenie '''pdbedit''', którym możemy np wymuszać czas po jakim musi zostać zmienione hasło dla użytkownika, co jaki czas może powtarzać się ostatnio skonfigurowane hasło i wiele innych najciekawsze z nich to
 +
*wymuszenie zmiany hasła dla użytkowników samby co 60 dni
 +
pdbedit -P "maximum password age" -C 518400 #(60dni)
 +
*wypisanie danych o użytkowniku
 +
pdbedit -Lv kowalski
 +
WARNING: The "idmap uid" option is deprecated
 +
WARNING: The "idmap gid" option is deprecated
 +
Server's Role (logon server) NOT ADVISED with domain-level security
 +
Forcing Primary Group to 'Domain Users' for kowalski
 +
Unix username:        kowalski
 +
NT username:         
 +
Account Flags:        [U          ]
 +
User SID:            S-1-5-21-1251109636-2657097270-4275611531-1003
 +
Primary Group SID:    S-1-5-21-1251109636-2657097270-4275611531-513
 +
Full Name:            Uzytkownik samba
 +
Home Directory:      fs-ubuntukowalskiprofile
 +
HomeDir Drive:        H:
 +
Logon Script:       
 +
Profile Path:       
 +
Domain:              LINUX
 +
Account desc:       
 +
Workstations:       
 +
Munged dial:         
 +
Logon time:          0
 +
Logoff time:          śro, 06 lut 2036 16:06:39 CET
 +
Kickoff time:        śro, 06 lut 2036 16:06:39 CET
 +
Password last set:    wto, 26 cze 2012 17:32:57 CEST
 +
Password can change:  wto, 26 cze 2012 17:32:57 CEST
 +
Password must change: never
 +
Last bad password  : 0
 +
Bad password count  : 0
 +
Logon hours        : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
 +
*minimalna długość hasła
 +
pdbedit -P "min password length" -C 8
 +
*co ile zmian haseł, hasło może się powtórzyć
 +
pdbedit -P "password history" -C 4
 +
*maksymalna ilość błędnych logowań
 +
pdbedit -P "bad lockout attempt" -C 8
 +
i wiele innych, dla wyjaśnienia
 +
 +
'''Samba Policy Controls'''
 +
{| class="wikitable sortable"
 +
|-
 +
! NT4 policy Name !! Samba Policy Name !! NT4 Range !! Samba Range !! Samba Default
 +
|-
 +
| Maximum Password Age || maximum password age || 0 - 999 (days) || 0 - 4294967295 (sec) || 4294967295
 +
|-
 +
| Minimum Password Age || minimum password age || 0 - 999 (days) || 0 - 4294967295 (sec) || 0
 +
|-
 +
| Mimimum Password Length || min password length || 1 - 14 (Chars) || 0 - 4294967295 (Chars) || 5
 +
|-
 +
| Password Uniqueness || password history || 0 - 23 (#) || 0 - 4294967295 (#) || 0
 +
|-
 +
| Account Lockout - Reset count after || reset count minutes || 1 - 99998 (min) || 0 - 4294967295 (min) || 30
 +
|-
 +
| Lockout after bad logon attempts || bad lockout attempt || 0 - 998 (#) || 0 - 4294967295 (#) || 0
 +
|-
 +
| Lockout Duration || lockout duration || 1 - 99998 (min) || 0 - 4294967295 (min) || 30
 +
|-
 +
| Users must log on in order to change password || user must logon to change password || 0/1 || 0 - 4294967295 || 0
 +
|-
 +
| *** Registry Setting *** || refuse machine password change || 0/1 || 0 - 4294967295 || 0
 +
|}
 +
 +
 +
== Skrypt logon.bat ==
 +
Pamiętajmy aby skrypt najlepiej pisać w systemie Windows w związku z tym, że Linux nie używa tzw "powrotu karetki".
 +
 +
#  Reset the current time to that shown by the server.
 +
#  We must have the "time server = yes" option in the
 +
#  smb.conf for this to work.
 +
echo Setting Current Time...
 +
net time \\linux /set /yes
 +
#  Here we map network drives to shares on the Samba
 +
#  server
 +
echo Mapping Network Drives to Samba Server Hydra...
 +
net use h: \\linux\netlogon
 +
net use p: \\linux\profile
 +
net use f: \\linux\home
 +
net use x: \\linux\wspolny
 +
 +
w naszym przypadku skrypt umieszczamy w ścieżce ''/home/samba/netlogon'', nadajemy mu odpowiednie uprawnienia
 +
chown root:smbusers logon.bat
 +
oraz
 +
chmod 750 logon.bat
 +
i to powinno wystarczyć, oczywiście plik ''logon.bat'' musimy dostosować do własnego konfiga samby.
 +
 +
== Podłączanie do domeny systemu Windows ==
 +
=== Windows XP ===
 +
Możliwość podłączenia komputera z systemem Windows zaczyna się od wersji <u>professional</u>.
 +
Aby podłączyć kompuetr z systemem Windows do domeny należy wykonać poniższe kroki:
 +
* Wejść do Panelu sterowania
 +
* Wybrać ikonkę ''System''
 +
* Wejść w zakładkę ''Nazwa komputera''
 +
* Nacisnąć na przycisk ''Zmień''
 +
* Zaznaczyć opcję ''Domena'' oraz wpisać nazwę domeny zatwierdzić przyciskając ''OK''
 +
* podajemy nazwę oraz hasło użytkownika root samby i zatwierdzamy
 +
* restartujemy komputer
 +
* logujemy się jeszcze raz na konto administratora do naszego komputera
 +
* wchodzimy do Panelu sterowania
 +
* wybieramy ''Konta użytkowników''
 +
* dodajemy użytkownika wpisując nazwe użytkownika oraz domenę
 +
* restartujemy komputer
 +
* przy logowaniu wybieramy domenę oraz wpisujemy nazwę użytkownika i hasło założonego w sambie
 +
 +
== Linki ==
 +
Na temat Samby można poczytać również
 +
* Konfiguracja samby na naszej wiki - [[Samba]]
 +
* Wikipedia strona na temat serwera plików - [http://pl.wikipedia.org/wiki/Samba_(program) Wikipedia]
 +
* Oficjalna wiki samby - [http://wiki.samba.org/index.php/Main_Page oficjalna wiki]
  
'''Uwaga!''' Strona jest w trakcie pisania.
 
  
 
<br /><google1 style="4"></google1>
 
<br /><google1 style="4"></google1>

Aktualna wersja na dzień 16:18, 14 wrz 2012

Osobiste
Przestrzenie nazw

Warianty
Działania
Nawigacja
Narzędzia


Sponsor serwisu

Firma informatyczna ITProjek Bydgoszcz usługi informacztyczne, serwery, linux, windows, strony www, hosting, sieci komputerowe, system archiwizacji danych