Meine Wolke im Keller (Teil 1)


Meine Wolke im Keller (Teil 1)

unrelated hacking type picture
Die ancient cave zeichnete sich für mich immer dadurch aus, dass es um die Sachen ging, die Speedi und Garret am Herzen lagen. Dieser Tradition möchte in meinem ersten Gastbeitrag folgen und über das schreiben, was mir wichtig ist, was innerhalb der letzten zwei Jahre zu einem meiner Hobbies geworden ist, und wie es dazu kam.

So richtig begonnen hat diese Geschichte mit der Suche nach einem IRC-Klienten, nachdem ich mich dem Ruf des hohen Rates folgend in die heiligen Hallen des #gromky begeben habe. Internet Relay Chat ist ein ziemlich antiquiertes Protokoll für Gruppenkommunikation im Internet, was einerseits für mich einen besonderen Charme hat, erinnert es doch an die Anfänge des Internet vor der Kommerzialisierung, andererseits allerdings auch ziemlich krasse Einschränkungen der Funktionalität mit sich bringt. 

Du kannst nur Text senden, und das auch nur mit einer begrenzten Anzahl an Zeichen, wobei nicht mal diese fest festgelegt ist, sondern abhängig davon, ob es ein normales Zeichen ist oder ein Sonderzeichen wie beispielsweise das ö. Oder formatierte Buchstaben. Es gibt keine Profilbilder oder dergleichen, du kannst die Mittalker nur durch ihre nicknames und ihre hostnames (so etwas wie ein Name, den dein Internetprovider dir gibt) beziehungsweise ihre auth names, wenn sie beim Server in einen Acoount eingeloggt sind, auseinanderhalten. Außerdem kommuniziert dein Chatprogramm direkt mit dem Server, wenn du die Verbindung beendest, bekommst du nicht mehr vom Gruppenchat mit, auch wenn du dich erneut verbindest, du wirst nie erfahren, was in der Zeit, in der du nicht da warst, geschrieben wurde (außer jemand erzählt es dir). 

Eine beliebte Möglichkeit (sofern mensch bei IRC von beliebt reden kann) ist der Online-Dienst IRCCloud, welcher neben Smartphone-App auch eine Web-App bietet und vor allem die ganzen Features bietet: Profilbilder, Dateifreigaben, ständige Verbindung mit dem Server, also keine verpassten Nachrichten mehr. Diese Art von Software bezeichnet mensch auch als SaaS - Software as a Service - was bedeutet, dass das Programm, dass du nutzt, nicht auf deinem Computer läuft sondern 'in der Cloud' und du per Webbrowser darauf zugreifst. Populäres Beispiel ist Office 365 von Mirkosoft. 

Das ist für Otto und Ottilie Normalnutzer sicher eine angenehme und praktische Sache, ich allerdings habe seit Jahren mehr und mehr Bedenken was die Nutzung solcher Services anbelangt, gerade wenn sie kein Geld kosten. Vielleicht werde ich das nochmal in einem anderen Beitrag erläutern, aber zunächst einmal sei einfach gesagt, dass mir Datenschutz und Privatsphäre in den letzten Jahren sehr, sehr wichtig wurden. Darum entschied ich mich für etwas anderes, und zwar quassel. Das ist ein Programm, dass so ähnlich funktioniert, wie jenes, das die Leute bei IRCCloud nutzen müssen. Es verbindet sich mit einem oder mehreren IRC-Servern und nimmt dort alle Kommunikation für dich auf, und du verbindest dich dann mit quassel (genauergesagt benutzt du quassselclient um dich mit quasselcore zu verbinden) und kannst lesen und schreiben als wärst du selbst mit dem Server verbunden. Aber mein neuer quasselcore musste ja irgendwo die ganze Zeit laufen und mit dem Internet verbunden sein.

If you are not paying for it, you’re the product being sold.

Darum nahm ich etwas Geld in die virtuelle Hand und mietete einen vServer. Was ist das? Kann mensch sich so vorstellen wie ein virtueller Computer, der auf einem Computer simuliert wird. Oder wie ein SNES-Emulator, der auf einem Windoof-PC läuft. Also ein Programm, dass so tut, als wäre es ein eigenes Gerät. In diesem Fall läuft es auf einem großen Computer, einem Server, bei einem Hosting-Dienstleister. Dieser stellt mir nach Zahlung von ein paar Euros (für die ersten Monate) einen Zugang zu diesem virtuellen Computer zur Verfügung und dann kann ich damit machen was ich will. 

