600 likes | 798 Views
SAMBA. IBM i SYTEC – NetBIOS ( Net work B asic I nput O utput S ystem) - interfejs między programami i hardware sieci Microsoft dołączył w DOS interfejs używający NetBIOS umożliwiający udostępnianie dysku przez sieć
E N D
IBM i SYTEC – NetBIOS (Network Basic Input Output System) - interfejs między programami i hardware sieci • Microsoft dołączył w DOS interfejs używający NetBIOS umożliwiający udostępnianie dysku przez sieć • Protokół współdzielenia dysku – SMB(Server Message Block ), później CIFS (Common Internet File System) • API – (Application Programmers Interface) – powstało wiele aplikacji • NetBUI (NetBIOS Enhanced User Interface), IBM – emulacja NetBIOS LAN w oparciu o TokenRing, ethernet, DECnet, IPX/SPX, ICP/IP
NetBIOS używa 16 znakowych nazw, zamienianych na adresy mechanizmami broadcast, problem z przekroczeniem segmentu sieci • RFC1001 and RFC1002 zdefiniowały sposób mapowania nazw NetBIOS na adresy IP • Microsoft dodał mechanizmy rozgłaszania usług (browsing) i centralną autentyfikację i autoryzację (Windows NT Domain Control)
Andrew Tridgell potrzebował użyć dysku UNIX na PC z DOS. Posiadał NFS dla DOS, ale aplikacja używała NetBIOS • Napisał sniffer, podejrzał protokół SMB i napisał własną aplikację dla UNIX emulującą serwer plików DOS • Wiele kolejnych wersji z błędami, odłożył projekt na półkę • Po dwu latach postanowił podłączyć komputer żony do maszyny UNIX – program działał • Protokół SMB został opublikowany • Nazwa smb była zastrzeżona, metodą wyszukania w słowniku nazw zawierających litery S M B wybrał nazwę SAMBA • Szybki rozwój na zasadach Open Source
Samba to: • Serwer plików i wydruków • Autoryzacja i autentyfikacja • Serwer nazw NetBIOS • Browser
Domena Windows NT – Samba 2.xx. Centralna autoryzacja, Domain Controller • Active Directory (Windows 2000) – Samba 3.xx. CIFS bez NetBIOS, serwer nazw oparty o DNS, Dynamic DNS, Kerberos, Active Directory, hierarchia domen
Instalacja – rpm: • samba-common – wspólne pliki • samba – serwer • samba-client – klient samby • Dokumentacja – man i /usr/share/doc/sambaxxx
smbd – serwer plików i drukarek, konfiguracja w /etc/samba/smb.conf, TCP, port 139 • nmbd – serwer nazw NetBios i browser • testparm i testprns – programy do sprawdzania poprawności smb.conf. Testparm sprawdza poprawność smb.conf, testprns sprawdza w /etc/printcap istnienie drukarki. • smbclient – prosty klient dla Unix, podłączenie dysku, transfer plików, podłączenie drukarki • nmblookup – klent WINS • SWAT - (Samba Web Administration Tool) graficzny interfejs do konfiguracji • winbindd – daemon, autentyfikacja username/password w serwerze NT, dla nsswitch (Name Service Switch)
Konfiguracja: • smb.conf • 3 sekcje, [global], [printers] i [home] • workgroup = projekt WSJ • hosts allow = 172.24.3. 192.168.0. 127. • security = user (model workgroup. Inne - share,server,domain,ads) • password server = My_PDC_Name [My_BDC_Name] [My_Next_BDC_Name] • password level = 8 (Ile ważnych znaków w haśle) • username level = 8 • encrypt passwords = yes (czy negocjować szyfrowane haslo – W98 i WNT SP3 używają tylko szyfrowanego)
security = usertrzeba się zalogować do serwera podając poprawnego użytkownika i hasło. Z użytkownika guest można skorzystać, ale wcześniej trzeba się zalogować, chyba, że wymusimy przez map to guest security = sharenie jest wymagane zalogowanie do serwera, autentyfikacja jest wykonywana kiedy chcemy skorzystać z udziału (share). Można skorzystać z udziału anonimowo (guest) security = serverpara username/password przekazywana jest do innego serwera Samba/NT. Jeśli to się nie uda, przechodzi do security = user security = domainmaszyna musi być dołączona do domeny, para username/password jest przekazywana do PDC/BDC security = adsmaszyna misi być dołączona do domeny, mieć skonfigurowany i uruchomiony kerberos. Nie jest kontrolerem domeny.
smb passwd file = /etc/samba/smbpasswd unix password sync = Yes passwd program = /usr/bin/passwd %u passwd chat = *New*password* %n\n *Retype*new*password* %n\n *passwd:*all*aut hentication*tokens*updated*successfully*
username map = /etc/samba/smbusers(mapowanie nazw użytkowników samby i unix) interfaces = 192.168.12.2/24 192.168.13.2/24(jeśli więcej niż jeden interfejs sieciowy)
Samba może być master browserem w sieci: ; local master = no(w lokalnej sieci) ; os level = 33 (priorytet w elekcji master browsera) ; domain master = yes(czy ma być Domain Master Browser, obsługiwać dane z różnych podsieci) ; preferred master = yes(czy przy starcie wymuszać elekcję) ;wins support = yes (czy nmbd ma być serwerem wins) ;wins server = w.x.y.z (nmbd ma być klientem wins)
[homes] comment = Home Directories browseable = no (niewidoczne w otoczeniu sieciowym) writable = yes valid users = %S create mode = 0664 directory mode = 0775 map to guest = bad user
create mask = 0644 force create mode = 0644 directory mask = 0755 force directory mode = 0755 create (directory)mask – bitowe AND z prawami z dos, potem bitowe OR z force create (directory) mode
SUID/SGID Dla plików wykonywalnych – setUID (setGID) pliku dla uruchomionego procesu Dla kartotek – ustaw dla nowego pliku właściciela/grupę kartoteki chmod 4664 test SUID chmod 2664 test SGID chmod ug+s test SGID+SUID
[WWSJ] comment = Wspolne zbiory projektu WSJ path = /home/wsj browseable = yes public = no (synonim guest ok) writable = yes write list = ania kasia tomek valid users = ania kasia tomek marcin create mask = 0777 directory mask = 0777
Samba 3.x trzyma dane użytkowników w LDAP,MySQL, NIS. NIS+ lub tdbsam, starsze w /etc/samba/smbpasswd: • Kolejne pola oddzielone znakiem ':' • Nazwa użytkownika • UID • LANMAN hash • NT hash • Flagi konta • Data ostatniej zmiany
Program do zarządzania użytkownikami – smbpasswd -a - dodaj użytkownika -x - usuń użytkownika -d - zablokuj (-e – odblokuj użytkownika) -m - dodaj konto maszyny Bez opcji – zmienia hasło użytkownika Użytkownicy w smbpasswd muszą mieć swoich odpowiedników w systemie unix. Mapowanie w zbiorze /etc/samba/smbusers,np: nobody = guest pcguest smbguest
pdbedit – zarządzanie bazą użytkowników Modularna konstrukcja, obsługuje smbpasswd, ldap, nis+ and tdb L – wyświetl użytkowników v- wyświetl więcej informacji a – dodaj użytkownika x – usuń użytkownika
Instalacja 1 • Niewielka grupa robocza • Folder na wspólne pliki, dostępne dla wszystkich tylko do odczytu • Drukarki podłączone i używane lokalnie
Zainstalować Linux , samba, samba-common • /etc/samba/smb.conf: [global] workgroup = PROJEKTY security = SHARE [Projekty] path = /home/projekty read only = Yes guest ok = Yes • Utworzyć kartotekę: mkdir /home/projekty root# chmod 755 /home/projekty • /etc/hosts: 192.168.1.1 server • Uruchomić sambę: /etc/rc.d/init.d/smb restart (/etc/rc.d/rcX.d!) • W Windows skonfigurować IP, ustawić grupę roboczą PROJEKTY. Sprawdzić w otoczeniu sieciowym czy widać serwer i udział
Sprawdzenie: smbclient -L localhost -U% Sharename Type Comment --------- ---- ------- Projekty Disk IPC$ IPC IPC Service (Samba 3.0.20) ADMIN$ IPC IPC Service (Samba 3.0.20) Server Comment --------- ------- SERVER Samba 3.0.20 Workgroup Master --------- -------- PROJEKTY SERVER -U% jako username guest z pustym hasłem smbclient -L server -Uroot%password Z podaniem użytkownika i hasła
Instalacja 2 • Niewielka grupa robocza • Komputery stacjonarne • Kilka udziałów dyskowych ze wspólnymi plikami • Wspólne drukarki sieciowe
/etc/samba/smb.conf: [global] workgroup = PROJEKTY printing = CUPS printcap name = CUPS map to guest = Bad User show add printer wizard = No wins support = yes Brak security, domyślnie user, ale wszystkich mapujemy do guest przy logowaniu i projektanci:biuro przy operacjach dyskowych [PLIKICAD] comment = Rysunki CAD path = /home/cad read only = No force user = projektanci force group = biuro guest ok = Yes nt acl support = No
/etc/samba/smb.conf: [WSPOLNE] comment = Wspolne pliki biurowe path = /home/biuro read only = No force user = projektanci force group = biuro guest ok = Yes nt acl support = No [printers] comment = Tymczasowe pliki spoolingu path = /var/spool/samba printable = Yes guest ok = Yes use client driver = Yes browseable = No
Utworzyć użytkownika i grupę: root# groupadd biuro root# useradd -m projektanci root# passwd projektanci Changing password for projektanci. • Utworzyć kartoteki: mkdir -p /home/{biuro/{pisma,oferty,faktury},cad} chown -R projektanci:biuro /home/biuro root# chmod -R ug+rwxs,o-w,o+rx /home/biuro • /etc/hosts: 192.168.1.1 server
Skonfigurować CUPS (samba udostępnia Windows tylko spooling, jest pośrednikiem między Windows i zewnętrznym systemem drukowania) lpadmin -p drukarka1 -v socket://192.168.1.20:9100 -E lpadmin -p hplj5 -v socket://192.168.1.30:9100 -E (-E – uruchamia drukarkę i spooling, accept + cupsenable) • W pliku /etc/cups/mime.convs usunąć komentarz z linii: application/octet-stream application/vnd.cups-raw 0 - W pliku /etc/cups/mime.types usunąć komentarz z linii: application/octet-stream • Uruchomić sambę: /etc/rc.d/init.d/smb restart (/etc/rc.d/rcX.d!)
Instalacja 3 • Niewielka grupa robocza • Komputery stacjonarne • Kilka udziałów dyskowych, pliki różnych użytkowników • Wspólne drukarki sieciowe
Utworzyć grupę: root# groupadd biuro • Dla każdego użytkownika z tabeli: root# useradd -m -G biuro Nazwa_użytkownika root# passwd Nazwa_użytkownika smbpasswd -a Nazwa_użytkownika • Utworzyć kartoteki: mkdir /home/dane chown koza /home/dane for i in asia adam ania do mkdir -p /home/data/$i chown $i /home/data/$i Done chgrp -R biuro /home/data chmod -R ug+rwxs,o-r+x /home/data
Skonfigurować drukarkę w CUPS: lpadmin -p hplj -v parallel:/dev/lp0 -E • W pliku /etc/cups/mime.convs usunąć komentarz z linii: application/octet-stream application/vnd.cups-raw 0 - • W pliku /etc/cups/mime.types usunąć komentarz z linii: application/octet-stream
/etc/samba/smb.conf: [global] workgroup = PROJEKTY printcap name = CUPS disable spoolss = Yes show add printer wizard = No printing = cups [files] comment = Kartoteki użytkowników path = /home/data/%U read only = No [master] comment = kartoteka administratora path = /home/data valid users = koza read only = No
[printers] comment = Tymczasowe pliki spoolingu path = /var/spool/samba printable = Yes guest ok = Yes use client driver = Yes browseable = No
Instalacja 4 • 50-100 użytkowników • Dwie podsieci • Adresy PC i drukarek z DHCP • Dwa udziały dla dwu grup użytkowników, prywatne udziały użytkowników udziałów dyskowych, pliki różnych użytkowników • Użytkownicy mobilni • Bez serwera DNS, serwer WINS Konstruktorzy Księgowość PC PC PC PC PC PC PC Serwer 'muza' 192.168.2.0/24 DHCP 192.168.1.0/24 DHCP HPLJ1 HPLJ3 HPLJ2 Domena GALAXY
W /etc/hosts wpisać adresy serwera i drukarek 192.168.1.1 muza muza1 192.168.2.1 muza2 192.168.1.10 hplj1 192.168.1.11 hplj2 192.168.2.10 hplj3 • W /etc/rc.d/rc.local wpisać: echo 1 > /proc/sys/net/ipv4/ip_forward • Dodać użytkownika root do samby. Będzie to administrator, nie należy go usuwać: smbpasswd -a root • W /etc/samba/smbusers zamapować użytkownika administrator windows na użytkownika root: root = Administrator
Utworzyć grupy użytkowników Unix groupadd konstruktorzy groupadd ksiegowosc • Połączyć grupy domeny Windows z grupami UNIX net groupmap add ntgroup="Domain Admins" unixgroup=root type=d net groupmap add ntgroup="Domain Users" unixgroup=users type=d net groupmap add ntgroup="Domain Guests" unixgroup=nobody type=d • Dodać grupy użytkowników net groupmap add ntgroup="Konstruktorzy" unixgroup=konstruktorzy type=d net groupmap add ntgroup="Ksiegowosc" unixgroup=ksiegowosc type=d type=d – typ 'domena' • Sprawdzić grupy: net groupmap list | sort
Dla każdego, kto ma korzystać z samby dodać użytkownika Unix (adduser) i samby (smbpasswd) • Przydzielić użytkowników do właściwej grupy (vi /etc/group) • Utworzyć kartoteki dla konstruktorów i księgowych: mkdir -p /home/dane/{konstruktorzy,ksiegowosc} chown -R root:root /home/dane chown -R koza:ksiegowosc /home/dane/ksiegowosc chown -R koza:konstruktorzy /home/dane/konstruktorzy chmod -R ug+rwx,o+rx-w /home/data • Skonfigurować kolejki w CUPS, poprawić mime.convs, mime.types: lpadmin -p hplj1 -v socket://192.168.1.11:9100 -E lpadmin -p hplj2 -v socket://192.168.1.10:9100 -E lpadmin -p hplj3 -v socket://192.168.2.10:9100 -E
Skonfigurować serwer DHCP (/etc/dhcpd.conf): default-lease-time 86400; max-lease-time 172800; default-lease-time 86400; option ntp-servers 192.168.1.1; option domain-name "galaxy.biz"; option domain-name-servers 192.168.1.1, 192.168.2.1; option netbios-name-servers 192.168.1.1, 192.168.2.1; option netbios-node-type 8; ### NOTE ### # netbios-node-type=8 means set clients to Hybrid Mode # so they will use Unicast communication with the WINS # server and thus reduce the level of UDP broadcast # traffic by up to 90%. ############
subnet 192.168.1.0 netmask 255.255.255.0 { range dynamic-bootp 192.168.1.128 192.168.1.254; option subnet-mask 255.255.255.0; option routers 192.168.1.1; allow unknown-clients; host hplj1 { hardware ethernet 08:00:46:7a:35:e4; fixed-address 192.168.1.10; } host hplj2 { hardware ethernet 00:03:47:cb:81:e0; fixed-address 192.168.1.11; } }
subnet 192.168.2.0 netmask 255.255.255.0 { range dynamic-bootp 192.168.2.128 192.168.2.254; option subnet-mask 255.255.255.0; option routers 192.168.2.1; allow unknown-clients; host hplj3 { hardware ethernet 01:04:31:db:e1:c0; fixed-address 192.168.1.10; } } subnet 127.0.0.0 netmask 255.0.0.0 { }
smb.conf: [global] workgroup = GLAXY passwd chat = *New*Password* %n\n*Re-enter*new*password* %n\n *Password*changed* username map = /etc/samba/smbusers syslog = 0 name resolve order = wins bcast hosts printcap name = CUPS show add printer wizard = No add user script = /usr/sbin/useradd -m -G users '%u' delete user script = /usr/sbin/userdel -r '%u' add group script = /usr/sbin/groupadd '%g' delete group script = /usr/sbin/groupdel '%g'
add user to group script = /usr/sbin/usermod -A '%g' '%u' add machine script = /usr/sbin/useradd -s /bin/false -d /var/lib/nobody '%u' logon script = scripts\login.bat logon path = logon drive = X: domain logons = Yes preferred master = Yes wins support = Yes printing = CUPS
[homes] comment = Home Directories valid users = %S read only = No browseable = No [printers] comment = SMB Print Spool path = /var/spool/samba printable = Yes guest ok = Yes use client driver = Yes browseable = No
[netlogon] comment = Network Logon Service path = /data/%U valid users = %S read only = No
[Konstruktorzy] comment = Dane konstruktorow path = /home/dane/konstruktorzy valid users = %G read only = No [ksiegowosc] comment = Finanse i ksiegowosc path = /home/dane/ksiegowosc valid users = %G read only = No
Uruchomić smb, dhcp, cups • Sprawdzić: testparm -s (poprawność smb.conf) smbclient -L localhost -U% (połączenie anonimowe) smbclient //muza/ksiegowosc -U koza Password: XXXXXXX (połączenie autoryzowane)
Instalacja 5 • 100-500 użytkowników • Dwie podsieci, łącze do internetu – firewall, wirusy • Adresy PC i drukarek z DHCP • Dwa udziały dla dwu grup użytkowników, prywatne udziały użytkowników udziałów dyskowych, pliki różnych użytkowników • Skrypty logowania, profile mobilne • serwer DNS Konstruktorzy Księgowość PC PC PC PC PC PC PC Serwer 'muza' eth1 eth2 192.168.2.0/24 DHCP 192.168.1.0/24 DHCP eth0 HPLJ3 HPLJ1 HPLJ2 Internet Domena GALAXY
W /etc/hosts dodać nazwy i adresy interfejsów lokalnych • Dodać routing między interfejsami • Skonfigurować i uruchomić firewall (iptables) • Zainstalować Samba, bind, dhcpd
smb.conf [global] workgroup = GALAXY netbios name = MUZA interfaces = eth1, eth2, lo (bez tego nie słucha na lo) bind interfaces only = Yes (słucha tylko na wymienionych interfejsach) passdb backend = tdbsam pam password change = Yes passwd program = /usr/bin/passwd %u passwd chat = *New*Password* %n\n *Re-enter*new*password*%n\n *Password*changed* username map = /etc/samba/smbusers unix password sync = Yes log level = 1 (debugging) syslog = 0 log file = /var/log/samba/%m max log size = 50 smb ports = 139 name resolve order = wins bcast hosts