In dieser Anleitung wird erläutert, wie Sie einen Samba-Server unter CentOS 7 mit anonymen und gesicherten Samba-Freigaben konfigurieren. Samba ist eine Open Source/freie Software-Suite, die nahtlose Datei- und Druckdienste für SMB/CIFS-Clients wie Windows bereitstellt. Samba ist im Gegensatz zu anderen SMB/CIFS-Implementierungen frei verfügbar und ermöglicht die Interoperabilität zwischen Linux/Unix-Servern und Windows-basierten Clients.
1 Vorbemerkung
Ich habe einen frisch installierten CentOS 7-Server, auf dem ich den Samba-Server installieren werde. Natürlich benötigen Sie einen Windows-Rechner, um den Samba-Server zu überprüfen, der mit dem CentOS 7-Server erreichbar sein muss. Mein Centos 7-Server hat den Hostnamen server1.example.com &IP als 192.168.0.100
Hinweis:
- Der Windows-Rechner muss sich in derselben Arbeitsgruppe befinden. Um den Wert auf dem Windows-Computer zu überprüfen, führen Sie den Befehl an der cmd-Eingabeaufforderung aus
net config workstation
Es wird so aussehen:
Ihr Windows-Rechner muss sich in derselben Workstation-Domäne befinden wie der CentOS 7.0-Server, d. h. in meinem Fall WORKGROUP.
- Um den Windows-Rechner in Windows erreichbar zu machen, gehen Sie wie folgt vor. Führen Sie im Terminal &den Eintrag Ihrer Server-IP-Adresse aus:
notepad C:\Windows\System32\drivers\etc\hosts
Bei mir war das so, einfach die Werte speichern.
[...]
192.168.0.100 server1.example.com centos
2 Anonymes Samba-Sharing
Zuerst werde ich die Methode zur Installation von Samba mit einer anonymen Freigabe erklären. Um die Samba-Software zu installieren, führen Sie Folgendes aus:
yum install samba samba-client samba-common
Es installiert die aktuelle Samba-Version aus dem CentOS-Software-Repository.
Um nun Samba zu konfigurieren, bearbeiten Sie die Datei /etc/samba/smb.conf. Bevor ich Änderungen vornehme, erstelle ich eine Sicherungskopie der Originaldatei als /etc/samba/smb.conf.bak
cp -pf /etc/samba/smb.conf /etc/samba/smb.conf.bak
Da ich mit einer leeren Datei beginnen möchte, verwende ich den cat-Befehl, um smb.conf zu leeren. Das geht schneller, als alle Zeilen in vi zu löschen.
cat /dev/null > /etc/samba/smb.conf
Geben Sie außerdem die Einträge wie folgt ein
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
Außerdem blockiert CentOS 7 Firewall-cmd den Samba-Zugriff, um das loszuwerden, führen wir Folgendes aus:
firewall-cmd --permanent --zone=public --add-service=samba
[[email protected] ~]# firewall-cmd --permanent --zone=public --add-service=samba success [[email protected] ~]#
Laden Sie abschließend die Firewall neu, um die Änderungen zu übernehmen.
firewall-cmd --reload
[[email protected] ~]# firewall-cmd --reload success [[email protected] ~]#
Jetzt können Sie wie folgt auf die Centos 7-Freigabe in Windows zugreifen. Gehen Sie zur Eingabeaufforderung Ausführen und geben Sie \\centos:
ein\\centos
Durchsuchen Sie auf einem Windows-Computer einfach den Ordner und versuchen Sie, eine Textdatei zu erstellen, aber Sie erhalten eine Fehlermeldung, dass die Berechtigung verweigert wird.
Überprüfen Sie die Berechtigung des freigegebenen Ordners.
ls -l
drwxr-xr-x. 2 root root 6 Jul 17 13:41 anonymous
[[email protected] samba]#
Legen Sie die Berechtigungen wie folgt fest, um dem anonymen Nutzer Zugriff zu gewähren:
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]#
Außerdem müssen wir SELinux für die Samba-Konfiguration wie folgt zulassen:
chcon -t samba_share_t anonymous/
Jetzt kann der anonyme Benutzer den Ordnerinhalt durchsuchen und erstellen.
Sie können den Inhalt auch auf dem Server überprüfen.
ls -l anonymous/
total 0
-rwxr--r--. 1 nobody nobody 0 Jul 17 16:05 anonymous.txt
[[email protected] samba]#
3. Gesicherter Samba-Server
Daher werde ich eine Gruppe smbgrp und den Benutzer srijan erstellen, um mit der richtigen Authentifizierung auf den Samba-Server zuzugreifen.
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]#hinzugefügt
Erstellen Sie nun einen Ordner mit dem im Ordner „/samba“ gesicherten Namen und erteilen Sie Berechtigungen wie diese:
mkdir -p /samba/secured
Auch hier müssen wir erlauben, durch SELinux zu lauschen:
cd /samba
chmod -R 0777 gesichert/
chcon -t samba_share_t gesichert/
Bearbeiten Sie die Konfigurationsdatei erneut als :
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
Überprüfen Sie außerdem die Einstellungen wie folgt:
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]#
Überprüfen Sie jetzt auf dem Windows-Computer den Ordner jetzt mit den richtigen Anmeldeinformationen
Sie werden erneut mit dem Problem der Berechtigungen konfrontiert, um dem Benutzer srijan do eine Schreibberechtigung zu erteilen:
cd /samba
chown -R srijan:smbgrp secured/
Jetzt haben Samba-Benutzer die Berechtigung, in den Ordner zu schreiben. Prost, Sie haben mit dem Samba-Server in CentOS 7 fertig :)