CentOS 5: Samba 3.5 einrichten
1. Einleitung
Samba ist ein Linux-Dienst, welcher Datei- und Druckdienste für Windows-Systeme zur Verfügung stellt beziehungsweise diese nutzen kann. Durch Samba werden das Server Message Block Protokoll (SMB) und das erweiterte Common Internet File System (CIFS) für Linux bereitgestellt.
Unter CentOS 5.6 stehen neben den Samba 3.0 Paketen auch RPM-Pakete für die Samba Version 3.5 zur Verfügung. Die folgende Anleitung soll Ihnen zeigen, wie Sie unter CentOS 5 mit Samba 3.5 einen einfachen Dateiserver für ein Windows-Netzwerk einrichten können.
2. Samba 3.5 installieren
Durch den folgenden Befehl installieren Sie die benötigten Pakete für Samba 3.5.
[root@centos5 ~]# yum install samba3x
Damit der Samba-Daemon aus dem Netzwerk erreichbar ist, müssen Sie mit den folgenden Firewall-Regeln die UDP-Ports 137 (NetBIOS Name Service) und 138 (NetBIOS Datagram Service) sowie die TCP-Ports 139 (NetBIOS Session Service) und 445 (Microsoft-DS SMB File Sharing) in der Firewall öffnen.
[root@centos5 ~]# iptables -I INPUT -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT
[root@centos5 ~]# iptables -I INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT
[root@centos5 ~]# iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
[root@centos5 ~]# iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
[root@centos5 ~]# iptables -I INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT
[root@centos5 ~]# iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
[root@centos5 ~]# iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
Speichern Sie die erstellten Firewall-Regeln mit dem folgenden Befehl dauerhaft in die /etc/sysconfig/iptables.
[root@centos5 ~]# service iptables save
3. SWAT installieren
Mit der webbasierten Konfigurationsplattform Samba Web Administration Tool (SWAT) können Sie den Samba-Daemon sehr leicht administrieren. In diesem Abschnitt soll gezeigt werden, wie Sie SWAT installieren und konfigurieren.
Die Installation von SWAT für Samba 3.5 erfolgt bei CentOS 5 mit dem folgenden Befehl.
[root@centos5 ~]# yum install samba3x-swat
Nach der Installation müssen Sie die Konfigurationsdatei /etc/xinetd.d/swat bearbeiten.
[root@centos5 ~]# vi /etc/xinetd.d/swat
In dieser Datei sollten Sie die Optionen only_from und disable anpassen. Mit only_from können Sie einer einzelnen IP-Adresse oder einem ganzen Subnetzwerk den Zugriff auf die Weboberfläche erlauben. In diesem Beispiel wollen wir dem ganzen lokalen Subnetzwerk 192.168.10.0 die Benutzung von SWAT erlauben. Damit SWAT aktiviert wird, müssen Sie die Option disable auf no setzen.
# default: off
# description: SWAT is the Samba Web Admin Tool. Use swat \
# to configure your Samba server. To use SWAT, \
# connect to port 901 with your favorite web browser.
service swat
{
port = 901
socket_type = stream
wait = no
only_from = 192.168.10.0
user = root
server = /usr/sbin/swat
log_on_failure += USERID
disable = no
}
# description: SWAT is the Samba Web Admin Tool. Use swat \
# to configure your Samba server. To use SWAT, \
# connect to port 901 with your favorite web browser.
service swat
{
port = 901
socket_type = stream
wait = no
only_from = 192.168.10.0
user = root
server = /usr/sbin/swat
log_on_failure += USERID
disable = no
}
Nachdem Sie die Konfigurationsdatei /etc/xinetd.d/swat gespeichert haben, starten Sie den xinetd neu.
[root@centos5 ~]# service xinetd restart
Sollte der xinetd noch nicht gestartet gewesen sein, ist er vermutlich auch noch nicht in den entsprechenden Runleveln eingetragen worden. Um dies nachzuholen und damit der xinetd beim nächsten Systemstart automatisch gestartet wird, führen Sie den nachfolgenden Befehl aus.
[root@centos5 ~]# chkconfig xinetd on
Um vom Netzwerk aus auf SWAT zugreifen zu können, müssen Sie noch den TCP-Port 901 in der Firewall öffnen.
[root@centos5 ~]# iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 901 -j ACCEPT
[root@centos5 ~]# service iptables save
[root@centos5 ~]# service iptables save
4. Samba mit SWAT konfigurieren
Wie bereits erwähnt, läuft die Samba-Konfiguration mittels SWAT über eine Weboberfläche ab. Diese erreichen Sie mit einem Web-Browser unter der folgenden Adresse. Ändern Sie den Rechnernamen (hier server.home.lan) entsprechend Ihrer Konfiguration ab. Sollte die Namensauflösung in Ihrem Netzwerk nicht funktionieren, verwenden Sie anstelle des Rechnernamens die IP-Adresse des Samba-Servers.
http://server.home.lan:901
Wenn Sie auf die Weboberfläche zugreifen, müssen Sie sich mit einem Benutzernamen und einem Passwort anmelden. Zum Einrichten von Samba loggen Sie sich mit dem Benutzernamen root und dem Root-Passwort des Linux-Systems ein.
SWAT ist sehr übersichtlich aufgebaut, leicht zu bedienen und bietet zu jedem Parameter eine Online-Hilfe an. Da die wichtigsten Parameter auch im nächsten Abschnitt angesprochen werden, möchte ich hier nicht weiter auf die Benutzung von SWAT eingeben.
5. Samba 3.5 auf der Konsole konfigurieren
Die Konfiguration von Samba finden Sie in der Datei /etc/samba/smb.conf.
Benennen Sie zuerst die Beispiel-Konfiguration in smb.conf.samba3x um.
[root@centos5 ~]# mv /etc/samba/smb.conf /etc/samba/smb.conf.samba3x
Danach erstellen Sie eine neue smb.conf.
[root@centos5 ~]# vi /etc/samba/smb.conf
Eine einfache Konfiguration könnte wie folgt aussehen.
[global]
workgroup = HOME
netbios name = SERVER
server string = SERVER.HOME.LAN
[public]
path = /data/public
valid users = georg
read list = georg
write list = georg
read only = no
create mask = 0664
directory mask = 0775
workgroup = HOME
netbios name = SERVER
server string = SERVER.HOME.LAN
[public]
path = /data/public
valid users = georg
read list = georg
write list = georg
read only = no
create mask = 0664
directory mask = 0775
Im Abschnitt [global] werden die allgemeinen Einstellungen für Samba vorgenommen. Mit dem Parameter workgroup gibt man die Arbeitsgruppe zu welcher der Samba-Server gehören soll an. Durch den Parameter netbios name wird in dieser Beispielkonfiguration der Rechnername festgelegt, welcher später in der Netzwerkumgebung erscheinen soll. Eine kurze Computerbeschreibung kann man mit dem Parameter server string angeben.
Nach den allgemeinen Einstellungen folgen die Abschnitte für die einzelnen Freigaben. Jede Freigabe muss einen eindeutigen Namen erhalten, welcher in eckigen Klammern angegeben wird und später in der Netzwerkumgebung angezeigt wird. Danach folgen die einzelnen Einstellungen für diese Freigabe. Mit dem Parameter comment können Sie einen kurzen Kommentar für die Freigabe eintragen, welcher später ebenfalls in der Netzwerkumgebung angezeigt wird. Durch path wird der Pfad zum lokalen Verzeichnis angegeben. Dieses Verzeichnis muss beim Starten des Samba-Daemons existieren und über die benötigten Rechte verfügen, damit die Benutzer die enthaltenen Dateien lesen, bearbeiten und neue Dateien anlegen können.
Mit dem Parameter valid users kann man die Benutzer angeben, welchen der Zugriff auf diese Freigabe gestattet wird. Die einzelnen Benutzer werden mit einem Komma und einem Leerzeichen getrennt aufgelistet. Sollten Sie Benutzer ausschließen wollen, geben Sie diese mit invalid users an. Durch die Parameter read list und write list kann man einzelnen Benutzern die Berechtigung zum Lesen und Schreiben geben. Jeder Benutzername, welchen Sie bei den Parametern valid users, invalid users, read list und write list angegeben haben, muss auf dem lokalen System und in der Benutzerdatenbank von Samba vorhanden sein. Sollten Sie hier Benutzer angeben, welche nicht existieren, können sich diese nicht am Samba-Daemon anmelden. Wie Sie die Benutzer anlegen und in die Benutzerdatenbank von Samba eintragen, wird im nächsten Abschnitt erklärt.
Wenn die Benutzer in der Freigabe Dateien anlegen oder bearbeiten können sollen, müssen Sie den Parameter read only auf den Wert no setzen. Durch create mask und directory mask legt man fest, mit welchen Linux-Rechten, Dateien und Verzeichnisse in dem lokalen Verzeichnis angelegt werden sollen.
Mit dem Programm testparm können Sie die Konfigurationsdatei /etc/samba/smb.conf auf Syntaxfehler überprüfen. Dies sollten Sie nach jeder manuellen Änderung durchführen um Syntaxfehler auszuschließen.
[root@centos5 ~]# testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[public]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
[global]
workgroup = HOME
netbios name = SERVER
server string = SERVER.HOME.LAN
[public]
path = /data/public
valid users = georg
read list = georg
write list = georg
read only = No
create mask = 0664
directory mask = 0775
Load smb config files from /etc/samba/smb.conf
Processing section "[public]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
[global]
workgroup = HOME
netbios name = SERVER
server string = SERVER.HOME.LAN
[public]
path = /data/public
valid users = georg
read list = georg
write list = georg
read only = No
create mask = 0664
directory mask = 0775
Nachdem Sie die Konfigurationsdatei auf Syntaxfehler überprüft haben, sollten Sie sicherstellen, dass alle lokalen Verzeichnisse existieren, welche Sie in der Konfigurationsdatei angegeben haben. Wenn dies nicht der Fall ist, erstellen Sie diese und ändern die Rechte entsprechend. In diesem Beispiel erstellen wir das Verzeichnis /data/public und ändern die Zugriffsrechte auf 777 damit wir beim ersten Test Probleme mit den Zugriffsrechten ausschließen können.
[root@centos5 ~]# mkdir -p /data/public
[root@centos5 ~]# chmod 0777 /data/public
[root@centos5 ~]# chmod 0777 /data/public
6. SELinux konfigurieren
Bei CentOS 5 ist standardmäßig SELinux (Security Enhanced Linux) aktiviert und läuft im Enforcing Modus. Falls Sie SELinux nicht deaktivert haben (siehe SELinux: SELinux deaktivieren) oder im Permissive Modus betreiben (siehe SELinux: SELinux-Betriebsmodus ändern), müssen Sie den Security Context für das Verzeichnis /data anlegen.
Erstellen Sie zuerst einen neuen Security Context für das Verzeichnis /data. Dieser wird von semanage in der Datei /etc/selinux/targeted/contexts/files/file_contexts.local abgelegt.
[root@centos5 ~]# semanage fcontext -a -t samba_share_t '/data(/.*)?'
Anschließend versehen Sie das Verzeichnis /data und dessen Inhalt mit dem neuen Security Context.
[root@centos5 ~]# restorecon -R -v /data
restorecon reset /data context root:object_r:default_t:s0->system_u:object_r:samba_share_t:s0
restorecon reset /data/public context root:object_r:default_t:s0->system_u:object_r:samba_share_t:s0
restorecon reset /data context root:object_r:default_t:s0->system_u:object_r:samba_share_t:s0
restorecon reset /data/public context root:object_r:default_t:s0->system_u:object_r:samba_share_t:s0
Überprüfen können Sie dies mit den folgenden Befehlen.
[root@centos5 ~]# ls -ldZ /data/
drwxr-xr-x root root system_u:object_r:samba_share_t /data/
[root@centos5 ~]# ls -ldZ /data/public/
drwxrwxrwx root root system_u:object_r:samba_share_t /data/public/
drwxr-xr-x root root system_u:object_r:samba_share_t /data/
[root@centos5 ~]# ls -ldZ /data/public/
drwxrwxrwx root root system_u:object_r:samba_share_t /data/public/
Hinweis: Sollten Sie SELinux im Enforcing Modus betreiben und Probleme mit Samba auftreten, überprüfen Sie bei der Fehlersuche auch die Logdatei /var/log/audit/audit.log.
7. Benutzeraccounts einrichten
Wie bereits erwähnt, müssen die in der Konfigurationsdatei /etc/samba/smb.conf eingetragenen Benutzer auch einen gleichlautenden Account auf dem Linux-System besitzen. Diese Benutzer-Accounts können Sie mit dem folgenden Befehl erstellen. Durch die Option -m wird automatisch ein privates Verzeichnis unter /home für den Benutzer angelegt. Durch -s /sbin/nologin wird verhindert, dass sich der Benutzer lokal an einer Konsole oder über SSH anmelden kann. Mit der Option -g wird der Benutzer zur Gruppe users hinzugefügt.
[root@centos5 ~]# useradd -m -s /sbin/nologin -g users georg
Durch den folgenden Befehl wird der Benutzer in die Benutzerdatenbank von Samba eingetragen. Dabei müssen Sie das Passwort festlegen, welches für den späteren Zugriff auf den Samba-Server benötigt wird.
[root@centos5 ~]# smbpasswd -a georg
8. Samba starten
Da Samba jetzt vollständig konfiguriert wurde, können Sie den Samba-Daemon und den NetBIOS Name Server starten.
[root@centos5 ~]# service smb start
SMB-Dienste starten: [ OK ]
[root@centos5 ~]# service nmb start
NMB-Dienste starten: [ OK ]
SMB-Dienste starten: [ OK ]
[root@centos5 ~]# service nmb start
NMB-Dienste starten: [ OK ]
Wenn keine Probleme aufgetreten sind, tragen Sie den Samba-Daemon und den NetBIOS Name Server in die entsprechenden Runlevel ein.
[root@centos5 ~]# chkconfig smb on
[root@centos5 ~]# chkconfig nmb on
[root@centos5 ~]# chkconfig nmb on
9. Weiterführende Tutorials
Samba 3: Benutzerverwaltung mit smbpasswd
Samba 3: Konfigurationsdatei überprüfen
Samba 3: Bestehende Verbindungen anzeigen
Samba 3: Samba an bestimmte Netzwerkinterfaces binden
Samba 3: Samba als Local Master Browser (LMB) konfigurieren
Samba 3: Samba als Domain Master Browser (DMB) konfigurieren
Samba 3: Samba als WINS-Server konfigurieren
Samba 3: WINS-Server eintragen
Samba 3: Heimatverzeichnisse freigeben
Samba 3: Details zu Samba-Benutzern anzeigen lassen
Samba 3: Zugriffsrechte vererben
Samba 3: testparm meldet "rlimit_max: rlimit_max (1024) below minimum Windows limit (16384)"
Samba 3: Samba-Version auslesen
Samba 3: Sym-Links verfolgen
Samba 3: Log-Level einstellen
Samba 3: Authentifizierung mit LM-Hashes erlauben
Samba 3: SWAT meldet NT_STATUS_CONNECTION_REFUSED
Samba 3: Samba- und Unix/Linux-Passwort synchronisieren
Samba 3: Minimale Passwortlänge festlegen
Samba 3: Passwort-History einrichten
Samba 3: Gültigkeit der Samba-Passwörter festlegen
Samba 3: Benutzer-Accounts bei fehlerhaften Login-Versuchen sperren
Dieser Eintrag wurde am 23.06.2011 erstellt und zuletzt am 24.01.2016 bearbeitet.
Direkter Link zu dieser Seite: http://www.gtkdb.de/index_33_1315.html
[ Zur Startseite ] [ Zur Kategorie ]
© 2004-2021 by Georg Kainzbauer