Nun muss ich dazu sagen, dass ich relativ viel Computererfahrung auf relativ vielen Untergebieten habe und auch vorher schon Server und vServer eingerichtet, administriert und benutzt habe, was mir den Einstieg erleichterte. Also setzte ich schnell ein grundlegendes Linux-System auf (was auch vollkommen automatisch geht, aber ich entschied mich bei der Einrichtung für die Distribution Arch Linux, welche ich auch auf allen meiner echten Computer nutze, und die erfordert eine manuelle Einrichtung des Systems. Dann installierte ich quasselcore mit ein paar Befehlen und dann war ich fertig. 

Ach ja, wie kann mensch sich das vorstelllen? Wie komme ich auf diesen vServer, wie bediene ich ihn? Dazu gibt es mehrere Möglichkeiten, die einzig nicht verrückte ist über das SSH-Protokol. SSH steht für Secure Shell Host und Secure steht für sicher. Denn Sicherheit ist wichtig. Host heißt ja Gastgeber und steht quasi für Server oder Dienst. Das wichtige ist Shell. Das steht für die Shell, die Kommandozeile, das Bedienelement, dass für jeden Computerexperten ab einem gewissen Punkt zum wichtigsten Bedienelement wird. Die Älteren unter den Lesern, die es bis hierhin geschafft haben, kennen das vielleicht noch von DOS: eine Zeile, in der ein Dateisystempfad steht und in der mensch Befehle schreiben kann.

Tatsächlich sieht dass dann so aus, wie in nebenstehendem Bild. Ich befinde mich zunächst auf meinem Computer und nutze dort die Shell, gebe dort den Befehl 'ssh IP-ADRESSE' ein, wobei IP-ADRESSE sowas wie die Telefonnummer meines vServers ist und etwa 123.213.1.16 sein könnte. Ist sie aber nicht. Wirklich nicht. Dann werde ich mit meinem vServer verbunden, genau genommen müsste ich da noch ein Passwort eingeben, allerdings habe ich auf meinem PC und dem Server jeweils eine besondere Datei hinterlegt, die mir einen passwortlosen Login ermöglicht. Das nennt mensch ein Zertifikat. Darum wird es später noch gehen. In dem Bild frage ich dann noch per Befehl 'sudo systemctl status quassel.service' den Status des Dienstes, der meinen quasselcore startet und laufen lässt, ab. Drei Monate am Stück läuft der jetzt schon wieder. 

Da war ich also nun, sehr zufrieden mit meinem neuen IRC-Klienten und mir selbst, und genoss entspanntes Talken ohne die Unwegbarkeiten von webchat.quakenet.org. Doch es sollte nicht lange dauern, bis ich merkte, dass mir etwas fehlte. Die anderen konnten per IRCCloud Dateien aller Art per Drag and Drop teilen, ich jedoch nicht. Sicher gibt es im Internet haufenweise Plattformen, auf denen mensch schnell etwas hochladen kann, aaaaaber...

Ich hätte gern' meine Eigene :^)

Also auf zu meiner favorisierten Suchmaschine (damals duckduckgo, heute searx) und ziemlich schnell stieß ich auf linxserver, ein kleines, in der Programmiersprache Go geschriebenes Programm, dass genau das bot, was ich wollte: Schneller und unkomplizierter Upload von Dateien und längeren Texten, eine Android-App zum schnellen Teilen und die beste 404-Seite aller Zeiten.

Die Installation war einfach, ich musste nur der README des Entwicklers folgen, und schon funktionierte alles. Ich konnte teilen wie eine Eins, nutze dies im Tschätt und auch andernorts. Mit randomisierten Dateinamen, Zugriffsbeschränkungen durch Passwort und automatischen Löschen nach vorgegebener Zeit. Sehr cool.

Wenig später kam dann noch eine Nextcloud-Installation hinzu. Nextcloud kombiniert mehrere Dienste, es stellt ein Onlinespeicher wie Google Drive zur Verfügung, Kalendar wie Google Calendar, Listen wie Google Tasks und kann mit verschiedensten Addons erweitert werden.

Jedoch war mein Zugriff auf diese WebApps alles andere als professionell, ich besuchte diese im Browser durch die Eingabe von 'http://IP-ADRESSE/' für Nextcloud und 'http://IP-ADRESSE:8081/' für linxserver. Dies gefiel dem der Nextclound-Installation gar nicht, sie beschwerte sich über fehlende Verschlüsselung durch SSL.

Was bringt mir Privatsphäre bei fehlender Sicherheit?

Tatsächlich war mir selbst auch schon länger bewusst, dass da etwas fehlte. Seit etwa 2018 warnt dich jeder aktuelle Browser, wenn du auf eine Seite gehst, die ein http am Anfang hat und kein https. Das s steht auch hier für Secure. Und ohne das s ist es überhaupt nicht secure, da werden alle Daten, die du an die Webseite schickst oder von der Webseite geschickt bekommst, im Klartext übermittelt. Das bedeutet, dass jeder, der im gleichen Netzwerk wie du ist (denke an öffentliche Hotspots) oder Zugriff auf einen Computer auf dem Weg hat, alle Daten lesen kann. Auch die Passwörter, die du eingibst und dergleichen. 

Mit diesem s werden alle Daten, die kommuniziert werden, verschlüsselt, und zwar so stark, dass alle aktuellen Computer zusammen zum knacken dies nicht bis zum Hitzetod der Sonne schaffen würden. Dazu müssen sich aber dein Engerät und der Server auf einen Schlüssel einigen. Wie das geheim klappt erzähle ich vielleicht ein anderes mal.

Um diese s zu bekommen, erstelle ich ein ssl-Zertifikat mit dem Programm 'openssl'. Dieses Zertifikat besteht aus einem öffentlichen Schlüssel und Informationen zum Zertifikat, zum Beispiel, wer das ausgestellt hat. In diesem Fall ich. Und ich bin nicht vertrauenswürdig. Zumindest nicht für Personen, die mich nicht kennen. Deswegen ist jetzt zwar der Datenverkehr aller Nutzer mit meinem Server verschlüsselt, aber Besucher der Webapps werden nach wie vor gewarnt, diesmal, weil das SSL-Zertifakt selbst signiert (self-signed) ist. Wenn mensch sich auskennt und der Webseite vertraut, dann ist das kein Problem. Deine Bank oder ein Onlineshop hat in der Regel kein selbst-signiertes Zertifikat, und falls doch: Obacht! Ein anderer, bösartiger Server könnte sich als dein gewünschter Server ausgeben.

Aber wer ist denn vertrauenswürdig? Die sogenannten Zertifikatautoritäten (certificate authorities) sind vertrauenswürdig. Das sind Firmen oder Vereine, die Zertifikate ausstellen und eine Datenbank über diese anbieten, so dass jeder (Browser) dort nachschlagen kann, ob das Zertifikat, dass eine Webseite (ein Server) schickt, echt ist. Informationen darüber findest du beim Schloss-Symbol in der Adresszeile deines Browsers, hier von laut.de. Interessanterweise beziehen die ihre Zertifakte vom einzigen Anbieter, der diese umsonst zur Verfügung stellt, dem amerikanischen non-profit Let's Encrypt, der sich durch Spenden finanziert. Ansonsten zahlt mensch beim Hosting-Dienstleister seines Vertrauens einen kleinen Obulus für diese Zertifikate. 

Let's Encrypt war auch meine Anlaufstelle für Zertifikate, jedoch kein Zertifikat ohne Domain-Name. Also ohne Internetadresse. Das, was hier ancientcave.blogspot.com ist, wobei hier com die so genannte top level domain ist, blogspot die domain und ancientcave eine subdomain. Subdomains bekommt mensch bei sogenannten DynDNS-Providern (was das ist und warum spielt hier keine Rolle) gratis, bei freenom.com bekommt mensch sogar ganze Domains gratis (mit obskuren top level domains aber, und der Kunde ist auch hier wahrscheinlich Produkt). Aber damit und mit dem von Let's Encrypt bereitgestellten Programm 'certbot' geht die Zertifikatserstellung problemlos und wir haben eine sichere, vertrauenswürdige Verbindung.

Etikettenschwindel im Titel

"Wo ist jetzt die Wolke im Keller?" wird der geneigte Leser fragen (falls jemand bis hier hin lesen sollte, Press X to doubt). Clickbait?!? Keine Sorge, die Wolke im Keller wird noch ihren Auftritt haben, aber in einem späteren Post dieser Reihe. Ja, es ist eine Reihe. Ja, es war von Anfang an so geplant! Wirklich! Ich muss weg...

Bei Fragen, Anregungen, Unklarheiten gerne einen Kommentar hier lassen. Dieser wird bestimmt gelesen und vielleicht beantwortet. Danke für's Lesen.



Kommentare