facebook-ictlaboratory.com

Wybierz swój język

Server Samba

Jest to darmowy, multiplatformowy serwer udostępniania plików i drukarek


https://www.samba.org/

Założenia

Masz utworzony folder /smb. Na początku ustawimy pełny dostęp dla głównego urzytkownika do tego folderu. Stworzę nową grupę smb-rw z pełnym dostępem do tego folderu.

Sprawdź

Sprawdź, czy nie masz już zainstalowanego servera Samba i czy nie pracuje w systemie. Najprawdopodobniej jeszcze nie masz uruchomionego - to zobaczysz taki komunikat:

$ sudo systemctl status smbd
Unit samba.service could not be found.

Natomiast gdy ktoś wcześniej zainstalował ten serwer i jest uruchomiony to zobaczysz:

$ sudo systemctl status smbd
● smbd.service - Samba SMB Daemon
     Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-01-29 23:13:42 GMT; 23s ago
       Docs: man:smbd(8)
             man:samba(7)
             man:smb.conf(5)
    Process: 59256 ExecStartPre=/usr/share/samba/update-apparmor-samba-profile (code=exited, status=0/SUCCESS)
   Main PID: 59260 (smbd)
     Status: "smbd: ready to serve connections..."
      Tasks: 4 (limit: 4407)
     Memory: 7.5M
     CGroup: /system.slice/smbd.service
             ├─59260 /usr/sbin/smbd --foreground --no-process-group
             ├─59262 /usr/sbin/smbd --foreground --no-process-group
             ├─59263 /usr/sbin/smbd --foreground --no-process-group
             └─59267 /usr/sbin/smbd --foreground --no-process-group

Jan 29 23:13:42 server systemd[1]: Starting Samba SMB Daemon...
Jan 29 23:13:42 server systemd[1]: Started Samba SMB Daemon.

Aby przerwać wyświetlanie informacje - wciśnij [Q] lub [CTRL]+[C]. W tym przypadku możesz przejść dalej. W przeciwnym musisz zainstalować server Samba.

Zainstaluj

Wystarczy odświeżyć źródła i zainstalować najnowszą wersję serwera Samba. Proponuję też doinstalować programy użytkowe dla tego servera.

$ sudo apt update
$ sudo apt install acl attr samba samba-dsdb-modules samba-vfs-modules winbind libpam-winbind libnss-winbind libpam-krb5 krb5-config krb5-user -y

Ustaw Firewall

Najpierw sprawdź jakie usługi można odblokować na firewall'u.

$ sudo ufw app list
Available applications:
  OpenSSH
  Samba

Na początek otwórz porty samby, ale tylko w sieci wewnętrznej.

$ ufw allow from 192.168.0.0/24 to any app Samba

Upewnij się, czy reguły zostały dopisane.

$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
Samba                      ALLOW       192.168.0.0/24

Zobacz sobie jeszcze dla ciekawości które porty otworzy firewall dla Samby

$ sudo ufw app info Samba
Profile: Samba
Title: LanManager-like file and printer server for Unix
Description: The Samba software suite is a collection of programs that
implements the SMB/CIFS protocol for unix systems, allowing you to serve
files and printers to Windows, NT, OS/2 and DOS clients. This protocol is
sometimes also referred to as the LanManager or NetBIOS protocol.

Ports:
  137,138/udp
  139,445/tcp

Uprawnienia

Zaraz po instalacji Serwera Ubuntu właścicielem wszystkich plików i folderów jest root z grupy root i mają uprawnienia ustawione na: rwxr-xr-x. Natomiast po instalacji serwera Samba tworzona jest grupa sambashare i użytkownik o takiej samej nazwie. Dlatego musisz zmienić użytkownika i grupę dla wszystkich folderów gdzie będziesz zapisywał swoje strony internetowe. Na początek odbierzemy też większość uprawnień - dla bezpieczeństwa.

$ sudo chown sambashare:sambashare /smb -R
$ sudo chmod 500 /smb -R
$ sudo ls -l /
total 4
dr-x------ 2 sambashare sambashare 4096 Jan 24 14:26 smb

Konfiguracja

Większość ustawień jest w pliku /etc/samba/smb.conf dobrym zwyczajem jest przed dokonaniem zmian abyś wykonał kopię tego pliku.

$ sudo cp /etc/samba/smb.conf{,.backup}
$ ls /etc/samba/ -l
total 32
-rw-r--r-- 1 root root    8 Oct 16 11:53 gdbcommands
-rw-r--r-- 1 root root 8942 Jan 27 22:49 smb.conf
-rw-r--r-- 1 root root 8942 Jan 29 23:59 smb.conf.backup
drwxr-xr-x 2 root root 4096 Oct 16 11:53 tls

Kolej na edycję

$ sudo mcedit /etc/samba/smb.conf

Po dokonaniu zmian i zapisaniu pliku [F10] musisz sprawdzić, czy wszystko jest OK i zrestartować Sambę

$ testparm
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

# Global parameters
[global]
        netbios name = UBUNTU2010
        server role = standalone server
        server string = %h server (Samba, Ubuntu)
        workgroup = WORKGROUP


[share_ro]
        guest ok = Yes
        path = /smb/share_ro
$ sudo systemctl restart smbd

To na początek wystarczy. Odpalimy serwer Samby i udostępnimy jeden folder /smb/share_ro - Read Only - tylko do odczytu.