Zwei-Faktor-Authentifizierung.

28 11 2012

Jeder kennt sie, die Zwei-Faktor-Authentifizierung, teilweise ohne sich dessen bewusst zu sein. Selbst die Leute, die mit Technik nichts am Hut und am Rechner zwei linke Hände haben.
Wie kann man sich überhaupt authentifizieren? Es lassen sich drei Gruppen ausmachen: Besitz, Wissen und Biometrie.

Der Besitz:
Jemand besitzt etwas mit dem Er sich authentifizieren kann. Beispiele aus dem Alltag währen z.B. ein Schlüssel, die EC-Karte oder ein Personalausweis. Mit dem passenden Schlüssel authentifiziert man sich quasi gegenüber dem Schloss und kann dieses öffnen oder mit dem Personalausweis, kann man sich gegenüber der Polizei authentifizieren, wer man ist.

Das Wissen:
Jemand weiß etwas um sich zu authentifizieren. Dies kann das Passwort zum Twitter-Account sein oder die PIN-Nummer der SIM-Karte im Handy.

Die Biometrie:
Hierfür werden körperliche Merkmale verwendet, die absolut eindeutig eine Person authentifizieren. Zur Authentifizierung mittels biometrischen Merkmalen werden beispielsweise der Fingerabdruck oder ein Irisscan verwendet. Der Vorteil der Biometrie ist, dass man seine Merkmale immer dabei hat – vorausgesetzt, man schneidet sich nicht ausversehen den Finger ab. 😉

Die Zwei-Faktoren-Authentifizerung nutzt nun, wie der Name es schon vermuten lässt, zwei dieser Faktoren. Im Alltag wäre das beispielsweise die Authentifizierung am Geldautomaten. Ich besitze etwas, meine persönliche EC-Karte und ich weiß etwas, meine PIN-Nummer. Nur so komme ich an mein Geld.

Solche Authentifizierungsverfahren gibt es auch online. Damit erhöht man die Sicherheit im Vergleich zur Authentifizierung nur über ein Passwort. Selbst wenn das Passwort zu einem Account erraten oder abgefangen ist, es ist nur ein Teil der Authentifizierung. Ohne den zweiten Teil ist das Passwort nichts wert. Google bietet einem schon länger die Möglichkeit, seinen eigenen Account zu schützen, indem man außer dem Passwort auch noch einen Code eingeben muss. Dieser Code ist nur eine begrenzte Zeit gültig. Im Firmenumfeld realisiert man die Codeerzeugung meist über sogenannte Tokens. Diese kleinen Geräte werden einmalig initialisiert und erzeugen dann auf Knopfdruck einen mehrstelligen (Zahlen-)Code. Das Problem hier ist allerdings, dass man bei mehreren Zugängen auch mehrere dieser Geräte dabei haben muss.
Ich persönlich habe zwei dieser Tokens bei mir, mehr würde ich aber nicht haben wollen – irgendwann wird es einfach unpraktisch.
Damit Google nicht jedem Anwender solch einen Token zuschicken muss, was nicht nur ein ziemlicher Aufwand, sondern auch mit einigen Kosten verbunden wäre, nutzt der Anwender sein Handy. Entweder bekommt man jedes Mal eine SMS geschickt, ähnlich dem mTan-Verfahren, welches teilweise beim Onlinebanking eingesetzt wird oder aber man installiert eine Anwendung auf seinem Telefon und generiert den Code selbst.

Für die Neugierigen und Interessierten unter euch, der von Google verwendete Algorithmus für das „Time-Based One-Time Password (TOTP)“ ist in dem RFC 6238 zu finden.

Auch andere Dienste und Unternehmen setzen auf das TOTP-Verfahren. So kann man bei Amazon AWS nicht nur einen Hardwaretoken nutzen, sondern auch eine App. Man muss nur das „virtual MFA device“ auswählen. MFA steht bei Amazon für „Multi-Factor Authentication“. Auch Dropbox hat die Zwei-Faktor-Authentifzierung eingeführt, nach der Aktivierung in den Einstellungen muss man sich auf der Webseite mit Passwort und dem jeweils neu erzeugten Code einloggen.

Eine kleine (und nicht vollständige) Auswahl der Apps, die einem das TOTP erzeugen können sind der Google Authenticator, Amazon AWS MFA und Authenticator. Mit diesen drei Apps sind die gängigen Smartphones, Android, iPhone, BlackBerry und Windows 7, abgedeckt.

