Linux - Netzwerk und Serveradminstration SAMBA: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 6: Zeile 6:
 
* Der Host soll im ''SERVER''-Netzwerk liegen
 
* Der Host soll im ''SERVER''-Netzwerk liegen
 
* statische IP-Adresse nach dem Netzwerkplan setzen (''/etc/network/interfaces'')
 
* statische IP-Adresse nach dem Netzwerkplan setzen (''/etc/network/interfaces'')
* Hostname ändern zu ''samba''
+
* Hostname ändern zu ''smb''
 
* SSH-Server anpassen
 
* SSH-Server anpassen
 
* SSH-Schlüssel des Kit Hosts für User ''kit''  hinterlegen
 
* SSH-Schlüssel des Kit Hosts für User ''kit''  hinterlegen
=== Netzkonfiguration DNS-Server (DMZ) ===
+
=== Netzkonfiguration SMB ===
  
 
{| class="wikitable" style="background-color: #f2f2f2;"
 
{| class="wikitable" style="background-color: #f2f2f2;"
 
! Parameter !! Wert !! Erläuterung
 
! Parameter !! Wert !! Erläuterung
 
|-
 
|-
| '''Netzwerk (NIC)''' || LAN || Interface-Zuweisung in VirtualBox
+
| '''Netzwerk (NIC)''' || SERVER|| Interface-Zuweisung in VirtualBox
 
|-
 
|-
 
| '''IP''' || 10.2XX.1.2 || Statische IP
 
| '''IP''' || 10.2XX.1.2 || Statische IP
Zeile 33: Zeile 33:
 
*[[Anpassen des Debian Templates]]
 
*[[Anpassen des Debian Templates]]
  
==Installation==
+
== Ziel ==
*apt update
+
*Ein einfacher Samba-Server wird schrittweise aufgebaut und getestet – von Public Share bis Home-Verzeichnis inkl. Debugging.
*apt install samba
 
  
== Netzwerkfreigaben einrichten ==
+
== Installation ==
Legen Sie eine Sicherheitskopie der Originalkonfigurationsdatei an
+
=== Pakete installieren ===
* '''cp -v ''/etc/samba/smb.conf''{,.orig}'''
+
*sudo apt update
Diese ist wohl kommentiert und kann als Hilfe/Dokumentation dienen
+
*sudo apt install samba smbclient cifs-utils -y
;Denn Zugriff sollte man mit grafischen Client testen können
+
 
=Mounten eines Shares=
+
=== Dienststatus prüfen ===
*[[SMB mount]]
+
*systemctl status smbd
 +
 
 +
== Netzwerk-Check (vorher) ==
 +
*sudo ss -tulpen | grep smb
 +
*sudo ss -tulpen | grep 445
 +
*sudo ss -tulpen | grep 139
 +
 
 +
;Erklärung
 +
Samba nutzt primär TCP 445 (modern). Port 139 (NetBIOS) ist Legacy und kann später deaktiviert werden.
 +
 
 +
== Einfachste Konfiguration (Public Share) ==
 +
=== Konfigurationsdatei bearbeiten ===
 +
*sudo nano /etc/samba/smb.conf
 +
 
 +
<pre>
 +
[global]
 +
  workgroup = WORKGROUP
 +
  server string = Samba Server
 +
  security = user
 +
  map to guest = Bad User
 +
 
 +
[public]
 +
  path = /srv/samba/public
 +
  browsable = yes
 +
  writable = yes
 +
  guest ok = yes
 +
  read only = no
 +
</pre>
 +
*[[Optionen Samba Grundkurs 1]]
 +
 
 +
=== Verzeichnis anlegen ===
 +
*sudo mkdir -p /srv/samba/public
 +
*sudo chmod 777 /srv/samba/public
 +
 
 +
=== Dienst neu starten ===
 +
*sudo systemctl restart smbd
 +
 
 +
== Test (Public Share) ==
 +
=== Freigaben anzeigen ===
 +
*smbclient -L localhost -N
 +
 
 +
=== Auf Share zugreifen ===
 +
*smbclient //localhost/public -N
 +
 
 +
=== Testdatei erstellen ===
 +
*put /etc/hostname test.txt
 +
 
 +
== Debug zwischendurch ==
 +
=== Logs beobachten ===
 +
*sudo journalctl -u smbd -f
 +
 
 +
== Testparm ==
 +
=== Alle aktiven Optionen anzeigen ===
 +
*testparm
 +
 
 +
=== Nur effektive Konfiguration ohne Kommentare ===
 +
*testparm -s
 +
 
 +
=== Bestimmten Parameter prüfen ===
 +
*testparm -v | grep parametername
 +
 
 +
=== Alle verfügbaren Optionen anzeigen ===
 +
*testparm -v
 +
 
 +
=== Nur eine Freigabe anzeigen ===
 +
*testparm -s --section-name=public
 +
 
 +
=== Hinweis ===
 +
*testparm zeigt nur die tatsächlich gesetzten bzw. wirksamen Optionen an.
 +
*Mit -v werden zusätzlich alle Default-Werte angezeigt.
 +
 
 +
== Benutzer anlegen ==
 +
=== Linux-Benutzer anlegen <nowiki>(Password: 123Start$)</nowiki> ===
 +
*sudo useradd -m -s /bin/bash -G sambashare martha
 +
*sudo passwd martha
 +
 
 +
=== Samba-Benutzer hinzufügen ===
 +
*sudo smbpasswd -a martha
 +
 
 +
=== Kit User hinzufügen <nowiki>(Password: kit)</nowiki> ===
 +
*sudo smbpasswd -a kit
 +
 
 +
;Erklärung
 +
Samba verwaltet eigene Passwörter. Linux-User + Samba-User sind getrennt → daher zwei Passwörter.
 +
 
 +
== Geschützter Share (Login erforderlich) ==
 +
=== Konfiguration erweitern ===
 +
*sudo nano /etc/samba/smb.conf
 +
 
 +
<pre>
 +
[secure]
 +
  path = /srv/samba/secure
 +
  browsable = yes
 +
  writable = yes
 +
  guest ok = no
 +
  valid users = martha
 +
</pre>
 +
*[[Optionen Samba Grundkurs 2]]
 +
 
 +
=== Verzeichnis vorbereiten ===
 +
*sudo mkdir -p /srv/samba/secure
 +
*sudo chown root:sambashare /srv/samba/secure
 +
*sudo chmod 770 /srv/samba/secure
 +
 
 +
=== Dienst neu starten ===
 +
*sudo systemctl restart smbd
 +
 
 +
== Test (Authentifiziert) ==
 +
=== martha ===
 +
*smbclient //localhost/secure -U martha%123Start$
 +
 
 +
=== kit ===
 +
*smbclient //localhost/secure -U kit%kit
 +
 
 +
== Home-Verzeichnisse ==
 +
=== Konfiguration aktivieren ===
 +
*sudo nano /etc/samba/smb.conf
 +
 
 +
<pre>
 +
[homes]
 +
  comment = Home Directories
 +
  browseable = no
 +
  writable = yes
 +
</pre>
 +
*[[Optionen Samba Grundkurs 3]]
 +
 
 +
=== Dienst neu starten ===
 +
*sudo systemctl restart smbd
 +
 
 +
== Test Home ==
 +
*smbclient //localhost/martha -U martha%123Start$
 +
*smbclient //localhost/martha -U kit%kit
 +
 
 +
== Sicherheitsmassnahmen ==
 +
*sudo ss -tulpen | egrep "137|138|139|445"
 +
 
 +
=== Samba Ports und Dienste Erklärung ===
 +
==== Überblick ====
 +
*Die Ausgabe zeigt offene Netzwerk-Ports und die dazugehörigen Samba-Dienste (smbd und nmbd).
 +
 
 +
==== UDP 137 ====
 +
*NetBIOS Name Service (nmbd)
 +
 
 +
==== UDP 138 ====
 +
*NetBIOS Datagram Service (nmbd)
 +
 
 +
==== TCP 139 ====
 +
*NetBIOS Session Service (smbd)
 +
 
 +
==== TCP 445 ====
 +
*Direct SMB über TCP (smbd)
 +
 
 +
==== nmbd ====
 +
*Dienst für NetBIOS
 +
 
 +
==== smbd ====
 +
*Hauptdienst für Datei- und Druckfreigaben
 +
 
 +
==== Interpretation ====
 +
*NetBIOS aktiv, SMB modern + legacy parallel
 +
 
 +
==== Fazit ====
 +
*Mischbetrieb aktiv
 +
 
 +
== NetBIOS deaktivieren und Ports prüfen ==
 +
 
 +
=== Schritte ===
 +
 
 +
==== systemctl stop nmbd ====
 +
*sudo systemctl stop nmbd
 +
 
 +
==== systemctl disable nmbd ====
 +
*sudo systemctl disable nmbd
 +
 
 +
==== ss -4tulpen | egrep "137|138|139|445" ====
 +
*sudo ss -4tulpen | egrep "137|138|139|445"
 +
 
 +
=== Ergebnis ===
 +
*NetBIOS (137/138) sollte weg sein.
 +
*Optional auch 139, wenn sauber konfiguriert.
 +
*Nur noch Port 445 aktiv → moderner SMB-Betrieb.
 +
 
 +
== Warum NetBIOS abschalten ==
 +
 
 +
=== Gründe ===
 +
 
 +
==== Sicherheit ====
 +
*NetBIOS ist alt und anfälliger für Angriffe (z. B. Spoofing, Information Leakage).
 +
 
 +
==== Weniger Angriffsfläche ====
 +
*Ports 137/138/139 verschwinden → weniger offene Dienste im Netzwerk.
 +
 
 +
==== Moderne Systeme ====
 +
*Aktuelle Windows/Linux nutzen direkt SMB über Port 445.
 +
 
 +
==== Saubere Architektur ====
 +
*Namensauflösung läuft heute über DNS statt NetBIOS-Broadcasts.
 +
 
 +
==== Weniger Traffic ====
 +
*NetBIOS erzeugt unnötige Broadcasts im Netzwerk.
 +
 
 +
=== Fazit ===
 +
*NetBIOS ist Legacy → in modernen Netzen überflüssig und besser deaktivieren.
 +
 
 +
== SMB auf Port 445 beschränken ==
 +
=== Konfiguration anpassen ===
 +
*sudo nano /etc/samba/smb.conf
 +
 
 +
<pre>
 +
[global]
 +
  smb ports = 445
 +
</pre>
 +
 
 +
;Neu laden
 +
*sudo systemctl restart smbd
 +
 
 +
;Testen
 +
*sudo ss -4tulpen | egrep "137|138|139|445"
 +
 
 +
;Erklärung
 +
*Samba lauscht nur noch auf Port 445 (Direct SMB).
 +
*Port 139 (NetBIOS) wird nicht mehr verwendet.
 +
*Zugriff erfolgt ausschließlich über moderne SMB-Verbindungen.
 +
 
 +
== Debian Client Mount (grafischer Client) ==
 +
 
 +
=== Pakete installieren ===
 +
*sudo apt update
 +
*sudo apt install cifs-utils -y
 +
 
 +
=== Mountpunkt erstellen ===
 +
*sudo mkdir -p /mnt/smb
 +
 
 +
=== Temporärer Mount ===
 +
*sudo mount -t cifs //smb/secure /mnt/smb -o username=martha
 +
 
 +
=== Test ===
 +
*ls /mnt/smb
 +
 
 +
=== Credentials-Datei erstellen ===
 +
*sudo nano /root/.smbcred
 +
 
 +
<pre>
 +
username=martha
 +
password=123Start$
 +
</pre>
 +
 
 +
=== Rechte setzen ===
 +
*sudo chmod 600 /root/.smbcred
 +
 
 +
=== Mount mit Credentials ===
 +
*sudo mount -t cifs //smb/secure /mnt/smb -o credentials=/root/.smbcred
 +
 
 +
=== Persistenter Mount (/etc/fstab) ===
 +
*sudo nano /etc/fstab
 +
 
 +
<pre>
 +
//smb/secure /mnt/smb cifs credentials=/root/.smbcred,iocharset=utf8,_netdev 0 0
 +
</pre>
 +
 
 +
=== Erklärung der Felder ===
 +
{| class="wikitable"
 +
! Feld !! Bedeutung
 +
|-
 +
| //smb/secure || SMB-Share (Servername + Freigabe)
 +
|-
 +
| /mnt/smb || lokaler Mountpunkt
 +
|-
 +
| cifs || Dateisystemtyp für SMB
 +
|-
 +
| credentials=/root/.smbcred || Benutzername/Passwort aus Datei
 +
|-
 +
| iocharset=utf8 || korrekte Darstellung von Umlauten
 +
|-
 +
| _netdev || Mount erst nach Netzwerkstart
 +
|-
 +
| 0 || kein Dump (Backup irrelevant)
 +
|-
 +
| 0 || keine automatische fsck-Prüfung
 +
|}
 +
 
 +
=== Test ohne Reboot ===
 +
*sudo mount -a
 +
 
 +
=== Prüfung ===
 +
*ls /mnt/smb
 +
 
 +
=== Reboot und Test ===
 +
*sudo reboot
 +
*ls /mnt/smb
 +
 
 +
;Erklärung
 +
*/etc/fstab sorgt für automatisches Mounten beim Systemstart.
 +
*Credentials-Datei verhindert Klartext-Passwörter in der fstab.
 +
 
 +
== Typische Fehleranalyse ==
 +
=== Verbindung testen ===
 +
*smbclient -L smb -U martha%123Start$
 +
 
 +
=== Namensauflösung prüfen ===
 +
*ping SERVER-IP
 +
 
 +
=== Firewall prüfen ===
 +
*sudo ss -tulpen | grep 445
 +
 
 +
=== Live-Logs ===
 +
*sudo journalctl -u smbd -f
 +
 
 +
== Optional: Windows Client ==
 +
\\SERVER-IP\public
 +
 
 +
\\SERVER-IP\secure
 +
 
 +
== Fazit ==
 +
*Public → ohne Login
 +
*Secure → mit Benutzer
 +
*Homes → automatisch pro User
 +
*Port 445 → Standard
 +
*139/NetBIOS → abschaltbar
 +
 
 +
== Gruppenbasierte Freigabe ==
 +
=== Gruppe anlegen ===
 +
*sudo groupadd smbgruppe
 +
 
 +
=== Benutzer hinzufügen ===
 +
*sudo usermod -aG smbgruppe kit
 +
 
 +
=== Verzeichnis vorbereiten ===
 +
*sudo mkdir -p /srv/samba/group
 +
*sudo chown root:smbgruppe /srv/samba/group
 +
*sudo chmod 770 /srv/samba/group
 +
 
 +
=== Konfiguration ===
 +
*sudo nano /etc/samba/smb.conf
 +
 
 +
<pre>
 +
[group]
 +
  path = /srv/samba/group
 +
  browsable = yes
 +
  writable = yes
 +
  guest ok = no
 +
  valid users = @smbgruppe
 +
</pre>
 +
 
 +
=== Dienst neu starten ===
 +
*sudo systemctl restart smbd
 +
 
 +
== Test ==
 +
*smbclient //localhost/group -U kit%kit
 +
*smbclient //localhost/group -U martha%123Start$
 +
 
 +
;Erklärung
 +
*Zugriff erfolgt nur für Mitglieder der Gruppe smbgruppe.
 +
*@ vor dem Gruppennamen bedeutet Gruppenfreigabe.
 +
*Linux-Rechte (770) und Samba valid users greifen gemeinsam.
 +
 
 +
== ACLs ==
 +
=== Installation ===
 +
*sudo apt install acl -y
 +
 
 +
=== ACL setzen ===
 +
*sudo setfacl -m u:kit:rwx /srv/samba/group
 +
 
 +
=== Default ACL ===
 +
*sudo setfacl -d -m u:kit:rwx /srv/samba/group
 +
 
 +
=== Anzeigen ===
 +
*getfacl /srv/samba/group
 +
 
 +
;Erklärung
 +
*ACLs erlauben zusätzliche Benutzerrechte unabhängig von Gruppen.
 +
*-m setzt Rechte für einen Benutzer.
 +
*-d sorgt dafür, dass neue Dateien diese Rechte automatisch erben.
 +
 
 +
== Samba + ACL ==
 +
*sudo nano /etc/samba/smb.conf
 +
 
 +
<pre>
 +
[group]
 +
  path = /srv/samba/group
 +
  browsable = yes
 +
  writable = yes
 +
  guest ok = no
 +
  valid users = @smbgruppe
 +
  create mask = 0660
 +
  directory mask = 0770
 +
</pre>
 +
 
 +
;Erklärung
 +
*create mask bestimmt Rechte neuer Dateien.
 +
*directory mask bestimmt Rechte neuer Verzeichnisse.
 +
*0660 = lesen/schreiben für Owner + Gruppe.
 +
*0770 = volle Rechte für Owner + Gruppe.
 +
 
 +
== Force Group ==
 +
*sudo nano /etc/samba/smb.conf
 +
 
 +
<pre>
 +
[group]
 +
  path = /srv/samba/group
 +
  browsable = yes
 +
  writable = yes
 +
  guest ok = no
 +
  valid users = @smbgruppe
 +
  force group = smbgruppe
 +
  create mask = 0660
 +
  directory mask = 0770
 +
</pre>
 +
 
 +
;Erklärung
 +
*Alle Dateien gehören automatisch der Gruppe smbgruppe.
 +
*Verhindert Probleme bei unterschiedlichen Primärgruppen.
 +
*Wichtig bei mehreren Nutzern im gleichen Share.
 +
 
 +
== Setgid ==
 +
*sudo chmod g+s /srv/samba/group
 +
 
 +
;Erklärung
 +
*Neue Dateien übernehmen automatisch die Gruppen-ID des Verzeichnisses.
 +
*Ergänzt force group auf Dateisystemebene.
 +
 
 +
== Fehleranalyse ==
 +
=== Zugriff verweigert ===
 +
*sudo chmod 700 /srv/samba/group
 +
*sudo chmod 770 /srv/samba/group
 +
 
 +
;Erklärung
 +
*Zu restriktive Rechte blockieren den Zugriff.
 +
*770 erlaubt Zugriff für Gruppe.
 +
 
 +
=== Benutzer fehlt ===
 +
*sudo deluser user1 smbgruppe
 +
*sudo usermod -aG smbgruppe user1
 +
 
 +
;Erklärung
 +
*Nur Gruppenmitglieder dürfen zugreifen.
 +
*Änderungen wirken erst nach neuer Anmeldung.
 +
 
 +
=== Samba User fehlt ===
 +
*sudo smbpasswd -x user1
 +
*sudo smbpasswd -a user1
 +
 
 +
;Erklärung
 +
*Samba benötigt eigene Benutzerdatenbank.
 +
*Linux-User allein reicht nicht.
 +
 
 +
=== Dienst gestoppt ===
 +
*sudo systemctl stop smbd
 +
*sudo systemctl start smbd
 +
 
 +
;Erklärung
 +
*Ohne smbd kein Zugriff möglich.
 +
 
 +
== Debug ==
 +
*smbstatus
 +
*smbstatus -p
 +
*testparm
 +
*sudo ss -tulpen | grep 445
 +
 
 +
;Erklärung
 +
*smbstatus zeigt aktive Verbindungen und Dateien.
 +
*testparm prüft die Konfiguration.
 +
*ss zeigt offene Ports.
 +
 
 +
== Persistenter Mount ==
 +
*sudo nano /etc/fstab
 +
 
 +
<pre>
 +
//SERVER-IP/group /mnt/smb cifs credentials=/root/.smbcred,iocharset=utf8 0 0
 +
</pre>
 +
 
 +
;Erklärung
 +
*Eintrag sorgt für automatisches Mounten beim Systemstart.
 +
*iocharset=utf8 verhindert Probleme mit Umlauten.

Aktuelle Version vom 1. April 2026, 13:22 Uhr

SMB Server

Vorbereitungen

  • VirtualBox Server-Vorlage mit neuen MAC-Adressen klonen
  • Der Host soll im SERVER-Netzwerk liegen
  • statische IP-Adresse nach dem Netzwerkplan setzen (/etc/network/interfaces)
  • Hostname ändern zu smb
  • SSH-Server anpassen
  • SSH-Schlüssel des Kit Hosts für User kit hinterlegen

Netzkonfiguration SMB

Parameter Wert Erläuterung
Netzwerk (NIC) SERVER Interface-Zuweisung in VirtualBox
IP 10.2XX.1.2 Statische IP
CIDR 24 Classless Inter-Domain Routing Präfixlänge
GW 10.2XX.1.1 GATEWAY
NS 10.88.2XX.21 Resolver
FQDN smb.it2XX.int Fully Qualified Domain Name
SHORT smb baShort Name
DOM it2XX.int Domain Name
Anpassen des Templates

Ziel

  • Ein einfacher Samba-Server wird schrittweise aufgebaut und getestet – von Public Share bis Home-Verzeichnis inkl. Debugging.

Installation

Pakete installieren

  • sudo apt update
  • sudo apt install samba smbclient cifs-utils -y

Dienststatus prüfen

  • systemctl status smbd

Netzwerk-Check (vorher)

  • sudo ss -tulpen | grep smb
  • sudo ss -tulpen | grep 445
  • sudo ss -tulpen | grep 139
Erklärung

Samba nutzt primär TCP 445 (modern). Port 139 (NetBIOS) ist Legacy und kann später deaktiviert werden.

Einfachste Konfiguration (Public Share)

Konfigurationsdatei bearbeiten

  • sudo nano /etc/samba/smb.conf
[global]
   workgroup = WORKGROUP
   server string = Samba Server
   security = user
   map to guest = Bad User

[public]
   path = /srv/samba/public
   browsable = yes
   writable = yes
   guest ok = yes
   read only = no

Verzeichnis anlegen

  • sudo mkdir -p /srv/samba/public
  • sudo chmod 777 /srv/samba/public

Dienst neu starten

  • sudo systemctl restart smbd

Test (Public Share)

Freigaben anzeigen

  • smbclient -L localhost -N

Auf Share zugreifen

  • smbclient //localhost/public -N

Testdatei erstellen

  • put /etc/hostname test.txt

Debug zwischendurch

Logs beobachten

  • sudo journalctl -u smbd -f

Testparm

Alle aktiven Optionen anzeigen

  • testparm

Nur effektive Konfiguration ohne Kommentare

  • testparm -s

Bestimmten Parameter prüfen

  • testparm -v | grep parametername

Alle verfügbaren Optionen anzeigen

  • testparm -v

Nur eine Freigabe anzeigen

  • testparm -s --section-name=public

Hinweis

  • testparm zeigt nur die tatsächlich gesetzten bzw. wirksamen Optionen an.
  • Mit -v werden zusätzlich alle Default-Werte angezeigt.

Benutzer anlegen

Linux-Benutzer anlegen (Password: 123Start$)

  • sudo useradd -m -s /bin/bash -G sambashare martha
  • sudo passwd martha

Samba-Benutzer hinzufügen

  • sudo smbpasswd -a martha

Kit User hinzufügen (Password: kit)

  • sudo smbpasswd -a kit
Erklärung

Samba verwaltet eigene Passwörter. Linux-User + Samba-User sind getrennt → daher zwei Passwörter.

Geschützter Share (Login erforderlich)

Konfiguration erweitern

  • sudo nano /etc/samba/smb.conf
[secure]
   path = /srv/samba/secure
   browsable = yes
   writable = yes
   guest ok = no
   valid users = martha

Verzeichnis vorbereiten

  • sudo mkdir -p /srv/samba/secure
  • sudo chown root:sambashare /srv/samba/secure
  • sudo chmod 770 /srv/samba/secure

Dienst neu starten

  • sudo systemctl restart smbd

Test (Authentifiziert)

martha

  • smbclient //localhost/secure -U martha%123Start$

kit

  • smbclient //localhost/secure -U kit%kit

Home-Verzeichnisse

Konfiguration aktivieren

  • sudo nano /etc/samba/smb.conf
[homes]
   comment = Home Directories
   browseable = no
   writable = yes

Dienst neu starten

  • sudo systemctl restart smbd

Test Home

  • smbclient //localhost/martha -U martha%123Start$
  • smbclient //localhost/martha -U kit%kit

Sicherheitsmassnahmen

  • sudo ss -tulpen | egrep "137|138|139|445"

Samba Ports und Dienste Erklärung

Überblick

  • Die Ausgabe zeigt offene Netzwerk-Ports und die dazugehörigen Samba-Dienste (smbd und nmbd).

UDP 137

  • NetBIOS Name Service (nmbd)

UDP 138

  • NetBIOS Datagram Service (nmbd)

TCP 139

  • NetBIOS Session Service (smbd)

TCP 445

  • Direct SMB über TCP (smbd)

nmbd

  • Dienst für NetBIOS

smbd

  • Hauptdienst für Datei- und Druckfreigaben

Interpretation

  • NetBIOS aktiv, SMB modern + legacy parallel

Fazit

  • Mischbetrieb aktiv

NetBIOS deaktivieren und Ports prüfen

Schritte

systemctl stop nmbd

  • sudo systemctl stop nmbd

systemctl disable nmbd

  • sudo systemctl disable nmbd

ss -4tulpen | egrep "137|138|139|445"

  • sudo ss -4tulpen | egrep "137|138|139|445"

Ergebnis

  • NetBIOS (137/138) sollte weg sein.
  • Optional auch 139, wenn sauber konfiguriert.
  • Nur noch Port 445 aktiv → moderner SMB-Betrieb.

Warum NetBIOS abschalten

Gründe

Sicherheit

  • NetBIOS ist alt und anfälliger für Angriffe (z. B. Spoofing, Information Leakage).

Weniger Angriffsfläche

  • Ports 137/138/139 verschwinden → weniger offene Dienste im Netzwerk.

Moderne Systeme

  • Aktuelle Windows/Linux nutzen direkt SMB über Port 445.

Saubere Architektur

  • Namensauflösung läuft heute über DNS statt NetBIOS-Broadcasts.

Weniger Traffic

  • NetBIOS erzeugt unnötige Broadcasts im Netzwerk.

Fazit

  • NetBIOS ist Legacy → in modernen Netzen überflüssig und besser deaktivieren.

SMB auf Port 445 beschränken

Konfiguration anpassen

  • sudo nano /etc/samba/smb.conf
[global]
   smb ports = 445
Neu laden
  • sudo systemctl restart smbd
Testen
  • sudo ss -4tulpen | egrep "137|138|139|445"
Erklärung
  • Samba lauscht nur noch auf Port 445 (Direct SMB).
  • Port 139 (NetBIOS) wird nicht mehr verwendet.
  • Zugriff erfolgt ausschließlich über moderne SMB-Verbindungen.

Debian Client Mount (grafischer Client)

Pakete installieren

  • sudo apt update
  • sudo apt install cifs-utils -y

Mountpunkt erstellen

  • sudo mkdir -p /mnt/smb

Temporärer Mount

  • sudo mount -t cifs //smb/secure /mnt/smb -o username=martha

Test

  • ls /mnt/smb

Credentials-Datei erstellen

  • sudo nano /root/.smbcred
username=martha
password=123Start$

Rechte setzen

  • sudo chmod 600 /root/.smbcred

Mount mit Credentials

  • sudo mount -t cifs //smb/secure /mnt/smb -o credentials=/root/.smbcred

Persistenter Mount (/etc/fstab)

  • sudo nano /etc/fstab
//smb/secure /mnt/smb cifs credentials=/root/.smbcred,iocharset=utf8,_netdev 0 0

Erklärung der Felder

Feld Bedeutung
//smb/secure SMB-Share (Servername + Freigabe)
/mnt/smb lokaler Mountpunkt
cifs Dateisystemtyp für SMB
credentials=/root/.smbcred Benutzername/Passwort aus Datei
iocharset=utf8 korrekte Darstellung von Umlauten
_netdev Mount erst nach Netzwerkstart
0 kein Dump (Backup irrelevant)
0 keine automatische fsck-Prüfung

Test ohne Reboot

  • sudo mount -a

Prüfung

  • ls /mnt/smb

Reboot und Test

  • sudo reboot
  • ls /mnt/smb
Erklärung
  • /etc/fstab sorgt für automatisches Mounten beim Systemstart.
  • Credentials-Datei verhindert Klartext-Passwörter in der fstab.

Typische Fehleranalyse

Verbindung testen

  • smbclient -L smb -U martha%123Start$

Namensauflösung prüfen

  • ping SERVER-IP

Firewall prüfen

  • sudo ss -tulpen | grep 445

Live-Logs

  • sudo journalctl -u smbd -f

Optional: Windows Client

\\SERVER-IP\public
\\SERVER-IP\secure

Fazit

  • Public → ohne Login
  • Secure → mit Benutzer
  • Homes → automatisch pro User
  • Port 445 → Standard
  • 139/NetBIOS → abschaltbar

Gruppenbasierte Freigabe

Gruppe anlegen

  • sudo groupadd smbgruppe

Benutzer hinzufügen

  • sudo usermod -aG smbgruppe kit

Verzeichnis vorbereiten

  • sudo mkdir -p /srv/samba/group
  • sudo chown root:smbgruppe /srv/samba/group
  • sudo chmod 770 /srv/samba/group

Konfiguration

  • sudo nano /etc/samba/smb.conf
[group]
   path = /srv/samba/group
   browsable = yes
   writable = yes
   guest ok = no
   valid users = @smbgruppe

Dienst neu starten

  • sudo systemctl restart smbd

Test

  • smbclient //localhost/group -U kit%kit
  • smbclient //localhost/group -U martha%123Start$
Erklärung
  • Zugriff erfolgt nur für Mitglieder der Gruppe smbgruppe.
  • @ vor dem Gruppennamen bedeutet Gruppenfreigabe.
  • Linux-Rechte (770) und Samba valid users greifen gemeinsam.

ACLs

Installation

  • sudo apt install acl -y

ACL setzen

  • sudo setfacl -m u:kit:rwx /srv/samba/group

Default ACL

  • sudo setfacl -d -m u:kit:rwx /srv/samba/group

Anzeigen

  • getfacl /srv/samba/group
Erklärung
  • ACLs erlauben zusätzliche Benutzerrechte unabhängig von Gruppen.
  • -m setzt Rechte für einen Benutzer.
  • -d sorgt dafür, dass neue Dateien diese Rechte automatisch erben.

Samba + ACL

  • sudo nano /etc/samba/smb.conf
[group]
   path = /srv/samba/group
   browsable = yes
   writable = yes
   guest ok = no
   valid users = @smbgruppe
   create mask = 0660
   directory mask = 0770
Erklärung
  • create mask bestimmt Rechte neuer Dateien.
  • directory mask bestimmt Rechte neuer Verzeichnisse.
  • 0660 = lesen/schreiben für Owner + Gruppe.
  • 0770 = volle Rechte für Owner + Gruppe.

Force Group

  • sudo nano /etc/samba/smb.conf
[group]
   path = /srv/samba/group
   browsable = yes
   writable = yes
   guest ok = no
   valid users = @smbgruppe
   force group = smbgruppe
   create mask = 0660
   directory mask = 0770
Erklärung
  • Alle Dateien gehören automatisch der Gruppe smbgruppe.
  • Verhindert Probleme bei unterschiedlichen Primärgruppen.
  • Wichtig bei mehreren Nutzern im gleichen Share.

Setgid

  • sudo chmod g+s /srv/samba/group
Erklärung
  • Neue Dateien übernehmen automatisch die Gruppen-ID des Verzeichnisses.
  • Ergänzt force group auf Dateisystemebene.

Fehleranalyse

Zugriff verweigert

  • sudo chmod 700 /srv/samba/group
  • sudo chmod 770 /srv/samba/group
Erklärung
  • Zu restriktive Rechte blockieren den Zugriff.
  • 770 erlaubt Zugriff für Gruppe.

Benutzer fehlt

  • sudo deluser user1 smbgruppe
  • sudo usermod -aG smbgruppe user1
Erklärung
  • Nur Gruppenmitglieder dürfen zugreifen.
  • Änderungen wirken erst nach neuer Anmeldung.

Samba User fehlt

  • sudo smbpasswd -x user1
  • sudo smbpasswd -a user1
Erklärung
  • Samba benötigt eigene Benutzerdatenbank.
  • Linux-User allein reicht nicht.

Dienst gestoppt

  • sudo systemctl stop smbd
  • sudo systemctl start smbd
Erklärung
  • Ohne smbd kein Zugriff möglich.

Debug

  • smbstatus
  • smbstatus -p
  • testparm
  • sudo ss -tulpen | grep 445
Erklärung
  • smbstatus zeigt aktive Verbindungen und Dateien.
  • testparm prüft die Konfiguration.
  • ss zeigt offene Ports.

Persistenter Mount

  • sudo nano /etc/fstab
//SERVER-IP/group /mnt/smb cifs credentials=/root/.smbcred,iocharset=utf8 0 0
Erklärung
  • Eintrag sorgt für automatisches Mounten beim Systemstart.
  • iocharset=utf8 verhindert Probleme mit Umlauten.