Text in Base64 und zurück Konvertieren in PowerShell

Base64 ist ein Format, das es erlaubt, Binärdaten in Text, und Text in Binärdaten zu Konvertieren, hier in der PowerShell. Die Base64-Codierung ist ein Prozess zum Konvertieren von Binärdaten in ein ASCII-Zeichenfolgeformat, und die Kodierung von 8-Bit-Binärdaten.

Base64 wandelt Daten (hauptsächlich Bilder) in Zeichen um, und zwar ursprünglich mit einem Satz von 64 Zeichen (Namensursprung), die sich in jedem ISO 8859-1 (auch bekannt als Latin-1) Zeichensatz wiederfinden und somit auch überall anzeigen lassen. Oder anders ausgedrückt: Aus einem Bild wird HTML-Code, denn inzwischen ist Base64 zum HTML-Standard geworden und es wird somit für Internetprojekte eingesetzt, vor allem eben für Inline-Grafiken.

Die Base64 Codierung wird auch häufig bei Mail-Systeme zum Versenden von E-Mail-Anhängen verwendet, da SMTP in seiner ursprünglichen Form nur für den Transport von 7-Bit-ASCII-Zeichen konzipiert war. Durch die Codierung eines Anhangs als Base64 vor dem Senden und die anschließende Decodierung beim Empfang wird sichergestellt, dass ältere SMTP-Server den Anhang nicht beeinträchtigen.

Text in Base64 Konvertieren in PowerShell

Die folgende Funktion Set-Base64 ermöglicht, ein Text in die Base64 Kodierung in der PowerShell zu konvertieren. Die Funktion Get-Base64 sorgt für das konvertieren zurück zum lesbaren Text.

Function Set-Base64
{
	param (
	[String]$arg
	)
	$textout = [System.Text.Encoding]::UTF8.GetBytes($arg)
	[Convert]::ToBase64String($textout)
}

Function Get-Base64
{
	param (
	[String]$arg
	)
	$textout = [Convert]::FromBase64String($arg)
	[System.Text.Encoding]::UTF8.GetString($textout)
}

Hinweis. wenn die Funktionen unter dem %userprofile%\Documents\WindowsPowerShell in die Datei Microsoft.PowerShell_profile.ps1 eingefügt wird, stehen die beiden Befehle in der PowerShell zur Ausführung zur Verfügung.

Base64 Code in Text Konvertieren

In der PowerShell konvertiert Set-Base64 den Text mit Übergabe in Base64 Kodierung, und mit Get-Base64 zurück in den lesbaren Text.

Text in Base64 und zurück konvertieren in PowerShell
Text in Base64 und zurück Konvertieren in PowerShell

Binärdatei in Base64 Codierung Umwandeln

Dateien und Bilder lassen sich in Base64 Text umwandeln, hierzu lässt sich das Powershell-Cmdlet Get-Content verwenden, mit dem Parameter -Encoding Byte und -Raw.

[convert]::ToBase64String((get-content -Path C:\temp\image.png -encoding byte -Raw))

Der Parameter -Raw sorgt dafür, dass die Datei komplett und nicht zeilenweise eingelesen wird, -Encoding Byte sagt PowerShell, dass es sich um eine Binärdatei handelt.

PowerShell: ToBase64String, Text in Base64 und zurück Konvertieren in PowerShell
PowerShell: ToBase64String

Bilddatei in Base64 Text Konvertieren

Bilddatei in Base64 Kodierung umwandeln, hierzu wird der PowerShell Befehl convert mit Parameter verwenden, der Base64 Text wird in die Datei image.txt geschreiben.

[convert]::ToBase64String((get-content -Path C:\temp\image.png -encoding byte -Raw)) > C:\temp\image.txt
Bild in Base64 Konvertieren in PowerShell
PowerShell: [convert]::ToBase64String

Woher wiss ich, ob es funktioniert?

Nehmen wir ein weiteres Beispiel mit der Bilddatei bluebox.png, die du auf dein Computer herunterladen kannst. Konvertiere jetzt einfach die kleine 10×10-Pixel Grafik mit dieser Befehlszeile in der PowerShell.