Da der Algorithmus hinter TOTP bekannt ist, gibt es die verschiedensten fertigen Implementierungen in Java, Javascript, Python, C# und anderen Sprachen.
Wie man die Zwei-Faktoren-Authentifizierung unter Linux zum Absichern seines SSH-Accounts nutzen kann, verrate ich euch im nächsten Blogeintrag.

Werbeanzeigen




Anleitung: Iron Blogger Skript (reloaded)

22 07 2012

Nach einigen Änderungen am Skript und dem Aufruf von Mako Hill, dass jemand mal das Iron Blogger Skript dokumentieren soll, wird es Zeit, endlich mal meine Anleitung auf den aktuellsten Stand zu bringen. Die alte Anleitung ist damit hinfällig. Wundert euch nicht, wenn euch einiges bekannt vorkommt – Dinge, die sich nicht geändert haben, habe ich aus der alten Anleitung übernommen.

The English version of this guide will be updated soon. Stay tuned.

In meiner Anleitung gehe ich wieder davon aus, dass ihr Debian nutzt. Solltet ihr ein anderes System verwenden, so müsst ihr die Befehle anpassen und evtl. heißen die Paketnamen dann ein wenig anders.

Was muss alles installiert sein?

  • git
  • python
  • python-yaml
  • python-dateutil
  • python-mako
  • python-lxml
  • python-feedparser
  • ledger
  • mutt

Wie installiere ich die Pakete?

Gebt auf der Konsole folgende Zeile ein – auch wenn hier ein Zeilenumbruch angezeigt werden sollte, es ist eine einzige Zeile!:

sudo apt-get install git python python-yaml python-dateutil python-mako python-lxml python-feedparser ledger mutt

Es werden die benötigten Pakete herunter geladen und installiert. Wenn eines der Pakete schon vorhanden ist, dann wird dieses automatisch übersprungen.

Woher bekomme ich das Iron Blogger Skript?

Wechselt auf der Konsole in das Verzeichnis, in dem ihr das Iron Blogger Skript später haben wollt, und führt folgende Zeile aus:

git clone https://github.com/chaosblog/iron-blogger.git

Es wird automatisch ein Verzeichnis „iron-blogger“ angelegt, dieses beinhaltet das Skript.

Was muss ich bei meinem Blog vorbereiten?

Erstellt eine neue Seite (kein Artikel) für die Teilnehmerliste. Verpasst der Seite eine Überschrift nach belieben.

Macht euch keine Mühe Text auf die Seite zu schreiben – jeglicher
Inhalt der Seite wird bei einer Generierung der Teilnehmerliste überschrieben.

Navigiert in eurem WordPress-Admininterface zu „Seiten“, in der Auflistung der vorhanden Seite taucht die gerade erzeugte Teilnehmerliste auf. Fahrt mit der Maus über den Link und merkt euch die ID-Nummer der Seite, diese wird später gebraucht.

Wenn der Link zur Seite beispielsweise https://chaosblog.wordpress.com/wp-admin/post.php?post=2&action=edit lautet, dann wäre die ID die ihr euch merken müsst die 2.

Was muss ich anpassen?

Die zentrale Konfigurationsdatei.
Nach meinen Änderungen gibt es nun eine zentrale Konfigurationsdatei – es ist nicht mehr nötig, wie bisher, verschiedenste Dateien zu bearbeiten. Eine Beispiel-Konfigurationsdatei wird schon mitgeliefert. Diese heißt „settings.cfg.dist“. Kopiert die Datei und gebt ihr den Namen „settings.cfg“. Die Datei hat folgenden Inhalt:

[general]
mail=addyourmail@here
start_date=YYYY/MM/DD
 
[blogsettings]
username=john_doe
xmlrpc_endpoint=http://blog-URL.tld/xmlrpc.php
blog_id=0
participants_page_id=12

[general]
Im Abschnitt general sind Mailadresse und Startdatum zu definieren.
Tragt bei „mail=“ die Mailadresse ein, die die Auswertungsmails am Ende einer Wertungswoche erhalten soll. Die Variable „start_date“ muss das Datum enthalten, an dem euer Iron Blogger Projekt gestartet ist. Das Datumsformat ist hierbei wie folgt festgelegt: YYYY/MM/DD. Das Jahr also vierstellig, der Monat zweistellig und der Tag ebenfalls zweistellig.

