Installazione e Configurazione di Samba Server su CentOS 7

samba-logo

Come forse sapete, Samba è un progetto open source, e la suite di software gratuito che fornisce servizi di file e di stampa ai client SMB / CIFS. Esso ci permette di condividere i file, cartelle e stampanti tra server Linux e client Windows. Utilizzando Samba, siamo in grado di configurare un controller di dominio su server UNIX / Linux, e integrare i client Windows al controller di dominio.

Questo tutorial descrive come configurare un server Samba base in CentOS release 7. Inoltre, questa procedura funziona su RHEL 7.

Scenario

In questo tutorial, si utilizzeranno due sistemi come descritto di seguito.

Samba server:

Operating system : CentOS 7 minimal server
Hostname : server.gidalo.local
IP Address : 192.168.1.250/24

Samba client:

Operating system : Windows 7 Professional o Windows 10
Hostname : CLI01
IP Address : 192.168.1.10/24

Installare Samba

Verifichiamo che Samba non sia già installato con il seguente comando:

rpm -qa | grep samba
yum list installed | grep samba

Sè Samba è installato rimuoviamolo con il seguente comando:

yum remove samba*

Ora eseguiamo l’aggiornamento del sistema con:

yum -y check-update
yum -y update

Riavvia il server con il seguente comando:

init 0

Ok. Ora possiamo installere Samba seguendo i comandi qui sotto:

yum install samba* -y

1. Configurare un accesso completamente libero ‘free_share’

Ora, cerchiamo di creare una condivisione anonima completamente accessibile per gli utenti. Chiunque può leggere e scrivere in questa condivisione.

Creare una directory denominata ‘/samba/free_share’ e impostare il permesso completo.

mkdir -p /samba/free_share
chmod -R 0777 /samba/free_share

Editare il file di configurazione di Samba;

vi /etc/samba/smb.conf

Trova le seguenti direttive, e apportare le modifiche come mostrato di seguito.

[...]
## Add the following lines under [global] section ##
unix charset = UTF-8
dos charset = CP932
## Change the to windows default workgroup ##
workgroup = WORKGROUP
## Uncomment and set the IP Range ##
hosts allow = 127. 192.168.1.
## Uncomment ##
max protocol = SMB2
## Uncomment, and change the value of 'Security' to 'user' ## 
security = user
## Add the following line ##
map to guest = Bad User
## Add the following lines at the bottom ##
[Free Share]
path = /samba/free_share
writable = yes
browsable = yes
guest ok = yes
guest only = yes
create mode = 0777
directory mode = 0777

Avviare i servizi di samba, e permettere loro di avviarsi automaticamente ad ogni riavvio.

systemctl start smb
systemctl start nmb
systemctl enable smb
systemctl enable nmb

Testare la configurazione del server Samba

Siamo in grado di testare gli errori di sintassi di configurazione del server Samba utilizzando il comando ‘testparm’.

testparm

Output di esempio:

Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Processing section "[printers]"
Processing section "[Free Share]"
Loaded services file OK.
WARNING: You have some share names that are longer than 12 characters.
These may not be accessible to some older clients.
(Eg. Windows9x, WindowsMe, and smbclient prior to Samba 3.0.)
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
[global]
    dos charset = CP932
    netbios name = GIDALO SAMBA SERVER
    server string = Samba Server Version %v
    map to guest = Bad User
    log file = /var/log/samba/log.%m
    max log size = 50
    server max protocol = SMB2
    idmap config * : backend = tdb
    hosts allow = 127., 192.168.1.
    cups options = raw
[homes]
    comment = Home Directories
    read only = No
    browseable = No
[printers]
    comment = All Printers
    path = /var/spool/samba
    printable = Yes
    print ok = Yes
    browseable = No
[Free Share]
    path = /samba/free_share
    read only = No
    create mask = 0777
    directory mask = 0777
    guest only = Yes
    guest ok = Yes

Se tutto bene, siete pronti per andare avanti.

Configuriamo il Firewall

Consentire le porte di default del server Samba attraverso il firewall.

firewall-cmd --permanent --add-port=137/tcp
firewall-cmd --permanent --add-port=138/tcp
firewall-cmd --permanent --add-port=139/tcp
firewall-cmd --permanent --add-port=445/tcp
firewall-cmd --permanent --add-port=901/tcp

Riavvia firewall per applicare le modifiche.

firewall-cmd --reload

Configuriamo SELinux

Commutare  samba_enable_home_dirs Boolean se si desidera condividere le home directory tramite Samba.

setsebool -P samba_enable_home_dirs on

Se si crea una nuova directory, come ad esempio una nuova directory di livello superiore, etichettarlo con samba_share_t in modo che SELinux permette a Samba di leggere e scrivere in esso. Non directory di sistema di etichette, come /etc/ e /home/,  in quanto tali indici dovrebbero già avere un’etichetta SELinux.

Nel nostro caso, abbiamo già creato una directory anonima free_share. Cerchiamo quindi di etichettarle come illustrato di seguito.

chcon -t samba_share_t /samba/free_share/

Se non si vuole utilizzare SELinux, possiamo semplicemente disabilitarlo come mostrato di seguito, e continuare.

Per disabilitare SELinux, edititare il seguente file /etc/sysconfig/selinux,

vi /etc/sysconfig/selinux

Impostare SELinux su disabled.

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted

Riavviare il server per rendere effettive le modifiche.

Verifica della condivisione Samba

Ora, andare in qualsiasi sistema Windows client. In questo esempio, sto usando il sistema di Windows 7 o 10.

ClickStart -> Esegui. Inserire l’IP del server samba come illustrato di seguito.

esegui_cgidalo

Ora, sarete in grado di accedere alle condivisioni con pieno accesso sul Server Samba.

win-view-freeshare_cgidalo

È possibile creare, modificare o cancellare i file o cartelle all’interno. Ad esempio, mi permette di creare una cartella di esempio denominato ‘gidalo’ all’interno della cartella di condivisione Samba.

createfoldersfree_shared_cgidalo

Controllare i file o le cartelle create sono presenti nel server samba

ls -l /samba/free_share/

Output di esempio:

total 0
drwxrwxrwx. 2 nobody nobody 6 Apr 12 01:31 gidalo

Come si vede nel risultato, la cartella è stata creata nella directory /samba/free_share/ 


Prossimo HowTo vediamo come configurare il nostro Server Samba per attivare una condivisione sicura con nome utente e password.


Grazie del Vostro tempo dedicatomi 😉


Leggi note dell’autore prima di iniziare!!

Loading