Die Linux Dateitypen - oder - "Was zählt, ist der Inhalt"

Das Konzept “alles ist eine Datei” ist eine der wesentlichen Unix/Linux-Philosophien.

Die Idee dabei ist folgende:

Egal, was Du auf einem System erreichen möchtest - alles, was Du dafür brauchst, sind Werkzeuge, um irgendwie mit Dateien zu arbeiten.

Gib sie aus, bearbeite sie, kopiere sie, verschiebe sie… was immer du brauchst.

OK - das trifft nicht auf wirklich alles zu - aber je mehr Du mit Linux-Systemen arbeitest, desto öfter wirst Du dieses Muster erkennen.

Also lass uns über Dateien sprechen …

Continue reading »

Textdaten in der Shell verarbeiten? Mach das doch mal effizient und robust!

Vergiss awk und perl! Gerade, wenn es um das Verarbeiten einfacher Textdaten oder Textdateien geht, ist es oft effizienter, Standard-Mechanismen der Bash zu verwenden.

Nimm dir ein paar Minuten Zeit - ich habe dir hier dafür die wichtigsten Mechanismen zusammengestellt und erklärt. Mehr brauchst Du nicht, um in eigenen Shell-Skripten robust und effizient Textdaten zu verarbeiten.

Dir ist egal, warum das alles funktioniert? Du willst einfach schnelle Ergebnisse? Dann überspringe den ersten Teil und schaue dir direkt die Beispiele und Performance-Tests an.

Die Beispiele kannst du direkt im Browser ausprobieren und verändern.

Continue reading »

So löschst Du Zeilen aus der History der Bash

Und plötzlich ist es doch wieder passiert: Ich habe sensible Informationen - diesmal ein Passwort - auf der Kommandozeile der Bash eingetippt.

In ihrer unendlichen Hilfsbereitschaft hat die Shell sofort die so abgesetzte Kommandozeile in ihrer History vermerkt. So kann ich sie später problemlos noch einmal verwenden …

Dumm nur, wenn sich das betroffene System nicht unter meiner vollständigen Kontrolle befindet (Kundensystem?), oder wenn mir beim nächsten Mal jemand über die Schulter schaut, während ich die History nach einem anderen Befehl durchsuche.

Die betreffende Zeile muss also aus der History entfernt werden.

  • Wie stellt man das am besten an, und
  • Wie verhindert man das Problem in Zukunft?

Generell hast Du zwei Möglichkeiten, Befehle aus der Bash-History zu entfernen. Entweder, verwendest direkt das history-Kommando, oder Du bearbeitest die ~./bash_history.

Continue reading »

SSH Port-Forwarding aus der Google Cloud Shell

Google stellt mit der Cloud Shell ein sehr nützliches Werkzeug zur Verfügung: Direkt aus dem Browser heraus hat man Zugriff auf eine Linux-Shell, in der man im Prinzip alles machen kann, was man auf einer Linux-Shell eben so tut.

Ich verwende die Cloud Shell z.B. oft als Sprungbrett, um mich per SSH auf andere Systeme zu verbinden. Dabei ist mir neulich aufgefallen, dass ein einfaches Port-Forwarding “out-of-the-box” nicht funktioniert: Beim Versuch, eine SSH-Verbindung mit lokalem Port-Forwarding aufzubauen (ssh user@zielhost -L 8080:127.0.0.1:8080), erscheint nach dem Verbindungsaufbau folgende Fehlermeldung:

bind: Cannot assign requested address

und das Port-Forwarding wird nicht aufgebaut.

Der Grund dafür ist recht simpel: SSH versucht sich für das TCP-Forwarding an den lokalen IPv6-Port zu binden. Das ist in der Google Cloud Shell aktuell nicht möglich und schlägt deshalb fehl.

Continue reading »

Let's Encrypt ausprobiert: In 5 Minuten zur SSL-gesicherten Website

Let's Encrypt ist ein Projekt, mit dessen Hilfe sich jeder kostenlose SSL-Zertifikate ausstellen lassen kann. Die so ausgestellten Zertifikate werden von allen aktuellen Clients akzeptiert und können sowohl für Webserver als auch für andere SSL-basierte Dienste verwendet werden (smtp mit TLS, ldaps, ...).