[blogsettings]
Der Abschnitt blogsettings enthält die notwendigen Informationen um mittels des Skriptes auf einen WordPress-Blog zugreifen zu können. Der „username“ muss den Nutzernamen eures WordPress-Zugangs enthalten. Die Variable „xmlrpc_endpoint“ muss die URL eures Blogs gefolgt von „/xmlrpc.php“ (ohne Anführungszeichen) enthalten.
Wenn eure Blog-URL z.B. https://chaosblog.wordpress.com heißt, dann wäre der einzutragende Wert https://chaosblog.wordpress.com/xmlrpc.php.
Sollte das Schema eurer XML-RPC-URL abweichen, dann schaut bitte direkt innerhalb der Administrationsoberfläche vorn WordPress nach, wie die URL lautet.
Die Variable „blog_id“ lasst ihr auf 0 stehen. Theoretisch könnte hier auch ein anderer Wert stehen – dieser Fall ist mir aber bisher noch nie in der Praxis begegnet. Solltet ihr hier etwas anderes eintragen müssen, dann wisst ihr es auch 😉
Als Letztes fehlt noch die participants_page_id. Dies ist die ID der Teilnehmerseite, die wir uns vorhin gemerkt haben.

Die Liste der Blogger
Die Datei bloggers.yml enthält die Blogger, die an eurer Iron Blogger Aktion teilnehmen.

username:
links:
- [Blogname 01,'http://blog-URL.tld/']
- [Blogname 02,'http://blog-URL02.tld/']
name: Jon Doe
start: YYYY/MM/DD

Der username entspricht dem Nick des Bloggers auf Twitter. Solltet ihr auch Blogger ohne Twitteraccount haben, so schreibt hier einen Nutzernamen hin, den ihr euch ausdenkt und fügt den optionalen Eintrag twitter:no zu dem Nutzer hinzu.

Im Abschnitt links tragt ihr den oder die Blogs ein, die ein einzelner Blogger betreibt. Hier werden nur ein Name und ein Link eingetragen – eine Feed-URL wird später automatisch ermittelt und eingetragen.
Das Feld name erhält den Klarnamen, bzw. dass was als Klarname angezeigt werden soll.
Damit auch nach dem Start der Aktion neue Teilnehmer hinzustoßen können, gibt es das Feld start. Dort wird eingetragen, ab wann ein Nutzer in die Wertung einfließt.
Achtung:Wenn ihr einen Wert in der Vergangenheit eintragt, heißt es nicht, dass für den User auch rückwirkend die Gebühren berechnet werden!
Zum besseren Verständnis hier ein Beispiel:
chaosblog:
links:
-[Chaosblog, 'https://chaosblog.wordpress.com/']
name: Marcus S.
start: 2012/01/01
twitter: no

Wie führe ich das Skript aus?

In Wirklichkeit ist es nicht ein einzelnes Skript, sondern mehrere Skripte, die zusammenarbeiten. Daher gibt es eine bestimmte Reihenfolge, die ihr einhalten müsst.

      1. Tragt alle Teilnehmer wie oben beschrieben in die Datei bloggers.yml ein.
      2. Führt das Skript import-feeds.py durch Eingabe von
        ./import-feeds.py
        aus. Die Datei bloggers.yml wird gelesen und zu allen Blog die noch keine Feed-URL eingetragen haben, wird die Feed-URL erzeugt.
      3. Nun könnt ihr die Teilnehmerliste auf eurem Blog aktualisieren lassen. Dies geschieht wieder auf der Konsole, diesmal ist der Befehl:
        ./update-participants.py
        Ihr werdet nun aufgefordert, euer Passwort einzugeben – dies ist das Passwort mit dem ihr euch auch im WordPress einloggt.
        Nach einigen Sekunden erscheint wieder der Eingabeprompt und die Teilnehmerliste eures Blogs wurde aktualisiert.
      4. Die Ermittlung der neuen Beiträge der einzelnen Teilnehmer übernimmt scan-feeds.py. Dieses Skript lädt nacheinander alle Feeds der Blogs und speichert die Titel und die Adressen der neuen Beiträge. Dies geschieht via:
        ./scan-feeds.py
      5. Nun könnt ihr einen Probelauf des Auswertungsskripts weekly-update.py starten. Der Parameter -n sorgt für einen Probelauf – es wird keine Mail verschickt und kein Blogartikel erzeugt. Allerdings wird der Text, der Mail, die generiert wird, auf der Konsole ausgegeben. Als zweiten Parameter beim Probelauf erwartet das Skript ein Datum im Format YYYY-MM-DD (z.B. 2012-01-19)
        ./weekly-update.py -n 2012-01-19
        Das Datum definiert die Woche für die die Auswertung erzeugt wird. Basierend auf dem Parameter und dem weiter oben konfigurierten Start-Datum wird die Woche berechnet. Für das Skript muss eine Woche nicht zwingend mit Sonntag oder Montag beginnen.
        Wenn ihr den Parameter -n durch -q ersetzt, bekommt ihr noch eine kompaktere Ansicht des Probelaufs.
      6. Jetzt wird es ernst. Wir lassen nun den Blogbeitrag mit der Auswertung und die E-Mail dazu erzeugen. Wieder wird das Skript weekly-update.py ausgeführt, diesmal wird allerdings nur ein Parameter, das Datum, übergeben.
        ./weekly-update.py 2012-01-15
        Wie bei der Aktualisierung der Teilnehmerliste werdet ihr auch hier nach eurem WordPress-Passwort gefragt.
        Nach einigen Sekunden ist der Blogpost erstellt und ihr solltet eine neue E-Mail in eurem Postfach vorfinden.

