Das Terminal als Webanwendung
Quelle: https://github.com/kost/tty2web
Lizenz: MIT
Alternativen: Gotty, Xterm.js
Das kleine Tool Tty2web bringt die Konsole in den Webbrowser. In Go implementiert, basiert es auf Gotty. Anders als der Vorgänger unterstützt es auch das Herunter- und Hochladen von Dateien und liefert eine Windows-Version aus. Anwender finden Pakete für viele Betriebssysteme und Plattformen auf Github. Beim Aufruf übergeben Nutzer den Namen eines Shell-Programms. Das Tool erwartet eingehende Verbindungen an Port 8080 auf allen Schnittstellen. Die Schalter »-a« und »-p« legen das Interface und den Port fest.
Gibt der Anwender beim Start »-w« an, dann kann er im Webbrowser interaktiv arbeiten. Da das Tool keine Zugriffskontrolle bietet, ist diese Funktion mit Vorsicht zu genießen, alle gestarteten Programme laufen mit den Rechten des Tty2web-Benutzers. Eine kleine Einschränkung erlaubt der Schalter »–once«: Dann lässt das Tool nur eine Verbindung zu und quittiert den Dienst, sobald der Nutzer sie beendet.
Auch der Einsatz als Reverse-Proxy (»–proxy« und »–proxyauth«) sowie ein Datentransfer via HTTP sind möglich. Letzterer gelingt mit den Parametern »–upload« und »–download« jeweils unter Angabe eines Verzeichnisses. Wer die zahlreichen Parameter und Optionen beim Aufruf nicht tippen möchte, kann sie in der Konfigurationsdatei »~/.tty2web« speichern; eine Vorlage findet sich im Github-Repository.
Tty2web bringt die Konsole schnell und unkompliziert in den Webbrowser. Der interaktive Modus eignet sich wegen der mangelnden Zugriffskontrolle nur für lokale Netze.
SQLite-Dateien auswerten
Quelle: https://github.com/simonw/datasette
Lizenz: Apache License 2.0
Alternativen: SQLite3, Dbeaver
Wer bei diesem Tool an alte Computer und Kassettenlaufwerke denkt, ist auf dem Holzweg. Das kleine Python-Programm spezialisiert sich vielmehr auf das Auswerten und Verbreiten von SQLite-Dateien. Die Installation gelingt in wenigen Schritten. Eine Einrichtungsdatei gibt es nicht; der Anwender steuert das Tool über Aufrufparameter. Der Schalter »–help« blendet eine Online-Hilfe ein.
Datasette kennt die Befehle »serve«, »inspect«, »package«, »plugins« und »publish«. Das Kommando »serve« erwartet den Namen einer Datenbank und stellt die Daten anschließend in einer einfachen Weboberfläche unter »localhost:8001« dar. Das macht das Analysieren äußerst bequem. Auf der ersten Seite führt Datasette alle Objekte der SQLite-Datenbank auf. Der Benutzer klickt ein Objekt an, um es näher zu untersuchen. Über den Link »View and Edit SQL« definieren Anwender alternative Abfragen. Datasette unterstützt nur »select«-Statements; »update« und »delete« bleiben außen vor.
Das Kommando »inspect« erlaubt einen tieferen Einblick, indem es die Metadaten der SQLite-Datei abfragt und dann im JSON-Format ausgibt. Der Befehl »publish« veröffentlicht Daten bei Online-Diensten. Datasette arbeitet dabei mit Google Cloud Run, Heroku und Zeit Now zusammen. Weitere Webdienste lassen sich über Plugins einbinden. Die Dokumentation enthält eine Anleitung zum Erstellen eigener Erweiterungen.
Datasette macht in der aktuellen Version schon eine ganz gute Figur, könnte aber noch weitere SQL-Abfragen dazulernen. Gut gefällt die Möglichkeit, bei Online-Diensten zu publizieren.
Nameserver überwachen
Quelle: https://github.com/axllent/dnsmonitor
Lizenz: MIT
Alternativen: DNS Spy, Dnstop
Bei Dnsmonitor ist der Name Programm: Das Kommandozeilenwerkzeug befragt DNS-Server in regelmäßigen Intervallen nach Datensätzen für Hostnamen und erstattet auf der Konsole Bericht. Das in Go implementierte Tool steht auf Github für alle POSIX-konformen Betriebssysteme als Paket bereit. Die Konfiguration erfolgt beim Aufruf, darüber hinaus lassen sich in einer JSON-Datei externe Benachrichtigungsdienste wie Gotify oder Pushbullet einrichten.
Für eine einfache Abfrage geben Benutzer beim Start den FQDN an; optional benennen sie mehrere, durch Leerzeichen voneinander getrennte Hosts. Zusätzlich ist eine Definition des Query-Typs möglich. So ermittelt »mx:example.com« etwa die IP-Adresse des Mailhosts der Domain »example.com«. Als weitere Query-Typen offeriert Dnsmonitor »a«, »cname«, »txt« und »ns«. Gibt der Anwender nichts an, verwendet das Tool den Typ »a«. In der Ausgabe erscheinen außer dem Query-Typ auch Zeitstempel, geänderte IP-Adressen und der FQDN.
In der Voreinstellung befragt Dnsmonitor den in »/etc/resolv.conf« hinterlegten DNS-Server. Über den Parameter »-d« definiert der Nutzer einen alternativen Server. Dnsmonitor wiederholt seine Abfragen alle fünf Minuten, sofern der Anwender nicht mithilfe des Parameters »-i« das Prüfintervall verändert. Das Tool arbeitet so lange, bis der Nutzer es beendet.
Das noch recht junge Projekt Dnsmonitor hält, was es verspricht. Die Zusammenarbeit mit Benachrichtigungsdiensten gefällt, das Tool macht auch in eigenen Skripten eine gute Figur.
Textdateien scannen und filtern
Quelle: https://github.com/zix99/rare
Lizenz: GPLv3
Alternativen: Grep, Nuix
Viele Anwender greifen zu Grep, um Text- oder Protokolldateien zu durchsuchen. Sollen die gefilterten Daten aufbereitet oder die Ausgabe fortlaufend aktualisiert werden, muss man das GNU-Tool mit weiteren Programmen kombinieren. Als Alternative bietet sich der Griff zu Rare an, das Elemente aus Grep und Tail vereint. Das Github-Repository stellt Pakete für alle wichtigen Betriebssysteme bereit, sodass der Anwender das Tool nicht selbst kompilieren muss.
Rare bietet eine Online-Hilfe (»rare help«) und eine ausführliche Anleitung (»rare docs«). Hier gibt es Kapitel zu Expressions, JSON, Parsing und Regexp. Das Tool kennt die drei Verarbeitungsmodi »hist«, »filter« und »tabulate«. Dabei stellt »hist« die Ergebnisse der Abfrage als Histogramm-Report zusammen; »filter« sucht alle Einträge heraus, auf die ein Muster passt. Der Modus »tabulate« erzeugt eine Tabelle im Terminal.
Hinter der Modus-Angabe folgen »-m« und ein Suchbegriff, bei dem es sich um einen regulären Ausdruck handeln darf. Zum Durchforsten komprimierter Dateien gibt der Anwender diese hinter »-z« an. Rare startet für gewöhnlich nur einen Prozess, was sich mit »-w« verändern lässt. Mithilfe von »-l« lässt sich die Anzahl der auszugebenden Zeilen des »filter«-Kommandos begrenzen. Das Kommando »hist« kann ein Balkendiagramm erzeugen, was der Benutzer mit »-b« initiiert. In der Voreinstellung bereitet Rare die Ausgaben farblich auf; die Schalter »–nc« und »–nf« unterbinden das.
Rare scannt und filtert sehr zuverlässig. Es lohnt sich, das Tool zu beobachten, da derzeit oft neue Versionen mit verbesserten Features oder Fehlerkorrekturen erscheinen.
Anwender, die abseits der Open-SSH-Suite einen SFTP-Server aufsetzen möchten, sollten sich SFTP Go anschauen. Die Entwickler stellen Pakete für Linux, MacOS und Windows unter Github bereit, das Tool ist nach dem Entpacken sofort startklar. Seine Einrichtung erfolgt in einer JSON-Datei. Das Paket enthält eine Vorlage, die sich dazu anpassen lässt. Hier definiert der Anwender unter anderem Schnittstelle(n) und den Port (Standard: alle Interfaces, Port 2022), die Anzahl der erlaubten fehlerhaften Anmeldeversuche sowie die Umask für neue Dateien und Verzeichnisse.
SFTP Go besitzt eine eigene, vom Betriebssystem unabhängige Benutzerverwaltung in einer SQL-Datenbank (SQLite, MySQL und PostgreSQL). Den Datenbankzugang regelt ein Eintrag in die JSON-Datei. Jeder Account erhält ein eigenes Home-Verzeichnis in einer Chroot-Umgebung, optional mit einer individuellen Quota. Der Server unterstützt Public-Key-Authentifizierung, eine Bandbreitenbegrenzung mit unterschiedlichen Einstellungen für Up- und Download sowie Prometheus-Metriken, die Auskunft über den Status des SFTP-Servers geben.
Darüber hinaus bietet SFTP Go unter »http://127.0.0.1:8080/web« eine einfache Weboberfläche zum Verwalten von Accounts und Verbindungen. Zwar ließe sich in der Konfigurationsdatei eine andere Adresse definieren, doch da es weder eine Zugangskontrolle noch eine Verschlüsselung gibt, ist davon abzuraten. Die Entwickler empfehlen, einen Reverse-Proxy zwischenzuschalten oder die im Paket mitgelieferte REST-API zu nutzen, um ein eigenes Interface zu implementieren.
SFTP Go steht in der Default-Konfiguration schnell zum Einsatz bereit. Wer anstelle von SQLite eine andere Datenbank verwenden möchte, muss etwas mehr Arbeit investieren.
Terminal-Multiplexer wie Screen oder Tmux sind insbesondere bei Admins beliebt, weil sie ein komfortables Arbeiten auf entfernten Systemen per SSH ermöglichen. Diese Tools bieten mehrere Terminalfenster in einer Sitzung sowie das Parken und Wiederaufrufen von Sessions. Mit Tmate steht nun ein weiterer Kandidat zur Verfügung, der vor allem mit seinem Kollaborations-Feature wirbt. Der Tmux-Fork hat viele Eigenschaften seines Vorbilds übernommen, darunter die Tastenbelegung. Beide Tools pflegen eigene Konfigurationsdateien und können parallel auf einem System arbeiten.
Nach dem Start öffnet Tmate die Standard-Shell, mit [Strg]+[B]+[C] starten Benutzer eine weitere Sitzung. Tmate nummeriert die Shells durch, sodass Anwender diese gezielt ansteuern können. In der Voreinstellung verbindet sich das Tool mit dem Tmate-Server https://tmate.io. Über »tmate show-messages« erfragt der Anwender die Verbindungsdaten. Weitere Nutzer können per Webbrowser oder via SSH auf die Tmate-Sitzung zugreifen, vorausgesetzt, sie kennen den Hash-Wert des Sitzungseigentümers. Tmate erzeugt einen Benutzer für den lesenden und einen für den interaktiven Zugriff.
Wer dem Anbieter nicht traut, kann über »tmate-ssh-server« seinen eigenen Tmate-Server aufsetzen; der Quellcode findet sich im Github-Repository. Einen Zugriff via Webinterface sieht diese Lösung nicht vor. Wer per SSH auf die entfernte Sitzung zugreifen möchte, verankert die Adresse des Servers in der Client-Konfiguration unter »~/.tmate.conf«. Die Daten für den Sitzungsbenutzer, der sich anmelden möchte, verrät der Befehl »tmate show-messages«.
Tmate besticht durch seine Teamfähigkeit. Wer die geteilte Sitzung abseits von Online-Schulungen oder Präsentationen nutzen möchte, sollte aus Sicherheitsgründen besser einen eigenen Tmate-Server betreiben. (Uwe**Vollbracht/hej)










