Betrieb von einem Samba Server zur Bereitstellung von einer Freigabe für Windows 95

Manchmal muss man leider Dinge tun, die man eigentlich nicht machen möchte. Die hier beschriebene Technik gehört leider auch dazu und wenn ich das nächste Mal in Redmond bin, wird mich Ned Pyle dafür bestimmt schlagen. Da ich allerdings einiges an Erfahrung sammeln konnte, möchte ich dieses Wissen hier mit diesem Beitrag teilen, falls es andere Leidensgenossen gibt, die das gleiche Problem haben wie ich. Kommentare, dass Windows 95 gehört abgelöst/migriert/verbrannt/zum Mond geschossen, führen unwiderruflich zu einem spendierten Bier oder Kaffee, das weiß ich nämlich auch 😉

Worum geht es eigentlich?

Manchmal gibt es Gründe (TM), warum noch uralte Betriebssysteme existieren. Zum Beispiel, weil große (und somit teure) Maschinen damit ausgeliefert werden und 30 Jahre laufen (z.B. Hochöfen oder Industrie-Maschinen). Ein Update ist nicht möglich, da es sich um ein geschlossenes System handelt und man selbst nicht auf OS-Ebene herunterkommt. In meinem Fall musste ein Windows 95, was mit einem Windows Server 2003 zusammen arbeitet, angepasst werden. Der Server 2003 stellte eine Freigabe bereit und war in Hardware-Form vorhanden. Die Hardware war recht alt, lief mit Server 2003 und sollte ersetzt werden durch ein System mit einem neueren OS.

Windows 95 als Client mit Windows Server 2016 als Dateiserver

Mein erster Ansatz war, den Windows 95 Client mit einem Windows Server 2016 zu verbinden. Das ich hier gewisse Sicherheitsrichtlinien heruntersetzen musste war mir klar, also habe ich versucht, das System mit lokalen Sicherheitsrichtlinien so einzustellen, dass der Windows 95 Client eine Verbindung aufbauen kann. Dies hat leider nicht so ganz geklappt, ich hatte folgende Verhaltensweisen:

Der Aufruf von dem Server bringt eine Fehlermeldung

Auf \\Server kann nicht zugegriffen werden.

Diese Anforderung wird nicht vom Netzwerk unterstützt.

Der direkte Aufruf der Freigabe funktioniert (ein bisschen)

Ruft man statt dem Server noch direkt die Freigabe auf (also \\Server\Share), kommt das Windows 95 auf die Freigabe drauf.

Das Problem ist allerdings, dass die Datei selbst nicht aufgerufen werden kann. Klickt man die Datei an, erscheint erneut eine Fehlermeldung.

Fazit

Ich habe das Testen mit Windows Server 2016 an dieser Stelle aufgegeben, da ich jetzt schon allerlei schmutzige Einstellungen gesetzt habe und ich nicht wirklich zum Ziel gekommen bin.

Die Nutzung von Samba mit einem Debian Server

Mein nächster Ansatz war die Installation von einem Debian 9.5 mit einem Samba Server. Bei dieser Variante können wir ein aktuelles Debian, welches den benötigten Share bereitstellt.

Die Grundinstallation

Die eigentliche Installation von Debian 9.5 ist recht einfach und wird an dieser Stelle nicht ausführlich beschrieben. Falls dazu Hilfe benötigt wird, so finden sich ausreichend Anleitungen im Internetz 🙂

Die Installation von Samba

Nach der Grundinstallation und einem Update auf den aktuellen Stand müssen wir Samba inkl. der benötigten Abhängigkeiten installieren:

sudo apt install samba -y

Nach der Installation ist der Server grundsätzlich da, jetzt müssen wir noch die entsprechenden Ordner und Anpassungen vornehmen.

Erstellen von einem neuen Benutzer

Wir beginnen mit der Erstellung von einem neuen Benutzer. Dieses Konto muss den gleichen Namen sowie das gleiche Kennwort wie der Benutzer auf dem Windows 95 haben. Ist der Name und/oder das Kennwort unterschiedlich, kommt es zu Problemen beim Aufruf der Freigabe.

useradd -s /bin/false USER
smbpasswd -a USER
Anlegen der benötigten Ordner

Damit die Ordner vorhanden sind, die gleich in der Samba-Konfiguration genutzt werden, müssen diese vorher angelegt werden.

mkdir -p /var/shares/test
chown -R USER:USER /var/shares/test
chmod 777 -R /var/shares/test

Achtung!

Die Anpassung der Zugriffsrechte auf 777 erlaubt JEDEM! Benutzer, Dateien zu löschen oder beliebige Dateien zu erstellen. In meinem Fall wird der Zugriff auf den Server durch weitere Firewalls geregelt und die Tests, welche Berechtigungen genau benötigt werden, sind zum aktuellen Zeitpunkt noch nicht abgeschlossen. Alleine die Arbeit mit SMB1 ist schon nicht schön, 777 als Berechtigung macht es nicht besser!

Die Samba-Konfiguration