Fertig. War doch auch diesmal gar nicht schwer und sogar leichter als bei der ersten Version, oder? 😉

Noch ein Tipp: Legt euch bei WordPress.com einfach einen neuen bzw. einen weiteren Blog an, den ihr auf privat schaltet. Diesen könnt ihr dann als Spielwiese zum Testen nutzen.





iPhone Home Button kalibrieren

11 07 2012

Die Apfeljünger da draußen argumentieren ja immer, dass so ein iPhone supereinfach, sehr robust und total anwenderfreundlich ist.

Doch auch der beste Apfel wird mal faulig. So scheinbar auch die iPhones – irgendwann tut der Home Knopf nicht mehr das, was er eigentlich tun sollte. In meiner Twitter-Timeline ist dieses Problem bei @maxheadroom, @kommandomutti und @Lady_Darkness69 aufgetreten, doch sie sind bei Weitem nicht die Einzigen. Ein Blick in das Apple Support Forum zeigt einen Beitrag auf, der sich inzwischen auf über 40 Seiten hinzieht.

Da fiel mir ein Artikel auf dem iDownloadBlog ein. Man könne ja seinen Home Button neu kalibrieren. Zuerst hab ich das als irgendwelchen Budenzauber abgetan. Für mich hörte sich es so an, wie die Vogelspinne in der Yucca-Palme.
Einen Knopf kalibrieren – da gibt es doch nur 1 und 0 – selbst wenn der Taster nicht entprellt wäre. Was will man da …? Egal. Nicht weiter drüber nachdenken. @maxheadroom hat das Ganze nach meinem Hinweis getestet und siehe da – es funktioniert. Muss also doch was dran sein.

Wenn ihr auch das Problem habt, geht wie folgt vor:

  1. Startet eine von Apple vorinstallierte App, welche das sind, kann ich in Ermangelung eines iOS-Geräts nicht sagen. Es scheint aber eine Aktien-App zu geben, mit der es funktioniert
  2. Drückt den Powerknopf und haltet ihn gedrückt, bis „Slide to Power off“ bzw. im Deutschen „Auschalten“ erscheint.
  3. Drückt den Home Button und haltet ihn gedrückt, bis „Slide to Power off“ / „Ausschalten“ verschwindet, die gestartete Anwendung geschlossen wird und ihr euren Home Screen seht.

Fertig.

Hier das Ganze noch als Video:

Viel Erfolg.

P.S. Es soll auch bei iPod touch und iPad funktionieren.





Quicktip: Git in Farbe.

4 07 2012

Mit Farben kann man viele Sachen einfacher sichtbar machen. Nicht umsonst gibt es zum Beispiel sogenannte Signalfarben.

Die Versionsverwaltung Git gibt standardmäßig alles nur in Schwarz-Weiß aus, bzw. in den Farben, die ihr euch auf der Konsole eingestellt habt.
Mit Farbe bringt steigert man allerdings die Übersicht um einiges. Folgender Befehl auf der Konsole ausgeführt aktiviert die Farben dauerhaft in Git:

