Let’s Encrypt – Schnell zu deinem SSL Zertifikat

Let’s Encrypt – Schnell zu deinem SSL Zertifikat

Eine Webseite im Zeichen des “geschlossenen Schloss” – So ähnlich könnte dieser Post hier anfangen. SSL Verschlüsselung für Webseiten ist nicht gerade die neueste Methode eine Verbindung zwischen einem Client und einem Webserver zu sichern. Doch es ist immer noch eine der beliebtesten. In Firefox und Chrome wird diese Information z.B. immer mit einer kleinen grünen Information vor dem Link angedeutet.

SSL Zertifikate sind allerdings leider auch oftmals recht teuer, je nachdem wie sicher man es haben möchte. Neben Zertifizierungstellen, welche kostenlose SSL Zertifikate für non-Profit User herausgeben, gibt es nun auch noch eine weitere Alternative. Sie richtet sich an Private-Blogs oder aber an kleine selbstständige, welche über die SSL Verbindung etwas Sicherheit suggerieren möchten. Der Service heißt “Let’s Encrypt” und ist aktuell in der “Open-Beta”.

Let's Encrypt Logo

Let’s Encrypt ermöglicht es einem Webmaster selbst, schnell und einfach eine Domain für ein “kleines” SSL Zertifikat zu authentifizieren. Klein sag ich deshalb, weil die Verschlüsselung “nur” SHA-256 ist. Sie ist allerdings trotzdem zu einem gewissen Grad sicher!

Um selbst in den Genuss eines selbst signierten Zertifikats zu kommen, müsst ihr folgendes machen.

$ git clone https://github.com/letsencrypt/letsencrypt
$ cd letsencrypt
$ ./letsencrypt-auto --help

Der letzte Befehl führt die eigentlich Installation aus. Ihr kommt in eine “Blue-Screen” Maske welche euch schritt für schritt durch die Installation führt. Dabei ist es z.B. wichtig, dass ihr eure richtige E-Mail Adresse an gebt, da diese bei einer Domain-Registrierung in der Registrierungsstelle hinterlegt wird.

Ihr habt dann entweder die Möglichkeit nur eine Domain zu erstellen, oder ihr macht es gleich mit mehreren parallel :).

# 1. Eine Domain
./letsencrypt-auto certonly --standalone -d example.com -d www.example.com

# 2. Multi-Domain
./letsencrypt-auto certonly --webroot -w /var/www/example -d example.com -d www.example.com -w /var/www/thing -d thing.is -d m.thing.is

Die Zertifikate laufen aktuell noch nach 4 Monaten aus. Wer danach eine Erneuerung des Zertifikats als Ziel an strebt, der kann dann einfach noch einmal den “letsencrypt” Befehl mit den selben Parametern ausführen. Danach wird das Zertifikat erneut um 4 Monate erneuert.

Nach dem erstellen, muss das Zertifikat dann nur noch in die vHost eingebunden und der Webserver einem Reload/Restart unterzogen werden.

Wenn ihr mal ein Zertifikat zurückziehen möchtet, führt ihr einfach diesen Befehl aus

$ letsencrypt revoke --cert-path example-cert.pem

Sicherer Mailverkehr – Posteingang

Sicherer Mailverkehr – Posteingang

Wir alle kennen die E-Mail, wir alle schreiben sie. Der eine vielleicht mehr, der andere weniger. Es gibt sogar Sänger, welche über Ihre E-Mails zum “checken” singen. Doch genug um den Draht gesprochen. Das Thema hier ist, wie ich meinen Posteingang sicherer machen kann, dass ich weniger Spam und Viren in die Postfächer weiter leite.

Zum Schutz gibt es einige Methoden, welche aber auch sehr wirksam sind. So helfen neben den Spamlisten der bekannten Firmen wie “Spamhaus” und Co. aber auch die Greylisting Funktionen, welche Spam-Bots auf ihre Art aussperren.

Die Grundlage sollte das sogenannte “Greylisting” sein.

Das Prinzip vom Greylisting ist so einfach, wie auch praktisch. Jede eingehende E-Mail wird nach einem Filterlisten-Verfahren kontrolliert. Das bedeutet, dass jede E-Mail, welche dem Greylisting nicht bekannt ist, geblockt wird. Die Mail wird mit der Information

Dec 10 15:00:56 butler postgrey[3211]: action=greylist, reason=new, 
client_name=domain.tld, client_address=8.8.8.8, sender=name@domain.tld, 
recipient=s.lewandowski@it-info.org

abgewiesen.

  • Mail wird vom Server abgelehnt, wenn Adresse im Greylisting nicht bekannt
  • Mail wird vom Server abgelehnt, wenn Adresse im Blacklisting vorhanden
  • Mail wird vom Server angenommen, wenn Adresse bekannt (und Zeit X zwischen dem ersten Versuch und Jetzt liegt)