[convert]::ToBase64String((get-content -Path C:\temp\bluebox.png -encoding byte -Raw)) > C:\temp\img.txt

Erstelle als Nächstes eine HTML-Datei mit dem Inhalt wie unten gezeigt.

<div>
  <p>A blue box</p>
  <img src="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAIAAAACUFjqAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYSURBVChTY2RQ+8+AGzBBaRxgZEozMAAAbOYBOV4WE6YAAAAASUVORK5CYII=" alt="Blue box" />
</div>

Füge den Inhalt aus der Datei C:\temp\img.txt ein und platziere den Base64 <img src="data:image/png;base64,code hier" alt="Blue box" />

Doppelklicke auf die soeben erstellte HTML-Datei. Wenn alles richtig gemacht wurde, wird im Browser ein kleines blaues Kästchen angezeigt.

Woher wissen ich, ob es funktioniert?

Addendum

Base64 ist keine Verschlüsselungsmethode. Es ist lediglich ein Encoding-Verfahren, das dazu dient, binäre Daten in eine für den Menschen lesbare Form zu konvertieren. Es bietet keine Sicherheit oder Geheimhaltung der Daten.

Base64 kodiert binäre Daten, indem es sie in eine Zeichenfolge von ASCII-Zeichen umwandelt. Dies ist nützlich, wenn man binäre Daten in Umgebungen übertragen möchte, die nur Textdaten unterstützen, wie z.B. E-Mail-Systeme.

  E-Mail mit Anhang „content-transfer-encoding: base64“ senden im Beitrag hier.

Monitorix Netzwerk Diagramme Debian

Monitorix für leistungsstarkes Monitoring zur Überwachung von System- und Netzwerk mit Diagramme unter Debian Linux. Das Open Source Lightweight Tool sammelt regelmäßig System- und Netzwerkdaten und zeigt die Informationen in Diagrammen über den eigenen Web Server in einem Browser Web-UI.

Monitorix ermöglicht die Überwachung der Gesamtsystemleistung und hilft auch bei der Erkennung von Engpässen, Ausfällen, unerwünschten langen Reaktionszeiten und anderen ungewöhnlichen Aktivitäten.

Monitorix besteht aus zwei Programmen, einem Collector als das eigentliche Monitorix, einen Perl-Daemon der als Systemdienst automatisch gestartet wird, sowie ein CGI-Skript namens Monitorix.cgi.

Netzwerk Diagramme mit Monitorix in Debian

Das Open Soure Tool ist in der Sprache Perl geschrieben und unter den der GNU (General Public License) lizenziert, wie von der FSP (Free Software Foundation) veröffentlicht. Die Diagramme werden mit dem RRDtool erstellt und anschließend in einem Web-UI dargestellt.

Die Entwicklung von Monitorix befindet sich derzeit in einem aktiven Status und es kommen laufend neue Features hinzu. Neue Diagramme, sowie Updates mit Bugfixes werden angeboten, für ein leistungsstarkes Monitoring für Debian und die Linux System-/Netzwerkadministration.

Monitorix Features

  • Durchschnittliche Systemlast, aktive Prozesse, Kernel-Nutzung pro Prozessor, globale Kernel-Nutzung und Speicherzuteilung.
  • Überwacht die Temperaturen und den Zustand der Festplatten.
  • Dateisystemnutzung und E/A-Aktivität von Dateisystemen.
  • Nutzung der Netzwerk Traffic durch bis zu 10 Netzwerkgeräte.
  • Zu den Systemdiensten gehören SSH, FTP, VSFTPd, ProFTP, SMTP, POP3, IMAP, POP3, ClamAV und SpamAssassin.
  • MTA-Mail-Statistiken einschließlich Ein-Ausgehende Verbindungen.
  • Netzwerkportverkehr einschließlich TCP, UDP usw.
  • FTP-Statistiken mit Protokolldaten von FTP-Servern.
  • Apache-Statistiken von lokalen oder Remote-Servern.
  • MySQL-Statistiken von lokalen oder Remote-Servern.
  • Squid-Proxy-Web-Cache-Statistiken.
  • Fail2ban-Statistiken in Monitorix Netzwerk Diagramme.
  • Überwachen von Remote-Server (Multihost).
  • Möglichkeit, Statistiken in Diagrammen oder in Nur-Text-Tabellen pro Tag, Woche, Monat oder Jahr anzuzeigen.
  • Möglichkeit, die Anzahl der Diagramme pro Zeile zu definieren.
  • Integrierter HTTP-Server, Apache oder Nginx ist nicht zwingend.
  • Für Debian GNU/Linux, Ubuntu, Red Hat, Fedora, Rocky Linux, AlmaLinux, Arch Linux u.w.m.

Monitorix Installation

Um die neueste Version von Monitorix für Netzwerk Diagramme zu installieren, wird das Paket aus dem Debian Repository bereitgestellt.

$ sudo apt install monitorix

Nach erfolgreicher Installation kann der Dienst auch gleich gestartet werden. Die zu überwachenden System Dienste können in der Datei/etc/monitorix/monitorix.confkonfiguriert werden, mit hinzufügen zusätzlicher Einstellungen oder Diagramme, und aktivieren oder deaktivieren von Optionen.

Für die Zugriffskontrolle wird mit htpasswd ein Benutzer mit Passwort erstellt. Ist kein Apache Web Server auf dem System vorhanden, kann das Paket „apache2-utils“ installiert werden.

$ sudo apt install apache2-utils

Nach der Bereitstellung kann htpasswd ausgeführt werden.

$ sudo htpasswd -d -c /var/lib/monitorix/htpasswd monitorix
New password:
Re-type new password:
Adding password for user monitorix

Nun den Monitorix-Dienst zum Systemstart hinzufügen und den Dienst starten mit folgenden Befehlen. Für persistentes Monitorix und Netzwerk Diagramme auf dem Debian Server.

$ sudo systemctl start monitorix.service
$ sudo systemctl enable monitorix.service

Die Überprüfung auf den Status des Monitorix-Dienst wie folgt.

$ sudo systemctl status monitorix.service

Debian Linux Firewall für Monitorix

Monitorix muss auf Port 8080 erreichbar sein, was die Kernel Firewall mit iptables oder ufw steuert. Der iptables Befehl um TCP Port 8080 eingehend durchlässig zu machen ist wie folgt.

$ sudo iptables -A IN_public_allow -p tcp --dport 8080 -m state --state NEW,UNTRACKED -j ACCEPT

Wird ufw (Uncomplicated Firewall) eingesetzt, diesen Befehl ausführen.

$ sudo ufw allow 8080/tcp

quote Es kann auch ein anderer Port definiert werden, weil etwa TCP 8080 bereits verwendet wird, oder man das System aus dem Fokus neugieriger Netzwerk Scanner nehmen will, die es auf etablierte Diente absehen.

Ist Monitorix einmal gestartet, beginnt das Tool mit dem erfassen von Systeminformationen für das erstellen von Netzwerk Diagramme gemäß der in der Datei „/etc/monitorix/monitorix.conf“ festgelegten Konfiguration. Nach einigen Minuten erscheinen die Diagramme im Browser.

http://Server-IP:8080/monitorix/

Monitorix Netzwerk Diagramme Debian
Monitorix Startseite

Monitorix System und Netzwerk Diagramme

Mit der Auswahl einzelnen oder allen Graphen, erscheinen nach Klick auf OK die Monitorix System und Netzwerk Diagramme.

Monitorix Netzwerk Diagramme Debian

Quellen Link: Monitorix

Fazit

Monitorix ist ein leistungsstarkes Monitoring zur Überwachung von System- und Netzwerkresourcen mit Diagramme für Debian und die meisten Linux Distributionen. Monitorix wurde ursprünglich für die Überwachung von Red Hat, Fedora und CentOS Linux entwickelt, läuft heute jedoch auf verschiedenen GNU/Linux-Distributionen. Das Open Source Tool sammelt regelmäßig System- und Netzwerkdaten und zeigt die Informationen in Diagrammen über einen eigenen Web Server in einem Web-UI. Monitorix ist ein Lightweight Tool und eignet sich ebenfalls für den Einsatz auf Einplatinencomputer wie dem Raspberry Pi.