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.
Ora, sarete in grado di accedere alle condivisioni con pieno accesso sul Server Samba.
È 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.
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/
Grazie del Vostro tempo dedicatomi 😉
Leggi note dell’autore prima di iniziare!!