Installation:

  1. Installieren von “postgrey” (apt-get install postgrey / @debian)
  2. Hinzufügen der Postgrey Policy zum Postfix. Dafür muss die “main.cf” (/etc/postfix/main.cf) bearbeitet werden und  “check_policy_service inet:127.0.0.1:10023 am Ende zum Befehl “smtpd_recipient_restrictions” hinzugefügt werden.
  3. Neustart des Postfix sollte die Funktionen aktivieren und ihr solltet in der Mail Log (/var/log/mail.log) Zeilen wie die oben genannte sehen

Eine Weitere Methode ist die Möglichkeit, E-Mails anhand von “Blacklisten” aus zu sortieren. Diese Listen sind möglichst aktuell und werden auch stetig aktualisiert. Eine E-Mail wird hierbei vorgehalten, bis sie durch die Mechanismen mit den eingetragenen Blacklisten kontrolliert wurde. Eingetragen wird eine Blackliste wie folgt:

submission_recipient_restrictions = [...] reject_rbl_client zen.spamhaus.org, reject_rbl_client ix.dnsbl.manitu.net, reject_rbl_client bl.spamcop.net, [...]

In diesem Beispiel sind 3 Spamlisten eingetragen. Wie auch Tobias sind auch wir mit diesen dreien am besten gefahren. Wer mehr oder andere Listen nutzen möchte, kann sich natürlich auch ein wenig bei Wikipedia umschauen. Dort gibt es eine große Liste von Blacklisten, welche genutzt werden können.

Ein Block über eine Blackliste würde z.B. so aussehen.

554 5.7.1 Service unavailable; Client host [8.8.8.8] blocked using zen.spamhaus.org; http://www.spamhaus.org/query/bl?ip=8.8.8.8

Wer sich noch weiter informieren möchte, kann dies natürlich auf dem Blog von Tobias, welcher noch etwas tiefer auch in an Anti-Virus Bereich vom Spamassassin geht.

Kommen wir zum zweiten Teil von “Wie sicher ich meinen Server”. Ein Teil der Sicherheit, bzw. Sicherung ist auch die Information, dass etwas am Server ist. Diese bekommt man – wenn auch leider sehr mühselig – über die Log-Dateien. Es gibt aber Abhilfe von einem kleinen Tool, dass auf den Namen “Logwatch” hört. Logwatch bündelt alle Informationen bezogen auf einen vorgegebenen Zeitraum und liefert sie frei Haus via Mail.

Die Einrichtung ist fast genau so einfach, wie die Installation:

[code lang=”plain”]
"Debian"
# aptitude install -y logwatch
"RedHat EL"
# yum install -y logwatch
[/code]

Die Installation läuft nun durch und richtet die Grundeinstellungen ein. Wir müssen nun noch einige Einstellungen in der logwatch.conf einstellen, damit der Report auch so an kommt, wie wir es wünschen.

[code lang=”plain”]
nano /usr/share/logwatch/default.conf/logwatch.conf
[/code]

  1. Das “MailTo” ändern von root auf die empfangsadresse – bsp. webmaster@domain.tld
  2. Das “MailFrom” ändern in einen Absender, der bekannt ist
  3. Danach wird die “Range” eingestellt -> yesterday ist der letzte Tag
  4. Bei den Services kann entweder “All” gelassen werden oder jeder Service einzeln untereinander auflisten

Zum testen danach kann z.B. dieser Befehl von der Konsole abgefeuert werden

[code lang=”plain”]
logwatch –detail Low –mailto email@address –service http –range today[/code]

(Bild: freerangestock)

Heute wieder einmal eine kleine Meldung aus der Reihe “Wie sicher ich meinen Server”.

Es geht heute um den Root-Login, welcher gerne genutzt wird um eine BruteFoce auf einen Server aus zu führen. Dabei wird versucht durch riesige Passwortdateien das Passwort des Root-Nutzers zu knacken um somit auf den Server zu gelangen.

Der Einfachste Weg ist es, den Root-Nutzer für externe Logins komplett zu sperren. Der Login als Root ist dann immer noch möglich, aber nur noch vom Server selbst z.B. mit “sudo su” wenn man eingetragenes Mitglied der sudoers ist. Aber hier ist erst einmal der Weg, wie man den Root-Nutzer für externe Logins deaktivieren kann.

[code lang=”plain”]
# nano <span style="color: #000000;">/etc/ssh/sshd_config</span>

PermitRootLogin yes
tauschen mit
PermitRootLogin no

# <code class="bash plain" style="color: black !important;">/etc/init</code><code class="bash plain" style="color: black !important;">.d</code><code class="bash plain" style="color: black !important;">/ssh</code><code class="bash plain" style="color: black !important;">reload</code>
[/code]

Nun ist der direkte RootLogin gesperrt. Euch fallen Versuchte RootLogins mit Fehlern z.B. über die Logwatch auf, welche Informationen aus den Logdateien bündelt und in einer E-Mail täglich zusendet, wenn man das möchte.

(Bild: freerangestock)