Sicherheit für Datenbank-Server

Firewallregeln für SQL Server steuern

| Autor: Thomas Joos

Microsoft-Netzwerke effektiv verwalten
Microsoft-Netzwerke effektiv verwalten (Microsoft-Netzwerke effektiv verwalten)

Beim Betrieb von Microsoft SQL Server müssen Administratoren einiges im Bereich der Firewallregeln beachten. Das Freischalten der Firewalleinstellungen für die Verwaltung von SQL Server kann auch in der Befehlszeile erfolgen, zum Beispiel auf Core-Servern.

Das beginnt bereits bei der Installation des Servers, geht über Einstellungen in der Verwaltung, und muss auch bei der Anbindung von Clients beachtet werden. Häufig erscheint bei der Installation von SQL-Server zum Beispiel ein Fehler, dass die Windows-Firewall die entsprechenden Ports für SQL Server blockiert. Diese können Sie nachträglich aber immer noch freischalten. Die Warnungen können Sie daher übergehen, müssen aber nach der Installation nacharbeiten. Im MSDN sind ebenfalls Informationen zu den einzelnen Ports von SQL Server zu finden (https://msdn.microsoft.com/en-us/library/cc646023.aspx).

Um die entsprechenden Ausnahmen für die Remoteverwaltung einzutragen, verwenden Sie zum Beispiel folgenden Befehl:

netsh advfirewall firewall add rule name="SQL Server" dir=in action=allow program="C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Binn\sqlservr.exe" enable=yes profile=domain

Der Pfad ist abhängig von der eingesetzten SQL-Server-Version

Da auf Core-Servern der SQL Server Konfigurations-Manager nicht funktioniert, können Sie das TCP/IP-Protokoll in der Registry ändern. Dazu setzen Sie den Wert HKLM\SOFTWARE\Microsoft>Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQLServer\SuperSocketNetLib\Tcp auf 1. Anschließend starten Sie den Server neu. Standardmäßig ist nach der Installation von TCP/IP in SQL Server 2012/2014 und auch SQL Server 2016 aber ohnehin aktiviert. Sie sollten dennoch wissen, wie Sie den Wert steuern, wenn Sie die Installation über eine Konfigurationsdatei durchführen.

Sie müssen die Windows-Firewall auf dem Server konfigurieren, damit SQL-Server kommunizieren kann:

netsh advfirewall firewall add rule name = SQLPorttcp dir = in protocol = tcp action = allow localport = 1433-1434 remoteip = localsubnet profile = DOMAIN

netsh advfirewall firewall add rule name = SQLPortudp dir = in protocol = udp action = allow localport = 1433-1434 remoteip = localsubnet profile = DOMAIN

Zusätzlich aktivieren Sie über sconfig noch die Remoteverwaltung für den Server. Hier sollten Sie am besten alle vier Punkte zulassen, die der Assistent auflistet.

SQL Server können Sie in der PowerShell remote über das Netzwerk verwalten. Dazu müssen Sie aber auf dem entsprechenden Computer die Verwaltungstools für SQL Server 2012/2014/2016 und neuer über die Installations-DVD installieren und die Remoteverwaltung für den Server im SQL Server-Konfigurations-Manager aktivieren und auch in der PowerShell. Verwenden Sie auch den Befehl Enable-PSRemoting -force.

Der Befehl aktiviert auch die Ausnahmen in der Windows-Firewall. Außerdem müssen Sie in der Windows-Firewallsteuerung in der Systemsteuerung folgende Ausnahmen aktivieren, damit der Zugriff über das Netzwerk funktioniert:

Datei- und Druckerfreigabe

Remotedienstverwaltung

Windows-Remoteverwaltung

Windows-Remoteverwaltung (Kompatibilität)

Windows-Verwaltungsinstrumentation (WMI)

Der Server-Broker des SQL-Servers nutzt den Port 4022. Auch dieser muss über die Firewall freigeschaltet werden, wenn Dienste nicht funktionieren. Welcher Port auf Ihrem SQL-Server genutzt wird, erfahren Sie über die Abfrage:

SELECT name, protocol_desc, port, state_desc

 FROM sys.tcp_endpoints

 WHERE type_desc = 'SERVICE_BROKER'