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> | ||
