Bildbearbeitung Sic 0.19.0, SSH-Verwalter SSHS 2.1.2, DNS-Client CH4 0.9.1, JSON-Konverter Jo 1.6, Durchsatztester Rperf 0.1.5, Container-Prüfer Trivy 0.24.4.
Sic 0.19.0
Bildbearbeitung auf der Konsole
Quelle: https://github.com/foresterre/sic
Lizenz: Apache 2.0
Alternativen: ImageMagick
Viele Anwender horten beachtliche Bildarchive auf ihren Festplatten. Insbesondere für die Nachbearbeitung großer Bildmengen ist eine grafische Bildbearbeitung eher unpraktisch. Ein Kommandozeilenwerkzeug mit Batch-Modus zum Einbinden in eigene Skripte ist die Lösung. Das in Rust implementierte Sic bietet sich als Alternative zu den Tools der ImageMagick-Suite an. Pakete finden Sie im Github-Repository.
Unter der Haube nutzt Sic die Rust-Bibliothek Image_crate, bietet allerdings zusätzliche Funktionen wie ein Diff. Image_crate eignet sich vor allem zum Konvertieren von Bildern. Es ermittelt Quell- und Zielformat dabei anhand der Dateiendung. Alternativ geben Sie das Format über »–output-format« an. Das erweist sich vor allem dann als praktisch, wenn Sie mit dem Parameter »–glob-input« eine große Menge von Dateien zur Verarbeitung übergeben. Über »–global-output« definieren Sie ein Zielverzeichnis.
Bislang unterstützt Sic lediglich neun Bildformate – das ist überschaubar, umfasst aber immerhin gängige Formate wie GIF, JPEG oder PNG. Geben Sie kein Verzeichnis und keine Datei als Ziel an, schreibt Sic die Ausgabe direkt in die Konsole. Über eine Pipe lassen sich die Daten dann direkt an ein anderes Programm zur Weiterverarbeitung übermitteln – ideal für eigene Skripte. Sic kann außerdem die Größe anpassen, Bilder rotieren, invertieren sowie die Helligkeit und den Kontrast anpassen. Eine Auflistung aller Funktionen finden Sie auf Github.
Sic ist ein interessantes Tool, das die Möglichkeiten der Rust-Bibliothek Image_crate greifbar macht. Ein Blick lohnt sich.
SSHS 2.1.2
SSH-Verbindungen verwalten
Quelle: https://github.com/quantumsheep/sshs
Lizenz: MIT
Alternativen: SSH
Das OpenSSH-Paket bietet alles, was man für verschlüsselte Verbindungen via SSH benötigt, darunter auch den Kommandozeilenclient Ssh. Es gibt einige grafische Anwendungen, um mehrere SSH-Verbindungen zu verwalten. Wer lieber auf der Shell arbeitet, findet in SSHS eine Alternative fürs Terminal. In den gängigen Distributionen fehlt das Tool noch, Pakete gibt es im Github-Repository.
SSHS pflegt keine eigene Konfigurationsdatei, sondern wertet die SSH-Einrichtungsdatei »$HOME/.ssh/config« aus. Eine alternative Datei nimmt der Parameter »-c« entgegen. Die muss allerdings in Aufbau und Struktur der normalen SSH-Einrichtungsdatei folgen. Nach dem Start listet SSHS in einer übersichtlichen Tabelle alle Verbindungen inklusive Host-Namen, Port, Benutzerkonto und IP-Adresse auf. Außerdem gibt es am oberen Rand eine Suchfunktion. Schon beim Aufruf können Sie hinter »-s« ein Suchmuster angeben. Um eine Verbindung zu öffnen, navigieren Sie mit den Pfeiltasten zum Eintrag und betätigen die Eingabetaste. SSHS startet dann den SSH-Client und erfragt das Passwort, sofern keine Schlüsseldatei hinterlegt ist.
Die noch etwas spärliche Dokumentation enthält immerhin ein einfaches Beispiel für eine SSH-Konfigurationsdatei. Um mehr über die SSH-Einrichtung zu erfahren, sehen Sie sich am besten die Manpage zu »ssh_config« an.
Die Bedienung von SSHS erschließt sich intuitiv. Müssen Sie viele SSH-Verbindungen in der Konsole verwalten, sollten Sie dem Tool eine Chance geben.
CH4 0.9.1
DNS-Client für die Shell
Quelle: https://github.com/r-bk/ch4
Lizenz: Apache 2.0
Alternativen: Dig
Ob im öffentlichen oder in größeren lokalen Netzwerken: Ein DNS-Server gehört fast immer zur Grundausstattung. Wer DNS-Einträge von Hand überprüfen möchte, braucht einen Client wie Dig oder das Tool CH4, das sich als Alternative anbietet und auf vielen Systemen lauffähig ist. Fertige Pakete gibt es nicht, Sie müssen selbst zum Compiler greifen. Mit einer Größe von 30 MByte ist das fertige Binary deutlich größer als das von Dig.
Um schnell einen Host-Namen oder eine IP-Adresse zu ermitteln, übergeben Sie CH4 beim Aufruf eine IP oder einen FQDN. In der Voreinstellung nutzt das Tool den im System-Resolver hinterlegten DNS-Server. Genau wie bei Dig können Sie hinter »@« einen alternativen DNS-Server angeben, über den die Abfrage laufen soll. Eine Liste aller im System bekannten Server liefert »–list-nameservers«. CH4 richtet seine Anfragen über UDP an Port 53; die Option »+tcp« schaltet auf TCP um. Einen alternativen Port nimmt »-p« entgegen.
Weitere Optionen passen die Puffergröße an, definieren die Query-Art oder das Ausgabeformat. Der Output von CH4 ähnelt dem von Dig. Über »+short« kürzen Sie das Ergebnis. Eine Rust-konforme Ausgabe liefert »+rust«, »-s« schreibt die Informationen in eine Datei.
CH4 basiert auf der Rust-Bibliothek RDNS und zeigt deren Möglichkeiten. Damit richtet sich das Tool auch an Entwickler, die diese testen möchten.
Jo 1.6
JSON-Output erzeugen
Quelle: https://github.com/jpmens/jo
Lizenz: GPLv2
Alternativen: Rjo, Gjo
JSON hat sich als Format für den übergreifenden Datenaustausch etabliert. Unterstützt ein Programm es nicht oder möchten Sie JSON mit einem eigenen Skript erzeugen, dann empfiehlt sich Jo. Das in C geschriebene Tool konvertiert beliebige Zeichenfolgen nach JSON. Einige Distributionen enthalten ältere Ausgaben von Jo, es lohnt sich aber, die aktuelle Version aus den Quellen zu bauen: Anfang 2022 nahm die Entwicklung nach zweijähriger Pause wieder Fahrt auf, und die aktuelle Jo-Version bietet neue Features wie die Deduplizierung von Einträgen und eine ZSH-Vervollständigung.
In der Voreinstellung liest Jo von der Standardeingabe. Über »-f« nimmt das Tool aber auch Dateien entgegen. Geben Sie nichts anderes vor, erwartet Jo für Daten vom Typ Boolean die Form »Schlüssel=Wert« oder »Schlüssel@Wert«. Alternativ weisen Sie Jo über »-a« an, die Eingabe als Feld von Wörtern zu interpretieren. »-B« deaktiviert die Boolean-Typ-Erkennung. Jo schreibt sein Ergebnis als fortlaufende Zeile. Wünschen Sie eine strukturierte Ausgabe, geben Sie den Parameter »-p« an.
Soll ein Schlüsselwort nur einmal vorkommen, aktiviert »-D« die Deduplizierung; Jo gibt dann immer nur den letzten Eintrag aus. Weitere Funktionen verrät die Online-Hilfe über »-h«. Das Quellarchiv enthält auch eine Manpage mit einfachen Beispielen, als Alternative empfiehlt sich das Handbuch auf Github.
Nach ein wenig Einarbeitungszeit ist Jo ein praktischer Helfer für alle, die Programmausgaben oder andere Dateien ins JSON-Format konvertieren möchten.
Rperf 0.1.5
Datendurchsatz in Netzen testen
Quelle: https://github.com/opensource-3d-p/rperf
Lizenz: GPLv3
Alternativen: Iperf
Die Rust-basierte Iperf-Alternative Rperf verspricht, umfangreichere Metriken zu liefern. Die Entwickler weisen darauf hin, dass Rperf für geschlossene Netzwerke gedacht ist und daher Iperf nicht vollständig ersetzen will und kann. Sie kompilieren das Tool selbst; fertige Pakete gibt es nicht. Genau wie Iperf bietet Rperf einen Server- und einen Client-Modus, den die Parameter »-s« respektive »-c« beim Aufruf bestimmen.
Im Client-Modus erwartet Rperf zusätzlich die Adresse des Servers. Falls nicht anders konfiguriert, lauscht das Tool an Port 5199 auf eingehende Verbindungen. Mit »–client-limited« begrenzen Sie serverseitig die Anzahl der maximal erlaubten Client-Verbindungen; in der Voreinstellung ist sie nicht eingeschränkt. Rperf nutzt zur Geschwindigkeitsmessung das TCP-Protokoll; der Schalter »-u« schaltet auf UDP um. Über »-6« wechseln Sie von IPv4 auf IPv6. Der Parameter »-b« gibt auf Client-Seite die verfügbare Bandbreite vor. Detaillierte Informationen zur jeweiligen Verbindung liefert »-d«.
Rperf schreibt seine Ergebnisse zeilenweise nach Stdout, sodass Sie alles live verfolgen können. Um den Output weiterzuverarbeiten, notieren Sie ihn über »-f« im JSON-Format. Geben Sie nichts anderes an, prüft Rperf Verbindungen alle 10 Sekunden. Längere oder kürzere Intervalle geben Sie via »-t« vor.
Rperf bietet einige interessante Funktionen. Lediglich die mitgelieferte Dokumentation ist etwas dünn, hier hilft ein Blick auf die Github-Seite weiter.
Trivy 0.24.4
Container-Images auf Sicherheitslücken prüfen
Quelle: https://github.com/aquasecurity/trivy
Lizenz: Apache 2.0
Alternativen: keine
Im Netz angebotene Container-Images sollte man vor dem Einsatz auf Malware und andere Schwachstellen prüfen. Für diese Aufgabe empfiehlt sich das in Go implementierte Trivy. Es scannt Docker-Images, Dateisysteme und Git-Repositories. Auf Github stehen über 20 Pakete für viele Plattformen bereit, darunter Linux, FreeBSD, MacOS und Windows.
Um ein Docker-Image auf mögliche Schwachstellen zu prüfen, geben Sie das Kommando »image« ein, gefolgt vom Namen des Repositorys, unter dem das Image verfügbar ist. Trivy ermittelt das Betriebssystem und betrachtet dann alle installierten Pakete. Anschließend gibt es eine tabellarische Übersicht in der Shell aus. Es zeigt unter anderem die CVE-Schwachstellennummer, die Risikobewertung (Stufen: niedrig, mittel, hoch und kritisch), die Versionsnummer sowie eine kurze Beschreibung der Schwachstelle. Zur Weiterverarbeitung speichert »-j« alles im JSON-Format. Der Schalter »–ignore-unfixed« begrenzt die Ausgabe auf die Pakete, für die Korrekturen bereitstehen. Dabei funktionieren nicht alle Befehle mit jedem Container-Gastsystem.
Um ein Git-Repository zu prüfen, ersetzen Sie »image« durch »repository« und geben dahinter die URL an; beim Scannen von Dateisystemen kommt »filesystem« zum Einsatz. In größeren Umgebungen können Sie mit Trivy eine Client-Server-Struktur einrichten, in der der Server die Datenbank mit bekannten Sicherheitslücken an zentraler Stelle pflegt.
Trivy wird intensiv weiterentwickelt, sodass sich ein regelmäßiger Blick ins Github-Repository lohnt. Einziger Wermutstropfen: Eine Manpage fehlt, und der Link unter Github läuft derzeit ins Leere. (Uwe**Vollbracht/hej)











