Docker mit NGINX-Proxymanager, UFW, Fail2Ban, MariaDB und Nextcloud — Teil 1

Willkommen zum ersten Teil meiner Docker-Serie. Ich versuche in diesem mehrteiligen Tutorial darzustellen, wie man Docker auf einem VServer verwenden kann. Wenn ihr so etwas vor habt, müsst ihr euch dessen bewusst sein, dass dieser Server 24/7 im Internet steht. Der Server muss also laufend aktualisiert und auch überwacht werden. Dies gilt für den Host selbst, aber natürlich auch für die Dockercontainer! Wo immer möglich, solltet ihr Zugriffe einschränken, auf IPtables (ufw) zurückgreifen und ein Monitoring und Update-tool installieren.

 💡 WICHTIG: Das hier ist KEINE Docker-Rootless-Installation! D.h. die Prozesse innerhalb der Dockercontainer laufen mit dem User root. Selbst wenn man Container mit einem Standarduser ausrollt, heißt es nicht, dass somit alle anderen Prozesse (der Container) „rootless“ laufen.

Ich habe den Zugriff auf die Dienste, die vom Internet aus zugreifbar sind, auf meine 2 statischen öffentlichen IPs eingeschränkt. Sofern ihr aus Sicherheitsgründen Docker ohne Root verwenden wollt, gibt es hier eine ganz gute Anleitung (allerdings auf englischer Sprache). Ich werde mich dem Thema später zuwenden, jedoch nicht innerhalb dieser Artikelserie.

Zielsetzung

  • Auf einem Server, der im Internet steht, oder aus dem Internet erreichbar ist, wird -basierend auf Ubuntu Server – Docker installiert.
  • Es ist bereits ein Full-Qualified-Domain-Name (eine Domain) registriert, die auf den Dockerhost zeigt. In meinem Fall ist das portainer.it-networker.at
  • Als Verwaltungstool kommt Portainer zum Einsatz.
  • Zum Schutz von Host und Client wird UFW eingesetzt.
  • Nachdem die gesamte Netzwerkkonnektivität von Docker via iptables gesteuert wird, wird UFW adapiert, damit die – mittels UFW- gesetzten Regeln greifen.
    ACHTUNG: Eine nicht-adaptierte Konfiguration von UFW hat zur Folge, dass -sofern man Containerports „exposed“ = nach außen öffnet- jeder von überall aus  darauf Zugriff hat! (Mehr dazu unten in der Anleitung)
  • Es wird NGINX-Proxy-Manager installiert, der die Verbindungen von außen zu den angebotenen Webseiten / Services „verwaltet“.
  • Über den NGINX-Proxy-Manager werden via Letsencrypt SSL Zertifikate zur Verfügung gestellt.
  • Fail2Ban (im Dockercontainer) sorgt für die zusätzliche Absicherung von Host und Container.

Weiterlesen

Weshalb es Opensource-Software im Firmenumfeld schwer haben kann

Bei meinen Projekten lege ich verstärkt Augenmerk darauf, dass -sofern möglich- Opensourcesoftware (im Folgenden OSS) eingesetzt wird. Gerade wenn es um Serversoftware geht, ist OSS gut und stark vertreten. Abgesehen davon spricht absolut nichts dagegen, die Dienste auch gleich selbst zu hosten.

Warum? Ein paar wichtige Aspekte:

  • Nichts verschwindet in ominösen, aufgeblähten Cloudinfrastrukturen.
  • Man weiß, was mit den Daten passiert.
  • Durch das „Selfhosting“ hat man volle Kontrolle über den Server, ohne dass „Big Player“ a la Microsoft, Google und Konsorten Zugriff auf die Dienste (und die Daten haben).
  • Obiges wirkt sich wiederum auf den Datenschutz (DSGVO) positiv aus, wenn es korrekt umgesetzt wird.
  • Man spart Kosten und muss dennoch nicht auf Dienste verzichten, die zeitgemäß sind.
  • Größtenteils bessere -weil kurzfristigere- Updateversorgung (Security).
  • Man ist von eklatanten Sicherheitslücken der Big Player „weniger“ betroffen. Dieser Vergleich hinkt vielleicht ein wenig, da es ja auch bei OSS und „Linux“ Sicherheitslücken gibt. Ja, auch eklatante, gefährliche.  Allerdings werden derartige Lücken schneller entschärft, wie bei proprietärer Software. Denke ich an die Exchange-Sicherheitslücken der letzten Monate, bleibe ich ganz entspannt, denn ich setze kein MS Exchange ein, sondern eine Alternative.

 

Herangehensweise – ein fiktiver Exkurs

