micson
Goto Top

Linux - SAMBA-Server für Scans einrichten

Hallo,

auch nach etlichen Recherchen im Internet scheitere ich leider bei der Einrichtung eines SAMBA-Servers.
Ich möchte in diesem Server eingescannte Dokumente vom HP 9020 abspeichern und Nextcloud via "externe Speicher" zur Verfügung stellen.

Ich bin folgendermaßen vorgegangen:

1. Samba installiert: apt-get install samba-common samba
2. Benutzer hinzugefügt: adduser --no-create-home --disabled-login --shell /bin/false scanner
3. Passwort vegeben: passwd scanner
4. Als SAMBA-User angelegt: smbpasswd -a scanner
5. Verzeichnis erstellt: mkdir -p /media/myCloudDrive/ncdata/scanner

Gruppe habe ich keine erstellt bzw. dem User eine Gruppe hinzugefügt. Ist aber auch nicht erforderlich, oder?

6. SAMBA Konfiguration: nano /etc/samba/smb.conf
samba_testparm

7. SAMBA-Neustart service smbd restart

8. Auf Windows 10 Client verbinden
netzlaufwerk verbinden

Erhalte jedoch immer eine Fehlermeldung, dass keine Verbindung zum Netzwerk hergestellt werden kann.
Kann mir jemand auf die Sprünge helfen?
Danke!

Netzwerkstruktur:
netzwerkstruktur

Gruß,
micson

Content-Key: 560340

Url: https://administrator.de/contentid/560340

Printed on: June 13, 2024 at 16:06 o'clock

Mitglied: 143127
Solution 143127 Mar 22, 2020 updated at 16:56:20 (UTC)
Goto Top
ntlm auth = yes 
und dem scanner User Schreibrechte im Verzeichnis erteilen.
sudo chown scanner:scanner /media/hdd1/networkshares/scanner
sudo chmod 775 /media/hdd1/networkshares/scanner
Member: Lochkartenstanzer
Lochkartenstanzer Mar 22, 2020 updated at 16:52:17 (UTC)
Goto Top
Zitat von @143127:

> ntlm auth = yes  

Moin,

zusätzlich mit smbpasswd auch das Paßwort setzen. nicht nur den Benutzer hinzufügen.

lks
Mitglied: 143127
143127 Mar 22, 2020 updated at 16:53:19 (UTC)
Goto Top
Zitat von @Lochkartenstanzer:

zusätzlich mit smbpasswd auch das Paßwort setzen. nicht nur den Benutzer hinzufügen.

Hat er schon unter Punkt 4 abgearbeitet.
Member: micson
micson Mar 22, 2020 at 19:21:53 (UTC)
Goto Top
@143127
"ntlm auth = yes" habe ich unter [global] hinzugefügt --> Ausgabe bei testparm: ntlm auth = ntlmvl-permitted

sowie die Schreibrechte im Verzeichnis erstellt.
Leider ist keine Verbindung möglich.

Ich vermute, dass das Problem bei der Netzwerkstruktur liegt: Wie im ersten Beitrag dargestellt, hat der Raspi (Nextcloud) die Adresse 10.0.0.1 und der Drucker 192.168.2.200. Ich habe in der pfSense die Ports 137/138 (UDP) sowie 139, 445 (TCP) freigegeben. Das Problem besteht jedoch weiterhin.

Verständnisfrage zur smb.conf: interfaces - Muss ich hier die gleiche Adresse von Nextcloud verwenden (10.0.0.1) oder kann eine neue (10.0.0.200) vergeben werden?
Member: ing3niumx
ing3niumx Mar 22, 2020 at 23:13:49 (UTC)
Goto Top
Falls du die SMB-Freigabe aufm Nextcloud-Server eingerichtet hast, musst die gleiche IP wie der Nextcloud-Server nehmen. Verstehe aber nicht, warum du bei einem Nextcloud-Server zusätzlich SMB-Freigaben verwenden willst..
Mitglied: 143127
143127 Mar 23, 2020 updated at 06:15:19 (UTC)
Goto Top
Du musst in der pfSense die Option das Traffic an RFC1918 Netze am WAN geblockt werden abschalten.
https://docs.netgate.com/pfsense/en/latest/firewall/preventing-rfc1918-t ...
Denn sonst lässt die pfSense diesen Traffic nicht passieren.
Member: aqui
aqui Mar 23, 2020 updated at 08:39:36 (UTC)
Goto Top
Netzwerkstruktur:
In welchem Netz Segment liegt denn der Scanner ? Sieht man ja in der o.a. Skizze nicht ?!
Kollege @143127 hat hier Recht. Das Blocken der RFC1918 IPs auf dem WAN musst du unter Interfaces -> WAN deaktivieren:
wan
Member: micson
micson Mar 23, 2020 at 15:44:02 (UTC)
Goto Top
Auf dem WAN war/ist der Haken nicht gesetzt.

