Spaß mit Arch Linux, Technik

Neue Serie: Spaß mit Arch Linux

Nachdem ich im zweiten Anlauf das 1. Theologische Examen bestanden und jetzt einen Monat frei habe, bevor es mit dem Vikariat losgeht, wollte ich mir ein bißchen mehr Zeit für Linux-Spielereien nehmen.

Ich benutze Linux seit ich mit dem Theologiestudium angefangen habe, also schon eine ziemlich lange Zeit. Mein erstes war ein SuseLinux, ich glaube irgendwas mit ner 8 oder ner 9 vorne. Nach einer Weile war ich damit nicht mehr zufrieden. Für neuere Versionen etwa von KDE oder Gnome hätte ich eine neue Suse Distribution kaufen müssen. Das wäre zwar mit ein wenig Aufwand auch so gegangen, aber erstens habe ich den Aufwand gescheut, alles zu Fuß aus den Quellen zu kompilieren, außerdem fürchtete ich, nicht alles zu begreifen und am Ende ein inkonsistentes System zu haben, das hier und da muckt, ohne daß ich wüßte, wo jetzt der Fehler liegt.

Also habe ich mich Gentoo Linux zugewandt. Die Idee, daß alles direkt für meine Hardware kompiliert wird fand ich damals recht ansprechend, und das Prinzip des rolling release find ich immer noch gut. Aber das Kompilieren dauert schon ne Weile, und wenn dann mal ein Update eines größeren Programms wie Open Office oder Firefox anstand, war der Rechner mehrere Stunden beschäftigt. Als der Rechner den Geist aufgab, hatte ich erst mal ne Weile kein Linux mehr, bis ich letztes Jahr auf einem Rechner meines Vaters Ubuntu installierte.

Ich mochte Unity nicht sonderlich, also wurde aus Ubuntu schnell Xubuntu. Mit dem arbeite ich heute noch. Den Ausschlag für Ubuntu gab, daß es irgendwie mainstreamig warund ich in der Examensvorbereitung etwas wollte, was einfach funktioniert, ohne viel rumzuprobieren.

Lange Rede kurzer Sinn, Xubuntu ist zwar toll und bleibt vorerst auch mein Produktivsystem, aaaber: Meine Frau hat einen alten Laptop, der unter Windows nur noch rummuckt. Den hab ich mir jetzt gegriffen. Der Plan: Daraus wird mein Versuchslabor für Arch Linux.

Windows wird platt gemacht und ich bau mir Stück für Stück ein nettes Arch System, das nicht zu Produktionszwecken dienen soll, sondern einfach, um Dinge auszuprobieren, ohne etwas Wichtiges zu zerschießen.

Wieso Arch? Nun, es bietet rolling releases wie Gentoo, kompiliert aber nicht alles aus Quellen. Man muß (oder darf) alles zu Fuß einrichten, ohne grafischen Installer. Und es gibt eine offenbar recht lebendige Community,w o man Hilfe finden kann. Man kann so ziemlich alles selbst einstellen (ähnlich wie bei LFS, hab ich vergessen, mit dem hatte ich auch mal rumgespielt) und trotzdem auf eine Paketverwaltung zurückgreifen.

Erst dachte ich, das geht auf die Schnelle, allerdings gibt es ja schon bei den ersten Schritten so wahnsinnig viele Möglichkeiten, aus denen man auswählen muß.

So habe ich mich dazu entschieden, daß die Festplatte des Laptops komplett verschlüsselt wird und ich via USB Stick booten werde, der dann ein passwortgeschütztes keyfile zum Platten entschlüsseln enthalten soll. Wenn ich es hinkriege (bzw es überhaupt möglich ist), soll der USB Stick daneben auch noch ein Rettungssystem enthalten (ich dachte an grml), das kann man immer brauchen, wenn mal wieder jemand im Bekanntenkreis seinen Windows Rechner zerschießt und die Daten retten will o. Ä., außerdem will ich den restlichen Platz als ganz normalen USB Speicher benutzen, also FAT32 formatiert, für Bilder, sonstige Daten, die man so runträgt… halt ganz normal das, wofür man nen USB Stick eigentlich hat.

Hier auf dem Blog will ich die einzelnen Schritte dokumentieren, vor allem für mich, aber vielleicht interessiert es ja auch den ein- oder anderen. Wenn nicht, postet Nordlicht zur Zeit gerade ein wenig Kunst (vielleicht werd ich davon was in meinem Linuxprojekt einbauen ;)) und Rauka Palatina hat gemeint, sie würde auch bald mal was schreiben.

Uncategorized

SSH mit Privatekey vom USB Stick

Wie ich ja schon mal erwähnt hatte, hab ich ein kleines Forum aufgesetzt. Das läuft auf nem Server, mit dem ich noch einiges mehr vorhabe, aber darum soll es hier nicht gehen. Hier geht es vielmehr um einen Aspekt der Serverwartung.

