Zum Inhalt springen

Let’s Encrypt unter Debian oder Raspbian Stretch einrichten

Lets Encrypt unter Debian oder Raspbian Stretch einrichten

Verschlüsselung ist schon lange wichtig. Besonders aber dann wenn im Internet persönliche oder empfindliche Daten übermittelt werden. Leider gibt es dennoch viele ungeschützte Webseiten. Let´s Encrypt ist ein kostenloser, automatisierter und offener Herausgeber von SSL Zertifikaten der das ändern möchte. Hier beschreibe ich euch kurz wie Ihr ein SSL-Zertifikat auf eurem Apache Webserver unter Debian Stretch oder Raspberry Stretch installieren könnt.

Installation

Der Certbot, ein Script zum installieren und aktualisieren von Let´s Encrypt SSL-Zertifikaten, bietet spezielle Installationsassistenten für verschiedene Webserver und Betriebssystem Kombinationen an. Den für uns benötigten finden wir in den offiziellen Debian Repositorys.

sudo apt-get install python-certbot-apache

Sobald danach gefragt wird bestätigen wir die Installation der benötigten Pakete. Der Installationsassistent ist anschließend in der Lage die richtigen Einstellungen und Informationen für den Certbot bereitzustellen. Da uns hierdurch die meiste Arbeit abgenommen wird ist der Rest nun ganz einfach.

sudo certbot --apache

Abschließend müssen wir dem Certbot noch ein paar Fragen beantworten. Sobald wir damit fertig sind wird automatisch das SSL-Zertifikat installiert. Dieses ist immer 90 Tage lang gültig.

Zertifikat automatisch verlängern

Damit wir das Zertifikat nicht alle 90 Tage manuell verlängern müssen, legen wir einen Cronjob an der uns diese Arbeit abnimmt. Dafür benötigen wir als erstes eine neue und leere Datei in die ein simples Script eingefügt wird.

touch /home/user/renew-certs.sh

Um diese neu angelegte Datei zu bearbeiten verwende ich in diesem Beispiel nano. Selbstverständlich könnt ihr auch einen anderen Editor verwenden.

nano /home/user/renew-certs.sh

Folgendes fügen wir ein:

#! /bin/bash
certbot renew -q

Das Script funktioniert nur wenn es ausführbar ist.

chmod +x /home/user/renew-certs.sh

Um die Cronjobs unseres aktuellen Users zu bearbeiten müssen wir folgendes eingeben:

crontab -e

Am Ende der Datei fügen wir dann die nachfolgende Zeile ein und speichern das ganze ab.

* 3 * * * /home/user/renew-certs.sh

Ab sofort wird nun jede Nacht um 3 Uhr das Script ausgeführt und überprüft ob eines unserer Zertifikate erneuert werden muss. Sollte das der Fall sein wird dies sofort gemacht und das Zertifikat ist erneut 90 Tage lang gültig.

Abschließende Worte

Gültige SSL-Zertifikate und eine Verschlüsselung der Kommunikation sind nicht nur zum Schutz der eigenen Kunden oder Besucher wichtig. Auch Google & Co legen inzwischen einen hohen Wert auf solche Dinge und diese wirken sich somit stark auf das SEO-Ranking aus. Da es mit Let´s Encrypt kostenlose SSL-Zertifikate gibt, gibt es keinen Grund mehr ungesicherte Verbindungen zu verwenden.

USB-Stick / SD-Karte formatieren

USB Stick SD Karte formatieren

Manchmal ist es notwendig einen USB-Stick oder eine SD-Karte zu formatieren. Sei es aufgrund eines Linux-Dateisystems das unter Windows nicht erkannt wird oder aufgrund von anderen Fehlern. Wird ein Laufwerk jedoch gar nicht mehr in Windows angezeigt oder wird ein Laufwerk viel kleiner angezeigt als es eigentlich ist, kann man dieses nicht mehr auf normalem Wege formatieren. In so einem Fall kann uns diskpart helfen. Diskpart ist ein Werkzeug das in der Kommandozeile verwendet wird und mit dem Datenträger, Partitionen oder Volumes verwaltet werden können.