Der Scanner liegt im Segment 192.168.2.0 (IP 192.168.2.200)

Ich bin einen kleinen Schritt weitergekommen: Ich habe mal testhalber beim Büro PC (Segment 192.168.2.0) versucht, mich mit dem Samba-Server (\\10.0.0.1\scanner) zu verbinden. Das Netzlaufwerk wird eingebunden, nur habe ich keine Berechtigung:
anmerkung 2020-03-23 160915

Beim Versuch das Netzlaufwerk am Rechner, welcher sich im Segment 192.168.1.0 befindet, einzubinden, erscheint aber zweimal die Anmeldemaske, ich erhalte ich jedoch keinen Zugriff:
samba_netzlaufwerk_fehler


smbstatus gibt folgendes aus:
samba_smbstatus
Hier wird die WAN-IP der pfSense (10.0.0.254) ausgegeben, d.h. die Daten werden von der pfSense nicht weitergeleitet.
Hier müsste doch unter Machine die Adresse vom PC stehen, auf welchem das Netzlaufwerk eingebunden worden ist.

Die Ursache muss bei der Konfiguration der pfSense liegen, oder?
Mitglied: 143127
143127 Mar 23, 2020 updated at 15:59:50 (UTC)
Goto Top
interfaces = 10.0.0.200
???? Übersehen?

  • Firewall am Raspi?

  • SMB Traffic an der pfSense in der Firewall für das LAN ins WAN erlaubt?

Zusätzlich der Sicherheit zu liebe setzen wenn der Drucker bereits SMB2 spricht.
server min protocol = SMB2_10
Member: micson
micson Mar 23, 2020 at 16:12:27 (UTC)
Goto Top
Zitat von @143127:

interfaces = 10.0.0.200
???? Übersehen?

War im ersten Post ein Fehler von mir, der Raspi hat die fixe IP-Adresse 10.0.0.1.

Am Raspi wurde nur NextcoudPi installiert, Firewall ist mir da keine bekannt.

derzeitige pfSense-Rules LAN:
pfsense_rules_lan
Mitglied: 143127
Solution 143127 Mar 23, 2020 updated at 16:46:36 (UTC)
Goto Top
Gut die Any To Any Rule schluckt natürlich die unteren SMB Regeln, also ist erst mal Durchzug, OK.
Firewall ist mir da keine bekannt.
Checke es
iptables -L -v

Hänge mal ein Client in das 10.0.0.0/24 Netz und verbinde dich mal von dort aus per SMB. Nur um die pfSense auszuschließen.
Zusätzlich aus dem Windows-Tresor evt. Zugangsdaten auf die Raspi-IP entfernen.
Member: ing3niumx
Solution ing3niumx Mar 23, 2020 at 18:22:56 (UTC)
Goto Top
Deine FW Rules sind falsch. Du musst immer die Destination Ports freigeben, nicht die Source Ports. Source Ports sind immer zufällig. Also wechsle bei den Regeln den Source Port mit dem Destination Port => Source Port * & Destination Port 139/445
Member: micson
micson Mar 23, 2020 at 18:26:26 (UTC)
Goto Top
Zitat von @143127:

Firewall ist mir da keine bekannt.
Checke es
> iptables -L -v 
iptables
...sollte also passen.

Zitat von @143127:

Hänge mal ein Client in das 10.0.0.0/24 Netz und verbinde dich mal von dort aus per SMB. Nur um die pfSense auszuschließen.
Zusätzlich aus dem Windows-Tresor evt. Zugangsdaten auf die Raspi-IP entfernen.
Habe den Büro PC ins selbe Netzwerksegment (10.0.0.0) wie den Raspi gehängt. Wie in meinem vorletzten Post beschrieben, kann ich das Netzlaufwerk einbinden, nur habe ich keine Berechtigungen.

smbstatus:
samba_smbstatus_netz-10
Was mir auffällt: Neben dem Benutzer "scanner" steht Gruppe "scanner". Ich habe aber keine Gruppe erstellt. Braucht es hier Berechtigungen - oder wo müssen noch Berechtigungen vergeben werden?
Mitglied: 143127
143127 Mar 23, 2020 updated at 20:59:44 (UTC)
Goto Top
Zitat von @ing3niumx:

Deine FW Rules sind falsch. Du musst immer die Destination Ports freigeben, nicht die Source Ports. Source Ports sind immer zufällig. Also wechsle bei den Regeln den Source Port mit dem Destination Port => Source Port * & Destination Port 139/445
Richtig, aber die unteren Regeln sind bei ihm sowieso überflüssig da er eine lan to any Regel darüber stehen hat die sowieso alles durchlässt. First match wins!
Mitglied: 143127
143127 Mar 23, 2020 updated at 20:58:05 (UTC)
Goto Top
Zitat von @micson:
Was mir auffällt: Neben dem Benutzer "scanner" steht Gruppe "scanner". Ich habe aber keine Gruppe erstellt. Braucht es hier Berechtigungen - oder wo müssen noch Berechtigungen vergeben werden?
Das ist normal, wenn man einen User anlegt existiert automatisch immer eine Gruppe mit dem Namen des Users, eine alte Linux Weisheit.
nur habe ich keine Berechtigungen.
Wenn sixh das Share erfolgreich einbinden lässt dann stimmen deine vergebenen Rechte im Dateisystem noch nicht.
Member: ing3niumx
ing3niumx Mar 23, 2020 at 21:02:22 (UTC)
Goto Top
Stimmt, habs übersehen ..
Member: Lochkartenstanzer
Lochkartenstanzer Mar 23, 2020 at 22:13:08 (UTC)
Goto Top
Zitat von @143127:

Das ist normal, wenn man einen User anlegt existiert automatisch immer eine Gruppe mit dem Namen des Users, eine alte Linux Weisheit.

Inzwischen ja, aber das war nicht immer so und ist nur deswegen so, weil es skripten gibt, die das automatisch machen. Früher wurde es nucht als notwendig gesehen, daß zu jeden User auch eine Gruppe existierte. Da mußt der Admin sich die passenden Gtippenstrikturen ausdenken.

lks
Member: micson
micson Mar 24, 2020 at 13:09:01 (UTC)
Goto Top
Zitat von @143127:

Wenn sixh das Share erfolgreich einbinden lässt dann stimmen deine vergebenen Rechte im Dateisystem noch nicht.

Welche Berechtigungen fehlen?

Die Abfrage im Verzeichnis "/media/myCloudDrive/ncdata" mit dem Befehl "ls -l" gibt folgende Ausgabe beim Benutzer "scanner":
ls-l

Somit müssten doch hier alle Berechtigungen stimmen, oder?

Hier noch die smb.conf
#======================= Global Settings =======================

[global]
security = user
client min protocol = SMB2
client max protocol = SMB3
ntlm auth = yes

## Browsing/Identification ###

# Change this to the workgroup/NT-domain name your Samba server will part of
   workgroup = WORKGROUP

#### Networking ####

# The specific set of interfaces / networks to bind to
# This can be either the interface name or an IP address/netmask;
# interface names are normally preferred
   interfaces = 10.0.0.1

# Only bind to the named interfaces and/or networks; you must use the
# 'interfaces' option above to use this. 
# It is recommended that you enable this feature if your Samba machine is
# not protected by a firewall or is a firewall itself.  However, this
# option cannot handle dynamic or non-broadcast interfaces correctly.
;   bind interfaces only = yes



#### Debugging/Accounting ####

# This tells Samba to use a separate log file for each machine
# that connects
   log file = /var/log/samba/log.%m

# Cap the size of the individual log files (in KiB).
   max log size = 10000

# We want Samba to only log to /var/log/samba/log.{smbd,nmbd}.
# Append syslog@1 if you want important messages to be sent to syslog too.
   logging = file

# Do something sensible when Samba crashes: mail the admin a backtrace
   panic action = /usr/share/samba/panic-action %d


####### Authentication #######

# Server role. Defines in which mode Samba will operate. Possible
# values are "standalone server", "member server", "classic primary 
# domain controller", "classic backup domain controller", "active 
# directory domain controller". 
#
# Most people will want "standalone server" or "member server".  
# Running as "active directory domain controller" will require first  
# running "samba-tool domain provision" to wipe databases and create a  
# new domain.
   server role = standalone server

   obey pam restrictions = yes

# This boolean parameter controls whether Samba attempts to sync the Unix
# password with the SMB password when the encrypted SMB password in the
# passdb is changed.
   unix password sync = yes

