lftp und SSL

Sa 20 Dezember 2014 by Oliver Paetzel
Tags: lftp ssl pelican makefile

Nachdem ich nun meinen Blog mit pelican erstellt hatte, wollte ich ihn auch möglichst ohne viele Probleme auf den Server bekommen. Dafür legt pelican beim quickstart ein Beispiel-Makefile an, in dem ein paar Möglichkeiten vorkonfiguriert sind. So zum Beispiel ssh_upload, rsync_upload und auch dropbox_upload. Da ich aber weder rsync noch ssh Zugriff habe und auch keinen DropBox Account, war für mich der ftp_upload interessant.

Hier legt das script dann folgende Zeile an:

lftp ftp://$(FTP_USER)@$(FTP_HOST) -e "mirror -R $(OUTPUTDIR) $(FTP_TARGET_DIR) ; quit"

Es wird also auf den Server gespiegelt. Dabei wird allerdings weder die Verschlüsselung der Daten, noch die Verschlüsselung der Login-Daten erzwungen. Ein Austausch des ftp mit einem ftps brachte nur no connection Fehlermeldungen mit immer länger werdenden timeouts hervor. Ein Blick ins manual kann da allerdings Wunder wirken. Hier ein Auszug:

ftp:ssl-force (boolean)
    if  true,  refuse to send password in clear when server does not
    support SSL.  Default is false.

Daraus ergibt sich dann folgender Befehl:

lftp ftp://$(FTP_USER)@$(FTP_HOST) -e "set ftp:ssl-force true; mirror -R $(OUTPUTDIR) $(FTP_TARGET_DIR) ; quit"

Jetzt wird die Übertragung der Login-Daten zwingend verschlüsselt. Wenn man noch mehr Privatsphäre will, kann man zusätzlich ftp:ssl-protect-data auf true setzen, dann werden auch alle Daten verschlüsselt. Für einen öffentlichen Blog halte ich das jedoch nicht für notwendig.


In meinem ersten Blogeintrag soll es um die Erstellung desselbigen gehen. Nachdem ich einen Artikel auf Pro-Linux über pelican gelesen habe, war für mich klar, dass es das ist, was ich lange gesucht hatte. Die Gründe dafür werde ich hier kurz aufführen.

Was ist pelican?

Zunächst einmal sollte erklärt werden, was pelican überhaupt ist. Pelican ist eine Software, mit der sich statische blogs erstellen lassen. "Statisch" bedeutet hier, dass auf dem Server kein Programm ausgeführt wird, es liegen hier nur die *.html, *.css und *.js Dateien, die der Browser dann anzeigt.

Gründe die für pelican sprechen

Dies hat einige Vorteile. Zum einen braucht man keine Datenbank, um irgendwelche Dinge zu speichern und zum anderen kein php oder anders geartete Programme, die auf dem Server ausgeführt werden müssen. Es reicht ein Webserver wie Apache2, nginx oder auch lighttpd.Dadurch wird der Server geschont und kann auch mit weniger Rechenpower mehr Anfragen behandeln. Außerdem ist man auch sicherer vor Angriffen wie SQL-Injects oder anderen Lücken in der Blog-Software oder dem CMS. Der einzige Angriffspunkt ist hier dann noch der Webserver selbst.

Das war dann schon der erste Grund für meine Wahl von pelican. Der nächste Grund ist, dass die Artikel nicht in einem "What-You-See-Is-What-You-Get"-Editor geschrieben, sondern in StructuredText oder MarkDown Syntax verfasst werden. Da es in WYSIWYG-Editoren für html immer Probleme gibt bzw nachher doch alles anders aussieht, ziehe ich MarkDown ganz klar vor. Hier kann inline html geschrieben werden, sobald es nötig wird und ich habe das Gefühl, mehr Kontrolle über die Dinge zu haben. Außerdem entspricht der gesamte Workflow mehr dem von mir als Softwareentwickler.