Durch das formatieren gehen auf dem Datenträger ALLE Daten UNWIDERRUFLICH verloren!

Als erstes müssen wir die Kommandozeile öffnen indem wir die Tastenkombination [Windows-Taste]+[R] drücken, anschließend “cmd” eingeben und dies mit der [Enter] Taste bestätigen. Alternativ kann man auch die Datei “cmd.exe” im System32-Ordner von Windows starten. Durch die Eingabe von “diskpart” in der Kommandozeile öffnet sich nun das gewünschte Programm.

01-diskpart

Jetzt lassen wir uns mit dem folgenden Befehl die verfügbaren Datenträger anzeigen.

list disk
02-diskpart
Tipp: Durch die erneute Eingabe von “list disk”, mit entfernter SD-Karte bzw. entferntem USB-Stick, können wir sicherstellen den richtigen Datenträger zu kennen.

An dieser Stelle ist es wichtig den richtigen Datenträger auszuwählen. Sollte man hier einen Fehler machen kann das einen erheblichen Datenverlust zur Folge haben! In meinem Fall handelt es sich um eine 32GB SD-Karte und somit um den Datenträger Nummer 2. Die Nummer findet sich in der Spalte “###”. Die Auswahl des Datenträgers erfolgt folgendermaßen.

select disk 2
03-diskpart
Tipp: Durch die erneute Eingabe von “list disk” können wir die getroffene Auswahl visuell bestätigen lassen. Der ausgewählte Datenträger ist nun mit einem Stern (*) markiert.

Um den Datenträger zu bereinigen und alle Partitions- oder Volumeformatierungen von dem Datenträger zu entfernen verwenden wir den Befehl:

clean
04-diskpart

Jetzt erstellen wir eine neue Partition, wählen sie aus und aktivieren sie anschließend.

create partition primary
select partition 1
active
 
05-diskpart

Nun muss unsere neue Partition formatiert werden. Da es Datenträger gibt die kein NTFS unterstützen, empfehle ich grundsätzlich erstmal Fat32.

format fs=fat32 QUICK
06-diskpart

Abschließend weisen wir unserem Datenträger einen Laufwerksbuchstaben zu damit dieser in Windows verwendet werden kann.

assign
07-diskpart

Durch die Eingabe von “exit” kann das Fenster von diskpart geschlossen werden.

Postfix als Entwickler verwenden

Postfix als Entwickler verwenden

Für ein aktuelles Projekt von mir ist es wichtig das mein Debian Home Server E-Mails versenden kann. Diese sollen jedoch zu Testzwecken, unabhängig vom angegebenen Absender und Empfänger, immer an eine bestimmte E-Mail Adresse geschickt werden. Das hat den Vorteil das ich ganz viele verschiedene E-Mail Adressen verwenden kann und dabei niemand mit Mails belästigt wird die er nicht haben möchte. Spam mag niemand!

Hierbei ist zu beachten das man im Normalfall keine E-Mails von einem Home Server aus versenden sollte. Warum das so ist? Nicht ein einziger E-Mail-Anbieter würde sie annehmen. Das liegt ganz einfach daran das ein Home-Server, beziehungsweise der Internet-Anschluss in einer Wohnung, keine statische IP-Adresse verwendet (aus nicht-DSL-Bereichen) und ebenfalls keinen gültigen Hostnamen besitzt. Somit gilt man unter keinen Umständen als legitimer und seriös arbeitender Versender von E-Mails.

Um das Problem zu lösen versenden wir daher unsere E-Mails mit dem MTA (Mail-Transfer-Agent) Postfix per SMTP über einen der vielen legitimen und seriösen Anbieter die es im Internet so gibt. In meinem Fall ist dies GMX.

Installation

Als erstes installieren wir Postfix.

sudo apt-get install postfix

Anschließend öffnet sich ein Dialogfeld in dem wir einige grundsätzliche Einstellungen vornehmen müssen. Bei der ersten Frage, nach der Art der Konfiguration, wählen wir “Satellitensystem” aus, gehen per Tab-Taste auf “Ok” und bestätigen dies mit der Enter-Taste.

postfix konfiguration satellitensystem

