SSH (Secure Shell) ist sowohl ein Protokoll als auch eine Reihe Von Anwendungen um dieses zu nutzen. Es wird genutzt um eine Verschlüsselte Verbindung zu entfernten Rechnern aufzubauen. Diese Verbindung kann dann quasi beliebige Daten transportieren, wird aber zumeist dafür benutzt eine Remotekonsole zu steuern oder Dateien zu übertragen (Secure Copy, SCP genannt). Das Protokoll ist auf OSI Schicht 7 angesiedelt und kommuniziert Standardmäßig (nach den Vorgaben der IANA) über Port 22.
Obwohl SSH an sich schon sehr Sicher ist, kommt es doch gelegentlich zu erfolgreichen Angriffen die es dem Angreifer dann natürlich unter Umständen ermöglichen Root-Rechte zu erlangen. Häufigste Ursache für den erfolgreichen Angriff sind in der Praxis meist schwache Passwörter und falsch konfigurierte SSH Daemons. Aus diesem Grund möchte ich hier darauf eingehen wie man den SSH Zugriff gegen diese beiden Faktoren härten kann.
Weiterlesen: “SSH, denn sicher ist sicher”
Um euch das stundenlange suchen, Apache doku lesen und rumprobieren zu ersparen, werde ich euch hier verraten wie man vor der HTTP-Authentifizierung zu HTTPS wechselt.
Das eigentliche Problem der Basic-Authentication ist, dass diese Passwörter und Nutzernamen im Klartext übertragen werden. Leider ist das ja nicht immer gewollt und unter umständen sehr unsicher.
So hier nun zur Konfiguration. Am einfachsten klappt es in dem Ihr, im zu schützenden Verzeichnis, eine .htaccess Datei anlegt und folgenden Inhalt hinzufügt:
AuthUserFile /var/www/domain.tld/secret/.htpasswd
AuthType Basic
AuthName "Secret Site"
require valid-user
SSLrequireSSL
ErrorDocument 403 /redirect.php
Die ersten 4 Einträge sollten klar sein. Mit SSLrequireSSL erzwingt man denn Zugriff via HTTPS. Wird die Domain nur mit HTTP aufgerufen, antwortet der Apache mit einem 403 Fehler. Dies fangen wir mit dem Eintrag ErrorDocument 403 /redirect.php ab. In diesem steht nur:
<?php
header('Location: https://www.domain.tld/secret/');
?>
So leiten wir alle normalen HTTP anfragen direkt auf HTTPS um. Danach erfolgt die Basic Authentication. Und schon wird die Authentifizierung nur noch über HTTPS abgewickelt.
Tolle Sache