Questo tutorial spiega come configurare un server Samba su CentOS 7 con condivisioni samba anonime e protette. Samba è una suite di software libero/open source che fornisce servizi di stampa e file senza interruzioni a client SMB/CIFS come Windows. Samba è disponibile gratuitamente, a differenza di altre implementazioni SMB/CIFS, e consente l'interoperabilità tra server Linux/Unix e client basati su Windows.
1 Nota preliminare
Ho un server CentOS 7 appena installato, sul quale installerò il server samba. Ovviamente è necessario disporre di una macchina Windows per controllare il server samba che deve essere raggiungibile con il server CentOS 7. Il mio server Centos 7 ha il nome host server1.example.com e IP come 192.168.0.100
Nota:
- La macchina Windows deve trovarsi nello stesso gruppo di lavoro. Per controllare il valore nella macchina Windows, esegui il comando al prompt di cmd
net config workstation
Sarà così:
Il tuo computer Windows deve trovarsi nello stesso dominio Workstation del server CentOS 7.0, ovvero WORKGROUP nel mio caso.
- Per rendere raggiungibile la macchina Windows in Windows, procedi in questo modo. Nel terminale di esecuzione e aggiungi la voce dell'indirizzo IP del tuo server:
notepad C:\Windows\System32\drivers\etc\hosts
Nel mio caso era così, salva solo i valori.
[...]
192.168.0.100 server1.example.com centos
2 Condivisione di samba anonima
Per prima cosa spiegherò la metodologia per installare Samba con una condivisione anonima. Per installare il software Samba, esegui:
yum install samba samba-client samba-common
Installerà la versione corrente di Samba dal repository del software CentOS.
Ora per configurare samba, modifica il file /etc/samba/smb.conf. Prima di apportare modifiche, eseguirò il backup del file originale come /etc/samba/smb.conf.bak
cp -pf /etc/samba/smb.conf /etc/samba/smb.conf.bak
Poiché voglio iniziare con un file vuoto, userò il comando cat per svuotare smb.conf. È più veloce dell'eliminazione di tutte le righe in vi.
cat /dev/null > /etc/samba/smb.conf
Inoltre, dai le voci in questo modo
vi /etc/samba/smb.conf
[global] workgroup = WORKGROUP server string = Samba Server %v netbios name = centos security = user map to guest = bad user dns proxy = no #============================ Share Definitions ============================== [Anonymous] path = /samba/anonymous browsable =yes writable = yes guest ok = yes read only = no
mkdir -p /samba/anonymous
systemctl enable smb.service
systemctl enable nmb.service
systemctl restart smb.service
systemctl restart nmb.service
Ulteriori CentOS 7 Firewall-cmd bloccherà l'accesso a samba, per eliminarlo eseguiremo:
firewall-cmd --permanent --zone=public --add-service=samba
[[email protected] ~]# firewall-cmd --permanent --zone=public --add-service=samba success [[email protected] ~]#
Infine, ricarica il firewall per applicare le modifiche.
firewall-cmd --reload
[[email protected] ~]# firewall-cmd --reload success [[email protected] ~]#
Ora puoi accedere alla condivisione Centos 7 in Windows come segue. Vai al prompt Esegui e digita \\centos:
\\centos
Da un computer Windows, basta sfogliare la cartella e provare a creare un file di testo, ma verrà visualizzato un errore di autorizzazione negata.
Verifica l'autorizzazione della cartella condivisa.
ls -l
drwxr-xr-x. 2 root root 6 Jul 17 13:41 anonymous
[[email protected] samba]#
Per consentire l'accesso da parte dell'utente anonimo, imposta le autorizzazioni come segue:
cd /samba
chmod -R 0755 anonymous/
chown -R nobody:nobody anonymous/
ls -l anonymous/
total 0
drwxr-xr-x. 2 nobody nobody 6 Jul 17 13:41 anonymous
[[email protected] samba]#
Inoltre, dobbiamo consentire a SELinux per la configurazione di samba come segue:
chcon -t samba_share_t anonymous/
Ora l'utente anonimo può sfogliare e creare il contenuto della cartella.
Puoi anche eseguire un controllo incrociato del contenuto sul server.
ls -l anonymous/
total 0
-rwxr--r--. 1 nobody nobody 0 Jul 17 16:05 anonymous.txt
[[email protected] samba]#
3. Server samba protetto
Pertanto, creerò un gruppo smbgrp e utente srijan per accedere al server samba con un'autenticazione adeguata.
groupadd smbgrp
useradd srijan -G smbgrp
smbpasswd -a srijan
[[email protected] samba]# smbpasswd -a srijan New SMB password:<--yoursambapassword Retype new SMB password:<--yoursambapassword Added user srijan. [[email protected] samba]#
Ora crea una cartella con il nome protetta nella cartella /samba e concedi autorizzazioni in questo modo:
mkdir -p /samba/secured
Ancora una volta dovremo consentire l'ascolto tramite SELinux:
cd /samba
chmod -R 0777 secure/
chcon -t samba_share_t secure/
Modifica nuovamente il file di configurazione come :
vi /etc/samba/smb.conf
[...]
[secured] path = /samba/secured valid users = @smbgrp guest ok = no writable = yes browsable = yes
systemctl restart smb.service
systemctl restart nmb.service
Inoltre, controlla le impostazioni come segue:
testparm
[[email protected] samba]# testparm Load smb config files from /etc/samba/smb.conf rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) Processing section "[Anonymous]" Processing section "[secured]" Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions <--ENTER [global] netbios name = CENTOS server string = Samba Server %v map to guest = Bad User dns proxy = No idmap config * : backend = tdb [Anonymous] path = /samba/anonymous read only = No guest ok = Yes [secured] path = /samba/secured valid users = @smbgrp read only = No [[email protected] samba]#
Ora su Windows, controlla la cartella ora con le credenziali corrette
Dovrai nuovamente affrontare il problema delle autorizzazioni per concedere il permesso di scrittura all'utente srijan do:
cd /samba
chown -R srijan:smbgrp secured/
Ora gli utenti di samba hanno le autorizzazioni per scrivere nella cartella. Saluti, hai finito con il server samba in CentOS 7 :)