# For Unix password sync to work on a Debian GNU/Linux system, the following
# parameters must be set (thanks to Ian Kahan <<kahan@informatik.tu-muenchen.de> for
# sending the correct chat script for the passwd program in Debian Sarge).
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .

# This boolean controls whether PAM will be used for password changes
# when requested by an SMB client instead of the program listed in
# 'passwd program'. The default is 'no'.  
   pam password change = yes

# This option controls how unsuccessful authentication attempts are mapped
# to anonymous connections
   map to guest = never

########## Domains ###########

#
# The following settings only takes effect if 'server role = primary  
# classic domain controller', 'server role = backup domain controller'  
# or 'domain logons' is set  

# It specifies the location of the user's  
# profile directory from the client point of view) The following
# required a [profiles] share to be setup on the samba server (see
# below)
;   logon path = \\%N\profiles\%U
# Another common choice is storing the profile in the user's home directory  
# (this is Samba's default)  
#   logon path = \\%N\%U\profile

# The following setting only takes effect if 'domain logons' is set  
# It specifies the location of a user's home directory (from the client  
# point of view)
;   logon drive = H:
#   logon home = \\%N\%U

# The following setting only takes effect if 'domain logons' is set  
# It specifies the script to run during logon. The script must be stored
# in the [netlogon] share
# NOTE: Must be store in 'DOS' file format convention  
;   logon script = logon.cmd

# This allows Unix users to be created on the domain controller via the SAMR
# RPC pipe.  The example command creates a user account with a disabled Unix
# password; please adapt to your needs
; add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u  

# This allows machine accounts to be created on the domain controller via the
# SAMR RPC pipe.
# The following assumes a "machines" group exists on the system  
; add machine script  = /usr/sbin/useradd -g machines -c "%u machine account" -d /var/lib/samba -s /bin/false %u  

# This allows Unix groups to be created on the domain controller via the SAMR
# RPC pipe.
; add group script = /usr/sbin/addgroup --force-badname %g

############ Misc ############

# Using the following line enables you to customise your configuration
# on a per machine basis. The %m gets replaced with the netbios name
# of the machine that is connecting
;   include = /home/samba/etc/smb.conf.%m

# Some defaults for winbind (make sure you're not using the ranges  
# for something else.)
;   idmap config * :              backend = tdb
;   idmap config * :              range   = 3000-7999
;   idmap config YOURDOMAINHERE : backend = tdb
;   idmap config YOURDOMAINHERE : range   = 100000-999999
;   template shell = /bin/bash


# Setup usershare options to enable non-root users to share folders
# with the net usershare command.

# Maximum number of usershare. 0 means that usershare is disabled.
#   usershare max shares = 100

# Allow users who've been granted usershare privileges to create  
# public shares, not just authenticated ones
   usershare allow guests = yes

#======================= Share Definitions =======================

; [homes_disabled_ncp]
;   comment = Home Directories
;   browseable = no

# By default, the home directories are exported read-only. Change the
# next parameter to 'no' if you want to be able to write to them.  
;   read only = yes

# File creation mask is set to 0700 for security reasons. If you want to
# create files with group=rw permissions, set next parameter to 0775.
;   create mask = 0700

# Directory creation mask is set to 0700 for security reasons. If you want to
# create dirs. with group=rw permissions, set next parameter to 0775.
;   directory mask = 0700

# By default, \\server\username shares can be connected to by anyone
# with access to the samba server.
# The following parameter makes sure that only "username" can connect  
# to \\server\username
# This might need tweaking when using external authentication schemes
;   valid users = %S

# Un-comment the following and create the netlogon directory for Domain Logons
# (you need to configure Samba to act as a domain controller too.)
;[netlogon]
;   comment = Network Logon Service
;   path = /home/samba/netlogon
;   guest ok = yes
;   read only = yes

# Un-comment the following and create the profiles directory to store
# users profiles (see the "logon path" option above)  
# (you need to configure Samba to act as a domain controller too.)
# The path below should be writable by all users so that their
# profile directory may be created the first time they log on
;[profiles]
;   comment = Users profiles
;   path = /home/samba/profiles
;   guest ok = no
;   browseable = no
;   create mask = 0600
;   directory mask = 0700

[scanner]
valid users = scanner
path = /media/myCloudDrive/ncdata/scanner
guest ok = no
writeable = yes


[printers]
   comment = All Printers
   browseable = no
   path = /var/spool/samba
   printable = yes
   guest ok = no