Und zwar ist mir aufgefallen, daß in letzter Zeit ein paar Scherzkekse versucht haben, sich per ssh auf meinen Server Zugriff zu verschaffen. Dies stieß naturgemäß nicht auf Begeisterung meinerseits, und ich hab mich ein wenig eingelesen, was man über ein starkes Passwort hinaus noch machen kann.

Dabei stieß ich auf die Möglichkeit, sich bei SSH mit einem private/public Key Paar anzumelden. Wie das geht, kann man überall im Netz lesen, darum soll es hier auch nicht gehen. Das ganze soll um einiges sicherer sein als die Authentifizierung per Passwort.

Die Sache funktioniert nun so, daß man auf dem Rechner zu Hause ein Paar Schlüssel erstellt, je einen public und einen private, und daß dann der publickey auf den Server geladen wird, und dann gibt es noch ein paar Einstellungen, aber wie gesagt, das können andere besser erklären als ich.

Mein Problem war nun, daß ich nicht nur von einem Rechner aus arbeite. Eigentlich müßte ich entweder auf jedem Rechner ein eigenes Paar Schlüssel erstellen und den public Teil auf dem Server einbinden, oder zumindest den einen privatekey den ich schon hab auf alle Rechner verteilen und dort einbinden.

Nennt mich paranoid, aber ich möchte meinen Schlüssel immer dabei haben, auf meinem USB Stick.

Und hier fangen die Probleme an: USB Sticks sind meist (so auch meiner) mit FAT formatiert. FAT ist jenes alte Dateisystem, das schon bei DOS zum Einsatz kam. Es gab zwar Erweiterungen, jedoch hat FAT nie Benutzerrechte bekommen. Wird nun der USB Stick gemountet, werden den darauf befindlichen Dateien irgendwelche vom System festgelegten Benutzerrechte zugewiesen, die in der Regel zu freizügig sind.

ssh, mit dem ich mich auf meinem Server einlogge, ist da recht wählerisch. Sieht das Programm, daß der Schlüssel von anderen veränderbar ist, spielt es nicht mehr mit. Zugriffsrechte darf es nur für den Eigentümer geben, für sonst niemanden (also in etwa 600).

Der USB Stick sollte also mit anderen Standardrechten gemountet werden. Außerdem sollte man darauf achten, daß bei den beschränkteren Rechten überhaupt noch ein Zugriff auf den Schlüssel möglich ist. Wird die Schlüsseldatei nämlich einem anderen Benutzer zugewiesen, ist es mit dem Einloggen auf den Server auch Essig.

Wir müssen den Stick also mit 600 als Standardrecht mounten, wobei die darauf befindlichen Daten dem aktuellen Benutzer zugewiesen werden sollen.

Was nun folgt, kann man auch alles in der Manpage von mount nachlesen, und ich rate dazu, dies auch nochmal zu tun, denn ich kann mich auf mit dem ein oder anderen Punkt irren, deshalb mache ich darauf aufmerksam, daß ich für Schäden keine Haftung übernehme.

Nun aber zum Thema:

Der Befehl sieht in etwa so aus:

mount <Gerät> <Pfad>

also etwa:

mount /dev/sda1 /media/USB-Stick

Wir benötigen nun Optionen einerseits für die Zugriffsrechte:

dmask=022,fmask=177

Vorsicht: Vor allem hier habe ich lediglich darauf geachtet, daß es funktioniert. Welche Sicherheitslücken ich damit aufgerissen habe, kann ich nicht sagen. Ich arbeite an meinen Rechnern alleine, deshalb muß ich hier nicht übermäßig vorsichtig sein. Die Sache kann bei Euch ganz anders liegen. Informiert Euch selbst über sinnvolle Einstellungen für dmask und fmask.

Dann benötigen wir noch die Option für den Besitzer:

uid=ernstruediger

Ihr müßt „ernstruediger“ natürlich durch Euren Benutzernamen ersetzen 😉

Im Ganzen sähe der Mountbefehl also in etwa so aus:

mount -o „uid=<Benutzername>,dmask=022,fmask=177“  <Gerät> <Pfad>

Bitte nicht vergessen, dann beim ssh auch die richtige Schlüsseldatei anzugeben, da das Programm sicher nicht standardmäßig auf dem USB Stick sucht. Das könnte man zwar auch einstellen, halte ich aber nicht für sinnvoll. Die Schlüsseldatei gibt man mit i an:

ssh -i /media/USB-Stick/id_rsa username@meintollerserver.de

Nochmal: Ich übernehme keine Haftung für etwaige Schäden. Bevor Ihr das hier ausprobiert, informiert Euch selbst, inwieweit dieses Vorgehen in Euer Sicherheitskonzept passt oder nicht. Mir geht es vor allem darum, einen möglichen Ansatz aufzuzeigen. Kümmert Euch selbst um die Details.