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“.

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:
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:
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.