Im Kurztest: Wait-for 1.0.0, Nx-Iperf 0.1.3, Chisel 1.2.4, Cppcheck 1.85, Fluent Bit 0.14.6, Mxcheck 1.0.0
Wait-for 1.0.0
Automatismen für entfernte Systeme
Quelle: https://github.com/jordyv/wait-for
Lizenz: unbekannt
Alternativen: keine
Hängt die Ausführung eines Skripts von einem anderen Programm oder Dienst ab, dann setzen viele Nutzer zum Überprüfen auf Tools wie Curl – gegebenenfalls in einer einfachen »for«-Schleife. Das in Go implementierte Werkzeug Wait-for vereinfacht den Ablauf und wartet auf TCP-Ports, HTTP-Statuscodes und Docker-Healthchecks.
Die Konfiguration erfolgt über Parameter beim Start und beschränkt sich in der aktuellen Version auf drei Einsatzszenarien. Soll ein Skript warten, bis ein Dienst erreichbar ist, geben Admins »wait-for tcp« gefolgt von der IP-Adresse oder dem FQDN und dem Port an. Steht hinter »wait-for http URL« als Port 443, erkennt das Tool, dass es sich um eine HTTPS-Verbindung handelt, und prüft als Erstes das SSL-Zertifikat. Ist dieses abgelaufen oder selbst signiert, meldet Wait-for einen Fehler. Hinter »wait-for docker-healthcheck« steht der Name eines Docker-Containers.
In der Voreinstellung prüft Wait-for zehn Sekunden lang, ob ein Dienst erreichbar ist. Wer ein längeres Intervall will, gibt es hinter dem Schalter »-t« an.
Das noch recht junge Projekt ist derzeit auf wenige Einsatzmöglichkeiten beschränkt. Die vorhandenen Abfragen arbeiten aber tadellos und helfen allen Admins, deren Skripte auf entfernte Dienste warten müssen.
Nx-Iperf 0.1.3
Netzwerktraffic generieren und messen
Quelle: https://github.com/enyx-opensource/net-tools
Lizenz: MIT
Alternativen: Iperf, Jperf
Das C++-Tool Nx-Iperf ermittelt den Datendurchsatz zwischen zwei Systemen. Es generiert dazu Netzwerktraffic, misst diesen und erstattet im Terminal Bericht. Das Tool ist gleichzeitig Server und Client. Welche Funktion es jeweils übernimmt, legen Benutzer beim Aufruf fest. So startet »–listen« den Servermodus und »–connect« den Client.
Hinter dem jeweiligen Schalter geben Nutzer eine IP-Adresse und einen Port an. Dahinter bestimmen die Optionen »-t« und »-r« die maximale Bandbreite für das Senden und das Empfangen. Wenn diese Angaben fehlen, geht das Tool von einer Bandbreite von 1 GBit pro Sekunde aus. Über »-s« regeln Anwender die zu sendende Datenmenge.
In der Voreinstellung setzt Nx-Iperf auf TCP; »-p« schaltet auf UDP um. Für TCP-Verbindungen ist es möglich, über »-w« die Größe des Socket-Buffer festzulegen, »–shutdown-policy« beeinflusst das Verhalten des Tools beim Beenden der Übertragung. Standardmäßig überträgt es ein »send_complete«-Signal; alternativ dazu sind »receive_complete« und »wait_for_peer« erlaubt.
Nx-Iperf eignet sich zum Testen der Bandbreite und simuliert sogar Engpässe bei der Datenübertragung. Abzüge gibt es für die fehlende Dokumentation. Auf der Github-Seite sind lediglich drei Beispiele gelistet.
Chisel 1.2.4
TCP über HTTP tunneln
Quelle: https://github.com/jpillora/chisel
Lizenz: MIT
Alternativen: TCP Over HTTP Tunnel
Viele Hotspot-Anbieter lassen nur HTTP-Pakete passieren. Chisel bietet einen Ausweg und tunnelt beliebige TCP-Verbindungen über HTTP. Zum Verschlüsseln nutzt es SSH. Damit der Tunnelbau gelingt, müssen Anwender einen im Internet erreichbaren Rechner besitzen. Dort starten sie per »chisel server« den Servermodus.
In der Voreinstellung wartet der Dienst an allen Schnittstellen auf Port 8080 auf eingehende Verbindungen. Den Port (»–port«) und die Schnittstelle (»–host«) können Nutzer aber auch nach ihren Bedürfnissen festlegen.
Wer den Zugriff beschränken möchte, kann hinter »–auth-file« eine Json-Datei mit Benutzernamen und Passwörtern angeben. Soll der Chisel-Server als Socks-Proxy dienen, ist außerdem »–socks5« erforderlich.
Auf Client-Seite initiiert der Befehl »chisel client« den Verbindungsaufbau. Anwender definieren dahinter die IP-Adresse und den Port des Chisel-Servers. Über die Option »–auth« klappt die Authentifizierung. Das Startkommando erhält zudem eine Liste aller aufzubauenden Tunnel. Bei instabilen Verbindungen kann »–keepalive« regelmäßig Datenpakete versenden.
Die Installation gelingt schnell, für die optimale Konfiguration ist aber ein bisschen Zeit einzuplanen.
Cppcheck 1.85
C/C++-Code analysieren
Quelle: http://cppcheck.sourceforge.net
Lizenz: GPLv3
Alternativen: Flawfinder, Infer
Cppcheck unterstützt Entwickler bei der Fehlersuche in ihrem C- und C++-Code. Das Tool achtet sowohl auf klassische Syntaxfehler als auch auf unsichere Codestrukturen. Ältere Ausgaben sind in den Repositories der meisten Distributionen enthalten. Die aktuelle Version bietet zudem eine Prüfung auf ineffiziente Algorithmen und ungültige Zeiger.
In der Voreinstellung achtet das Tool auf klassische Fehler wie Integer Overflows, Divide by Zero oder Dead Pointer. Auch die Speicherverwaltung behält Cppcheck im Blick und weist Anwender sogar auf nicht initialisierte Variablen hin. Den Umfang der Tests legt der Schalter »–enable« fest. Anwender erfahren dann etwa, ob es fehlende Include-Einträge gibt.
Die Option »–enable-ID« aktiviert alle Prüfungen. Da das Tool dabei auch nach ungenutzten Funktionen sucht, empfehlen die Entwickler, den gesamten Quelltext und nicht nur einzelne Module zu testen. Um die Arbeit von Cppcheck zu beschleunigen, kann »-j« die Verarbeitung parallelisieren.
Cppcheck prüft auf C11- respektive C++14-Konformität. Alternative Standards geben Benutzer hinter »–std« vor. Außerdem bestimmen sie mit »–platform« gezielt eine Plattform. Findet das Tool Auffälligkeiten, dann schreibt es diese mit vollständigem Pfad, der Zeilennummer und einer kurzen Problembeschreibung nach Stdout. Zum Weiterverarbeiten speichert »–xml« die Ausgabe im XML-Format.
Das leistungsfähige Tool überzeugt – nicht nur die Tester, sondern auch Hersteller von Entwicklungsumgebungen und Versionsverwaltungen, die es integrieren. Auch MS Visual Studio arbeitet mit ihm zusammen.
Ursprünglich als ein Werkzeug für die Datensammlungs-Software Fluentd konzipiert, arbeitet Fluent Bit auch eigenständig und trägt Informationen aus mehreren Protokollen zusammen, um sie dann gebündelt weiterzuleiten. Das Tool kann Daten aus rund 20 verschiedenen Quellen auslesen und kontaktiert dazu unter anderem den Syslog-Dienst, Systemd oder die Prozess-Statistik. Die Festplattennutzung oder die Auslastung des Rechners kann Fluent Bit ebenfalls erfassen.
Fluent Bit 0.14.6
Logfiles-Forwarder
Quelle: https://fluentbit.io
Lizenz: Apache 2.0
Alternativen: Telegraf, Collectd
Beim Start geben Anwender hinter »-i« die auszuwertende Datenquelle an. Das Ausgabeformat definieren sie hinter »-o«. Wer die Daten auf der Konsole lesen möchte, verwendet »-o stdout«; »-o file« schreibt die Ergebnisse in eine Datei. Zudem kann das Tool die eingesammelten Informationen direkt an externe Programme wie Elasticsearch, Stackdriver, Splunk oder Azure weiterleiten.
Für jede Ein- und Ausgabequelle geben Benutzer über »-p« zusätzliche Parameter an. Eine ausführliche Beschreibung aller Optionen bietet die Github-Seite. Für die Weiterverarbeitung können Anwender über »-t« ein Ausgabe-Tag setzen. So ist es in komplexeren Umgebungen möglich, die Daten anhand der Tags zu sortieren und gezielt an bestimmte Ziele zu verteilen. Wer die Daten bereits beim Einlesen filtern möchte, ruft hinter »-F« eines von neun Filter-Plugins auf.
Fluent Bit sammelt zuverlässig Protokolle ein und bereitet sie für die Weiterverarbeitung auf. Wer das Tool in eigene Skripte einbinden oder es mit weiteren Analyse-Programmen verbandeln möchte, sollte ausreichend Zeit zum Studieren des gut geschriebenen Handbuchs einplanen.
Mxcheck 1.0.0
Mailserver kontrollieren
Quelle: https://github.com/steffenfritz/mxcheck
Lizenz: GPLv3
Alternativen: MX Lookup, Check MX
Das praktische kleine Go-Programm untersucht Mailserver. Es ermittelt dazu den MX-Record, der für eine Domain hinterlegt ist, und prüft bei der Gelegenheit auch gleich, ob es sich um ein offenes Relay handelt. Auf der Github-Seite des Tools stehen Binaries für alle gängigen Betriebssysteme zum Download zur Verfügung.
Eine Konfiguration ist nicht erforderlich. Ohne Parameter aufgerufen prüft Mxcheck, ob ein MX-Record für Localhost vorhanden ist, was für die meisten Systeme nicht zutreffen dürfte. Hinter »-t« definieren Nutzer daher die zu prüfende Domain. Dabei sollten sie darauf achten, nur die Domain und nicht den FQDN zu übergeben. Weitere Optionen kennt das Tool nicht.
Mxcheck kontaktiert stets den Google-DNS-Dienst, was im Code des Tools so hinterlegt ist. Die Datei »/etc/resolv.conf« ignoriert es. Hat es einen MX-Eintrag gefunden, scannt es die Ports 25, 465 und 587, um zu prüfen, ob es sich wirklich um einen Mailserver handelt. Wenn ein Mailserver antwortet, dann schickt Mxcheck eine Mail und verwendet Fake-Adressen für Absender und Adressen, um zu schauen, wie die Gegenstelle damit umgeht. In der Mxcheck-Ausgabe können Anwender die einzelnen Schritte mit Zeitstempeln verfolgen.
Versierte Administratoren können Mxcheck gut in eigene Skripte integrieren und so automatisiert mehrere Mailserver testen. Der fest im Code hinterlegte DNS-Server von Google ist jedoch keine allzu gute Idee, es wäre schön, wenn das Tool hier etwas flexibler wäre.












