Webspace (Wordpress, Owncloud, Forum) absichern - ggf. per SSL

  • Hallo zusammen,


    da ich vor kurzem durch ein Wordpress-Script befallen wurde, würde ich meinen Webspace gern noch etwas absichern.


    Für Wordpress habe ich den Adminbereich mit den folgenden Maßnahmen abgesichert: http://playground.ebiene.de/ad…h-in-wordpress-schuetzen/
    Als Forum habe ich ein wbb3, das ist eigentlich immer recht sicher.


    Nun habe ich auch owncloud im Einsatz und wollte anfragen, wie ich das noch zusätzlich absichern könnte? Die Dateien scheinen schon in einem geschützten Ordner zu liegen und sind nur per Login erreichbar.


    Grundsätzlich würde mir als weitere Absicherung noch ein SSL Zertifikat einfallen, damit ich daten per https verschlüsselt übertragen kann. Meine Fragen zum SSL:

    • Was meint ihr zum Einsatz von SSL Zertifikaten?
    • Welches Zertifikat brauche ich (Problem ist, dass ich mehrere Domains im Einsatz habe - Zählt das Zertifikat nur für eine Domain?!)
    • Ist die Verbindung zu Owncloud über eine https Verbindung sicherer?
    • Hat so ein Zertifikat weitere Auswirkungen?


    Weiterhin möchte ich eigentlich gern Backups von den E-Mail Konten machen. Wie kann ich das machen?


    Danke für eure Hilfe.

  • Also es muss generell erstmal zwischen 2 Varianten der Angriffe unterschieden werden:

    • Angriffe auf den Admin-Bereich
    • Angriffe auf die Anwendung selbst über den öffentlichen Bereich


    Zu 1.:
    Das wichtigste ist natürlich zu verhindern, dass jemand an deine Zugangsdaten kommt. Es gelten also die wichtigsten Passwort regeln: nicht zu einfach, regelmäßig ändern, nicht aufschreiben, etc...
    Eine SSL-Verschlüsselung der HTTP-Verbindung ist schon zu empfehlen, da diese verhindert das jemand der in deinem (W)LAN ist deinen Traffic und damit dein Passwort mitlesen kann. (Besonders brisant bei öffentlichen WLAN-HotSpots). Den Admin-Bereich zu verstecken (wie für Wordpress beschrieben) kann natürlich helfen einen Angreifer auszubremsen, sollte aber nicht mit "Sicherheit" verwechselt werden (Security through obscurity – Wikipedia).
    Weitere Möglichkeiten einen Administrations-Bereich abzusichern ist den Zugriff darauf zu beschränken, z.B. durch ein VPN (und dann via AccessRules nur das VPN-Intranet zuzulassen) oder auch mittels SSL-Client-Zertifikat (das bedeutet du brauchst auf dem Rechner ein ganz bestimmtes Zertifikat, das wie ein PrivateKey bei SSH funktioniert).


    Zu 2.:
    Die Anwendung selbst, die öffentlich zugänglich sein muss, wie der Wordpress-Blog selbst, lassen sich nur schwer absichern. Denn selbst wenn der Webseiten Zugriff SSL-Verschlüsselt ist, kann jeder Angreifer ja weiterhin auf die Webseite Zugreifen und eventuelle Exploits ausnutzen. Wichtigste Sicherheitsmaßnahme sind Updates: Sowohl beim Server (Distro, Apache, etc) als auch bei den verwendeten Anwendungen (Wordpress).
    Dann gibt es noch PHP-Einstellungen (z.B. open_basedir) und Extension (suhosin; bin kein persönlicher Fan von, aber kann helfen) die gewisse Angriffe gegen PHP-Webanwendungen verhindern können, oder die Auswirkungen verringern können.
    Mittels PHP via (f)CGI im Apache (statt als Modul) ist es auch möglich jede PHP-Anwendung als ein andereren Linux-Benutzer auszuführen, so lassen sich zusätzlich die Auswirkungen im Angriffsfall einschränken.


    Nun noch mal zu SSL (https) Speziell:
    Die verwendung eines SSL-Zertifikat hat grundlegend 2 Aufgaben: 1. Geben Sie dem Benutzer die Sicherheit das er mit dem richtigen Server spricht, denn er kann sehen für wen das Zertifikat ausgestellt ist und 2. es sorgt dafür das die gesamte HTTP-Kommunikation (zwischen diesem Server und dem Client) verschlüsselt wird. Letzteres ist wie schon erwähnt dann wichtig wenn Daten nicht mitgelesen werden sollen. Es empfiehlt sich daher für Administrations-Bereiche und anderen Anwendungen wie ownCloud, phpMyAdmin, Webmailer, etc. den Traffic zu verschlüsseln. Würdest du z.B. ownCloud ohne SSL in einem öffentlichen WLAN (z.B. bei Starbucks oder der DB) verwenden, könnte jeder in Funk-Reichweite nicht nur deine Login-Daten abfangen ohne das du es merkst, sondern auch alle hoch und runtergeladenen Dateien mitlesen.
    Der 1. Punkt ist dagegen nicht so relevant da viele Endnutzer leider sowieso nicht darauf achten.


    Es ist möglich kostenlos selbst ein SSL-Zertifikat zu erstellen und für beliebige Domains zu verwenden. Dazu gibt es unzählige Tutorials. Der nachteil ist dabei nur, dass das Zertifikat von keiner authentifizierten Stelle unterschrieben wurde und man beim Aufruf einer Seite die mit diesem Zertifikat verschlüsselt ist, eine Warnmeldung im Browser erscheint, die bestätigt werden muss (bestimmt schon häufig gesehen). Mir reicht dies für ownCloud, phpMyAdmin und roundCube-mail aus, da diese sowieso fast nur von mir verwendet werden. Du kannst zwar so viele Zertifikate erstellen wie du willst, aber da die SSL-Verschlüsselung stattfindet bevor der Apache weiß welcher VHost angesprochen wird, kannst du nur ein Zertifikat pro IP-Adresse verwenden. Willst du statt einem selbst erstelltem Zertifikat lieber ein echtes verwenden, das von deinem Browser ohne Warnung akzeptiert wird, musst du eines von einem entsprechenden Anbieter kaufen. Netcup bietet hier ein echt fairen Preis für 1 Jahr an. Dieses Zertifikat wäre dann jedoch auf genau eine Domain beschränkt (Zertifikate mit Wildcard-Subdomain, also für *.domain.tld kosten ein Schweine Geld). Wenn du eine Domain über https aufrufst die vom Zertifikat nicht abgedeckt ist, erscheint eine Warnmeldung (ähnlich der beim selbst erstellten Zertifikat), es macht daher beim selbst erstellten Zertifikat nicht viel aus für welche Domain dies erstellt wurde. Die Verschlüsselung des Traffics ist in jedem Fall gegeben, egal ob selbst erstellt, gekauft, richtige Domain oder falsche Domain.


    So, das sollte dir einen groben Überblick verschaffen und dir dabei helfen zu wissen wonach du als nächstes Googlen möchtest oder du Detail-Fragen zu stellen magst.

  • Vielen Dank für deine ausführliche Antwort.


    Bei dem SSL-Zertifikat werde ich mal versuchen ein eigenes zu erstellen (ich nutze die Daten ebenfalls wie du selbst - dadurch ist die Bestätigung auch nicht so schlimm).


    Als Webhosting-Nutzer kann ich das aber im Confixx nirgends angeben oder? Demzufolge müsste ich eins bei Netcup kaufen oder übersehe ich die Funktion irgendwo?

  • Ich habe leider keine Ahnung von Confixx, aber prinzipiell bietet dies auch Möglichkeiten SSL-Zertifikate einzustellen. Ob dies ein selbst signiertes oder gekauftes ist, sollte dabei keine Rolle spielen.
    Es gibt jedoch, wie bereits beschrieben, Einschränkungen aufgrund der IP-Adresse. Wenn du deine IP-Adresse mit anderen Webhosting-Nutzern teils, also keine exklusive IP-Adresse besitzt, dann wird es dir nicht möglich sein SSL einzurichten, da Zertifikate nur pro IP-Adresse eingerichtet werden können.

  • Ich habe leider keine Ahnung von Confixx, aber prinzipiell bietet dies auch Möglichkeiten SSL-Zertifikate einzustellen. Ob dies ein selbst signiertes oder gekauftes ist, sollte dabei keine Rolle spielen.
    Es gibt jedoch, wie bereits beschrieben, Einschränkungen aufgrund der IP-Adresse. Wenn du deine IP-Adresse mit anderen Webhosting-Nutzern teils, also keine exklusive IP-Adresse besitzt, dann wird es dir nicht möglich sein SSL einzurichten, da Zertifikate nur pro IP-Adresse eingerichtet werden können.

    Vielen Dank für deine Hilfe.


    Im Confix kann ich das leider nicht einstellen (geht nur bei Reseller). Ich habe für die Domain mit dem Datenaustausch (E-Mails, Dateien, Owncloud etc.) ein SSL Zertifikat bestellt. Da ich auch mit dem Handy darauf zugreife, erscheint es mir so sicherer zu sein. Mal schauen, ob das alles funktionieren wird. Bei den Webspace-Tarifen müssen die Zertifikate von netcup eingerichtet werden.


    Update: Die Einrichtung eines Zertifikats bei Webspace-Tarifen kostet 40€. Ich habe es nun über einen SSL-Proxy gelöst.