Nun muss die Samba-Konfiguration angepasst werden. Da ich in meinem Fall ausschließlich eine Freigabe brauche (keine Drucker, keine Profile usw.), habe ich einen Großteil der Anmerkungen und Kommentare aus der default-Datei rausgeschmissen und nur noch die benötigten Einstellungen gesetzt.

# Globale Einstellungen
[global]
   workgroup = workgroup
   dns proxy = no
   log file = /var/log/samba/log.%m
   # hohes Loglevel für Debugging
   log level = 9
   max log size = 1000
   syslog = 0
   panic action = /usr/share/samba/panic-action %d
   server role = standalone server
   passdb backend = tdbsam
   obey pam restrictions = yes
   unix password sync = yes
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
   pam password change = yes
   map to guest = bad user
   usershare allow guests = yes
   # Windows 95-relevante Einstellungen
   # -> Herabstufung der Sicherheitsfunktionen :(
   allow nt4 crypto = yes
   client lanman auth = yes
   client min protocol = NT1
   client ntlmv2 auth = no
   client plaintext auth = yes
   lanman auth = yes
   encrypt passwords = yes

# Shares
[test]
  valid users = USER
  path = /var/shares/test/
  public = yes
  writable = yes
  comment = Freigabe test
  guest ok = yes
  create mask = 0777
  directory mask = 0777
  browsable =yes

Mit diesen Einstellungen bin ich in der Lage, erfolgreich einen Zugriff von dem Windows 95 Client auf den Samba Server zu bekommen.

Weitere Infos, Hinweise und Tipps

Hier noch eine Auflistung der Dinge und Erkenntnisse, die ich im Zuge der Installation sammeln konnte:

  • Der Benutzername, die Workgroup und das Kennwort sollten 100%ig übereinstimmen
  • Es gibt kein ipconfig, man muss winipcfg benutzen (ist mir dann wieder aufgefallen, lang lang ist her). Ebenso gibt es keine cmd, es muss command ausgeschrieben werden…
  • Die Einstellung encrypt passwords muss ggf. auf no gesetzt werden, damit der Zugriff möglich ist
  • Der Zugriff auf den Server muss per Name erfolgen, nicht per IP-Adresse
  • Erfolgt keine DNS oder NETBIOS-Auflösung des Namens, kann das anlegen von C:\Windows\hosts für FQDN-Einträge bzw. C:\Windows\lmhosts für Netbios-Einträge helfen!
  • Durch die Konfiguration von einem Logfile (pro Zugriff wird eine eigene Datei angelegt, das bewirkt das log.%m) kann man sehr gut sehen, ob überhaupt eine Kommunikation stattfindet.
  • Erscheint eine Abfrage des Kennworts für den IPC$ Share, liegt dies an falschen Einstellungen. Die Lösung habe ich hier gefunden: When Windows 9x/ME Samba Access Fails

Ich habe einige Zeit gebraucht, bis die Windows 95 Büchse den Samba Server akzeptiert hat und die Freigabe fehlerfrei aufrufen und benutzen konnte. Falls ich weitere Erkenntnisse habe oder auf Probleme stoße, werde ich diesen Artikel entsprechend anpassen.


Sie benötigten persönliche Unterstützung oder haben nicht die richtige Lösung für Ihr Problem gefunden?

Dieser Blog wird von mir, Jan Kappen, in seiner Freizeit betrieben, hier beschreibe ich Lösungen für Probleme aller Art oder technische Anleitungen mit Lösungsansätzen.

Die berufliche Unabhängigkeit

Ich bin seit Januar 2020 vollständig selbstständig und habe meine eigene Firma gegründet, die Building Networks mit Sitz in Winterberg im schönen Sauerland. Hier stehe ich als Dienstleister gerne für Anfragen, Support oder Projekte zur Verfügung.

Die Firma Building Networks bietet Ihnen:

  • Hilfe und Support per Telefon, Fernwartung oder persönlich vor Ort
  • Projekt-Unterstützung
  • Ausgezeichnete Kompetenz zu den Themen
    • Microsoft Hyper-V
    • Microsoft Failover Clustering & HA
    • Storage Spaces Direct (S2D) & Azure Stack HCI
    • Veeam Backup & Recovery
    • Microsoft Exchange
    • Microsoft Exchange Hybrid Infrastruktur
    • Microsoft Active Directory
    • Microsoft Office 365
    • Ubiquiti
    • 3CX VoIP PBX
    • Fortinet Network Security
    • Baramundi Software
    • ...

Ich freue mich über Ihren Kontakt, weitere Informationen finden Sie auf der Webseite meiner Firma unter Building-Networks.de

Jan

