Microsoft SQL Server 2019 unter Debian 11 installieren (Datenbank für JTL-Wawi unter Linux)

Microsoft SQL Server 2019 unter Debian 11 installieren (Datenbank für JTL-Wawi unter Linux)

Um den Microsoft SQL-Server unter Debian 11 zu installieren müssen wir uns einiger kleinerer Tricks bedienen. Die Installation ist jedoch durchaus möglich.

Sofern Ihnen die nachfolgenden Schritte – insbesondere die Absicherung des Servers – Probleme bereiten, biete ich Ihnen meine Leistungen auch zu günstigen Stundensätzen an (zum Kontaktformular).

Dieser Artikel enthält geschützte Bereiche welche mit einem Passwort für Bestandskunden freigeschaltet werden können.

1. Microsoft SQL-Server 2019 unter Debian 11 installieren

Als erstes installieren wir einige Pakete die wir auf jeden Fall benötigen:

apt-get install -y gnupg
apt-get install -y gnupg2
apt-get install -y sudo
apt-get install -y curl

Danach fügen wir den Key von Microsoft hinzu:

wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -

Die Warnung kann zum jetzigen Zeitpunkt noch ignoriert werden.

Danach müssen wir einige Microsoft-Repos hinzufügen mit

nano /etc/apt/sources.list

fügen wir

deb https://packages.microsoft.com/ubuntu/20.04/mssql-server-2019 focal main
deb https://packages.microsoft.com/ubuntu/20.04/prod focal main

hinzu.

Wir aktualisieren unsere Repos und installieren den SQL Server

apt-get update
apt-get install -y mssql-server
/opt/mssql/bin/mssql-conf setup

Wir wählen die richtige Version aus, akzeptieren die Lizenz und legen ein starkes Administratorpasswort fest.

Nach Abschluss der Installation sollte der entsprechende Dienst ohne Probleme laufen. Das kann mit

systemctl status mssql-server --no-pager

kontrolliert werden.

Hinweis: Für Verbindungen von außen wird der TCP-Port 1433 verwendet.

Als nächstes installieren wir noch einige Tools

apt-get install -y mssql-tools unixodbc-dev

und laden auf unserem Windows-Rechner das SQL Server Management Studio unter https://docs.microsoft.com/de-de/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15 herunter.

Während des Downloads installieren wir fail2ban

apt-get install -y fail2ban

und fügen mit

nano /etc/fail2ban/jail.conf

den folgenden Inhalt hinzu

[mssqld]
enabled = true
logpath = /var/opt/mssql/log/errorlog
maxfailures = 10
findtime = 1200
bantime = 3600
filter = mssqld-auth
port = 1433
action = iptables-allports
backend=polling #!important

Danach legen wir mit

/etc/fail2ban/filter.d/mssqld-auth.conf

eine neue Datei mit folgendem Inhalt

[INCLUDES]
before = common.conf

[Definition]
_daemon = mssqld
failregex = Login failed for user .* \[CLIENT: <HOST>\]
ignoreregex =

an und starten fail2ban neu

service fail2ban restart

Nunmehr sollte die Installationsdatei für SSMS heruntergeladen sein. Nachdem wir das SSMS installiert haben starten wir das Microsoft SQL Server Management Studio und verbinden uns anhand der IP-Adresse unseres Servers, dem Benutzernamen sa und dem vorher gewählten admin-Passwort.

2. Neue Datenbank anlegen (für JTL-Wawi)

Danach können wir mit einem Rechtsklick auf Datenbanken eine neue Datenbank erstellen

Hier ist vor allem wichtig, dass der Eigentümer „sa“ ist sowie unter Optionen die Collation „Latin1_General_100_CI_AS“ ist und das Wiederherstellungsmodell „einfach“.

Es geht aber noch einfacher indem Ihr einfach die JTL-Wawi installiert und startet bzw. die Datenbankverwaltung der JTL-Wawi öffnet.

Unter Servername geben wir die entsprechende IP-Adresse oder den Hostnamen des Servers ein:

Danach klicken wir auf „Weiter“ und geben das Admin-Passwort für den Benutzer sa ein und klicken erneut auf „Anmelden“.

Als nächstes erstellen wir mit „Neuer Mandant“ einen neuen Mandanten mit dem Namen eazy

Daraufhin werden wir darauf hingewiesen, dass keine eazybusiness Datenbank gefunden wurde. Den Dialog bestätigen wir mit „OK“.

Geschützter Bereich

Dieser Inhalt ist passwortgeschützt. Bitte gib dein Passwort ein um den Inhalt freizuschalten.

Die JTL-Wawi-Datenbankverwaltung sollte nunmehr die Datenbank erstellt haben und die entsprechenden Tabellen in der Datenbank anlegen.

3. MSSQL Backups unter Debian 11 erstellen

Backups können mit sqlcmd unter Debian 11 erstellt werden, Beispiel:

/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P PASSWORT -Q "BACKUP DATABASE [eazybusiness] TO DISK = N'/var/opt/mssql/data/eazybusiness-$(date +%Y-%m-%d-%H-%M).bak' WITH NOFORMAT, NOINIT, NAME = 'eazybusiness', SKIP, NOREWIND, NOUNLOAD, STATS = 10" 

Das Wiederherstellen eines Backups würde so aussehen:

/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P PASSWORT -Q "RESTORE DATABASE [eazybusiness] FROM DISK = N'/var/opt/mssql/data/eazybusiness-2022-04-18-12-51.bak' WITH FILE = 1, NOUNLOAD, REPLACE, NORECOVERY, STATS = 10"

Was jedoch nicht ohne einige zusätzliche Kommandos auskommt:

Geschützter Bereich

Dieser Inhalt ist passwortgeschützt. Bitte gib dein Passwort ein um den Inhalt freizuschalten.

4. Grundsätzliches Problem

Ein grundsätzliches Problem ist die standardmäßige unverschlüsselte Übertragung bei SQL-Verbindungen. In der nachfolgenden Grafik sehen wir deutlich, dass die Daten unverschlüsselt übertragen werden:

Die Lösung hierzu ist ein SSL-Zertifikat einzurichten:

Geschützter Bereich

Dieser Inhalt ist passwortgeschützt. Bitte gib dein Passwort ein um den Inhalt freizuschalten.

Danach werden die Daten nicht mehr im Klartext übertragen, sondern mit TLS verschlüsselt:

5. Serversicherheit

In diesem Artikel haben wir bereits einige grundlegende Probleme behoben, jedoch ist der Server in diesem Zustand noch immer nicht bestmöglich abgesichert. Selbstverständlich helfe ich Euch sehr gerne zu günstigen Stundensätzen, dabei ist es egal ob Ihr Euren JTL-Wawi-MSSQL-Server unter Linux oder Windows verwendet. Ihr erreicht mich problemlos über mein Kontaktformular.

Dieser Artikel ist urheberrechtlich geschützt. Ich widerspreche u. a. ausdrücklich der Verwendung in YouTube-Videos.

Schreibe einen Kommentar

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