git config --global --add color.ui true

Lasst ihr nun ein git diff laufen, seht ihr die Änderungen in rot und grün. Auch git status verwöhnt euch mit diesen zwei Farben. Gelöschte und geänderte Dateien erscheinen rot, neu hinzugefügte Dateien grün. Wenn ihr verschiedene Branches habt, so zeigt euch git branch den aktiven Branch in grün.

Wer jetzt Angst hat, dass die Farben evtl. in Skripten oder bei verschlungenen Pipe-Konstrukten Probleme bereiten könnte, der sei an dieser Stelle beruhigt. Git erkennt, ob die Ausgabe auf einem Terminal landet oder nicht. Die Farben werden nur auf dem Terminal angezeigt.





Quickie – Git-Branch im Prompt

24 03 2012

Hier mal wieder ein kleiner Quickie.

Ich benutze die Versionsverwaltung Git, ein Für und Wider möchte ich jetzt nicht diskutieren – es ist wie so vieles eine Glaubensfrage.

Bei Git ist es ein Leichtes, einen neuen Branch zu erstellen, diese Funktion nutze ich auch exzessiv, allerdings weiß ich nicht immer genau, in welchem Branch ich mich gerade bewege.
Der Befehl „git branch“ zeigt mir an, welcher Branch gerade aktiv ist. Doch jedes Mal diesen Befehl ausführen ist mir zu nervig.

Daher habe ich den Bash-Prompt in der .bashrc bearbeitet, Folgendes habe ich hinzugefügt:
git branch 2>/dev/null|cut -f2 -d\* -s| sed "s/^ *//g"

Wer das Ganze auch machen möchte, muss in der .bashrc die Zeile mit export PS1 anpassen.





Quicktip: snom-Screenshot

26 01 2012

Hier ein winziger Tipp, den ich eigentlich nur in den Blog kippe, damit ich einen Ort habe, an dem ich nachschauen kann, sollte ich es vergessen.
Vielleicht kann es ja einer von euch da draußen auch noch gebrauchen.

Wie erstelle ich einen Screenshot des Displays eines snom-Telefons:
Öffne in einem Browser deiner Wahl die URL „http://%5Btelefon-ip-adresse%5D/screen.bmp“ (die eckigen Klammern weglassen). Nun werdet ihr aufgefordert, eure Zugangsdaten einzugeben. Schon hat meinen einen Screenshot im BMP-Format.

Snom 370 Screenshot

Natürlich kann man auch Wget oder Ähnliches nutzen. Dann müsst ihr aber eure Zugangsdaten mit übergeben. Je nach Tool gibt es extra Parameter oder ihr ändert einfach die URL in „http://%5Bbenutzername%5D@%5Bpasswort%5D:%5Btelefon-ip-adresse%5D/screen.bmp“ (auch hier: Die eckigen Klammern weglassen)

Das Ganze funktioniert bei allen snom Tischtelefonen, die einzige Ausnahme stellt hier das snom 300 da.





Howto: Iron Blogger Script (English Version)

20 01 2012

Please excuse my really bad English. I did my best to write this post reasonably understandable.
Perhaps there is someone who helps me and corrects my mistakes.

This howto is available in German too.

As mentioned in my last post, there is the Iron Blogger script running on my server the with some adjustments.

Here is a brief guide on how to install and use this script. I created a new fork on Github and uploaded my changes uploaded there.

In my post I am assuming that you use Debian. Should you use a different system, please adjust the commands and then the package names.

What needs to be installed?

  • git
  • python
  • python-yaml
  • python-dateutil
  • python-mako
  • python-lxml
  • python-feedparser
  • mutt

How do I install the packages?

Run the following command (even if there appears a line break it’s only a single line):

sudo apt-get install git python python-yaml python-dateutil python-mako python-lxml python-feedparser mutt

Your system will load the required packages and install them. If one of the packages already exist, then it is skipped automatically.

How do I get the Iron Blogger script?

Changes into the directory where you want to have the Iron Blogger script later run the following line:

git clone https://github.com/chaosblog/iron-blogger.git

This command creates a directory „iron-blogger“ and downloads the script from Github.

What do I need to prepare?

Create a new page for the list of participants, the title you can choose at will.

Don’t write any text at this page – Any content of this will be overwritten by a generation of participant list.