Jan Kappen arbeitet seit 2005 in der IT. Er hat seine Ausbildung 2008 abgeschlossen und war bis 2018 als IT-Consultant im Bereich Hyper-V, Failover Clustering und Software Defined Storage unterwegs. Seit 2015 wurde er jährlich von Microsoft als Most Valuable Professional (MVP) im Bereich "Cloud & Datacenter Management" ausgezeichnet für seine Kenntnisse und die Weitergabe seines Wissens. Jan ist häufig auf Konferenzen als Sprecher zu finden, weiterhin bloggt er viel. Von September 2018 bis Dezember 2019 war Jan als Senior Network- und Systemadministrator bei einem großen mittelständischen Unternehmen im schönen Sauerland angestellt. Im Januar 2020 hat er den Sprung in die Selbstständigkeit gewagt und ist seitdem Geschäftsführer der Firma Building Networks in Winterberg. In seiner Freizeit kümmert er sich um das Freifunk-Netzwerk in Winterberg und Umgebung.

2 Kommentare:

  1. Hallo Jan

    Habe das mal in einem Debian Jessie aufgesetzt mit Samba 4.2.14, leider ohne Erfolg. Wurde da schon wieder etwas bei Samba geändert?

    Bekomme da auch noch diverse Fehlermeldungen mit testparm

    testparm -v | egrep auth
    Load smb config files from /etc/samba/smb.conf
    Unknown parameter encountered: “   workgroup“
    Ignoring unknown parameter “   workgroup“
    Unknown parameter encountered: “   dns proxy“
    Ignoring unknown parameter “   dns proxy“
    Unknown parameter encountered: “   log file“
    Ignoring unknown parameter “   log file“
    Unknown parameter encountered: “   log level“
    Ignoring unknown parameter “   log level“
    Unknown parameter encountered: “   max log size“
    Ignoring unknown parameter “   max log size“
    Unknown parameter encountered: “   syslog“
    Ignoring unknown parameter “   syslog“
    Unknown parameter encountered: “   panic action“
    Ignoring unknown parameter “   panic action“
    Unknown parameter encountered: “   server role“
    Ignoring unknown parameter “   server role“
    Unknown parameter encountered: “   passdb backend“
    Ignoring unknown parameter “   passdb backend“
    Unknown parameter encountered: “   obey pam restrictions“
    Ignoring unknown parameter “   obey pam restrictions“
    Unknown parameter encountered: “   unix password sync“
    Ignoring unknown parameter “   unix password sync“
    Unknown parameter encountered: “   passwd program“
    Ignoring unknown parameter “   passwd program“
    Unknown parameter encountered: “   passwd chat“
    Ignoring unknown parameter “   passwd chat“
    Unknown parameter encountered: “   pam password change“
    Ignoring unknown parameter “   pam password change“
    Unknown parameter encountered: “   map to guest“
    Ignoring unknown parameter “   map to guest“
    Unknown parameter encountered: “   usershare allow guests“
    Ignoring unknown parameter “   usershare allow guests“
    Unknown parameter encountered: “   allow nt4 crypto“
    Ignoring unknown parameter “   allow nt4 crypto“
    Unknown parameter encountered: “   client lanman auth“
    Ignoring unknown parameter “   client lanman auth“
    Unknown parameter encountered: “   client min protocol“
    Ignoring unknown parameter “   client min protocol“
    Unknown parameter encountered: “   client ntlmv2 auth“
    Ignoring unknown parameter “   client ntlmv2 auth“
    Unknown parameter encountered: “   client plaintext auth“
    Ignoring unknown parameter “   client plaintext auth“
    Unknown parameter encountered: “   lanman auth“
    Ignoring unknown parameter “   lanman auth“
    Unknown parameter encountered: “   encrypt passwords“
    Ignoring unknown parameter “   encrypt passwords“
    Processing section „[Jessie-Share]“
    Unknown parameter encountered: “  valid users“
    Ignoring unknown parameter “  valid users“
    Unknown parameter encountered: “  path“
    Ignoring unknown parameter “  path“
    Unknown parameter encountered: “  public“
    Ignoring unknown parameter “  public“
    Unknown parameter encountered: “  writable“
    Ignoring unknown parameter “  writable“
    Unknown parameter encountered: “  comment“
    Ignoring unknown parameter “  comment“
    Unknown parameter encountered: “  guest ok“
    Ignoring unknown parameter “  guest ok“
    Unknown parameter encountered: “  create mask“
    Ignoring unknown parameter “  create mask“
    Unknown parameter encountered: “  directory mask“
    Ignoring unknown parameter “  directory mask“
    Unknown parameter encountered: “  browsable“
    Ignoring unknown parameter “  browsable“
    WARNING: No path in service Jessie-Share – making it unavailable!
    NOTE: Service Jessie-Share is flagged unavailable.
    Loaded services file OK.
    Server role: ROLE_STANDALONE

    Press enter to see a dump of your service definitions

    auth methods =
    lanman auth = No
    ntlm auth = Yes
    raw NTLMv2 auth = No
    client NTLMv2 auth = Yes
    client lanman auth = No
    client plaintext auth = No
    ldap server require strong auth = Yes
    allow dcerpc auth level connect = No

    Hast Du eine Idee?

    Danke für Deine Antwort.

    Viele Grüsse

    Rico

    • Hallo,
      deine Konfig-Datei ist nicht korrekt, das musst du zuerst korrigieren, so das der Dienst korrekt startet und alle Optionen angenommen werden.
      Gruß, Jan

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert