IMAP über die Shell testen

Um einen IMAP Server zu testen ist ein EMail Programm immer nur die zweite Wahl, besser prüfst Du via Telnet oder OpenSSL.

Das IMAP Protokoll ist ein Klartext Protokoll, die Befehle sind Verständliche englischsprachige Wörter wie Beispielsweise Login, List, Select, Fetch, Store und so weiter.

Login in den EMail-Server

Der Zugriff ist unverschlüsslt via Telnet mit dem folgenden Aufruf nutzbar.:

Der verschlüsselte Zugriff via SSL erfolgt mittels ssl-Client openssl.:

Bei aktuellen IMAP Servern wird immer häufiger der unverschlüsselte Zugriff unterbunden, so das der Verschlüsselte IMAP Zugriff über das Tool OpenSSL die einzig nutzbare der beiden vorgestellten Möglichkeiten darstellt.

Der Login auf dem IMAP-Server erfolgt über den Befehl LOGIN.:

Klassischerweise wird als Benutzername die EMail-Adresse selbst verwendet. In einigen Fällen ist der Benutzername auch nur der erste Teil der EMail-Adresse bis zum, und ohne das @-Zeichen. In einigen seltenen Fällen hat der Benutzername eines IMAP-Servers auch keine Gemeinsamkeiten mit der abzufragenden EMail-Adresse. Genauere Informationen zu den Zugangsdaten Deines EMail-Postfachs erhälst Du von dem Betreiber des EMail-Servers.

Die IMAP-Befehle werden durch einen Tag begonnen, ich verwende hier als Tag einfach ein Fragezeichen.
Häufig wird als Tag eine Zahl verwendet oder das Tag enthält eine Zahl, die bei jedem Aufruf erhöht wird. Das Tag wird verwendet da Theoretisch mehrere Befehle gesendet werden können bevor die Antwort auf den vorherigen Befehl empfangen wird und auf diesem Web die Antworten den Befehlen zugeordnet werden können.
Alle IMAP-Befehle sind nicht case-sensitiv, so das diese nicht wie in meinen Beispielen immer groß geschrieben werden müssen.

Abrufen von EMails

Die Ordner im Postfach

Um zu erfahren welche Ordner auf dem EMail-Server anlegegt sind dient der Befehl LIST.

Als Antwort auf den Befehl LIST erhälst Du eine Liste mit den im Postfach angelegten Ordnern und des Ordner-Trennzeichens. Bei manchen EMail-Servern wird ein Punkt als Trennzeichen verwendet. Die Verwendung des Punktes kann einen Ordner wie Test.Ordner, bei fehlendem Ordner Test, zu einem Unterverzeichnis ohne Verzeichnis in dem das Unterverzeichnis liegt machen. Mozilla Thunderbird und Microsoft Outlook zeigen diesen „imaginären Ordner“ Test dann in Grau an, der Ordner Test kann nicht ausgewählt werden.)

Die EMails in den Ordnern

Die Anzahl der EMails in den einzelnen Ordnern kann durch den Befehl STATUS erfragt werden. Es werden die drei Optionen (MESSAGES) für alle Nachrichten, (RECENT) für nicht als gelesen markierte EMails und (UNSEEN) für noch nicht abgerufene EMails unterstützt.

Betreten eines Ordners

Ein Ordner kann zum mit EXAMINE zum Lesen oder mit SELECT zum lesen und Schreiben betreten werden.

Abrufen einer EMail

Es können verschiedene verschiedene Teile einer EMail abgerufen werden. Die beiden wichtigsten FETCH Optionen sind rfc822.text für den Inhalt einer EMail und rfc822.header für die EMail-Header. Es können aber auch die Größe (RFC822.SIZE) oder die FLAGS einer EMail abgefragt werden.

Anlegen und löschen eines Ordners

Zum Anlegen eines EMail-Ordners wird der Befehl CREATE verwendet, zum umbenennen RENAME und zum löschen der Befehl DELETE.

EMail Flags

Als gelöscht markierte EMails löschen

Idle Status

Suchen im Postfach

Abmelden

EMail löschen

Die Fähigkeiten des IMAP Servers erfahren

Wikipedia Artikel zum Internet Message Access Protocol
RFC3501 – INTERNET MESSAGE ACCESS PROTOCOL

Scan to Donate Bitcoin
Like this? Donate Bitcoin to at:
Bitcoin 17g7tgR4KYKSqS1f8LUCpLEeum4PAcnGbo
Donate

DOSBox MS-DOS Installation

Ich will eine DOSBox mit MS-DOS 6.22. Wieso? Weil es geht *g*

1.) Diskettenabbilder von MS-DOS 6.22 erstellen.

Mein Diskettenlaufwerk wird von Linux als sdb erkannt (dmesg zeigt es)

mit dem folgenden Befehl erstelle nacheinander die 3 Abbilder meiner MS-DOS 6.22 Disketten.

Am ende habe ich die 3 Disketten-images, MSDOS622_D1.img, MSDOS622_D2.img und MSDOS622_D3.img.

Da ich keine Rechte an MS-DOS halte biete ich die Images nicht zum Download an, auch ein Versand der Dateien via EMail kommt für mich nicht in Frage.

2.) 504 MB Festplattenimage erzeugen.

Die Maximale Größe der Festplatte eines klassischen DOS-PCs ist, da dies die Grenze für eine MS-DOS Festplatte ist, 504 MiB groß.

Die spezifikation einer solchen Festplatte lautet, frei nach http://www.pcguide.com/ref/hdd/bios/sizeMB504-c.html
1024 Cylinder
16 Heads
63 Sektoren

Die Berechnung der Sektoren der Festplatte erfolgt nach dem Schema:
Sektoren = Cylinder * Heads * Sectoren
1024 * 16 * 63 = 1032192 Sektoren

Mit Hilfe von dd erstelle ich die 504 MiB (528 MB) große Festplatte DOS.img:

3.) DOSBox installieren und konfigurieren

Die Installation erfolgt unter Debian und Ubuntu mit der folgenden Befehlszeile und dauert nur wenige Sekunden.:

Mit Hilfe der folgenden Befehlzeile finde ich raus welche Konfigurationsdatei beim start von DOSBox verwendet wird.:

An das Ende der Konfigurationsdatei kommt für das MS-DOS-Setup der Befehl die Festplatte einzubinden und die Disketten zur verfügung zu stellen.
Die boot Zeile enthält meine 3 MS-DOS Disketten.
Der Wechsel der Disketten erfolgt mit der Tastenkombination [Strg]+[F4].

Die Option -size enthält die oben, beim anlegen der Festplatte festgelegten Parameter: Blockgröße (der bs= Parameter vom dd), Sektoren, Heads und Cylinder.

Beim Start von dosbox wird automatisch von der ersten Diskette gestartet und die Festplatte erst partitioniert und nach dem Neustart, dosbox beendet sich und muss neu gestartet werden, wird die Festplatte formatiert, Nach dem Start der Installation kann, sobald das Setup nach der nächsten Diskette verlangt einfach mit der Tastenkombination [Strg]+[F4] zur nächsten Diskette gewechselt und mit [Enter] das Setup fortgesetzt. Wenn das MS-DOS Setup fertig ist und neu starten möchte tauschen wir den Autostartbereich der DOSBox zu dem folgenden Inhalt.:

Jetzt haben ich ein DOSBox das, aus meinem Benutzerordner das Festplatten-Image DOS.img startet.

Scan to Donate Bitcoin
Like this? Donate Bitcoin to at:
Bitcoin 17g7tgR4KYKSqS1f8LUCpLEeum4PAcnGbo
Donate

Logrotate Kompression von Logdateien festlegen

Logrotate komprimiert in den Standarteinstellungen die Logdateien mit „gz“, leider ist die Kompression von „gz“ deutlich schlechter als von modernen Kompressionsprogrammen wie „xz“.

Zum Glück ist es ganz einfach das von Logrotate verwendete Kompressionsprogramm auszutauschen. Die Konfigurationsdatei /etc/logrotate.conf muss hierzu nur durch die folgenden vier Zeilen ergänzt werden.

Die letzte Option „compressoptions“ kann weggelassen werden, hier wird die defaultoption „-9“ einfach noch einmal in der Konfigurationsdatei festgelegt. Ich persönlich setze diese Option nur, um beim editieren der Datei sofort die gewählte Konfigurationsoption zu sehen.

Die Stelle in der Konfigurationsdatei spielt hierbei keine Rolle, meine Wahl fällt immer auf das Ende der Konfigurationsdatei.

Scan to Donate Bitcoin
Like this? Donate Bitcoin to at:
Bitcoin 17g7tgR4KYKSqS1f8LUCpLEeum4PAcnGbo
Donate

Apache, Zopfli – vorkomprimierte Dateien

Internetseiten können, wenn die Dateien komprimiert sind, da weniger Daten übertragen werden müssen, deutlich schneller aufgebaut werden.

Kompression der Daten mit Googlels Zopfli

Google hat im April 2013 auf github veröffentlicht. Die Zopfli deflate Implementierung kann deutlich besser komprimieren als das Standard GNU Gzip Program.
Google Zopfli ist zu finden unter: https://github.com/google/zopfli
Nach dem der Google Anleitung folgend Zopfli kompilliert und Installiert ist kann mit der folgenden Shellzeile eine Datei komprimiert werden.:

Um alle, in diesem Beispiel „CSS Dateien“ zu komprimieren kann mit einer Schleife nach allen Dateien Dateien die auf .css enden gesucht werden und diese an Zopfli übergeben werden.

Auslieferung der mit Zopfli Komprimierten Dateien mit dem Apache Webserver

Bei nutzung eines Apache-Webservers ist ein möglicher Trick, das mit mod_rewrite jedem Browser der gzip unterstützung bietet andere Dateien ausliefert werden können als den Browsern die keine gzip Unterstützung anbieten. Das schöne dabei ist das  solange keine entsprechende Datei vorhanden ist, der Browser die Ursprungsdatei erhält.

Eine Beispiel .htaccess Datei:

In der ersten Zeile wird mod_rewrite aktiviert, in der Zweiten Zeile wird gefiltert, das die filgenden Regeln ausschließlich befolgt werden wenn der Request Header die Antwort als gzip komprimierten Datenstrom akzeptiert. In der dritten Zeile werden nur Dateien akzeptiert die auf .css enden.
Die vierte Zeile sucht im Dateisystem ob eine Datei gleichen Namens mit der Dateierweiterung .gz existiert.
Die fünfte Zeile liefert anstelle der .css Datei die .css.gz Datei aus.

Die Rechenzeit die der Apache Webserver dafür benötigt ist zum glück minimal.

Ergänzung durch einen „Automatismus“

Ich persönlich nutze gerne einen make Makefile um nach Änderungen schnell alle Dateien wieder zu komprimieren.

 

Scan to Donate Bitcoin
Like this? Donate Bitcoin to at:
Bitcoin 17g7tgR4KYKSqS1f8LUCpLEeum4PAcnGbo
Donate

Vice Konfiguration für das SpielRegal

Im SpieleRegal verwenden wir die EMulationStation, für den RaspberryPi greifen über das GPIO-Interface Arcade-Knöpfe auf fest vorgegebene Buchstaben Tasten. In dieser Anleitung beschreibe ich die Vice Konfiguration, um die Cursortasten dem Joystik in Port 2 des C64, die Taste A der Feuertaste des Joystik und die für das Spiel Turrican die benötigten Tasten [Space] für die Energielinien, [F7] für die Granate und [CTRL] um den Pause-Modus zu aktivieren.

Die Tastaturbelegung für den C64 Emulator Vice wird in der Datei /home/pi/.vice/sdl-keymap.vkm festgelegt. diese Erhält den Folgenden Inhalt.:

Die in den Bereichen /* Kommentar */ enthaltenen Kommentare erklären die Funktion der vorangegangenen Zahlenfolgen. Die erste Zahl ist der Tastaturcode, die zwei bis drei folgenden Tahlen was im C64 ankommen soll.

Die Joystick belegung kommt in die Datei /home/pi/.vice/sdl-joymap-C64.vjm und lautet wie folgt.:

Und zum Exit des Emulators legen wir noch die Datei /home/pi/.vice/sdl-hotkey-C64.vkm mit dem folgenden Inhalt an.:

Hier wird das Verlassen des EMulators auf die Taste [ESC] gemappt, ursprünglich ist dies die Tastenkombination [Alt]+[X]

Zu guter letzt geben wir in der Datei /home/pi/.vice/sdl-vicerc noch an, welche Konfigurationsdateien der C64 Emulator Vice laden soll:

Im Anschlus funktioniert die Steuerung des Vice C64 Emulators vollständig über die Arcade Knöpfe. Das Anschließen einer Tastatur an den Raspberry Pi ist zum Spielen von C64 Spielen nicht länger notwendig.

Scan to Donate Bitcoin
Like this? Donate Bitcoin to at:
Bitcoin 17g7tgR4KYKSqS1f8LUCpLEeum4PAcnGbo
Donate

Apache mit vorkomprimierten Dateien

gzip

Dateien gz koprimiert vom Webserver ausliefern zu lassen kann Internetseiten erheblich beschleunigen. Leider kommt es bei der Anfrage immer zu einer kurzen Verzögerung, wärend mod_gzip oder mod_deflate die Dateien Komprimieren.
Diese Zeit lässt sich erheblich verkürzen, wenn die Dateien nicht erst bei der Auslieferung komprimiert werden sondern bereits als fertig komprimierte Dateien auf dem Server vorliegen und direkt ausgeliefert wird.

Auch lassen sich viele Dateien mit Zopfli erheblich besser komprimieren als mit dem klassischen gzip Programm.

Mit mod_rewrite kann auf einfache Weise anstelle einer Datei, die parallel zur Datei hinterlegte *.gz Datei augeliefert werden.

Wenn eine Dateien deren Name der auf die Dateierweiterung „.css“ endet von einem Browser der bei der Anfrage der Datei angegeben hat das er gzip Unterstützung bietet angefragt wird, prüft mod_rewrite ob eine Datei gleichen Namens als „.css.gz“ im gleichen Verzeichnis vorliegt. Sollte die entsprechende Datei vorliegen, wird diese Datei an stelle der angefragten „.css“ Datei mit gzip header ausgeliefert.

Die letzte angegebene Zeile kann für weitere Dateierweiterungen angepasst werden. Für JavaScript Dateien wird jedes Vorkommen von „.css“ auf „.js“ geändert.:

Eine Kompression ist für alle statischen Dateien Sinnvoll, die nicht andeweitig bereits komprimiert vorliegen. Besonders ist eine Vorkompression für Javascript Dateien (.js), HTML-Dateien (.html, .htm), XML-Dateien (.xml), Textdateien (.txt) sowie Stylesheets (.css) angebracht.

Scan to Donate Bitcoin
Like this? Donate Bitcoin to at:
Bitcoin 17g7tgR4KYKSqS1f8LUCpLEeum4PAcnGbo
Donate

SMTP via Telnet

Ein Beispiel für die manuelle EMail-Zustellung via Telnet:

~$ telnet mx.example.com 25
Trying 198.51.100.215…
Connected to mx.example.com.
Escape character is ‚^]‘.
220 mx.angststalt.de ESMTP Postfix (Debian/GNU)

Die Verbindung zum Server mx.example.com wird über port 25 Hergestellt

EHLO domain.tld
250-mx.example.com
250-PIPELINING
250-SIZE 10240000
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

„Helo“ mit dem Eigenen Hostnamen um die Verbindung aufzunehmen

MAIL FROM: <test@domain.tld>
250 2.1.0 Ok

Absenderangabe der EMail.

RCPT TO: <zieladresse@dieseserver.tld>
250 2.1.5 Ok

 

Empfänger der EMail angeben.

DATA
354 End data with <CR><LF>.<CR><LF>

Hier beginnt die EMail…

Subject:Hey, hier eine EMail für dich

Angabe des Betreffs der EMail

Ich habe hier eine EMail für dich,
in dieser EMail steht eine ganze Menge Text…

An dieser Stelle folgt der Inhalt der EMail…

.
250 2.0.0 Ok: queued as 112AE1B1

Mit einem Punkt wird die EMail beendet.

QUIT
221 2.0.0 Bye
Connection closed by foreign host.

und mit dem Befehl „Quit“ wird die Verbindung beendet.

Scan to Donate Bitcoin
Like this? Donate Bitcoin to at:
Bitcoin 17g7tgR4KYKSqS1f8LUCpLEeum4PAcnGbo
Donate

shellshock II (RPM-Paket erstellen)

In der chroot-Umgebung aus der ersten Anleitung kann auch direkt ein rpm Paket erstellen, welches eine saubere Installation der aktualisierten Bash ermöglicht.

Die Anleitung beginnt an Punkt 2 (2. Bash Quellen bereitstellen) der ersten Anleitung!