Als ITler bemüht man  sich, für ein Unternehmen die optimale Plattform entsprechend Anforderungsprofil zu finden, vergleicht diverse Anbieter, hat die DSGVO immer persistent im Hinterkopf und ja, kommt vielleicht zu dem Schluss, dass aufgrund des Tätigkeitsfeldes Opensourcealternativen für 95% aller [Online]Tätigkeiten (Videomeeting, Mail, Kontakte, Kalender, Active Sync, Cloudspeicher) ausreichen und noch dazu kostensparend sind.

Wichtig: OSS ist im Unternehmensumfeld nicht kostenlos, wenn man Wert darauf legt, dass es seitens des Herstellers auch professionellen Produktsupport gibt!

Leider ist es immer noch so, dass man als „EDV-Mensch“ oft Alleinunterhalter ist [SoHo-Bereich].

Sprich, man deckt von Projektabwicklung über User- / Hardwarebetreuung, Security, Serververwaltung, Betreuung von Fachanwendungen bis hin zu organisatorischen Tätigkeiten alles ab. Aufgrund der Priorität, die die IT heutzutage einnimmt und natürlich auch wegen der Komplexität der Systeme, hat der verantwortungsvolle Admin (egal ob Opensource oder nicht) zusätzlichen Support (einen Dienstleister) in der Hinterhand! Denn was ist, wenn man selbst nicht mehr weiter weiß?

Gott sei Dank gibt es heutzutage viele Firmen, die a.) OSS anbieten und b.) diese Software auch supporten! Dem war nicht immer so!

Aufbau einer OSS Kommunikationslösung

Jeder der heutzutage meint, dass Microsoft (mit Windows, Office [365], Exchange etc.) nicht zum Standard gehört, hat die letzten rund 25+ Jahre verschlafen. Hat man z.B. vor, ein bestehendes System, das auf Microsoftlösungen setzt, auf eine offene Kommunikationsplattform zu stellen (Server & Client), wird es mit Sicherheit schwierig. Die Akzeptanz der Anwender ist von immens hoher Priorität!

Stufenplan

Schritt 1: Inbetriebnahme einer OSS Kommunikationsplattform (serverseitig) unter Beibehaltung der Desktop Applikationen (Outlook).

Ziel: Der Anwender soll möglichst nichts von der Änderung mitbekommen. Der gewohnte Email-Client bleibt im Einsatz. Es erfolgt die Anbindung an das Active Directory (User-/Gruppenverwaltung).

Mögliches Problem: Um Outlook weiter verwenden zu können, wird ein Outlook-Connector auf jedem Client installiert. Dieser Connector stellt sicher, dass alle Funktionen (shared Kalender, Emails, Kontakte, Notizen etc.) wie gewohnt zur Verfügung stehen, obwohl „im Hintergrund“ kein MS Exchange Server [mehr] läuft. Nun verhält es sich hier aber ab und zu so, dass ein Outlook-Update an der Schnittstelle (=Kommunikation mit dem Connector) eine Kleinigkeit ändert, was wiederum dazu führen kann, dass aus heiterem Himmel einige Funktionen (zb. die shared Kalender) nicht mehr zur Verfügung stehen.

Der Connector muss in so einem Fall vom Anbieter angepasst (aktualisiert) werden. Danach muss der Admin diesen Connector wieder ausrollen.

Dieses Spiel wiederholt sich immer wieder und stellt natürlich (abgesehen vom Unmut der Anwender) einen Aufwand für den Admin da. Irgendwann könnte der Connector eingestellt werden!

Schritt 2: Umstellung auf einen „native“ Client = einem „Desktop-Mailclient“ der mit der OSS-Lösung / ersetzen von MS Outlook.

Ja, den Anwendern wird MS Outlook „weg genommen“. Klingt einfach… ist es aber nicht… 😉

Ein derartiger Schritt muss sehr behutsam erfolgen. Die Anwender sind bereits vor dem Austausch entsprechend zu Schulen und an die Hand zu nehmen. Letztlich gelingt aber auch dieser Meilenstein, wenn man genug Überzeugungsarbeit geleistet hat (und viel Geduld mitbringt). Der Outlook Connector ist -so wie die Synchronisierungsprobleme mit Outlook – somit Geschichte!

Schritt 3: Einbindung der Mobilgeräte (z.B. via Activesync — zpush)

Damit auch „mobile Endgeräte“ mitreden dürfen, wird ein zusätzlicher Dienst (z.b. ActiveSync) in Betrieb genommen.

Das System läuft

