Alle Versionen von macOS sind in der Lage, Verbindungen mit einem Datei-Server aufzunehmen, der dem Netz Freigaben über das SMB-Protokoll anbietet. Das von IBM und Microsoft entwickelte SMB-Protokoll (Server Message Block) hat eine mehr als 40-jährige Geschichte und existiert daher in vielen verschiedenen Variationen, die sich im Laufe der Jahre verändert haben.
Wenn macOS als Netzwerk-Klient auf einen oder mehrere SMB-Server zugreift, lässt sich steuern, welche Varianten und Parameter des Protokolls im Detail verwendet werden sollen. Mit TinkerTool System haben Sie Zugriff auf alle systemweit geltenden Einstellungen. Gehen Sie dabei wie folgt vor:
Öffnen Sie die Einstellungskarte SMB-Klient.
Wählen Sie über die Karteireiter eine Rubrik aus, für die Sie Einstellungen ändern möchten.
Ändern Sie einen oder mehrere Werte.
Klicken Sie auf Anwenden, um die Einstellungen zu speichern und wirksam werden zu lassen.
Beim nächsten Herstellen einer Verbindung zu einer SMB-Freigabe sollten die geänderten Einstellungen gelten. Falls Sie ganz sicher gehen möchten, dass alle Einstellungen wirksam sind, sollten Sie im Zweifelsfall den Computer neu starten. Wenn Sie versehentlich Werte verändert haben und wieder zu den gerade im System geltenden Einstellungen zurückkehren möchten, klicken Sie auf Rückgängig. Sie können alle Werte aller vier Rubriken auch wieder auf den Standard von macOS stellen, indem Sie Alle auf Standard anklicken.
Werden numerische Werte angegeben, die zu groß oder zu niedrig sind, wird dies von TinkerTool System automatisch auf den zulässigen Bereich korrigiert. Dies wird im jeweiligen Feld angezeigt.
Neben den systemweiten Einstellungen ist es technisch in macOS vorgesehen, sämtliche Einstellungen auch noch einmal
für bestimmte Freigaben und
für bestimmte macOS-Benutzer
anzupassen und damit die systemweiten Einstellungen zu überschreiben. Dies wird von TinkerTool System im Moment nicht unterstützt. Es gelten folgenden Richtlinien:
Wenn in Ihrem Benutzer-Account spezielle Einstellungen für SMB-Verbindungen getroffen worden sind, wird die gesamte Karte SMB-Klient gesperrt, um Verwirrung zu vermeiden.
Wenn Einstellungen für bestimmte Freigaben existieren, werden die Werte nicht in TinkerTool System sichtbar. Sie werden nicht verändert, sondern bleiben unberührt erhalten, auch wenn Sie systemweite Einstellungen vornehmen.
Allgemeine SMB-Einstellungen
Der Karteireiter Allgemein zeigt grundsätzliche Einstellungen für den Betrieb von SMB-Verbindungen.
Allgemeine SMB-Einstellungen
Unterstützte SMB-Versionen: legt fest, welcher Protokollmindeststandard für die Verbindungsaufnahme zu SMB-Servern zulässig ist. macOS versucht grundsätzlich, mit einem Server die höchstmögliche Version des Protokolls auszuhandeln, die der Server jeweils unterstützen kann. Dabei sind die Versionen 3, 2 oder 1 möglich. Auf Wunsch kann eine Verbindung abgelehnt werden, falls der Server nur Version 1 oder nicht mehr als Version 2 anbieten kann. Beachten Sie, dass Version 1 des SMB-Protokolls nach heutigen Maßstäben als unsicher gilt und nicht mehr verwendet werden sollte, falls möglich. Im Fachjargon werden die unterschiedlichen Versionen des SMB-Protokolls auch als SMB-Dialekte bezeichnet.
Kommunikation: Standardmäßig versucht macOS, eine Verbindung zu Port 445 über das Transportprotokoll TCP/IP aufzubauen. Kann der Server dies nicht unterstützen, fällt der Verbindungsversuch auf das ältere Verfahren NetBIOS over TCP/IP zurück. Die Einstellung sieht vor, beide Verfahren zuzulassen, oder eines von beiden zu sperren.
NTFS Alternate Data Streams (ADS) unterstützen: Im Dateisystem NTFS des Betriebssystems Microsoft Windows steht die Möglichkeit zur Verfügung, zu einer Datei neben dem normalen Inhalt versteckt auch zusätzliche benannte Datenströme zu speichern, was Alternate Data Streams (ADS) genannt wird. Dies entspricht in etwa der Funktion Resource Fork aus dem klassischen Mac OS oder Erweiterten Attributen in macOS. Diese Einstellung steuert, ob Programme diese Funktionalität auch über eine SMB-Verbindung hinweg nutzen dürfen.
Vorgänge dürfen fehlschlagen falls Server nicht antwortet: Normalerweise wartet ein Netzwerk-Klient darauf, dass der Server jeweils eine Rückmeldung liefert, ob ein gerade laufender Vorgang erledigt wurde oder fehlgeschlagen ist. Falls der Server jedoch überhaupt nicht antwortet, steuert diese Einstellung, wie der Klient sich verhalten soll. Er kann sich entweder dazu entschließen, selbst eine Fehlermeldung an die auftraggebenden Programme zu liefern, dass der Vorgang wahrscheinlich fehlgeschlagen ist, oder er kann endlos warten, bis der Server wieder antwortet. In letzterem Fall „hängt“ zwar das laufende Programm während der Wartezeit, aber es wird sichergestellt, dass irgendwann klar wird, ob die übertragenen Daten verarbeitet wurden oder nicht. Im Fachjargon wird das erste Verhalten als soft und das zweite als hart bezeichnet.
Benachrichtigungen unterdrücken: Mit dieser Einstellung kann gesperrt werden, dass der Klient Nachrichten des Servers empfangen kann.
Sub-Mounts abschalten: Normalerweise stellen Klienten eine Verbindung zu einem freigegebenen Ordner des Servers her. Ein Klient kann auf Wunsch aber auch eine Verbindung zu einem Unterordner dieser Freigabe herstellen, so dass die „höheren“ Ordner im Netzwerk-Volume unsichtbar bleiben, selbst wenn sie freigegeben sind. Die Möglichkeit, Verbindungen direkt zu einem Unterordner aufzubauen, kann gesperrt werden.
Erzwingen von Dateisystemfunktionen auf Macintosh-Niveau erlauben: Über diese Einstellung lässt sich steuern, dass nur zu solchen Freigaben eine Verbindung hergestellt werden kann, die von ihrem Verhalten her eine ähnliche Dienstgüte garantieren, wie sie innerhalb von macOS für Datenträger üblich ist. Unter anderem muss der Server in der Lage sein, Funktionen für Zugriffssteuerungslisten (ACLs) und Erweiterte Attribute anzubieten.
NetBIOS-Namensauflösung gegenüber DNS bevorzugen: Moderne Server verwenden das in TCP/IP übliche Verfahren DNS (Domain Name System), um die Zuordnung zwischen Server-Namen und IP-Adressen herzustellen. Auf Wunsch kann aber auch das Altlastenverfahren der Namensauflösung über NetBIOS bevorzugt werden.
Wartezeit beim Auflösen von Namen über NetBIOS: Falls statt DNS das alte NetBIOS-Verfahren zur Arbeit mit Server-Namen genutzt wird, steuert dieser Wert, wie lange der Klient (in Sekunden) auf eine Antwort des NetBIOS-Dienstes warten darf.
Wartezeit für SMB-Server-Kommunikation: Dies ist die allgemeine Wartezeit, wie lange der Klient (in Sekunden) maximal auf eine Antwort eines SMB-Servers warten soll.
Stufe für SMB-Kernel-Protokollierung: Hier wird eine numerische Stufe angegeben, wie detailreich macOS seine SMB-Tätigkeiten in den Systemprotokollen erfassen soll. Dies eignet sich zur Fehlersuche bei der SMB-Kommunikation. Die Stufen sind von Apple definiert, aber nicht weiter dokumentiert, wobei 0 die Standardeinstellung ist.
Einstellungen für SMB-Sicherheit
Der Karteireiter Sicherheit zeigt SMB-Einstellungen, die sicherheitsrelevant sind und sich auf die Gebiete Benutzeranmeldung, Signieren der Datenpakete und Datenverschlüsselung beziehen.
Einstellungen für SMB-Sicherheit
Minimaler Authentifizierungs-Level: Zur Anmeldung eines Benutzers bei einem SMB-Server haben sich im Laufe der Jahrzehnte verschiedene Verfahren mit unterschiedlichen Sicherheitsstandards und Übertragungsarten von Kennworten ergeben. Grundsätzlich versucht macOS, in der Reihenfolge von oben nach unten in der Liste das „beste“, also sicherste Verfahren auszuwählen, das der Server bereitstellen kann. Die Einstellung steuert, bis hinab zu welchem Niveau ein weniger sicheres Verfahren bei der Anmeldung akzeptiert wird. An oberster Stufe steht die Gesamtanmeldung über den Kerberos-Industriestandard im gesamten Netz. Es folgen NTLMv2(Windows New Technology Local Area Network Manager Version 2), die ältere Version 1, das LM-Verfahren (LAN Manager) und das unsicherste Verfahren, das Übertragen von Kennworten im Klartext.
„Validate Negotiation“-Anfragen abschalten: Bei der Aushandlung der unterschiedlichen Fähigkeiten von Server und Klient nach dem Verbindungsaufbau muss der Klient eine Anfrage des Typs validate negotiate (Überprüfung der ausgehandelten Betriebsparameter) an den Server senden, falls SMB-Version 3 zum Einsatz kommt. Hierbei wird eine gewisse Mindestsicherheit und Dienstgüte garantiert. Zum Beispiel muss die Verwendung signierter Datenpakete ausgehandelt worden sein, falls keine Benutzeranmeldung als Gast vorliegt, sonst wird die Verbindung abgelehnt. In bestimmten Sonderfällen kann dieses Verhalten nicht erwünscht sein. Apple empfiehlt (als eine von mehreren Alternativen, Probleme beim Verbindungsaufbau zu lösen) eventuell „Validate Negotiation“ abzuschalten, falls es sich bei dem SMB-Server um ein macOS-System handelt, der den Verzeichnisdienst Apple Open Directory verwendet und sich hierbei anonym beim LDAP-Server angemeldet hat.
Signierung anfordern: Diese Einstellung steuert, dass der Klient auf jeden Fall das Signieren von Datenpaketen beim SMB-Server anfordern soll. Hierbei werden alle übertragenen Daten der Kommunikationspartner digital unterschrieben, um sicher zu stellen, dass keine gefälschten Daten eines möglicherweise eingeschmuggelten Computers verarbeitet werden.
Unterstützte Verfahren: Wird Signierung verwendet, kann der zu verwendende Typ der Signaturen festgelegt werden. SMB 3 verwendet in der Regel eine fortgeschrittene elektronische Signatur (AES) des Typs Cipher Based Message Authentication Code (CMAC). Auf Wunsch kann auch die leistungsfähigere Variante GMAC(Galois Message Authentication Code) verwendet werden.
SMB-Versionen falls Signierung erforderlich: Mit dieser Einstellung wird die Querbeziehung zwischen Signierung und zulässigen SMB-Versionen festgelegt.
Unterstützte AES-Verschlüsselungsverfahren: Über diese Einstellung wird festgelegt, welche Methoden zur Datenverschlüsselung ausgehandelt werden dürfen. Zur Verfügung stehen Galois/Counter Mode (GCM) oder Counter with Cipher block chaining message Mode (CCM), jeweils in Varianten mit 256 oder 128 Bit Schlüssellänge.
Verschlüsselung der Sitzung erzwingen: diese Einstellung legt fest, dass auf jeden Fall die Sitzungsdaten wie Anmeldung und Aushandlung verschlüsselt werden müssen.
Verschlüsselung der Freigabe erzwingen: diese Einstellung legt fest, dass auf jeden Fall die freigegebenen Nutzdaten, also die Inhalte der Dateien bei der Übertragung verschlüsselt werden müssen.
Einstellungen für SMB-Leistung
Über den Karteireiter Leistung werden Einstellungen vorgegeben, die Einfluss auf die Geschwindigkeit der SMB-Kommunikation haben. Neben dem Einsatz von Zwischenspeichern (Caches) im RAM, die auf Verdacht im Voraus gelesene Ordnerinhalte schnell bereitstellen können, ist auch die Verwendung der Mehrkanaltechnik möglich. Hierbei können Klient und Server über mehrere Netzwerkanschlüsse gleichzeitig kommunizieren. Beispielsweise kann eine Verbindung parallel über Ethernet und WLAN laufen, um so die Transportgeschwindigkeit erheblich zu steigern.
Einstellungen für SMB-Leistung
Maximalzahl asynchroner Anfragen zum Füllen des Ordner-Cache: Es ist günstig, wenn möglichst viele Inhalte von Ordnern, mit denen der Klient gerade arbeitet, im Hauptspeicher zwischengelagert werden. Über diesen Wert wird gesteuert, wie viele Anfragen der Klient gleichzeitig auf Verdacht abschicken darf, um seinen Ordner-Cache füllen zu können.
Maximale Cache-Zeit für Ordner: dieser Wert gibt die Zeit in Sekunden vor, nach der Inhalte des Ordner-Cache auf jeden Fall verworfen werden sollen, egal ob sie vielleicht noch gültig sind oder nicht.
Minimale Cache-Zeit für Ordner: wie vorher, jedoch mit der Zeit, in der Inhalte des Ordner-Cache grundsätzlich als gültig betrachtet werden, ohne beim Server zu prüfen, ob dies tatsächlich der Fall ist.
Maximalzahl von Ordnern im Cache: dieser Wert bestimmt, wie viele Ordner der Klient gleichzeitig in seinem Cache halten darf. Der Wert 0 gibt an, dass macOS selbsttätig eine übliche Zahl wählen soll, je nach dem, mit wie viel RAM der Computer ausgestattet ist.
Maximalzahl von Cache-Einträgen pro Ordner: dieser Wert bestimmt, wie viele Dateieinträge für jeden ge-cache-ten Ordner maximal im Cache verbleiben dürfen: Der Wert 0 gibt an, dass macOS selbsttätig eine übliche Zahl wählen soll, je nach dem, mit wie viel RAM der Computer ausgestattet ist.
SMB-Mehrkanalfunktion einschalten: hiermit kann erlaubt werden, dass Klient und Server aushandeln dürfen, gleichzeitig über mehrere Netzwerkanschlüsse parallel zu kommunizieren, beispielsweise 2 Ethernet- und 1 WLAN-Verbindung.
Drahtgebundene Anschlüsse gegenüber drahtlosen bevorzugen: gibt vor, dass das System es vermeiden soll, WLAN-Verbindungen in die Menge der Netzwerkanschlüsse mit aufzunehmen, die parallel kommunizieren dürfen.
Maximale Zahl von Kanälen: die obere Schranke, wie viele Netzwerkanschlüsse gleichzeitig zur Kommunikation mit einem SMB-Server verwendet werden dürfen.
Maximale RSS-Kanäle pro Server-Anschluss: Es ist möglich, die Mehrkanalfähigkeit nicht nur als Software-Funktion des Betriebssystems, sondern mit Hardware-Unterstützung dafür konstruierter Netzwerkkarten zu realisieren. Dies wird als empfangsseitige Skalierung(RSS, Receive Side Scaling) bezeichnet. Der einstellbare Wert gibt vor, wie viele Hardware-Kanäle auf Seite des Servers hierfür genutzt werden darf.
Maximale RSS-Kanäle pro Client-Anschluss: wie vor, jedoch für den Datenempfang auf Klientenseite.
Einstellungen für SMB-Datenkompression
Der Karteireiter Kompression zeigt SMB-Einstellungen, die steuern, ob Daten während der Übertragung zwischen Klient und Server komprimiert werden sollen. Dies erfordert mehr Rechenleistung auf beiden Seiten, beschleunigt aber möglicherweise die Übertragung von Daten, die nicht sowieso schon komprimiert sind. Das von SMB verwendete Vorgehen wird als verkettete Kompression bezeichnet, da dieser Schritt intern üblicherweise direkt an die Vorgänge zur Signierung und Verschlüsselung angehängt wird.
Einstellungen für SMB-Datenkompression
Unterstützte Datenkompressionsverfahren: Hiermit wird ausgewählt, welche Verfahren zur Datenkompression eingesetzt werden dürfen, je nach Fähigkeiten von Klient und Server. Standardmäßig wird üblicherweise LZ77 verwendet. Es stehen außerdem die Verfahren Pattern V1, LZ77 und Huffman und LZNT1 zur Verfügung, die von Microsoft definiert sind.
Verkettete Kompression abschalten: über diese Einstellung kann Datenkompression während der SMB-Übertragung grundsätzlich gesperrt werden.
Minimale E/A-Größe für Kompression: Dieser Wert gibt an, wie groß ein zu übertragender Datenblock mindestens sein muss, damit der Aufwand für Datenkompression überhaupt betrieben wird.
Schreibdatenblockgröße für verkettete Kompression: Sind die Daten komprimiert worden, gibt dieser Wert vor, in welchen Portionsgrößen die komprimierten Daten übers Netz gesendet werden sollen.
Maximalzahl fehlgeschlagener Kompressionsversuche: Enthält eine Datei bereits komprimierte Daten, lässt sie sich aus mathematischen Gründen meistens nicht mehr weiter komprimieren. In diesem Fall kann die Datenmenge sogar größer werden, was als „Fehlschlag der Kompression“ bezeichnet wird. Dieser Wert gibt vor, nach wie vielen Fehlschlägen die Kompression von Datenblöcken innerhalb einer Datei abgebrochen werden soll.
Von Kompression ausschließen: Bereits komprimierte Daten lassen sich oft schon an der Dateinamensendung wie jpg, mpeg oder zip erkennen. Um die zuvor erwähnten Fehlschläge der Kompression zu vermeiden, lässt sich von Vorneherein definieren, dass bei bestimmten Dateitypen erst gar nicht versucht werden soll, eine Kompression zu beginnen. Je nach Implementation kann der SMB-Klient dies von sich aus bereits tun, diese Liste lässt sich jedoch erweitern. In der Tabelle wird angegeben, welche Dateinamenserweiterungen grundsätzlich von der SMB-Datenkompression auszuschließen sind.
Komprimieren trotz üblichem Ausschluss: diese Tabelle steuert das umgekehrte Vorgehen. Selbst wenn die Implementation des SMB-Klienten eine Datei bereits standardmäßig ausschließen würde, kann über eine Namensendung gesteuert werden, es trotzdem zu versuchen.
Praxisempfehlungen für private NAS-Systeme
Viele Privatleute nutzen ein NAS-System (Network Attached Storage) als einfachen Datei-Server in ihrem eigenen Hausnetz. Solche Geräte verwenden üblicherweise ein Betriebssystem auf Basis von Linux mit dem SMB-Server Samba, um die Daten bereitzustellen. Die Gefahr, dass sich ein Angreifer im Netz befindet, der den Datenverkehr abhört, oder dass ein böswilliger Server ins Netz gebracht wird, ist in dieser Situation eher gering. In der Praxis haben sich die nachfolgend beschriebenen Einstellungen als gut brauchbar für so eine Konfiguration erwiesen, was Zuverlässigkeit, Kompatibilität und Geschwindigkeitsverhalten angeht. Wir gehen davon aus, dass alle Einstellungen vorher mit Alle auf Standard auf den Grundvorschlag von Apple gebracht wurden. Danach sind nur noch folgende Werte anzupassen:
Allgemein > Unterstützte SMB-Versionen:Nur SMB 3
Allgemein > Kommunikation:Nur Port 445
Allgemein > Vorgänge dürfen fehlschlagen falls Server nicht antwortet:ein
Leistung > Drahtgebundene Anschlüsse gegenüber drahtlosen bevorzugen:ein
Dies ist wie gesagt nur eine Empfehlung für den ersten Einstieg. Durch weitere Optimierungen können die Einstellungen im Einzelfall möglicherweise noch weiter verbessert werden.