Bei den von der Let's Encrypt CA ausgestellten Zertifikaten handelt es sich um sogenannte Domain-validierte Zertifikate. Das bedeutet, dass bei der Ausstellung überprüft wird, ob der Antragsteller die Kontrolle über den im Zertifikat angegebenen Domainnamen hat. Dazu muss der Antragsteller nachweisen, dass er unter dem im Zertifikat aufgeführten Hostnamen Dateien mit beliebigen Namen und Inhalten per Webserver veröffentlichen kann.

Ein großer Vorteil neben dem Preis ist die komplette Automatisierung der SSL-Konfiguration durch Let's Encrypt:

  • Erzeugen eines private-Key und eines Zertifikats-Request
  • Einreichen des Zertifikats-Request bei der Let's Encrypt CA
  • Domain-Validierung
  • Einbinden des Zertifikats in die Webserver-Konfiguration

Seit 3. Dezember 2015 befindet sich die Let's Encrypt Infrastruktur in der öffentlichen Beta-Phase, so dass jeder das Ausstellen eigener Zertifikate testen kann.
Continue reading »

Ausprobiert und begeistert: ESXi Hosts direkt per Browser verwalten

Wie yellow-bricks berichtet, wird bei VMware an einem Projekt gearbeitet, mit dem ESXi-Server direkt aus dem Browser heraus verwaltet werden können.

Auf der Projektwebsite steht eine Technical Preview zum Download bereit. Dabei handelt es sich um ein vib-Paket, dass direkt auf dem ESXi-Server installiert wird. Anschließend reich ein hinreichend aktueller Browser mit aktiviertem Javascript, um folgende Operationen auf dem ESXi-Server auszuführen:

  • Steuerung von virtuellen Maschinen (an-/ausschalten, reset, ...)
  • Zugriff auf die Konsole von virtuellen Maschinen
  • Erzeugen neuer VMs
  • Hostkonfiguration (Netzwerk, NTP, laufende Dienste, erweiterte Einstellungen ...)
  • Anzeige von Ereignissen, Tasts, Alarmen

Das musste ich natürlich gleich ausprobieren. Um es vorweg zu nehmen: ich bin begeistert! Endlich kann ich von meinem Chromebook aus direkt auf ESXi-Server zugreifen und dort virtuelle Maschinen steuern und verwalten.

Aktuell läuft der "ESXI Embedded Host-Client" ausschließlich unter ESXi 6.0 und (wenn veröffentlicht) unter ESXi 5.5u3. Für meine Tests habe ich mir einen "leeren" ESXi-Server 6.0 eingerichtet und das Paket per SSH installiert:

Continue reading »

So testest Ihr IPv6 mit Ravello und SixXS in der Cloud

Habt Ihr Euch schon mit IPv6 auseinandergesetzt? Ich meine nicht nur in der Theorie - ich meine in der Praxis. Habt Ihr ein Gefühl dafür, wie sich die Stateless Address Autoconfiguration (SLAAC) verhält, wie Router Advertisements funktionieren oder wie das Neighbor-Discocery-Protocoll ARP ersetzt? Braucht Ihr bei IPv6 noch DHCP? Was genau ändert sich im DNS? Wie könnt Ihr am besten IPv6 parallel zu bestehenden IPv4-Diensten betreiben.

Ich selber wurde vor kurzem gebeten, zwei Workshops zum Thema IPv6 durchzuführen. Für diese Workshops wollte ich eine Demo-Umgebung bereitstellen. Gleichzeitig wollte ich - meine letzten Workshops zu diesem Thema sind schon eine Weile her - mein KnowHow zu diesem Thema wieder etwas auffrischen und auf den aktuellen Stand bringen.

Mit Ravello habe ich eine Lösung entdeckt, die auch für Euch interessant sein könnte: Mit Ravello lassen sich komplette Layer-2 Netze in den Cloud-Umgebungen von Google oder Amazon realisieren. Perfekt für alle, die - wie ich - viel von unterwegs arbeiten und zu faul sind, leistungsstarke Notebooks für den performanten Betrieb solcher Testumgebungen mit sich herumzutragen ;-)

In diesem Artikel möchte ich Euch zeigen, wie Ihr mit Ravello eine IPv6-Testumgebung realisiert, die Ihr mit SixXS an den IPv6-basierten Teil des Internet anbinden könnt.

Continue reading »