Im Laufe der Zeit -über Jahre hinweg- (und ich kann hier nur für mich sprechen), lernt man die Plattform immer mehr zu schätzen.

  • Das System läuft stabil
  • Die Probleme halten sich extrem in Grenzen
  • Keine Ausfälle durch Softwareupdates
  • Minimalistische Hardwareanforderungen (verglichen mit den Business-Produkten der Big Player)
  • Geringe laufende Kosten, verglichen mit aktuellen Standardprodukten anderer Anbieter
  • Im Worst-Case: Einen lokalen Ansprechpartner, der auch greifbar ist

Die Anforderungen steigen

  • Ein Clouddienst wäre nicht schlecht? Die Datenhoheit soll aber nicht aufgegeben werden?
  • Wie ists eigentlich mit einer Videokonferenzlösung, aber bitte ohne die Daten über X Server zu jagen, die außerhalb des eigenen Einflussbereichs liegen?
  • Aja, ein Ticketsystem steht ja auch noch auf dem Plan!
  • Eine unternehmensweite Chatplattform soll auch noch her…

Kein Problem

  • Warum nicht Nextcloud um -wie die Großen- Wolken in den digitalen Himmel malen zu können?
  • Videokonferenz… hm, wie wäre es mit BigBlueButton, oder -etwas weniger komplex- mit Jitsi Meet?
  • Die Ticketproblematik wäre u.a. mit OS-Ticket zu lösen…
  • Chatten“ könnte man ja mit Rocket-Chat

Alles machbar – natürlich mit einmaligem Aufwand verbunden. Wenn es aber läuft, dann läuft es.

High Noon

Bei all den Bemühungen, die man ggf. über Jahre in eine funktionierende OSS-Lösung gesteckt hat, kann es so gut wie immer passieren, dass plötzlich ein anderer Wunsch auf der Agenda der Entscheidungsträger steht. Dies gilt an sich für alle Softwareprodukte, die nicht der gewohnten Norm entsprechen.

Aussagen wie: „Wieso setzen wir eigentlich nicht überall Lösung X ein?“, „…können wir nicht das verwenden, was alle haben?“, „Also Software X ist schon ein Mist, weil das sieht alles anders aus, wie die damalige Software Y“, „Programm X funktioniert nicht“ (oft ein Bedienungsfehler) usw. usf. sind vermutlich vielen bekannt.

Haben sich diese Phrasen in den Köpfen manifestiert, wird es schwierig dagegen zu argumentieren – egal ob obige Aussagen aufgrund von lösbaren Problemen entstanden sind, oder andere Gründe haben. Am Beispiel von „LiMux“ z.b. hier zu lesen: derstandard.at sieht man wie verzwickt es werden kann. Gestartet wurde das Limux-Projekt (Stadtverwaltung München) im Jahr 2004, danach gab es ein hin und her (Linux installiert – „Microsoft“ weg, Linux weg – Microsoft „installiert“… Fortsetzung folgt).

Anwendersicht

Aus Anwendersicht ist die Angelegenheit (wie weiter oben schon angerissen) natürlich schwer. Vor allem dann, wenn die vermeintlich geliebte und gewohnte Standardsoftware gegen ein anderes Softwareprodukt ausgetauscht wird. Selbst wenn das neue Produkt besser ist. Es spielt hier gar keine Rolle, ob proprietär oder nicht. Essentiell ist, dass eine neue Plattform grundsätzlich anders aussieht und eine alternative Bedienung erfordert.

Täglich prasselt Werbung auf uns ein, die nur Proprietärsoftwarelösungen am Plan hat. Mir wäre noch nie Werbung untergekommen, die von „Linux“ oder OSS spricht.

Schulen

Computerunterricht – bereits schon in der Volksschule. Toll! Welche Softwareschiene wird gepredigt? (ich lasse die Antwort offen).

Welche Alternativen werden aufgezeigt? Darauf habe ich eine Antwort parat: KEINE!

Dies gilt übrigens auch für die meisten höheren Schulen!

Corona und die Digitalisierung

Im Zuge der Coronapandemie wurde allen bewusst, wie wichtig Digitalisierung ist. Die Intensivierung des notwendig gewordenen „Home-Office“ führte dazu, dass man sich mit Technologien bzgl. Videokonferenzen, Online-Meetings usw. auseinander setzen musste. Viele hatten bis zu diesem Zeitpunkt mit dem Thema „Videokonferenzen und Onlinemeetings“ nichts am Hut. Es fehlte die Infrastruktur. Natürlich sprangen die großen Anbieter auf diesen Zug auf. Es gab ein Zeitfenster, in dem z.B. MS Teams selbst Firmen kostenlos zur Verfügung gestellt worden ist.

Durchaus sinnvoll und ein Entgegenkommen von Microsoft.

