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.