Im nächsten Schritt wird der System-E-Mail-Name abgefragt. Hier habe ich den vorausgefüllten Namen meines Servers belassen.

postfix konfiguration domainname

Nun werden wir nach dem SMTP-Relay-Server gefragt. Hier kommt der SMTP-Server eures Anbieters rein. In meinem Fall “mail.gmx.net”.

postfix konfiguration smtp relay server

Sollte man während dieser Eingaben bei der Postfix Konfiguration einen Fehler gemacht haben und dies erst später bemerken, kann mit dem folgenden Befehl die Konfiguration erneut gestartet werden.

sudo dpkg-reconfigure postfix

Einrichtung

Die weiteren Schritte bei der Einrichtung von Postfix müssen per Hand durchgeführt werden. Dafür bearbeiten wir als erstes die Konfigurationsdatei mit dem Befehl:

sudo nano /etc/postfix/main.cf

Am Ende dieser Datei müssen die folgenden Zeilen eingefügt werden:

smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_password
sender_canonical_maps = regexp:/etc/postfix/sender_canonical  
recipient_canonical_maps = regexp:/etc/postfix/recipient_canonical  
smtp_tls_security_level = encrypt

Hierdurch legen wir fest das der SMTP Anbieter eine Authentifizierung benötigt, die Verbindung über eine sichere TLS Verbindung erfolgen soll und in welcher Datei die Zugangsdaten stehen. Des weiteren verweisen wir auf zwei Dateien durch die beim Versand einer E-Mail zum einen der Absender und zum anderen der Empfänger verändert wird.

Jetzt kümmern wir uns als erstes um die Zugangsdaten. Dafür erstellen wir mit dem ersten Befehl eine neue Datei und bearbeiten diese Datei mit dem zweiten Befehl.

sudo touch /etc/postfix/sasl_password
sudo nano /etc/postfix/sasl_password

Dort wird eine neue Zeile eingefügt. ADRESSE und PASSWORT müssen selbstverständlich durch eure Daten ersetzt werden.

mail.gmx.net ADRESSE@gmx.de:PASSWORT

Nun legen wir fest wer der Absender aller E-Mails sein soll indem wir eine neue Datei anlegen und diese bearbeiten.

sudo touch /etc/postfix/sender_canonical
sudo nano /etc/postfix/sender_canonical

Hier fügen wir die folgende Zeile ein. ADRESSE müsst Ihr erneut ersetzen.

/.+/ ADRESSE@gmx.de

Das selbe machen wir mit der Empfänger-Adresse an die alle E-Mails geschickt werden sollen.

sudo touch /etc/postfix/recipient_canonical
sudo nano /etc/postfix/recipient_canonical

In diese Datei kommt die folgende Zeile. ADRESSE muss wieder ausgetauscht werden. Wenn die Empfänger-Adresse die selbe wie die vom Absender sein soll, ist die Zeile identisch mit der aus der vorherigen Datei.

/.+/ ADRESSE@gmx.de

Um die veränderte Konfiguration von Postfix zu übernehmen, müssen aus unseren neuen Dateien Datenbanken erstellt werden. Dies machen wir mit diesen Befehlen:

sudo postmap hash:/etc/postfix/sasl_password
sudo postmap /etc/postfix/recipient_canonical
sudo postmap /etc/postfix/sender_canonical

Abschließend starten wir Postfix neu.

sudo service postfix restart

Um zu testen ob alles funktioniert, könnt Ihr mit dem folgenden Befehl eine E-Mail verschicken.

echo Das ist ein Test! | mail -s Test EMPFÄNGERADRESSE

Diese E-Mail erhaltet Ihr nun mit dem von euch festgelegtem Absender an eure festgelegte E-Mail Adresse. Unabhängig davon wer eine E-Mail verschickt oder wer diese erhalten soll. Um als Entwickler verschiedene Funktionen zu testen ist dies genau das richtige.

