16.04.2023

Sicherungsprogramm für Unified Kernel Images

Ein Unified Kernel Image enthält alle Teile, die zum Booten des Systems notwendig sind. Es enthält den Kernel, die initrd und die Kernel-Kommandozeile in einer einzigen Datei. Sichert man diese Datei, lässt sich ein komplettes Backup der Boot-Systemkonfiguration erstellen. Diese lässt sich einfach zum Boot-Menü hinzufügen. Wenn etwas mit dem aktuellen Kernel-Image oder dessen Konfiguration schiefläuft, kann man im Boot-Menü einfach die Sicherungskopie auswählen und die vorhergehende Kernel-Konfiguration starten. Das Tool ukibak automatisiert das Erstellen des Backups.
17.03.2021

Bandbreitenlimit für Interfaces mit systemd

Mit systemd lässt sich leicht ein WireGuard-Interface anlegen. Aber was, wenn man nicht die gesamte Bandbreite des DSL-Anschlusses für die WireGuard-Verbindung opfern will?
07.03.2020

Wireguard Kompletttunnel mit DHCP

Wireguard soll mit Version 5.6 offiziell Teil des Linux Kernels werden. Aber auch schon vorher konnte man Wireguard bei vielen Linux-Distributionen ausprobieren. Als Kompletttunnel, für den Einsatz unterwegs, funktioniert es hervorragend. Will man allerdings sicherstellen, dass kein Netzwerkverkehr am Tunnel vorbei geht, muss man ein paar Dinge beachten, um sich nicht selbst nach kurzer Zeit komplett aus dem Netz zu werfen.
03.12.2019

Systemhärtung mit systemd

Kein System ist frei von Fehlern. Das trifft auch auf Netzwerkdienste zu, welche auf Serversystemen laufen. Das Problem dabei ist, dass sich hier lange Laufzeit des Programms und große Angriffsfläche sehr unvorteilhaft ergänzen. Systemd bietet hier allerdings einige fortschrittliche Möglichkeiten das Risiko, unter anderem mit Hilfe von Containertechnik, drastisch zu reduzieren.
24.08.2019

ASN.1 Byteorder

Bei der Kodierung des Längenfeldes in ASN.1 stellt sich unter bestimmten Umständen die Frage nach der Bytereihenfolge. Leider ist die Festlegung im Standard nicht gerade leicht zu finden und bedarf auch noch der Interpretation. Daher hier die Antwort auf die Frage nach der Endianess des Längenfeldes in ASN.1.
02.07.2019

Wie baut man einen Hardwarezufallsgenerator?

Computerprogramme sollen deterministisch sein und immer auf die gleiche Weise ablaufen. Doch für manche Anwendungsfälle ist Zufall eine entscheidende Komponente. Sei es zum Erzeugen von sicheren kryptografischen Schlüsseln oder um Stichproben aus einer Gesamtmenge auszuwählen. Aber wie erzeugt man zuverlässig Zufall auf einem deterministischen System?
20.06.2019

Discard für KVM-Gäste

Einer KVM VM möchte man am liebsten ein schönes großes Image zuweisen, damit man es nicht schon nach kurzer Zeit vergrößern muss. Macht man dies allerdings mit vielen VMs sammelt sich ein Haufen ungenutzter Verschnitt an. Dieser ist zwar in der VM leer, belegt auf dem Host jedoch unnötig Speicherplatz. Dieser Artikel beschreibt, wie man mit qcow2-Sparse-Images Speicherplatz ganz leicht überprovisionieren kann. Auch wer seine VM-Images auf einer SSD ablegt, sollte einen Blick in diesen Artikel werfen. Denn das gleiche Setup kann auch dafür sorgen, dass SSDs immer genügend freie Blöcke für eine gute Performance parat haben.
25.12.2023
06.06.2019

Port-Forwarding mit systemd

Manchmal braucht man auf einem System mal schnell ein Port-Forwarding. Zuerst fallen einem dann die üblichen Verdächtigen in Form von iptables, NetCat und inetd ein. Doch es gibt auch andere Möglichkeiten und auf einem System mit systemd braucht man dafür nicht mal andere Tools.
21.05.2017

dm-crypt, Dienste und ein eigenes Runlevel

Auf meinem Homeserver liegt die Datenpartition auf einem mit dm-crypt verschlüsselten Volume. Dienste wie samba oder syncthing sollen warten, bis das Volume eingehängt ist bevor sie mit der Arbeit beginnen. Andererseits soll der Server bei einem Neustart nicht stehen bleiben und auf das Kennwort warten, da er auch einige unverschlüsselte Dienste bereitstellt. Die Lösung für dieses Dilemma liefert systemd.
02.02.2017

GVFS Mount - Probleme mit Samba

Gnome 3 ist eine tolle Desktopumgebung. Allerdings passiert es von Zeit zu Zeit, dass beim Öffnen von per GVFS eingebundenen Laufwerken (zum Beispiel Samba Shares) der Zugriff für eine Programme nicht funktioniert. Woran das liegt und wie man es reparieren kann beschreibt dieser Artikel.
01.08.2016

Linux journalctl cheat sheet

Mit systemd kommt auch journald welcher das Logging übernimmt. Natürlich lassen sich auch weiterhin normale Log-Dateien nutzen, allerdings bietet journalctl einige interessante Optionen, mit denen man sich die Arbeit mit Logdateien deutlich erleichtern kann. Dieses Cheat-Sheet stellt die wichtigsten Funktionen vor.
02.02.2016

Linux systemctl cheat sheet

Systemd setzt sich bei immer mehr Linux Distributionen als Init-System durch. Diese Cheat-Sheet bietet einen Überblick über die wichtigsten Parameter zur Verwaltung von Diensten unter Linux.
25.06.2013

Installation von Debian in der VM

Dies ist der dritte Teil der Artikelserie zur Linux-Virtualisierung mit KVM. Er befasst sich mit der Installation von Linux in der VM. Die hierfür notwendigen Vorarbeiten sind im Artikel “Virtualisierung mit KVM” und “Firewalling und NAT für die private Cloud” beschrieben.
23.05.2013

Firewalling und NAT für die private Cloud

Der Artikel Virtualisierung mit KVM hat gezeigt, wie man eine virtuelle Maschine auf dem eigenen Heimserver einrichtet. Nun stellt sich die Frage: Wie kommt die VM ins Netz und wie kann man aus dem Internet auf die VM zugreifen?
07.05.2013

Virtualisierung mit KVM

Nachdem der Trend immer mehr zur private Cloud geht, stellt sich natürlich die Frage, wie man so etwas auch sicher realisieren kann. Viele haben einen kleinen Server im Keller oder Abstellraum stehen, der sich prima für die eigenen Cloudexperimente eignen würde. Aber möchte man wirklich den Internetzugriff auf dieses System erlauben?
14.09.2012

Dateien mit regulären Ausdrücken suchen

Unter Windows durchsucht man die lokale Festplatte meist nur mit Hilfe des “Suchen”-Dialogs aus dem Startmenü. Diese Methode erweist sich jedoch als unzureichend, wenn etwas komplexere Abfragen durchgeführt werden sollen. Spätestens, wenn der Dateiname oder der Pfad mit einem regulären Ausdruck verglichen werden soll, ist schluss. Aber wer braucht schon einen “Suchen”-Dialog, wenn Microsoft mit der Powershell völlig neue Möglichkeiten geschaffen hat?
03.06.2012

Kleiner endlicher Automat (finite state machine)

Für ein Mikrocontrollerprojekt brauchte ich einen kleinen, übersichtlich zu implementierenden endlichen Automaten (FSM - finite state machine). D.h. ein Softwarekonstrukt, welches aufgrund bestimmter Ereignisse (hier Tastendrücke auf einer Fernbedienung) zwischen verschiedenen Zuständen wechselt. Zustandsautomaten habe ich schon eine ganze Menge implementiert und dafür auch fertige Bibliotheken genutzt. Doch für einen Mikrocontroller musste es eine besonders leichtgewichtige Implementierung sein.
29.05.2012

Die fehlenden Arrayfunktionen in PHP

PHP bietet einen riesigen Fundus an Array-Funktionen. Unter diesen 77 Funktionen fehlen kurioser Weise drei, die man eigentlich erwarten würde.
22.05.2012

Die Rolle des Fehlers

Heutzutage werden Fehler häufig als unerwünscht betrachtet. Viel Aufwand wird investiert um Fehler zu vermeiden und Risiken zu minimieren. Dabei sind Fehler gerade das, was häufig zu neuen, besseren Technologien führt.
09.04.2012

Gastnetz und VLANs mit DD-WRT

Der Linksys Wireless Router WRT54GL ist bei Amazon schon für unter 40€ zu haben. Das Gerät hat es wirklich in sich. Es beherrscht echte 802.1q VLANs und dazu noch Multi-SSID. Was liegt also näher, als endlich ein Gast-WLAN aufzubauen, welches Freunden und Bekannten bequemen Zugriff ins Internet ermöglicht, ohne dass deren Geräte sich direkt im internen Netzwerk einbuchen müssen.
25.03.2012

Mediatomb und BDP7500/MKII

Nachdem es mich mehrere Tage gekostet hat, die richtigen Einstellungen für das reibungslose Streaming auf den Philips Blue-Ray-Player BDP7500/MKII zu finden, möchte ich diese hier einfach dokumentieren. Zusätzlich gibt es einen kleinen Tipp für die Nutzung als Medienplayer, wenn man nicht immer den Fernseher einschalten möchte.
15.02.2012

Datumsrechnung in Shell-Scripten

Wer häufiger Shellscripte für Linux erstellt, hatte bestimmt schon häufiger das Problem, dass er das Datum des nächsten Ersten oder die Uhrzeit minus eine Stunde ermitteln musste. In vielen Scripten wird dann wild mit Shellvariablen und Shell-Funktionen herumoperiert. Dabei gibt es doch unter Linux einen viel einfacheren - und besseren - Weg mit dem Datum zu jonglieren.
03.02.2012

Header für Bash Shellscripte

Für Shell-Scripte unter Linux gilt das gleiche wie für jedes andere Programm: “Das aktuelle Arbeitsverzeichnis wird durch den Aufrufer bestimmt.” Das ist natürlich dann ein Problem, wenn man bestimmte Konfigurationsdateien oder Programme im aktuellen Arbeitsverzeichnis erwartet. Wenn dem so ist, kann folengder Scriptschnipsel das Arbeitsverzeichnis auf das Installationsverzeichnis des Shellscriptes setzen.
07.10.2011

Freihand Icons für WPF

Ich arbeite gerade an einer WPF-Applikation, welche wie ein Notizblock aussehen soll. Natürlich passen die von Windows bereitgestellten Icons und Buttons nicht wirklich zu diesem Design. Also habe ich überlegt, wie ich handgezeichnete Icons in WPF übernehmen kann. Der erste Versuch einfach eingescannte PNG-Bilder zu verwenden sah - zumindest in höheren Zoomstufen - schrecklich aus. Doch zum Glück gibt es eine Möglichkeit Icons als Vektorgrafik in WPF zu überführen.
01.10.2011

Eclipse zerschießt SVN

Für das Entwickeln von Java-Anwendungen ist Eclipse das Open-Source-Werkzeug der Wahl. Wenn man jedoch nicht die integrierten SVN-Features von Eclipse verwendet, sondern beispielsweise TortoiseSVN so wird beim Kompilieren das “.svn”-Verzeichnis aus dem Source-Baum in den Ausgabebaum kopiert. Dabei zerschießt Eclipse dann das Repository und das Einchecken funktioniert nicht mehr.
21.08.2011

Komplexität

Einen Satz, den sich jeder Programmierer oder IT-Architekt über den Schreibtisch hängen sollte, habe ich in einem Interview mit James Gosling (einem der Urväter von Java) gefunden.
17.08.2011

Eclipse RSE zeigt falsche Dateien

Das RSE-Plugin für Eclipse erlaubt es, Dateien auf entfernten Systemen zu bearbeiten und sogar Code entfernt zu compilieren. Ich verwende es überwiegend um bequem PHP-Dateien auf einem LAMP-Server zu bearbeiten. Leider kommt es ab und an vor, dass sich RSE und der Server über den Inhalt des Arbeitsverzeichnisses nicht ganz einig sind.
13.08.2011

Java: The Good Parts

Gestern war ich im Buchladen und als ich das hier gesehen habe, musste ich es einfach fotografieren:
13.04.2011

RTSP und IPTables

Das Realtime Streaming Protocol kurz RTSP wird genutzt um den Verbindungsaufbau mit Streamingservern zu koordinieren. Die Mobilversion von YouTube nutzt beispielsweise dieses Protokoll. Nach dem Verbindungsaufbau werden die Nutzdaten dann meist über RTP übertragen. Da dieses UDP-basierte Protokoll die verwendeten Ports dynamisch aushandelt, ist es schwierig, dieses ohne geeignetes Conntrack-Modul durch die Firewall zu bekommen. Wenn man also - so wie ich - eine IPTables-Firewall nutzt um den eingehenden und ausgehenden Traffic zu filtern, so hat man mit RTSP ein Problem.
03.04.2011

NTP-Anfragen auf localhost umlenken

Manch einer mag sich, ob des seltsamen Titels, fragen, was das soll. Nun ja, viele mobile Geräte - darunter auch viele Android-Geräte - lassen es nicht zu, den Zeitserver einzustellen. Zwar synchronisieren Sie die Uhrzeit automatisch mit einem NTP-Server, jedoch ist dieser fest eingestellt und kann nicht geändert werden. Das ist besonders ärgerlich, wenn im lokalen Netzwerk - zum Beispiel auf einem DSL-Router oder Server - bereits ein NTP-Server läuft. Die Uhrzeit wird dann über etliche Hops hinweg aus dem Internet synchronisiert, anstatt den lokalen Zeitserver zu nutzen. Mit Hilfe von iptables kann man hier jedoch leicht Abhilfe schaffen.
14.03.2011

Bash Verzeichnisnavigation

Manchmal ist es nicht ganz einfach, sich auf der Linux-Konsole in einer größeren Verzeichnisstruktur zu bewegen. Doch es gibt eine Hand voll Tricks, um sich das Leben zu erleichtern. Man spart sich viele Tippfehler und die “."-Taste nutzt sich auch weniger ab.
24.02.2011

.svn-Ordner loswerden

Ab und an kopiere ich Dateien, die ich aus SVN ausgechecked habe irgendwo hin und stellt hinterher fest, dass überall diese .svn-Ordner herumliegen. Jetzt kann man natürlich alles löschen und neu exportieren (anstatt auszuchecken) oder man verwendet die folgenden Einzeiler.
11.02.2011

Deklaratives Multithreading

Heute habe ich meinen Artikel zum Thema “Deklaratives Multithreading” auf CodeProject online gestellt.
28.12.2010

Fallback mit MD-RAID

Nachdem ich meinen Heimserver einmal wieder upgraden musste und es vielen evtl. ähnlich geht, möchte ich hier eine Methode beschreiben, wie ein RAID 1 Softwareraid (MD-Device) als schnelle Fallbackmethode verwendet werden kann.
27.10.2010

Shellscript INI-Parser

Manchmal müssen auch Shell-Scripte konfigurierbar sein. Um mehrere, zufällige Playlisten für meine Musiksammlung zu erstellen, wollte ich ein Script haben, welches eine Konfigurationsdatei auswertet und für jeden Abschnitt die gleiche Aktion ausführt. Gleichzeitig sollte es sich durch falsche INI-Direktiven nicht durcheinander bringen lassen und wie eine gängige INI-Datei aufgebaut sein. Die Lösung ist dieses Shellscript, welches eine INI-Datei abarbeitet.
17.10.2010