Navigate in your WordPress admin interface to „Pages“. In the list of available pages appears the newly created one. Ride with the mouse over the link and you remember the ID number of the page, it will be used later.

If the link to the page, for example is https://chaosblog.wordpress.com/wp-admin/post.php?post=2&action=edit, then the ID which you have to remember is 2.

What do I need to adjust?

Currently there is no central configuration file.

  1. render.py
    Edit the File render.py. There you configure the start-date of your Iron Blogger Event.
    At Row 13:
    START = datetime.datetime(2011, 12, 25, 2)
    The dateformat is: yyyy, mm, dd, h
    The year (four digits), the month (two digits), the day (two digits), the hour (24 hour format).
  2. update-participants.py
    Edit file update-participants.py, adjust Rows 10-13 angepasst werden.
    XMLRPC_ENDPOINT = 'http://blog-URL.tld/xmlrpc.php'
    USER = 'username'
    BLOG_ID = 0
    PAGE_ID = 12
    The XMLRPC_ENDPOINT is your blog URL followed by „/xmlrpc.php“ (without quotation marks).
    When your blog URL  is https://chaosblog.wordpress.com so the needed value is https://chaosblog.wordpress.com/xmlrpc.php
    USER your username, used at the blog login page.
    Normally the BLOG_ID is 0 (zero) sein
    PAGE_ID is the remembered ID form your participants page.
  3. weekly-update.py
    Edit weekly-update.py similar to update-participants.py – Rows 11-13 need to be adjusted.
    XMLRPC_ENDPOINT = 'http://blog-URL.tld/xmlrpc.php'
    USER = 'username'
    BLOG_ID = 0
  4. bloggers.yml
    The file bloggers.yml contains the participants.
    username:
    links:
    - [Blogname 01,'http://blog-URL.tld/']
    - [Blogname 02,'http://blog-URL02.tld/']
    name: Jon Doe
    start: YYYY/MM/DD
    username corresponds with the bloggers twitter name. You could write any name – but if you don’t use twitter names, you have to edit the templates which generate the overview and the participants list. Both generate username based links for twitter.
    At the section links you have to enter the blog an user is running.
    Don’t add a feed-URL – they will generated later.
    The field name contains the bloggers realname.
    For blogger which will join the project later, there is the „start“ field.
    Caution:The fees are not calculated backdatedHere’s an example to illustrate:
    chaosblog:
    links:
    - [Chaosblog, 'https://chaosblog.wordpress.com/']
    name: Marcus S.
    start: 2012/01/01
  5. email.txt
    Only a short adjustment – replace at row 3 in the file email.txt the string „addyourmail@here“ with your e-Mail-adress.

How do I run the script?

It is not a single script, but several scripts that work together. Therefore, there is a specific order, you must follow.

  1. Add all participants to bloggers.yml.
  2. Run the script import-feeds.py via console:
    ./import-feeds.py

    The file bloggers.yml will be read and the missing feed-URLs will be added.
  3. Now you update the participants list by running:
    ./update-participants.py
    You will be aked to enter your WordPress password.
    After a few seconds the prompt will return and your participants list was updated.
  4. The determination of new contributions of each participant is done by scan-feeds.py. This script loads one after another feed and stores the titles and addresses of the new posts.
    Run this command:
    ./scan-feeds.py
  5. Go on with a dry run of the weekly results. weekly-update.py  with the parameter -n starts the dry run. No blog post will be done and no email will be send. The second parameter at the dry run is a date, formated YYYY-MM-DD (e.g. 2012-01-19)
    ./weekly-update.py -n 2012-01-19
    The date defines the week for the results. Based on the configured start and the parameter the week will be calculated. It is not necessary to start a week on sunday or monday.
  6. Now it gets seriously.
    Let’s generate a blog post and an email. Run the weekly-update.py script only with the date parameter:
    ./weekly-update.py -n 2012-01-15
    You will be asked once more to enter your WordPress-Password.
    After a few seconds your blog post is created and you will receive an e-mail

Finished. That is quite easy. Isn’t it? 😉

To-do:

  • one configuration file
  • store the wordpress password for automation

I’m going to implement both and when finished I will upload it to github again.

Tip: Created just a new WordPress.com blog and turn into private. This you can use as a playground to test everything.

Another tip: when you created just one new WordPress.com blog or another to whom you turn to private. These you can then use as a playground.