Mir ist bewusst das es viel kleinere und einfacherer Lösungen gibt um dies zu realisieren. Zum Beispiel mit sSMTP oder Nullmailer. Bei beiden hatte ich aber massive Probleme mein Passwort zu hinterlegen und habe hierfür auch keine funktionierende Lösung finden können. Das Problem war, das meine Passwörter sehr sicher sind und aus vielen Zeichen bestehen die auch Sonderzeichen beinhalten. Mit diesen Sonderzeichen können beide Programme scheinbar nicht umgehen. Nur hierfür mein Passwort zu ändern und überall anpassen zu müssen sehe ich nicht ein. Ganz davon abgesehen das das Passwort dann etwas unsicherer wäre. Des weiteren können bei sSMTP auch E-Mails verloren gehen wenn keine Internetverbindung bestehen sollte. Das liegt daran das es leider keine Warteschlange gibt und E-Mails nach dem versenden gelöscht werden. Selbst dann, wenn es einen Fehler bei der Übermittlung gab.

Hafenmole Wedel

Hafenmole Wedel Sonnenuntergang Diesig Ufer Fernsehturm

Aufgenommen am: 10.09.2016 18:55
Kamera: Samsung SM-G920F
ISO: 40
Belichtungsdauer: 1/2080 Sek.
Blendenzahl: f/1.9
Brennweite: 4 mm
Originalgröße: 5274 x 2966
Ort: Strandweg 3, 22880 Wedel

Umdenken bei der Verwendung von Werbeblockern

Umdenken bei der Verwendung von Werbeblockern

Werbeblocker, auch Adblocker genannt, werden heutzutage viel eingesetzt um auf Webseiten störende Werbung zu entfernen. Gewöhnlich geschieht dies mithilfe eines Plug-ins für Webbrowser. Die beiden größten Anbieter hierfür sind Adblock Plus (über 50 Millionen Nutzer*) sowie Adblock (über 40 Millionen Nutzer*).

Ich benutze so ein Plugin inzwischen schon lange. Damit angefangen habe ich weil es viele Webseiten mit der Werbung schlichtweg übertrieben haben. An jeder Stelle kamen Pop-Up Fenster hoch und die Inhalte konnte man teilweise nur noch schwer lesen. Um einzelne Besitzer von Webseiten für die kostenlosen Inhalte zu unterstützen, habe ich diese dann manuell freigegeben. Sei es bei kleinen Webseiten, Blogs oder bei großen Webseiten wie Youtube und Twitch.

Leider ist mir in den letzten Monaten jedoch immer wieder aufgefallen das ich das bei viel zu wenig Webseiten mache und eigentlich auch nur bei Seiten die ich häufig besuche. Das finde ich falsch. Denn gerade die kleinen Webseiten haben die Unterstützung besonders nötig. Zudem hat sich in den letzten Jahren einiges geändert. Es gibt nur noch verhältnismäßig wenig Webseiten die es wirklich übertreiben. Und da finde ich meine jetzige Herangehensweise nicht mehr Zeitgemäß und auch nicht richtig.

Aus diesem Grund habe ich mich auf die Suche nach einer Lösung gemacht. Fündig geworden bin ich bei dem oben genannten Plugin Adblock. In den Einstellungen “Eigene Filter” kann man einstellen “Werbung auf allen Seiten anzeigen, außer auf diesen Domains…”. Sobald man hier eine Webseite eingetragen hat auf der man die Werbung blockieren möchte, wird auf allen anderen Seiten die Werbung angezeigt.

adblock werbung auf allen seiten anzeigen außer auf

Falls man nun auf einer Webseiten landen sollte die es mit der Werbung übertreibt, kann man diese schnell und mit nur zwei Klicks zu der oben genannten Liste hinzufügen.

adblock auf seite aktivieren

Ich bin gespannt wie meine Erfahrungen mit dieser Umstellung sein werden. Ich bin mir aber ziemlich sicher das ich es nicht bereuen werde. Mein schlechtes Gewissen ist auf jedenfall weg. :)

Kleine Info zum Schluss: Im Schnitt haben 65% der Besucher meiner Seite Werbung blockiert. Mich stört das nicht da diese Webseite ein Hobby von mir ist. Ich finde es aber interessant und wollte es euch nicht vorenthalten. :)

*) Nach eigenen Angaben in den Beschreibungen der Plug-ins -> Siehe hier für Adblock Plus und hier für Adblock