Vim Kurzreferenz

Vi ist neben Emacs der Texteditor auf Linux Systemen. Leider ist seine Lernkurve ziemlich steil. Das zeigt sich schon daran, dass Anfänger häufig schon daran scheitern den Editor wieder zu beenden, nachdem sie ihn aus versehen geöffnet haben. Dabei sind Vi und sein Nachkomme Vim (Vi improved) sehr mächtigte Editoren. Daher hier eine (nicht ganz so kurze) Kurzübersicht der wichtigsten Kommandos für Vim.
22.09.2010

Batch-Dateien und Netzlaufwerke

Wer schon einmal versucht hat eine Batch (BAT oder CMD-Datei) von einem, über den UNC-Pfad geöffneten, Netzwerklaufwerk zu starten wird schnell feststellen, dass Windows sich beharrlich weigert, einen UNC-Pfad als aktuelles Arbeitsverzeichnis zu setzen. Dafür setzt Windows den Pfad gleich auf das Windows-Verzeichnis. Dieses Verhalten sorgt dafür, dass man sich gleich das denkbar schlechteste Verzeichnis mit temporärem Müll voll schreibt. Also musste eine Lösung her, welche dafür sorgt, dass das Arbeitsverzeichnis immer auf dem Verzeichnis steht, aus welchem das Script gestartet wurde. Auch wenn es sich dabei um einen UNC-Pfad handelt.
29.08.2010

Lasst mich hier raus!

Wer häufiger über Putty auf einem Linux-System arbeitet kennt das. Man hat sich über telnet auf einen Port verbunden und kommt jetzt nicht mehr aus der Telnet-Sitzung heraus. Telnet sagt einem zwar, dass das “Escape character” “^]” ist. Aber wie gibt man das ein?
30.06.2010

Ungültige Symlinks löschen

Heute war ich auf der Suche nach einer Möglichkeit schnell alle ungültigen SymLinks auf Dateien aus einem Verzeichnis zu entfernen.
06.06.2010

Onyx Boox 60

Im Januar habe ich mir - nach längerem Überlegen - einen E-Book-Reader gekauft. Meine Anforderungen unterschieden sich hier etwas von denen eines “normalen” E-Book-Nutzers. Ich wollte ein Gerät um RSS-Feeds im Bus und in der Bahn lesen zu können. Bisher habe ich dafür mein N800 verwendet. Doch das Display ist mit 4,1" hierfür eigentlich zu klein und sobald die Sonne etwas heller scheint, kann man auf dem transmissiven Display nichts mehr erkennen. Also musste etwas Größeres her.
04.05.2007

VDR Sanitizer

Der Linux VDR von Klaus Schmidinger hat mittlerweile einen Reifegrad erreicht, in dem er vielen kommerziell erhältlichen Festplattenrekordern überlegen ist. Auch Hardwareprojekte wie z. B. das AV-Board oder der Flash VDR Remote Adapter1 gehören zu den Produkten, welche für den VDR entwickelt wurden. Jedoch ist ein (aus meiner Sicht gravierendes) Manko bisher nicht beseitigt worden: Der VDR hat an bestimmter Hardware Probleme Dolby Digital Ton über die DVB-Karte auszugeben.
16.05.2006

Disk Optimizer

Der Flash Systems Disk Optimizer ist ein Defragmentierungsprogramm für NTFS-Laufwerke. Es ordnet die Dateien auf dem Laufwerk neu an, um den Zugriff auf diese zu beschleunigen.
16.05.2006

VDR Remote Adapter

Der Flash VDR Remote Adapter ist das erste Hardwareprojekt von Flash Systems. Mittlerweile ist das Projekt schon etliche Jahre alt, allerdings ist es als Referenz immer noch zu gebrauchen.