In der chroot-Umgebung des Build Systems einen Benutzer für den Paketbau anlegen:

Im Anschluß werden die für rpmbuild notwendigen Verzeichnisse, die drei Bash Konfigurations-Dateien .bashrc, .bash_profile, .bash_logout und die Specs-Datei für den rpm-Paketbau angelegt und die Bash Quellcodes sowie Patches heruntergeaden.:

Die bash.spec-Datei enthält die Konfigutarion des Paketes sowie die bei der Installation und deinstallation notwendigen Scripte. Die Vorliegende SPECS Datei ist eine bearbeitung der Original Quelle von Fedora Core 12, welche ich für die aktuelle BASH angepasst habe.

Jetzt kann mit rpmbuild das Paket erstellt werden, welches direkt im Anschluss mit rpm Installiert werden kann. Das alte Bash Paket wird hierbei durch das neue Paket ersetzt.


Das aus diesem Tutorial entstehende Bash-Binary und RPM-Datei zur Installation

Scan to Donate Bitcoin
Like this? Donate Bitcoin to at:
Bitcoin 17g7tgR4KYKSqS1f8LUCpLEeum4PAcnGbo
Donate

MAC-Adresse ändern (Linux, Apple, Windows)

Die MAC-Adresse ist für jede Netzwerkschnitstelle einzigartig. Die MAC-Adresse zu ändern geht in den verschiedenen Systemen wie folgt:

Linux

Unter Linux kann die MAC-Adresse unkompliziert über das Terminal geändert werden.:

Mac OS

Wie unter Linux kann auch unter dem Apple MAC OS die Adresse über das Terminal geändert werden.
Der Aufruf sieht dort wie folgt aus:

oder alternativ

Windows 7

Unter Windows 7 muss die Mac Adresse über einen Registry Eintrag geändert werden.
Hier gilt es „regedit.exe“ zu starten und im Anschluß der Eintrag

Unter diese „key“ erscheint eine Nummern-Sequenz (000, 001, 002…), von welchem festgestellt werden muss welcher die Netzwerkkarte repräsentiert, in dem Feld  „DriverDesc“ steht der Name der Netzwerkkarte. (bei mit 007)

In diesem Key (bei mir 007) suche nach dem Schlüssel “NetworkAddress” und ändere diesen. Änderungen sind über doppelklick oder alternativ Rechtsklick + Ändern.
Gib die gewünschte MAC-Adresse als zusmmenhängende Zeichenfolge, ohne Leerzeichen, Punkte oder Minuszeichen ein.

Wenn der Schlüssel bei der Netzwerkkarte nicht vorhanden ist, Rechtsklick auf einen Freien Bereich und “Neu” – “Zeichenfolge” wählen. Gib als Name “NetworkAddress” und als Wert und als Daten die gewünschte MAC Adresse ein.

Anschleßend muss noch das Netzwerkinterface deaktiviert und in folge wieder aktiviert werden.

Scan to Donate Bitcoin
Like this? Donate Bitcoin to at:
Bitcoin 17g7tgR4KYKSqS1f8LUCpLEeum4PAcnGbo
Donate

Cronjobs unter Android einrichten

Anforderungen

  • Das Gerät muß gerooted sein
  • Busybox muss installiert sein
  • das Gerät muss init.d verwenden

Creating cronjob

erstelle eine cronjob Datei im Verzeichnis /data/crontab/ mit dem Dateinamen „root“. Schreibe deine Cronjobs in diese Datei und mache diese Datei ausführbar.

Nun folgende Befehle ausführen:

Nun prüft der Cron-Deamon die Cron Datei und startet.

Um crond beim Booten bereits zu starten noch eine ausführbar markierte Datei in Verzeichnis /system/etc/init.d und dem folgenden Inhalt erstellen.

cronjob Beispiel

Der folgende Beispiel-Cronjob startet das Gerät jede Stunde zur dreiundfünfzigsten Minute neu.:

Fehlerbehebung
Wenn es beim einrichten einen „read only file system“ Fehler gibt, kann das Dateisystem über den folgenden Befehl beschreibbar gemounted werden:

im Anschluss wieder nur lesbar Mounten!

Scan to Donate Bitcoin
Like this? Donate Bitcoin to at:
Bitcoin 17g7tgR4KYKSqS1f8LUCpLEeum4PAcnGbo
Donate