Der Artikel befasst sich mit der Zugriffskontrolle auf Serverebene (Apache) schon bevor der Angreifer zum Login der Webseite gelangt.
Diese hier beschriebene Zugriffskontrolle soll ein guter Kompromiss zwischen Sicherheit und Komfort und administrativem Aufwand sein.
Geregelt wird dies über die .htacces und .htpasswd Dateien.
Viele CMS haben einen Backendbereich den es vor lästigen Zugriffsversuchen zu schützten gilt.
Der Backendbereich ist durch das CMS immer via Benutzernamen und Passwort geregelt.
Z.B. bei Joomla ist der Admin-Bereich auf einen fixen Unterordner bsp-homepage.de/administrator/ festgelegt. Diese kann also nicht geändert werden und ist somit dem Zugriff aus dem Internet erstmal offen. Dies kann zu Bruteforce Attacken führen und mache Provider legen dann den Zugang für ein paar Minuten lahm.
Ein einfacher Ansatz ist eine Beschränkung auf bestimme Benutzer oder freigegebene IP-Adresse bzw. IP-Bereiche.
Hieraus ergeben sich ein paar (kleine) administrative Problemchen.
A.) IP-Bereichsfreigabe
Hat ein Admin immer die selbe öffentliche IP dann kann nur diese freigegeben werden. (Diese Szenario ist äußert unwarscheinlich) bei einem Tarif für einen privaten DSL zugang.
-> Freigabe für diese IP z.B. allow from 93.192.15
Freigabe für IP-Bereiche. In der Ripe-Liste sind alle IP-Bereiche der jeweiligen Provider samt Bereiche aufgelistet
-> Freigabe für die Deutsche Telekom AG (Auszug)
allow from 93.192.0/10
allow from 62.154.0.0/16
Diese Liste kann dann immer wenn ein IP-Bereich eines Providers noch nicht erfasst ist um diesen Eintrag erweitert werden.
B.) Benutzername & Passwort
Wenn also außerhalb der IP-Bereichsfreigabe auf den Adminbereich Zugriff gewährt werden soll, eine Benutzerabfrage auslösen.
-> Benutzerfreigabe via .htwaswd
1. Möglichkeit ein einziges Masterpasswort auf Serverebene für den Backendbereich zu generieren und dieses dann alles Benutzer zukommen lassen.
2. In der Praxis wird es nicht durchsetzbar sein 2 verschiede Passwörter pro Benutzer zu vergeben. Hierzu benötigt es ein wenig mithilfe der Benutzer.
Einfach über diese Maske ein Passwort-Eintrag erzeugen und dem Admin zum Eintrag in die .htpasswd zukommen lassen.
Hier ein Passwortgenerator: https://htpasswdgenerator.de/
Das Ergebis könnte dann in etwa so aussehen:
.htaccess
AuthName "Adminbereich"
Order deny,allow
Deny from all # Erlaubte IP-Bereiche # Deutsche Telekom AG (Auszug IP-Bereiche) # allow from 91.0.0.0/10 allow from 93.192.0.0/10 # IP-Bereiche ist nicht gültig dann Benutzername abfragen AuthType Basic AuthUserFile /var/www/kundexyz/html/administrator/.htpasswd require valid-user satisfy any
.htpaswd
nurichdarfrein:$1$A2m8L7dS$NVgiwFpivjqTKbwsru.Mi0