# Windows clients look for this share name as a source of downloadable
# printer drivers
[print$]
   comment = Printer Drivers
   path = /var/lib/samba/printers
   browseable = yes
   read only = yes
   guest ok = no
# Uncomment to allow remote administration of Windows print drivers.
# You may need to replace 'lpadmin' with the name of the group your  
# admin users are members of.
# Please note that you also need to set appropriate Unix permissions
# to the drivers directory for these users to have write rights in it
;   write list = root, @lpadmin


# NextCloudPi automatically generated from here. Do not remove this comment
Mitglied: 143127
143127 Mar 24, 2020 updated at 14:34:21 (UTC)
Goto Top
Somit müssten doch hier alle Berechtigungen stimmen, oder?
Nicht nur der eine, alle Ordner auf dem Weg zum Scanner Ordner müssen zumindest auch für "others" Execute Rechte besitzen sonst ist ein Wechseln in den Freigabe-Ordner mit dem Scanner-Account nicht möglich.
Member: micson
micson Mar 24, 2020 at 15:33:59 (UTC)
Goto Top
Zitat von @143127:

Nicht nur der eine, alle Ordner auf dem Weg zum Scanner Ordner müssen zumindest auch für "others" Execute Rechte besitzen sonst ist ein Wechseln in den Freigabe-Ordner mit dem Scanner-Account nicht möglich.
Also in meinem Fall müsste vom Ordner "scanner" hinauf bis zur obersten Ebene für "others" zumindest die executable-Rechte vorhanden sein. (/media/myCloudDrive/ncdata/scanner)
Im darüberliegenden Ordner "ncdata" haben "others" überhaupt keine Berechtigung. Ich habe die Rechte gesetzt - nach einigen Sekunden war die Berechtigung aber wieder gelöscht.
rechte_ncdata
Root-Zugriff via "sudo -s". Wieso wird die Berechtigung nicht dauerhauft gespeichert?
Mitglied: 143127
Solution 143127 Mar 24, 2020 updated at 15:48:54 (UTC)
Goto Top
Also in meinem Fall müsste vom Ordner "scanner" hinauf bis zur obersten Ebene für "others" zumindest die executable-Rechte vorhanden sein. (/media/myCloudDrive/ncdata/scanner)
Nö ist es nicht face-smile.
nach einigen Sekunden war die Berechtigung aber wieder gelöscht.
Wieso wird die Berechtigung nicht dauerhauft gespeichert?
Weil da offensichtlich nextcloud die Finger drauf hat (www-data) und regelmäßig die Berechtigungen glatt bügelt ...
Nimm einen anderen Ordner und verknüpfe den via Symlink.
Member: micson
micson Mar 25, 2020 at 10:31:34 (UTC)
Goto Top
Zitat von @143127:

Weil da offensichtlich nextcloud die Finger drauf hat (www-data) und regelmäßig die Berechtigungen glatt bügelt ...
Nimm einen anderen Ordner und verknüpfe den via Symlink.
DAS war der Grund. Habe den Ordner in /media/ erstellt und die Berechtigungen gesetzt. Nun funktioniert die Einbindung. face-smile Wegen den Berechtigungen soviel Zeit verbraten. face-wink
Vielen Dank für die großartige Unterstützung!

Warum sich nur beim Büro PC, welcher sich im Segment192.168.2.0 befindet, das Netzlaufwerk hinzufügen lässt, beim PC im Segment 192.168.1.0 jedoch nicht, kannn ich mir nocht nicht ganz erklären. Muss aber definitiv ein Firewall-Thema sein. Ist jetzt aber nicht so wichtig, da ich Zugriff via Nextcloud habe. Werde ich mir aber gelegentlich mal ansehen.
Member: aqui
aqui Mar 25, 2020 updated at 14:05:13 (UTC)
Goto Top
Muss aber definitiv ein Firewall-Thema sein.
Ist es auch ! Hier musst du ggf. die IP Range im Drucker und Printer Sharing Dienst anpassen oder auf "Beliebig" setzen.

Wenn's das denn war bitte dann auch
How can I mark a post as solved?
nicht vergessen !
Member: micson
micson Mar 26, 2020 updated at 08:11:44 (UTC)
Goto Top
"Übeltäter" gefunden: Auf dem PC blockierte die Windows Firewall den Port 445. Nach Freigabe ist das Netzlaufwerk erreichbar. face-smile
Nochmals vielen Dank für die Unterstützung.

Zitat von @aqui:

Wenn's das denn war bitte dann auch
How can I mark a post as solved?
nicht vergessen !

Erledigt.