Wenn man das nun weiter denkt (Angenommen, es ist noch kein Office 365 Abo vorhanden):

  • MS Teams ist corona-bedingt im Einsatz (man muss sich aufgrund der Situation damit täglich auseinander setzen, lernt es kennen und schätzen).
  • Optimale Kompatibilität mit der MS Office Schiene ist aber nur gegeben, wenn man ein komplettes MS Office (Abo) (Word, Excel, Powerpoint…) verwendet – inkl. Microsoft Exchange.
  • Letztlich kann man dann im Sinne der Produktivität (und vor allem Kompatibilität) gleich auf den Office 365 Zug aufspringen, wenn es mit dem vorhandenen Budget machbar ist.
  • Dies wiederum macht serverseitig sämtliche andere Produkte (Maillösung, Videokonferenzlösung, Chat-Lösung…) „inkompatibel“ und obsolet, selbst wenn alles perfekt läuft.

Fachanwendungen – Da war ja noch etwas

All das oben Erwähnte sehe ich als Argumente, die gegen den Einsatz von Opensource sprechen könnten. Nun gibt es aber eine Sache. Ein Killerargument – vor allem wenn man auch am Desktop PC „OSS-Office“ einsetzt.

Firmen haben oft sogenannte Fachanwendungen im Einsatz. Diese Anwendungen verwenden beispielsweise diverse Schnittstellen, um mit anderen Programmen Daten austauschen zu können. Es zählt, was Standard ist! Auf einem Desktop PC ist erwähnter Standard „Microsoft Office“.

Eine andere Plattform wird nicht unterstützt. Ich kann mich gut an eine Diskussion mit einem Entwickler erinnern. Auf die Frage hin, weshalb nicht auch z.b. Open-Office unterstützt wird, bekam ich ein Trockenes: „Ich unterstütze SICHER NICHT eine zusätzliche Plattform!“ Damit war die Diskussion auch schon beendet.

Als Firma bist du somit an die Microsoft Office Schiene gebunden. Wie man in Österreich so schön sagt: „Da fährt die Eisenbahn drüber!“

Das Eine führt zum Anderen

Bevor von allen Seiten in die „Cloud“ gedrängt wurde, konnte z.B. bezgl. MS Office bedenkenlos zu Volumenlizenzen gegriffen werden, die kein Online-Abo diverser Dienste bedingt haben. Je nach Lizenzmodell, war eine Einmalinvestition zu tätigen und „Office“ war dann bis zum Supportende hin im Einsatz. Vieles lief (und läuft) noch „in-house“ — u.a. die Kommunikationsinfrastrukur – vielleicht sogar auf OSS-Basis!

Heute drängt man in die „Cloud“. Cloudabos, bezahlt nach Useranzahl und Monat sind das Topthema. Das „Rundum-sorglos-Paket“, Exchange – Online inklusive und immer aktuell.

Jetzt hat man also einerseits einen „MS-Office am Desktop Zwang“ und andererseits Office-Pakete, die vielleicht bald nur noch im Rahmen von Office 365 angeboten werden. Ach ja… man will ja auch noch MS Teams (in Office 365 inklusive) einsetzen.

Zusammengefasst

  • Cloudlösungen werden forciert
  • MS-Office-Zwang aufgrund fehlender Schnittstellen zu alternativen Officeprodukten
  • Wunsch nach Standardsoftware für Onlinemeetings: MS-Teams soll sinnvoll & produktiv eingesetzt werden
  • MS-Exchange ist Voraussetzung für die intuitive Verwendung aller Office-Applikationen (verstärkt durch das MS Teams Thema!)

Alle Fakten des gesamten Artikels zusammen genommen: Wohin führt der Weg wohl, was meint ihr?

Fazit

Ich möchte klar stellen, dass ich mit meinem Artikel weder Microsoft noch einen anderen Softwareanbieter kritisieren oder an den Pranger stellen will. Ganz im Gegenteil. Die Microsoft Office 365 Plattform ist ausgereift und in Sachen programmübergreifender Zusammenarbeit und Kompatibilität unerreicht.

Dennoch bitte ich DRINGEND darum, auch OSS eine Chance zu geben! Viele Anforderungen kann auch OSS problemlos abdecken und hilft dabei Kosten zu sparen.

Lasst euch nicht unterkriegen und unterstützt (verwendet) OSS-Lösungen wo immer möglich und sinnvoll. Bestehende Proprietär-Platzhirschen im Unternehmensumfeld vom Desktop zu verdrängen, wird ohne eigene Entwicklungsabteilung schwer bis unmöglich. Serverseitig gibt es jedoch dennoch viele Möglichkeiten, auf OSS zu bauen! Bestenfalls selbst gehostet! Das sollten eure Daten euch wert sein.

Danke fürs Lesen!