Erfahrungsbericht nach vollständiger Umstellung des Betriebes auf Open Source Software

Nun ist es doch schon länger her, dass eine vollständige Umstellung der Software im Hause der CTS GMBH und auch im privaten Bereich durchgeführt wurde. Es gibt aktuell keine einzige kommerzielle Software und viele der früher auftretenden Probleme sind, ohne jegliche Lizenzkosten, einfach verschwunden.

Der Anfang

Schon seit dem Anfang der 90er Jahre wird bei CTS FreeBSD (https://freebsd.org) und Debian Linux (https://debian.org) auf den Servern verwendet und im Serverbereich wurde schon damals, mit wenigen Ausnahmen, jegliche proprietäre Software ausgemustert. Die Schwierigkeiten waren hier natürlich weit geringer, denn die meisten Webserver im Internet werden mit Open Source BSD, bzw. Linux Betriebssystemen betrieben. Die PHP Programmiersprache, der MySQL oder PostgresQL Datenbankserver und viele weitere Open Source Softwareprodukte sind Standard beim Einsatz mit direktem Internetanschluss. DNS Infrastrukturen und weitere für den Betrieb eines Netzes erforderliche Dienste werden zum größten Teil auch mit besagten Komponenten betrieben.

Da ich generell der Meinung bin, dass eigene vertrauliche Daten nur im eigenen Haus gespeichert werden dürfen und die Auslagerung auf fremde Rechner im Internet (aka Cloud oder Hosting) keine Option ist, war schon sehr bald der Betrieb einer eigenen DNS Infrastruktur, eines auf FreeBSD basierenden Mail Servers, inklusive einer vor Spam- und Viren schützenden, selbst entwickelten MailWall ein konsequenter Weg. Der Einsatz von PGP (https://de.wikipedia.org/wiki/OpenPGP) als von Betriebssystem unabhängigem Verschlüsselungssystem auch für E-Mails begann bereits sehr früh. Nicht verschlüsselte E-Mails sind wie ein Postkarte und man wundert sich, welche sensible Daten unverschlüsselt per E-Mail versendet werden. Hier kann man erwarten, dass es in nicht allzu ferner Zeit einen gröberen Vorfall geben wird, denn wo Daten sind gibt es jemand, der diese haben will.

Im Laufe der Zeit kamen, da proprietäre Dokumente auf der MailWall geblockt werden, zum Datenaustausch mit Partnern ein eigener OwnCloud (https://owncloud.org) Server, betrieben hier im Haus, hinzu. Damit können Dateien über eine DMZ sehr sicher mit Dritten ausgetauscht werden und man vermeidet die Unhöflichkeit von riesigen E-Mail Attachments.

In den Anfängen der VoIP Telefonie wurde unser Telefonsystem bereits auf eine Asterisk Installation umgestellt und wir agieren auch hier vollkommen Anbieter befreit. Mittlerweile ist der Asterisk direkt via IAX2 und SIP, natürlich eingeschränkt auf deren und unsere statischen IP Adressen, bei zwei Providern angebunden.

Weitere Schritte

Ein, natürlich auch selbst betriebener Home Assistant (https://www.home-assistant.io/) Automationsserver, welcher keine Daten an Dritte überträgt in Verbindung mit einer eigenen MQTT Infrastruktur zeigte, dass es natürlich möglich ist, ohne schlecht programmierte IoT Geräte und Wanzen, welche alle Daten durch den Server des Anbieters senden, bzw. einen Zugriff zur Anlage über diesen ermöglichen, sehr einfach realisiert werden kann. Dort wo keine statische IP Adressen vorhanden sind, kann der Zugriff sauber über Tor Hidden Services realisiert werden.

Als Firewalls mit HA Setup werden FreeBSD basierende PFSense ( https://www.pfsense.org/) Lösungen eingesetzt. Damit ist der automatische Sync verschiedener Firewalls und der Aufbau von WAN, LAN, DMZ, WEBNET und rein virtuellen Netzen, ala separierten Anonymisierungslösungen mit Tor und Linux Terminal Server in einem hermetisch abgeschlossenem Netz leicht möglich. Netzseparation ist in jedem Fall zwingend!

Hausintern kann die komplette SSL Zertifikats Infrastruktur ohne Dritte sehr einfach aufgebaut werden. Für öffentliche Server benutzt man am besten kostenlose Letsencrypt Zertifikate.

Damit sind Sie dem Projekt “Null Lizenzkosten” schon viele Schritte näher.

Das komplette Setup ist für professionelle Administratoren sehr einfach und übersichtlich einzurichten und die Wartung kann, insbesondere, wenn man, wie bei uns im Haus, die kostenlose Open Source Virtualisierung Proxmox (https://proxmox.com) verwendet, sehr einfach mit Snapshots (speichert binnen Sekunden ein Abbild des Systems, auf das man in Sekundenschnelle wieder zurücksetzen kann.) umgesetzt werden.

Mit der PFSense Lösung kann sehr einfach eine komplette Abschottung des LAN erfolgen und ein Zugang für reisende Mitarbeiter und Telearbeitsplätze über die inkludierte OpenVPN (https://en.wikipedia.org/wiki/OpenVPN) Lösung realisiert werden. Damit ist es möglich, sich komplett geschützt von einem Notebook oder Mobilgerät unter Windows, OSX, Linux, Android und IOS Zugang zum LAN zu verschaffen und der Administrator kann auf der Firewall den externen Rechnern, z.B. nur den Zugriff auf den Terminal Server erlauben. Vielfältige, sichere Szenarien sind hier die Standardsetups guter Administratoren. Das Interface für das VPN kann eigenständig mit Firewall Regeln bespielt werden.

Durch die Leistungsfähigkeit neuerer Hardware und die Möglichkeit der Virtualisierung können einzelne Services auf einzelnen virtuellen Systemen betrieben werden. Dadurch wird die Wartung dramatisch vereinfacht und die Kosten für Ausfälle und Stehzeiten gehen gegen Null.

Für unabhängige Bookmark Synchronisation (https://www.xbrowsersync.org/), Fakturierung, ERP Lösung, Fahrzeugtracking (https://www.traccar.org/) betreiben wir eigene virtuelle Maschinen und testweise wurde auch ein eigener Cryptowährungs Zahlungssystem Server (https://btcpayserver.org/) eingerichtet. Damit kann man vorzeigen, wie einfach und sicher eine Zahlung im Internet, ohne Drittanbieter und ohne Spesen, abgewickelt werden kann.

Storage / NAS

Um den rasant wachsenden Datenmengen Herr zu werden, wurden unsere seit längerem betriebenen FreeNAS (https://freenas.org) Storage Systeme (selbst zusammengestellte Hardware aus Einzelkomponenten) auf Hochverfügbarkeit umgestellt. Wir betreiben nun 2 NAS, je mit 12 TB auf ZFS Dateisystem und NAS-zu-NAS HA Replikation. Die Datensicherung erfolgt auf verschlüsselte externe Datenträger mit Auslagerung. Sensible virtuelle Maschinen werden mit verschlüsselten virtuellen Festplatten betrieben.

Dezentralisierung

Facebook und Twitter Alternativen

In den letzten Jahren wurde massive Kritik an den großen “sozialen” Netzwerken, insbesondere im Bereich Datensicherheit und Privatsphäre laut. Ich selbst war nie ein besonderer Nutzer dieser Systeme und hatte nur einen Facebook Account, welcher aber seit April 2018 komplett leer ist.

Angespornt durch diese Kritik in Verbindung mit aufgedeckter Datensammelwut, Daten Leaks und der Willkür einiger Betreiber, welche Benutzer durch die Sperre Ihrer Accounts eine unschöne Überraschung bereiteten, entstand das Fediverse mit dem ActivityPub Protokoll.

Mastodon, eine dezentralisierte, Open Source, Twitter und Facebook Alternative ist die klare Nummer eins und auch wir betreiben eine eigene Mastodon Instanz.

Mein Fediverse/ActivityPub Profil auf der CTS Mastodon Instanz finden Sie hier:

Es hat etwas gedauert, bis Firmen, politische Gruppierungen und andere diesen riesigen Vorteil verstanden haben und dann hat es nochmal etwas gedauert bis die “das hat ja keiner, alle sind dort Lemminge” aktiv wurden. Wir immer ein Henne und Ei Problem, denn so lange Personen, Firmen, Institutionen die etwas mitteilen möchten, nicht aktiv werden, wird es auch keine Nutzer geben. Das Problem ist mittlerweile Vergangenheit und die Interaktivität im Fediverse ist sehr hoch und mit guter Qualität.

Kurz zusammengefasst funktioniert das Fediverse so ähnlich wie sie es von E-Mail kennen. Es gibt einen Server mit der Domain meinedomain.com und alle Benutzer die einen Account auf diesem Server haben, bekommen @benutzer@meinedomain als Adresse. Die Fediverse Instanzen kommunizieren wie E-Mail Server über der Domain Teil, somit kann jeder Benutzer, jedem anderen Benutzer im Fediverse, sogar über verschiedene Software Lösungen (Mastodon, Pixelfed (Foto), PeerTube (Video), etc.) folgen und erhält die Neuigkeiten ungefiltert in der Timeline. Kein Datensammler der sortiert, filtert oder vorschreibt was Ihnen wichtig ist.

Und das beste, wenn Sie als Anbieter eine eigene Instanz betreiben kann niemand Ihre Accounts sperren, denn Sie sind der Admin Ihrer Instanz! Auch wird der Aufwand von Kontrolle und Löschungen einzelner Postings dramatisch reduziert, da Sie nur für die Postings auf Ihrer Instanz verantwortlich sind! Die Sichtbarkeit ist, richtig eingesetzt, auch viel höher da die federierten Zeitleisten Postings abbilden. Kommerzieller Support und Consulting gerne über support@cts-solutions.at .

Sicherer Messenger

Um das Gesamtbild abzurunden fehlte nun noch ein sicherer, End-zu-End verschlüsselter Messenger, bei dem niemand mitlesen kann, der dezentral aufgebaut ist und selbst betrieben werden kann. Durch die gesetzlichen Vorgaben in den USA ist es mehr als zweifelhaft, dass die E2E Verschlüsselung großer Anbieter wirklich keine Backdoor zum Mitlesen hat. Gerade bei der Kommunikation ist es für mich zwingen, dass jeder Zweifel ausgeschlossen ist.

Schon sehr lange bevor die französische Regierung auf die gewählte Lösung aufgesprungen ist und das deutsche Milität die Lösung in der engsten Auswahl testet, wurde in unserem seit jeher sehr innovativem Hause auf das Matrix Protokoll (https://matrix.org) in Verbindung mit dem Matrix Server Synapse und dem Messenger Riot (https://riot.im) gesetzt.

Für den Benutzer ist nur der Riot Messenger (Windows, MAC, Linux, Android, IOS) sichtbar. Dieser kommuniziert über das Matrix Protokoll mit dem Synapse Matrix Server. Wir auch bei Mastodon oder E-Mail können Server mit anderen Servern kommunizieren und damit ist eine uneingeschränkte Kommunikation mit allen Benutzern in der Matrix möglich.

Die Adressen bauen sich so auf, dass einem @ der Benutzername am Server folgt, danach ein : gefolgt von der Domain.

Meine Adresse ist z.B.:

  • @karl:matrix.ctseuro.com

Es gibt drei Arten von Adressen:

  • 1:1 Chat Adressen starten mit einem @, wie oben bei meiner Adresse

  • Gruppenchats starten mit einer #

Ich habe z.B. einen Raum #kmj:matrix.ctseuro.com angelegt, welcher öffentlich zugänglich ist. Am einfachsten Betreten können Sie Räume in dem Sie

/join #kmj:matrix.ctseuro.com

in der Box eingeben, in der Sie sonst schreiben.

  • Communities starten mit einem +

Die Auswahl fiel auf Matrix/Riot da oben genannte Anforderungen erfüllt werden und:

  • Multi Device fähig, d.h. Sie können von PC, Tablet und Smartphone, bei Bedarf auch von mehreren davon, gleichzeitig eingelogged sein und alle Geräte sind in Sync. Egal welches Gerät gerade verwendet wird, es wird nie etwas verloren.

  • Riot kann auch Telefonie (1:1 und Gruppe), sowie Video (1:1), wobei die VoIP Kommunikation in verschlüsselten Räumen auch verschlüsselt ist.

  • Wenn man sich angewöhnt, pro Projekt, Agenda, oder Todo einen Raum anzulegen, bleibt alles total übersichtlich und die Arbeit wird brutal erleichtert. Ich habe zusätzlich viele Räume nur für mich, als eine Art Notiz.

  • Setup und Wartung des Servers ist extrem einfach und bis auf die Updates und einige smarte Cron Jobs ist dieser weitestgehend Wartungsfrei.

  • Der Riot Messenger wird von Jung und Alt sofort verstanden und setzt Null IT-Wissen voraus. Das erleichtert es sehr, dass auch unbedarfte Anwender auf Riot wechseln.

  • Kommunikation zwischen Benutzern am eigenen Server verlässt den Server nicht, andernfalls sind nur die beteiligten Server in die Kommunikation eingebunden. Damit ist auch ein zentrales Sammeln von Metadaten ausgeschlossen. Sicherheit und Privatsphäre wie sie sein sollte.

  • Automatisierung mit Bots. Wir haben z.B. verschiedene Räume für News, Security, Softwareupdates und vieles mehr, bei dem der Bot definierte RSS Feeds einspielt. So hat man in einem System alles im Überblick und verschwendet keine Zeit.

  • Es gibt noch viele gute Gründe, insbesondere auch die DSGVO, die zum Umstieg von zentralisierten Messengern bewegen sollte. Leute die Ihr Adressbuch inklusive meiner privaten Kontaktdaten, eventuell sogar eines Bildes, ohne zu fragen an Dritte übermitteln waren mir schon immer ein Dorn im Auge. Mit dem Bild kann z.B. eine Gesichtskennung durchgeführt werden und wie der letzte aktuelle Fall zeigt, hat eine US Firma Millionen von Bildern genau für so etwas gesammelt.

https://www.onvista.de/news/presse-us-firma-sammelte-milliarden-fotos-fuer-gesichtsdatenbank-320518431

Ich habe Whatsapp oder andere Messenger, außer Tox über das Tor Netzwerk und ähnliche, insbesondere für Journalisten oft wichtige Anonymisierungslösungen, nie verwendet und sollte jemand Riot und PGP Mail ablehnen, gibt es ja noch immer das Telefon :-).

Für alle Freunde und Selbsthoster finden sich hier Anleitungen für Server und Client:

Server:

Client:

Kommerzieller Support und Consulting gerne über:

  • support@cts-solutions.at oder Riot: @karl:matrix.ctseuro.com

Arbeitsplätze

Problematischer wurde die Umstellung bei den Arbeitsplätzen, da es in früheren Zeiten einige proprietäre Softwareprodukte ohne Open Source Alternative gab. Viele dieser Anbieter haben sich, aufgrund falscher Programmierung, bzw. fehlender Innovation und Ausbildung der Programmier mit anderen proprietären Softwarelösungen und Betriebssystemen so verbunden, dass ein Entkommen nicht mehr möglich ist.

Alle diese Firmen, inklusive vieler Banksoftwareanbieter, werden ohne Angebot für andere Betriebssysteme in den nächsten Jahren vom Markt verdrängt werden. Auch wenn mir bewusst ist, dass Linux noch kein Massenmarkt ist, diese Anbieter haben mit Produkten aus dem Hause Apple unter OSX genau dasselbe Problem. Apple ist mittlerweile in einigen Branchen durchaus eine nennenswerte Stückzahl und bei Linux ist der Start in den Massenmarkt nicht mehr weit.

In unserem Hause gab es aufgrund der Verwaltung von mehreren 100.000 Bildern unserer 270 Fotografen im Geschäftsbereich Bildagentur und im Bereich Desktop Publishing im Bereich der veröffentlichten Bücher Anfangsprobleme geeignete Software zu finden. Die Fakturierung wurde bereits früh auf eine Web basierte InHouse PHP Lösung, welche weitestgehend automatisiert ist, umgestellt.

Nach vielen Tests der Softwarebestandteile wurden nun alle Arbeitsplätze und Notebooks auf Debian Linux mit XFCE Desktop umgestellt. Für Anfänger empfiehlt sich eher KDE als Desktop.

Es folgt eine kurze Liste an verwendeter Software, welche intuitiv, performant und Arbeitszeit schonend auch von Mitarbeitern mit geringen IT Kenntnissen rasch eingesetzt werden kann. Für alle Softwareprodukte können Arbeitsanweisungen leicht erstellt und Einschulungen auch durch Mitarbeiter mit Basis IT Kenntnissen einfachst durchgeführt werden.

Die Verwendung von privatem Equipment, Notebooks, PCs, Tablets, Smartphones und dergleichen ist in jedem Fall zu verbieten und ein Zugang von diesen Geräten zum LAN über Kabel oder WLAN muss verhindert werden. Zusätzlich darf kein Gerät, welches außerhalb des LAN Netzwerkes eine Netzwerkverbindung hatte, jemals wieder im LAN angeschlossen werden.

Softwareliste (Alle Open Source und Lizenzkostenfrei)

  • https://debian.org Betriebssystem Debian Linux mit XFCE (als Anfänger verwenden Sie ev. KDE)

  • https://www.veracrypt.fr/ VeraCrypt portable Datei, USB Stick und Festplattenverschlüsselung für Windows, Mac OSX and Linux

  • https://www.libreoffice.org Office Suite mit kompatibler Textverarbeitung, Kalkulation, etc. für Windows, Mac OSXund Linux

  • https://www.scribus.net/ Scribus ist ein professionelles freies Desktop-Publishing-Programm für Linux-, Unix-, macOS-, OS/2-, Haiku- und Windows-Systeme, das unter der GNU General Public License. Wir erstellen damit z.B. die druckfertigen PDF für unsere Hardcover Bücher.

  • http://www.calibre-ebook.com/ zur Verarbeitung, Konvertierung und Verwaltung von E-Books für Linux, Mac OSX und Windows.

  • https://www.thunderbird.net/ Thunderbird Email Programm mit WebDAV Kalender und Adressbücher (Cardbook Addon). PGP mit Enigmail Addon. Verfügbar für Windows, Mac OSX und Linux.

  • https://www.mozilla.org/ der Firefox Browser (ohne Anonymisierung)

  • https://www.torproject.org/ der Tor Browser (Anonym) Alle Systeme inkl Android

  • https://joplinapp.org/ Notizen verschlüsselt auf WebDAV speichern und synchronisieren

  • https://www.gimp.org/ Gimp Bildbearbeitung

  • https://www.digikam.org/ Fotomanagement, Leuchttisch, Bearbeitung, Stapelverarbeitung, u.v.m.

  • https://rawtherapee.com/ Foto RAW Dateien bearbeiten

  • Mat2 EXIF Cleaner (Debian Package)

  • https://www.shotcut.org/ Shotcut Video Editor - richtig professionell. Selbst damit Videos mit Special-Effects gemacht. Direkter Vergleich mit dem proprietären Produkt braucht nicht gescheut werden.

  • https://www.blender.org/ eine freie, mit der GPL lizenzierte 3D-Grafiksuite, mit welcher sich Körper modellieren, texturieren und animieren lassen. Diese können in Grafiken, Animationen und Software systematisiert werden. Geschaffene Bildsynthesen können mit Hilfe des integrierten Compositors und Videoschnittprogramms nachbearbeitet werden

  • VLC Video Player

  • https://handbrake.fr/ Videos in verschiedene Formate konvertieren, auch Stapelverarbeitung

  • https://www.audacityteam.org/ eine Digital Audio Workstation. Auf beliebig vielen Spuren können Audiodateien gemischt und bearbeitet werden.

  • https://www.hohnstaedt.de/xca/ X - Certificate and Key management

Im Detail findet sich noch weitere, aber aufgrund der Spezialisierung im IT Bereich für normale Benutzer nicht verständliche Software. Wer sich einmal als Hacker versuchen will, für den gibt es Kali Linux mit bereits installierter Software wie Metasploit.

Anmerkungen:

  • LibreOffice deckt die Anforderungen von 99% der Benutzer ohne Probleme ab. Der Spruch beim anderen Office kenne ich mich aus, geht glatt ins Leere, denn die meisten mit dieser Aussage versagen bei einem Versionswechsel des proprietären Produktes, da dann auch alles anders aussieht.

Wir haben mit LibreOffice alle Anforderungen abgedeckt und wenn die Formatierung anders aussieht, dann installiert der, der sich auskennt den passenden, aber eventuell fehlenden, Font und das Dokument sieht identisch aus. Zusätzlich kann LibreOffice PDF erstellen und bearbeiten und vieles mehr. Wer dann eventuell mit riesigen Kalkulationstabellen ein Problem hat, dem sei gesagt, dass Kalkulationen die nicht mehr nachvollziehbar sind, so und so anders gelöst werden müssen. Denn ein blindes Vertrauen in das Sheet des 3. Vorgängers ohne alles selbst nachrechnen zu können ist Selbstmord. Wir hatten bis jetzt kein einziges Problem mit LibreOffice und dieses erfüllt ohne Lizenzkosten alle Anforderungen.

  • Thunderbird ist ein E-Mail Client auf dem selben Hause wie der Firefox Browser und ist für Endanwender ohne IT Kenntnisse einfach zu bedienen. Für Profis bietet Thunderbird extrem viele Features, welche alle Anforderungen von IT-Pros und IT-Semi-Pro Benutzen abdecken.

  • Zum Firefox Browser und empfohlene Plugins gibt es auf der Seite einen Eintrag: https://kmj.at/mehr-privatsphaere-und-sicherheit-mit-kostenlosen-firefox-add-ons/

  • Den Tor Browser sollten Sie bei Recherchen oder heiklen Suchen, wie z.B. Medizin, Job und ähnliches, verwenden. Glauben Sie keine dummen Aussagen wegen illegal, Darknet, etc. von Personen ohne Kenntnisse von Overlay Netzwerken. Der Tor Browser anonymisiert Ihre IP Adresse und macht es auf der Webseite die besuchen unmöglich Sie aufgrund der IP zurück zu verfolgen. Zusätzlich verhindert der Tor Browser das Tracking und Sie könnten auch .onion Webseiten im Tor Netzwerk besuchen. Auch hier wird von IT ungebildeten immer Illegalität und Darknet beschworen. Ignorieren Sie diese Aussagen mit einem Lächeln und zeigen Sie, dass Sei mehr wissen!

  • https://de.wikipedia.org/wiki/Tor_(Netzwerk)

  • https://de.wikipedia.org/wiki/Anonymit%C3%A4t_im_Internet

Eine Tor Netz Adresse sieht z.B. so aus. Hier die Adresse der identen KMJ.at Seite im Tor Netzwerk:

Weiterführende Literatur, insbesondere für Journalisten:

Smartphone und Tablet

Dieser Bereich ist der schwierigste, denn man riskiert die Garantie des Gerätes und die Installation ist nicht für jedermann einfach durchzuführen. Lernwille, Geduld und Pioniergeist sind ein Muss um sich von den großen Datensammlern zu befreien. Mittelfristig, nach deren Fertigstellung, ist geplant auf Linux Smartphones wie das Librem5 (https://puri.sm/products/librem-5/) oder das Pinephone (https://www.pine64.org/pinephone/) umzusteigen.

Aktuell werden alle Geräte mit LineageOS ohne Google Apps (gapps) betrieben. Da es sich hier um ein sehr spezielles technisches Gebiet handelt verweise ich auf andere Artikel hier im Blog:

GPS Tracking

Professionelles GPS Tracking für Privat und Business ohne Lizenzkosten und ohne Daten an Dritte zu senden! Auch hier ein Verweis auf einen anderen Beitrag:

Geschafft

Das Ziel wurde im Oktober 2018 erreicht und, obwohl viel gelernt und getestet werden musste, wurde dieser Schritt keine Sekunde bereut!

Seit der Komplettumstellung ist unsere IT seit über einem Jahr störungsfrei, einfach und immer aktuell in Betrieb. So gut wie alle Projekte haben eine engagiert Community und helfen über Foren, IRC, Riot und Mailinglisten bei Problemen. Bugtracker listen bekannte Probleme und Sicherheitsupdates sind meist raschest verfügbar. Es benötigt keine Lizenzverwaltung mit dem damit verbundenen Aufwand. Die eingesparten Lizenzkosten sind für gute Administratoren, bzw. Einsparungen, in jedem Fall besser angelegt. Im worst case kann man die Software selbst umprogrammieren, da man ja den Source Code verfügbar hat.

Zusätzlich finden sich viele Spezialisten, welche sich für Support, Hilfe, oder Projekte auch freiberuflich anwerben lassen.

Firmen wie die CTS (https://cts-solutions.at) bieten zum Beispiel auch reine Level 2 und 3 Remotewartungen, Schulungen, Consulting und Planungshilfe um lokale Administratoren zu unterstützen.

Es sei mir noch ein Verweis auf einen Übersichtartikel zum generellen Verhalten im Netz erlaubt:

Zum Abschluss sollten Sie noch prüfen, ob Ihre Lieblingsseiten Ihr Surfverhalten an Dritte weiterreichen und durch schlechte Programmierung oder Vorsatz Ihr Vertrauen missbrauchen.

Noch ein Hinweis: Im Blog Bereich der Webseite finden sich zu fast allen genannten Themen Einzelartikel und Anleitungen. Fragen gerne im Riot Raum #kmj:matrix.ctseuro.com, den sie mit

/join #kmj:matrix.ctseuro.com

betreten können. Bitte beachten Sie, das E-Mails bei mir nicht mehr wirklich verwendet werden und 90% der Kommunikation, inkl. des Kundensupports auf Riot umgestellt ist. Gerne können Sie kommerzielle Anfragen für die CTS GMBH via Riot @karl:matrix.ctseuro.com an mich adressieren.

Natürlich wird die E-Mail Adresse support@cts-solutions.at ein bis zweimal am Tag auch abgerufen.

Wer bis hierher gelesen hat, ist vermutlich vom der Befreiung durch diesen Umstieg genauso fasziniert wie ich und ich hoffe, dass einige derer, die bis zum Ende lesen, den Schritt auch wagen.

Step-by-Step, es muss ja nicht alles auf einmal sein und lassen Sie sich nicht von Halbwissen, oder reflexartigen Abwehrhaltungen durch die dem Menschen angeborene Faulheit, von diesem Weg abbringen.

Ich freue mich auf Feedback im Raum #kmj:matrix.ctseuro.com!

Es ist geschafft, Lizenzkostenfrei mit bester Privatsphäre am PC, Handy und Tablet

Der Einsatz hat sich gelohnt!

Nachdem bereits mehrere Blog Einträge erschienen sind, hier nun die Zusammenfassung der Installation, welche für Private und Business alle Anforderungen abdecken kann.

Server

Auf der Serverseite wurde ein PROXMOX-Cluster (proxmox.com) als Basis für die virtuellen Maschinen eingerichtet. Dadurch ist bereits auf der untersten Ebene der Systeme eine reine Open Source Umgebung verfügbar und es gibt keine bekannten Backdoors oder Datenübermittlungen an Dritte. Aktuell sind 4 Systeme im Cluster, welcher insgesamt 40 CPU‘s und 135 GB RAM besitzt. Zusammen befinden sich ca. 3 TB Raid Systeme im Cluster.

Zusätzlich wurden 2 FreeNAS Systeme mit je 4*3TB Festplatten eingerichtet. FreeNAS, ein auf FreeBSD basierendes Open Source NAS System ist extrem zuverlässig und und das ZFS Dateisystem synchronisiert sich automatisch vom NAS1 auf das NAS2 (Backup). Von diesem werden Datensicherungen auf USB3 Festplatten durchgeführt. Dabei werdne täglich ca. 2.5 TB auf die USB Platten bewegt.

Ein auf FreeBSD (https://FreeBSD.org) basierender Mail Server, eine Owncloud (https://owncloud.org) Installation, ein Asterisk Server, ein FreeBSD NFS Server, drei FreeBSD basierte LAMP Server, 3 auf PfSense (https://pfsense.org) basierende Firewalls und eine PI-Hole Lösung (https://pi-hole.net) sind die Basis des Netzwerkes.

Dazu wurden noch einige Server zum Betrieb einer sicheren MQTT Bridge, der beiden Matrix und Mastodon Server und des abgeschotteten Torified Netzwerkes benötigt. Viele Informationen zu diesen Diensten finden Sie in meinen E-Books https://kmj.at/buecher-und-ebooks/ .

Als Highlight befindet sich ein Debian Linux (Stretch) basierter Terminal Server im Netzwerk. Damit ist über eine Absicherung durch OpenVPN ein schneller Zugriff über das RDP Protokoll möglich.

Soweit als möglich, wurden alle Festplatten verschlüsselt.

Arbeitsplatz

Am Arbeitsplatz wurde Debian Linux (Sid) mit voll verschlüsselter Festplatte verwendet. Es wurden für alle Anforderungen Open Source Produkte gefunden, welche im professionellem Umfeld perfekt einsetzbar sind.

alle Lösungen kostenfrei und Open Source:

  • Office Paket: LibreOffice, welches auch doc, docx, xls,xlsx, etc. bearbeiten kann.
  • Bildbearbeitung: GIMP, DigiKam, RAW Therapie und Mat decken die Bedürfnisse von Profi Fotografen perfekt ab.
  • Video: Shotcut (Profi Schneidprogramm), Handbrake (Konvertierung), Blender (3D Animation) .
  • Internet: Firefox, Brave und Torbrowser als sichere und via Tor auch anonyme Browser.
  • Micro Blogging: Mastodon als dezentrale Twitter Alternative.
  • Messaging: Matrix mit Riot Client als sicheren Messenger ohne Mitleser!
  • Linphone als Telefon Nebenstelle.
  • KeePass als Password Safe.
  • xBrowsersync als Bookmark Sync Lösung über alle Geräte.
  • dazu noch einige Spezialanwendungen, welche nicht jeder benötigt, inkl. einem abgeschlossenem Tor Netzwerk.

Mobiltelefon und Tablet

Hier wurde wirklich tief in die Trickkiste gegriffen. Extrem genervt von Geräten, welche sich ohne Registrierung bei Hersteller nicht einmal einschalten lassen, begann eine lange Suche, welche mit LineageOS endete.

Es erfolgte eine Vollumstellung auf Samsung A5 (2017) und Galaxy Tab A (2016), welche komplett von der Originalsoftware befreit und mit LineageOS bespielt wurden (siehe hier im Blog).

Dadurch erfolgt der Betrieb gänzlich ohne Hersteller Software und auch ohne Google Libraries. Bezüglich der verwendeten Apps finden sich hier die Einträge:

https://kmj.at/2018-09-12-android-lineageos-samsung-sm-t585-privacy/ https://kmj.at/2018-10-01-android-lineageos-privacy-teil2/

Zusammenfassend sei gesagt, dass es noch immer möglich ist, seine Privatsphäre zu schützen und keine Daten an Dritte weiterzugeben. Natürlich sollte man dazu noch weitere Regeln bei der Verwendung des Internets beachten, aber ich bin mit der Gesamtlösung sehr zufrieden und habe als Test noch die Open Source Tracking App Traccar installiert. Damit ist es möglich, ohne Daten an Dritte zu senden, Geräte zu verfolgen, bzw. zu orten.

https://kmj.at/2018-09-15-self-hosted-open-source-car-tracking-enterprise-ready/

https://kmj.at/2018-07-07-xbrowsersync-part-2-firefox/

https://kmj.at/2018-06-14-inhouse-nas-mit-verschluesseltem-software-raid-teil-1/

https://kmj.at/2018-06-11-kmj-at-nun-auch-im-tor-netz/

https://kmj.at/2018-04-17-xbrowsersync-die-loesung-fuer-self-hosted-bookmark-sync/

https://kmj.at/2018-04-04-ein-weiterer-schritt-in-eine-dezentrale-zukunft-ist-getan/

https://kmj.at/2018-03-12-riot-im-messenger-kurzanleitung-fuer-benutze-updated/

Debian basiertes InHouse NAS mit verschlüsseltem Software-Raid (Teil 1)

Debian basiertes InHouse NAS mit verschlüsseltem Software Raid (Free, Open Source, FOSS, FLOSS)

Es wird immer wichtiger, Daten im eigenen Haus, ohne jedes Senden von Informationen an Dritte, sicher zu speichern. Zusätzlich muss ein Schutz der Daten gegen Diebstahl der Hardware erfolgen. Natürlich kann man jetzt in einem Store eines dieser Fertig-NAS kaufen und sich auf dessen Funktion verlassen, aber das wollen wir nicht. Ziel ist es, ein InHouse System zu erstellen, welches diese Anforderungen erfüllt, problemlos in der Wartung ist und bei dem wir flexibel zusätzliche benötigte Services einrichten können.

Hier im Haus ist eine Windows freie Zone, aber wir werden trotzdem folgende Dienste einrichten:

  • SMB/CIFS Shares (aka Windows Shares)
  • NFS Shares (Unix/Linux, opt. Bei Apple und Windows)
  • LDAP User Management

Zum Test des Systems verwenden wir ein älteres 64 Bit System mit 8 GB RAM und 4*2TB SATA Harddisks. Die Einrichtung sollte in dieser Form erfolgen:

  • Debian Stretch 9.4 (Stand 06/2018)
  • Verschlüsseltes Dateisystem mit Software Raid-5 über diese 4 Platten
  • einfaches Tauschen einer defekten Platte
  • sicheres Booten, auch bei Ausfall der Festplatte auf der GRUB installiert ist
  • remote Möglichkeit der Entsperrung der Festplatte bei Reboot
  • System Management per RDP Protokoll mit Zugriff auf den XFCE Desktop
  • pro-aktives Monitoring der Festplatten und des Raid Zustandes mit E-Mail Alerting

Zusätzlich wird das NAS mit einer eigenen Firewall abgesichert und das Thema Interface Bundling (bonding) angesprochen.

Als Erweiterung werden wir das NAS auf ein Backup System spiegeln, bzw. synchronisieren um im Fall eines Totalausfalls ein schnelles Umschalten zu ermöglichen.

Benötigte Zeit für die Installation 1-5 Stunden, meist abhängig von der Komplexität Ihres Netzwerkes. Rechnen Sie für die erste Installation Ihren persönlichen Lernaufwand dazu.

WICHTIG: Der Autor ist nicht für eventuelle Schäden an Ihrem System, bzw. für einen Datenverlust verantwortlich! Testen Sie dieses System nur in einer Testumgebung und entscheiden erst nach ausgiebigen Tests, ob Sie in den Echtbetrieb wechseln. Sie handeln auf eigene Verantwortung und der Artikel beschreibt nur die Installation beim Autor!

Professionelle Hilfe bei Open-Source Lösungen bietet seit 1985 die CTS GMBH https://cts-solutions.at (professionelle IT Lösungen seit 1985!), bzw. https://ctssupport.at (Open Source Remote Support).

Profi-Tipp: Geben Sie nicht nach 2 Minuten auf! Eine Lösung wie diese benötigt den Willen etwas Neues zu lernen und sich selbst weiter zu bilden. Dieses Wissen hebt Sie von der Masse der Administratoren in weiter Folge ab und erweitert Ihr Portfolio um Kenntnisse, welche Standard Administratoren heute nicht mehr besitzen. Ein immenses Plus für Ihre Karriere! Klicken kann jeder, wissen was man tut ist in Zeiten wie diese die Ausnahme!

Schritte zur Installation des Basissystems

Wenn das Sytem startet im Auswahlmenü folgendes wählen:

  • Install auswählen
    • Deutsch
    • Österreich (Oder Ihr Land)
    • Deutsch
    • Netzwerkkarte auswählen
    • Hostnamen wählen (nas01, oder anpassen)
    • den Domainnamen angeben (local.mydomain.tld, Ihre Domain!)
    • root Passwort wählen (etwas Langes!)
    • Benutzernamen für das Arbeitskonto wählen
    • Passwort für das Arbeitskonto wählen

Danach wählen wir die Partitionierungsart:

  • Partitionieren MANUELL
    • Partition für /boot einrichten
    • Freien Bereich auf sda wählen
    • Neue Partition anlegen
    • 512 MB
    • Primär
    • Anfang
    • Physikalisches Volume für Raid
    • Anlegen der Partition beenden

Dieser Bereich wird das erste Raid (md0) zum booten. Jetzt müssen wir noch die verschlüsselte Partition (Raid md1) für das Betriebssystem und die Daten einrichten.

  • Partition für das verschlüsselte Raid einrichten
  • Freien Bereich auf sda wählen
  • Neue Partition anlegen
  • verfügbare Größe verwenden
  • Logisch
  • Anfang
  • Physikalisches Volume für Raid
  • Anlegen der Partition beenden

Wiederholen Sie diesen Vorgang für alle Platten im Raid. Bei mir sind das sdb,sdc,sdd.

  • Danach Selektieren Sie “Software Raid konfigurieren”
    • Änderungen auf das Speichergerät schreiben: JA

md0 für /boot:

  • Wir richten md0 für /boot ein
    • MD-Gerät erstellen
    • Wir verwenden Raid 5.
    • Anzahl der aktiven Geräte ist 4 (sda,sdb,sdc,sdd)
    • Reserve Geräte ist bei uns 0
    • Selektieren Sie alle 512 MB Partitions, hier sda1,sdb1,sdc1,sdd1
    • Weiter

md1 für Betriebssystem und Daten

  • Wir richten md1 für das verschlüsselte Raid ein
    • MD-Gerät erstellen
    • Wir verwenden Raid 5.
    • Anzahl der aktiven Geräte ist 4 (sda,sdb,sdc,sdd)
    • Reserve Geräte ist bei uns 0
    • Selektieren Sie alle 512 MB Partitions, hier sda5,sdb5,sdc5,sdd5
    • fertigstellen -> weiter

Einrichten der Volumes

  • Nun muss das /boot Volume erstellt werden
    • Wählen Sie das Raid5 Gerät mit 1,5GB aus, hier #0
    • Benutzen als: Ext4 Journaling Dateisystem
    • Einbindungspunkt: /boot
    • Anlegen der Partition beenden

nach dem Boot Volume benötigen wir den verschlüsselten Datenträger

  • Wählen Sie nun den Punkt: Verschlüsselten Datenträger konfigurieren
    • Änderungen auf Platte schreiben: JA
    • Verschlüsselten Datenträger erzeugen -> Weiter
    • /dev/md1 auswählen
    • Daten löschen dauert sehr lange, bei neuem System nicht notwendig.
    • Anlegen der Partition beenden
    • Fertigstellen
    • Passphrase eingeben! Wichtig: Lang, komplex und NIE vergessen
    • NOCH EINMAL: PASSPHRASE WEG – DATEN WEG – UNWIEDERHERSTELLBAR!

Logical Volume Manager

  • wir konfigurieren den Logical Volume Manager (LVM)
    • Logical Volume Manager konfigurieren
    • auf Festplatte schreiben: JA
    • Volume Gruppe erstellen
    • Name der Volume Gruppe: NAS00
    • Gerät für Gruppe: /dev/mapper/md1_crypt

darauf aufbauend

  • im nächsten Schritt legen wir die Logical Volumes an
    • als erstes benötigen wir ein SWAP Volume
    • Logisches Volume erstellen
    • Volume Group NAS00
    • Name: SWAP
    • Größe: 8096 MB (Wir nehmen 1*RAM)

und für die Daten

  • legen wir ein ROOT Volume an
  • Logisches Volume erstellen
  • Volume Group NAS00
  • Name: ROOT
  • Größe: verfügbare Größe

Wenn alles erledigt wählen Sie fertigstellen.

Nun geht es an die Installation

Wir haben nun 2 logische Volumes am System.

  • LVM VG NAS00 LV ROOT 6TB
  • LVM VG NAS00 LV SQAP 8GB

Das Root Filesystem legen wir am LVM VG NAS00 LV ROOT an.

  • Wählen Sie die Zeile aus
  • Benutzen als: Ext4 Journaling Dateisystem
  • Einbindungspunkt: /
  • Anlegen der Partition beenden

mit dem SWAP verfahren wir gleich:

  • Zeile auswählen
  • Benutzen als Auslagerungsspeicher (Swap)
  • Anlegen der Partition beenden

Bevor wir nun die Debian Installation beginnen, selektieren wir Partitionierung beenden und Änderunden übernehmen.

  • Änderungen auf Festplatte schreiben: JA

Unser Ergebnis sie so aus:

lsblk+Return

NAME               MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sda                  8:0    0  1,8T  0 disk  
├─sda1               8:1    0  487M  0 part  
│ └─md0              9:0    0  1,4G  0 raid5 /boot
├─sda2               8:2    0    1K  0 part  
└─sda5               8:5    0  1,8T  0 part  
  └─md1              9:1    0  5,5T  0 raid5 
    └─md1_crypt    253:0    0  5,5T  0 crypt 
      ├─NAS00-SWAP 253:1    0  7,6G  0 lvm   [SWAP]
      └─NAS00-ROOT 253:2    0  5,5T  0 lvm   /
sdb                  8:16   0  1,8T  0 disk  
├─sdb1               8:17   0  487M  0 part  
│ └─md0              9:0    0  1,4G  0 raid5 /boot
├─sdb2               8:18   0    1K  0 part  
└─sdb5               8:21   0  1,8T  0 part  
  └─md1              9:1    0  5,5T  0 raid5 
    └─md1_crypt    253:0    0  5,5T  0 crypt 
      ├─NAS00-SWAP 253:1    0  7,6G  0 lvm   [SWAP]
      └─NAS00-ROOT 253:2    0  5,5T  0 lvm   /
sdc                  8:32   0  1,8T  0 disk  
├─sdc1               8:33   0  487M  0 part  
│ └─md0              9:0    0  1,4G  0 raid5 /boot
├─sdc2               8:34   0    1K  0 part  
└─sdc5               8:37   0  1,8T  0 part  
  └─md1              9:1    0  5,5T  0 raid5 
    └─md1_crypt    253:0    0  5,5T  0 crypt 
      ├─NAS00-SWAP 253:1    0  7,6G  0 lvm   [SWAP]
      └─NAS00-ROOT 253:2    0  5,5T  0 lvm   /
sdd                  8:48   0  1,8T  0 disk  
├─sdd1               8:49   0  487M  0 part  
│ └─md0              9:0    0  1,4G  0 raid5 /boot
├─sdd2               8:50   0    1K  0 part  
└─sdd5               8:53   0  1,8T  0 part  
  └─md1              9:1    0  5,5T  0 raid5 
    └─md1_crypt    253:0    0  5,5T  0 crypt 
      ├─NAS00-SWAP 253:1    0  7,6G  0 lvm   [SWAP]
      └─NAS00-ROOT 253:2    0  5,5T  0 lvm   /

Der Vorgang benötigt etwas Zeit, danach können wir weitere Systemeinstellungen vornehmen.

Wählen Sie Ihr Heimatland für die System Archive und wählen Sie einen Spiegel aus. Sollten Sie einen Proxy benötigen um ins Internet zu kommen, tragen Sie diesen ein.

Bei der Benutzungsstatistik selektieren Sie am besten Nein. Danach installieren Sie den SSH Server und die Standard System Tools.

TIPP Sollte Ihr Installationsmedium nicht danach fragen, können Sie den SSH Server später mit apt-get install openssh-server jederzeit nachinstallieren.

Der GRUB Boot Loader wird temporär auf /dev/sda installiert.

Danach können Sie das System rebooten. Entfernen Sie dabei den USB Stick!

Jetzt haben Sie sich einen Kaffee verdient! Der heikelste Teil ist geschafft!

GRUB anpassen / prüfen (WICHTIG!)

Im Rahmen der Installation haben wir GRUB nur auf der Festplatte sda installiert. Dadurch würde, da GRUB nicht gefunden werden kann, beim Ausfall der Platte sda das System nicht mehr booten. Nachdem Sie den ersten Boot Vorgang abgeschlossen haben, sollten Sie GRUB auf alle Festplatten installieren.

  • dpkg-reconfigure grub-pc

bzw.

  • dpkg-reconfigure grub-efi-amd64

ausführen und GRUB auf allen sdX Festplatten installieren. Wenn unsicher welche Version, hilft ein ls /boot/grub. Ein Verzeichnis i386-pc deutet darauf hin, grub-pc zu verwenden.

HINWEIS: ab > 2TB wird automatisch mit GPT partitioniert. Hier wird dann grub-efi-amd64 verwendet. Versuchen Sie bereits bei der Erstintallation GTP zu verwenden! Mischen von MBR und GPT GRUB Setups ist nicht möglich!

Nach zwei Fragen, die Sie am besten mit dem Vorgabewert beantworten, markieren Sie im Fenster “Konfiguriere” alle Raid-Festplatten, bei mir sda,sdb,sdc,sdd. In keinem Fall installieren Sie GRUB auf den dm und md devices.

Nun startet das System auch, wenn die sda Festplatte stirbt.

Profi-Tipp: Prüfen ob Grub auf einer Festplatte installiert ist

  • dd if=/dev/sdX bs=1 count=512 | grep -aob GRUB

zum Beispiel:

  • dd if=/dev/sda bs=1 count=512 | grep -aob GRUB

muss nnn:GRUB anzeigen. Aktuell ist die Position im Block die nummer 392, dies kann sich aber bei Versionswechsel ändern. In jedem Fall ist GRUB in den ersten 512 Bytes der Festplatte ersichtlich.

Raid Infos

Sie können folgende Befehle verwenden:

  • pvdisplay
pvdisplay

  --- Physical volume ---
  PV Name               /dev/mapper/md1_crypt
  VG Name               NAS00
  PV Size               5,46 TiB / not usable 5,00 MiB
  Allocatable           yes (but full)
  PE Size               4,00 MiB
  Total PE              1430332
  Free PE               0
  Allocated PE          1430332
  PV UUID               SUHin2-57jD-MT1c-YDV6-rg6O-kKWA-ba8dPS
  • vgdisplay
vgdisplay

  --- Volume group ---
  VG Name               NAS00
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               5,46 TiB
  PE Size               4,00 MiB
  Total PE              1430332
  Alloc PE / Size       1430332 / 5,46 TiB
  Free  PE / Size       0 / 0   
  VG UUID               ZLUuuG-XMmp-D0T7-cpNs-rjd1-3rgf-d4DKL2
  • lvdisplay
lvdisplay

  --- Logical volume ---
  LV Path                /dev/NAS00/SWAP
  LV Name                SWAP
  VG Name                NAS00
  LV UUID                Htpq0u-W8cp-zfxh-s8e3-jROi-AiDg-46g89g
  LV Write Access        read/write
  LV Creation host, time nas04, 2018-06-14 10:58:37 +0200
  LV Status              available
  # open                 2
  LV Size                7,54 GiB
  Current LE             1930
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     6144
  Block device           253:1
   
  --- Logical volume ---
  LV Path                /dev/NAS00/ROOT
  LV Name                ROOT
  VG Name                NAS00
  LV UUID                1eQOBH-xzKm-sVe0-EF1J-E0tv-Cdbo-AtvRD7
  LV Write Access        read/write
  LV Creation host, time nas04, 2018-06-14 11:02:16 +0200
  LV Status              available
  # open                 1
  LV Size                5,45 TiB
  Current LE             1428402
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     6144
  Block device           253:2

zusätzlich können Sie mit

  • mdadm –examine –brief –scan –config=partitions
ARRAY /dev/md/0  metadata=1.2 UUID=a5e6ef49:f99618ed:fcca6784:a6312739 name=nas04:0
ARRAY /dev/md/1  metadata=1.2 UUID=fb272a9e:3481879a:e480c9f4:0d4fc7c2 name=nas04:1
  • cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10] 
md1 : active raid5 sda5[0] sdc5[2] sdb5[1] sdd5[3]
      5858648064 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]
      [====>................]  resync = 23.6% (462357760/1952882688) finish=3098.7min speed=8016K/sec
      bitmap: 14/15 pages [56KB], 65536KB chunk

md0 : active raid5 sda1[0] sdb1[1] sdc1[2] sdd1[3]
      1492992 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]

  • mdadm –detail /dev/md/0
  • mdadm –detail /dev/md/1

die Informationen zu den md Devices auslesen.

z.B. für das testsystem:

mdadm --detail /dev/md/1
/dev/md/1:
        Version : 1.2
  Creation Time : Thu Jun 14 10:39:02 2018
     Raid Level : raid5
     Array Size : 5858648064 (5587.24 GiB 5999.26 GB)
  Used Dev Size : 1952882688 (1862.41 GiB 1999.75 GB)
   Raid Devices : 4
  Total Devices : 4
    Persistence : Superblock is persistent

  Intent Bitmap : Internal

    Update Time : Thu Jun 14 17:29:03 2018
          State : active, resyncing 
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 512K

  Resync Status : 22% complete

           Name : nas04:1  (local to host nas04)
           UUID : fb272a9e:3481879a:e480c9f4:0d4fc7c2
         Events : 2890

    Number   Major   Minor   RaidDevice State
       0       8        5        0      active sync   /dev/sda5
       1       8       21        1      active sync   /dev/sdb5
       2       8       37        2      active sync   /dev/sdc5
       3       8       53        3      active sync   /dev/sdd5

Festplatte per SSH entsperren

Um nicht immer zum NAS gehen zu müssen, sollten wir eine Entsperrmethode für die Festplatte wählen, welche per SSH funktioniert. Andernfalls müssten wir bei jedem Reboot an die Console des Systems.

  • erstellen Sie auf Ihrem PC (Nicht dem NAS!), sofern Sie noch keinen Key verwendwen, einen SSH Key: ssh-keygen -b 4096 und kopieren Sie den öfffentlichen Schlüssel ~/.ssh/id_rsa.pub in die Datei /root/.ssh/authorized_keys am NAS (Funktioniert analog dazu auf Windows und Macs).

Testen Sie das Login mit

  • ssh root@IPdesNAS.

Nun installieren wir Dropbear

  • apt-get install dropbear-initramfs
  • Editieren Sie /etc/dropbear-initramfs/config und setzen das Port für den Connect
    • DROPBEAR_OPTIONS=“-p 2222”
  • Editieren Sie /etc/initramfs-tools/initramfs.conf und fügen Sie die statische Konfiguration ein:
    • IP=NAS_IP::GATEWAY_IP:NETMASK:HOSTNAME:ETH:AUTOCONF
    • in meinem System:
    • IP=192.168.2.14::192.168.2.1:255.255.255.0:nas04:enp6s0:off
  • Kopieren Sie die authorized_key Datei in den Ordner
    • cp /root/.ssh/authorized_keys /etc/dropbear-initramfs/
  • Erneuern Sie die initrd Datei
    • update-initramfs -u

Zusätzliche Software

Jetzt wird es spannend. Rebooten Sie das System, am besten nachdem Sie noch:

  • apt-get update
  • apt-get dist-upgrade
  • apt-get install ntp # (synchronisiert die Zeit, /etc/ntp.conf beachten)
  • apt-get install pk-update-icon # (zeigt verfügbare updates am XFCE Desktop)
  • apt-get install gufw # (Grafische Oberfläche für ufw, Einfache Firewallverwaltung)
  • apt-get install atop # (top alike Anzeige für Systemwerte, inkl. Disk-I/O)
  • apt-get install gdisk # (Siehe weiter unten)
  • apt-get install openssh-server (Siehe weiter oben)
  • apt-get install smartmontools (Siehe weiter unten)

durchgeführt haben und verbinden Sie sich mit dem ssh client (unter Windows bietet sich auch Putty an):

  • ssh -p 2222 root@NAS_IP

um die Festplatte zu entsperren

Tests

Wenn das Ihre erste Installation mit einem System in dieser Art ist, sollten Sie folgende Tests durchführen, bevor das System in Echtbetrieb geht:

  • Einzelne Festplatte fällt aus
  • Einzelne Festplatte sda fällt aus (Test GRUB Funktionalität, siehe oben)

Hot Spares

Sie können das System mit Hot Spares, Festplatten die automatisch eine defekte Festplatte ersetzen betreiben. Das reduziert die kritische Zeit, in der ein weiterer Festplattenausfall einen Totalverlust bedeuten könnte.

  • mdadm –add /dev/md/ /dev/sdXn
  • mdadm –remove /dev/md/ /dev/sdXn

Die Parameter sind der Name des RAID und die Festplatte die hinzugefügt, oder entfernt wird.

Rebuild im Fehlerfall

Festplatte identifizieren mit smartctl -i /dev/sda. Damit sieht man die Seriennummer der Platte.

Im Fehlerfall muss einerseits die defekte Festplatte vom Raid entfernt und andererseits eine neue, gleich partitionierte Festplatte hinzugefügt werden.

  • mdadm –manage /dev/md/ -r /dev/sdXn

entfernt eine defekte Festplatte und

  • mdadm –manage /dev/md/ -a /dev/sdXn

fügt eine neue Platte hinzu. Zur Partitionierung verwenden Sie fdisk, cfdisk, parted oder den PROFI-TIPP weiter unten. Wenn alle Vorgänge fehlerfrei sind, könnten Sie mit dem Rebuild starten. Setzen Sie die neue Partition im Raid-Verbund auf “Fehlerhaft”.

  • mdadm –manage –set-faulty /dev/md/ /dev/sdXn

Damit wird der Rebuild Prozess angestoßen und mit dem oben genannten cat /proc/mdstat können Sie den Fortschritt prüfen.

Wenn alles fertig ist, GRUB auf der Platte wieder installieren. Siehe oben!

Testprotokoll (Real Scenario)

Da beim Test Setup eine Festplatte weggestorben ist haben wir einen echten Vorgang.

cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10] 
md1 : active raid5 sda5[0] sdc5[2] sdb5[1](F) sdd5[3]
      5858648064 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [U_UU]
      bitmap: 10/15 pages [40KB], 65536KB chunk

md0 : active raid5 sda1[0] sdb1[1](F) sdc1[2] sdd1[3]
      1492992 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [U_UU]
      
unused devices: 

Hier sieht man, dass unsere Festplatte sdb fehlerhaft ist. Nicht so lustig ist die Ausgabe von smartctl -i /dev/sdb.

=== START OF INFORMATION SECTION ===
Vendor:               #o��_#
�
Product:              ��W-��#�j� ��lYa
Revision:             �-�j
User Capacity:        3.094.343.596.835.094.505 bytes [3094 PB]
Logical block size:   789056705 bytes
>> Terminate command early due to bad response to IEC mode page
A mandatory SMART command failed: exiting. To continue, add one or more '-T permissive' options.

D.h. wir können die Festplatte über die Seriennummer nicht mehr identifizieren und müssten blind den 2. SATA Anschluss als sdb vermuten. Natürlich ist das keine Lösung. Diesetwegen identifizieren wir die anderen drei Platten.

smartctl -i /dev/sda

=== START OF INFORMATION SECTION ===
Model Family:     Western Digital Green
Device Model:     WDC WD20EARX-00PASB0
Serial Number:    WD-WMAZA5112499
LU WWN Device Id: 5 0014ee 0ad7a9e9b
Firmware Version: 51.0AB51
User Capacity:    2.000.398.934.016 bytes [2,00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS (minor revision not indicated)
SATA Version is:  SATA 3.0, 6.0 Gb/s (current: 3.0 Gb/s)
Local Time is:    Fri Jun 15 17:21:07 2018 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

Für sdc und sdd führen wir dasselbe Kommando durch. Damit haben wir die Seriennummern der Platten a,c,d und können sdb eindeutig durch Ausschluss identifizieren.

Wirklich interessant war bei unserem Beispielvorgang, dass die Festplatte sdb bereits automatisch removed und auf faulty gesetzt wurde:

mdadm --detail /dev/md/0
/dev/md/0:
        Version : 1.2
  Creation Time : Thu Jun 14 10:37:49 2018
     Raid Level : raid5
     Array Size : 1492992 (1458.00 MiB 1528.82 MB)
  Used Dev Size : 497664 (486.00 MiB 509.61 MB)
   Raid Devices : 4
  Total Devices : 4
    Persistence : Superblock is persistent

    Update Time : Fri Jun 15 17:01:36 2018
          State : clean, degraded 
 Active Devices : 3
Working Devices : 3
 Failed Devices : 1
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 512K

           Name : nas04:0  (local to host nas04)
           UUID : a5e6ef49:f99618ed:fcca6784:a6312739
         Events : 51

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync   /dev/sda1
       -       0        0        1      removed
       2       8       33        2      active sync   /dev/sdc1
       3       8       49        3      active sync   /dev/sdd1

       1       8       17        -      faulty   /dev/sdb1

auch beim md1

mdadm --detail /dev/md/1
/dev/md/1:
        Version : 1.2
  Creation Time : Thu Jun 14 10:39:02 2018
     Raid Level : raid5
     Array Size : 5858648064 (5587.24 GiB 5999.26 GB)
  Used Dev Size : 1952882688 (1862.41 GiB 1999.75 GB)
   Raid Devices : 4
  Total Devices : 4
    Persistence : Superblock is persistent

  Intent Bitmap : Internal

    Update Time : Fri Jun 15 17:29:55 2018
          State : active, degraded 
 Active Devices : 3
Working Devices : 3
 Failed Devices : 1
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 512K

           Name : nas04:1  (local to host nas04)
           UUID : fb272a9e:3481879a:e480c9f4:0d4fc7c2
         Events : 13228

    Number   Major   Minor   RaidDevice State
       0       8        5        0      active sync   /dev/sda5
       -       0        0        1      removed
       2       8       37        2      active sync   /dev/sdc5
       3       8       53        3      active sync   /dev/sdd5

       1       8       21        -      faulty   /dev/sdb5

Ohne Risiko können wir das System aktuell nur herunterfahren und die Festplatten prüfen. Wenn eine Dokumentation der Seriennummern in den Slots vorliegt können Sie die Platte natürlich auch über den Hot-Plug Einschub tauschen.

Wir führen shutdown -h now aus um das System herunter zu fahren und ersetzen die Platte sdb physikalisch. Danach booten wir das System wieder. Ich hatte nur eine 3TB Festplatte hier und habe diese im Slot sdb installiert. Nach dem starten des Systems via Dropbear die Festplatte entsperrt und wieder mit dem System verbunden.

Nun müssen wir die neue sdb partitionieren, bevor wir diesem dem RAID hinzufügen. Wir prüfen unsere Harddisk:

smartctl -i /dev/sdb

=== START OF INFORMATION SECTION ===
Model Family:     Seagate SV35
Device Model:     ST3000VX000-9YW166
Serial Number:    Z1F0J6D7
LU WWN Device Id: 5 000c50 0403ee192
Firmware Version: CV12
User Capacity:    3.000.592.982.016 bytes [3,00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    7200 rpm
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS T13/1699-D revision 4
SATA Version is:  SATA 3.0, 6.0 Gb/s (current: 3.0 Gb/s)
Local Time is:    Fri Jun 15 17:57:17 2018 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

Wir clonen die Partition Table der Platte sdd auf auf die neue sdb.

Syntax:
sgdisk -R New_Disk Existing_Disk

führen also

  • sgdisk -R /dev/sdb /dev/sdd

aus.Danach noch eine Random GUID mit

  • sgdisk -G /dev/sdb

und prüfen das Ergebnis mit:

  • sgdisk -p /dev/sdb
sgdisk -p /dev/sdb
Disk /dev/sdb: 5860533168 sectors, 2.7 TiB
Logical sector size: 512 bytes
Disk identifier (GUID): 4A47D59C-A416-456A-B71A-FBBE7AACF96E
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 5860533134
Partitions will be aligned on 2048-sector boundaries
Total free space is 1953508205 sectors (931.5 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048          999423   487.0 MiB   FD00  Linux RAID
   5         1001472      3907028991   1.8 TiB     FD00  Linux RAID

Wir haben wieder die notwendigen sdb1 und sdb5 Partitions, welche wir nun zum Raid hinzufügen können.

Mit

  • mdadm –manage /dev/md/0 –add /dev/sdb1

starten wir beim Raid md0.

cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10] 
md1 : active raid5 sda5[0] sdc5[2] sdd5[3]
      5858648064 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [U_UU]
      bitmap: 10/15 pages [40KB], 65536KB chunk

md0 : active raid5 sdb1[4] sda1[0] sdc1[2] sdd1[3]
      1492992 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [U_UU]
      [=>...................]  recovery =  9.4% (47544/497664) finish=10.5min speed=710K/sec

und fahren mit

  • mdadm –manage /dev/md/1 –add /dev/sdb5

beim Raid md1 fort. Nun heißt es warten, bis das Raid wieder rebuilded ist.

cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10] 
md1 : active raid5 sdb5[4] sda5[0] sdc5[2] sdd5[3]
      5858648064 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [U_UU]
        resync=DELAYED
      bitmap: 10/15 pages [40KB], 65536KB chunk

md0 : active raid5 sdb1[4] sda1[0] sdc1[2] sdd1[3]
      1492992 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [U_UU]
      [==========>..........]  recovery = 50.6% (252448/497664) finish=6.5min speed=627K/sec

Wenn das Raid wieder synchronisiert ist, sollte es so aussehen:

cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10] 
md1 : active raid5 sdb5[4] sda5[0] sdc5[2] sdd5[3]
      5858648064 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]
      bitmap: 4/15 pages [16KB], 65536KB chunk

md0 : active raid5 sdb1[4] sda1[0] sdc1[2] sdd1[3]
      1492992 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]

** GRUB AUFSPIELEN UND PRÜFEN **

Nun sollten wir auf die neue Platte den GRUB Bootloader noch aufspielen!

  • dpkg-reconfigure grub-pc

bzw.

  • dpkg-reconfigure grub-efi-amd64

Details siehe weiter oben.

WIRKLICH WICHTIG

!!WICHTIG!! REMOVE UND FAULTY müssen in unserem Fall für md/0 und md/1 angestoßen werden! Jede Platte hat 2 Partitions (md0 und md1)! !!WICHTIG!!

PROFI TIPP (PARTITIONIERUNG)

Da man die Partitionierung im Fehlerfall unter Stress natürlich nicht händisch machen möchte installiert man sich am besten gdisk.

  • apt-get install gdisk

Mit dieser Software können Sie nicht nur die Partition Table sichern:

  • sgdisk –backup=/root/sda.partitionbackup /dev/sda
  • sgdisk –backup=/root/sdb.partitionbackup /dev/sdb

sondern Sie können auch die Partitiontabelle einer Festplatte auf eine andere clonen:

  • sgdisk -R /dev/sdb /dev/sda WICHTIG SOURCE ist der 2. Parameter!!!
  • sgdisk -G /dev/sdb # WICHTIG !MUSS!: Nach clonen die GUID mit einer Zufalls-GUID versehen

um das Ergebnis der Operation zu prüfen, listen sie die Partition Tabellen auf:

  • sgdisk -p /dev/sda
  • sgdisk -p /dev/sdb

So gestaltet sich ein Festplattentausch sehr einfach. Defekte Platte vom Raid entfernen, neue Platte installieren und Partition einer gleichen Platte clonen. GUID mit Zufalls-GUID versehen und die Platte dem Raid hinzufügen. Danach die Partitionen der Platte auf Faulty setzen und den Synchronisierungsvorgang abwarten, bzw. mit cat /proc/mdstat prüfen.

Im Teil 2 geht es weiter mit:

Monitoring des Raid Zustandes

Sie können mit

  • /usr/share/mdadm/checkarray –cron –all –quiet

den Zustand überwachen. Am besten in der crontab als Job einfügen.

Einrichten E-Mail für Überwachung

Monitoring der Festplatten mit smartmontools

Monitoring des mdadm Zustandes

Einrichten des Uhrzeitsynchronisation

  • editieren Sie die Datei /etc/ntp.conf
  • danach führen Sie service ntp restart aus

PROFI TIPP: Einrichtung der Systemverwaltung via RDP Protokoll

Sollten der Boot Vorgang einwandfrei funktionieren, richten wir uns zur einfachen Verwaltung des Gesamtsystems einen RDP Server ein. Damit kann mit MS Bordwerkzeug (mstsc), bzw. z.B. mit Remmina unter Linux und einer RDP Software am MAC; Android und IOS der XFCE Desktop herangeholt werden. Eine richtig coole Lösung!

Einstellung der Firewall

Interface bundling (bonding)

NFS / SMB / Samba / LDAP

  • File Shares für jedes Betriebssystem



Infos & Support

Riot.im / Matrix.org Räume:

Ich habe in der Matrix einen Raum eingerichtet in dem ich mich mit Freunden und netten Menschen austausche. Freundliche Menschen mit netten Umgangsformen, deutsch oder englisch sprechend, sind dort gerne willkommen.

  • Public room KMJ & friends (EN/DE) in der Matrix: #kmj:matrix.ctseuro.com
  • Eintreten durch Eingabe von /join #kmj:matrix.ctseuro.com in Ihrem Matrix/Riot Client.

Riot.IM Info

Für alle die den Riot Messenger noch nicht verwenden findet sich unten eine Anleitung. Die wichtigsten Punkte:

  • Der Riot Messenger ist kostenlos und Open Source.
  • Bei Registrierung am öffentlichen Server keine persönlichen Daten wie E-Mail oder Telefonnummer notwendig! Hier ist niemand an den Daten interessiert.
  • Jeder kann, bei Interesse, auch einen eigenen Server betreiben und zur Matrix verbinden
  • Bei aktivierter Verschlüsselung kann auch am Server niemand mitlesen
  • Sogar die französische Regierung baut gerade eine Riot/Martix Landschaft auf um WhatsApp oder Telegram abzulösen. https://matrix.org/blog/2018/04/26/matrix-and-riot-confirmed-as-the-basis-for-frances-secure-instant-messenger-app/

Coole Features!

  • Verfügbar für IOS, Android, Linux, Mac, Windows
  • Mehrere Endgeräte können gleichzeitig online sein
  • Potential so gut wie jede Kommunikation in einer Software zu halten
  • Verschlüsselte Telefonie zwischen den Teilnehmern möglich

Profi Support