Samba jako PDC
Z wiki linux-user
m |
m (→Konfiguracja) |
||
Linia 1: | Linia 1: | ||
[[category:Serwer]] | [[category:Serwer]] | ||
− | == Samba | + | 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]]. |
− | '''Uwaga!''' | + | Poniższa konfiguracja została przetestowana na systemie [[Ubuntu]] 12.04 LTS 64 bit. |
+ | === Cele === | ||
+ | * podpięcie stacji roboczych do domeny | ||
+ | * udostępnianie dysków sieciowych | ||
+ | * tworzenie profili lokalnych | ||
+ | * 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] | ||
+ | |||
<br /><google1 style="4"></google1> | <br /><google1 style="4"></google1> |