• Gelöst jepp94

    (@jepp94)


    Guten Morgen,

    ich habe mir ein Webhosting Paket gekauft und richte gerade alles entsprechend ein, damit ich mit dem Bauen der Website starten kann.
    Natürlich möchte ich nicht, dass sich jemand unbefugt Zugang verschafft und finde die 2 Faktor Authentifizierung eine tolle Sache.

    Ich habe gelesen, dass man die 2 Faktor Authentifizierung für WordPress User einrichten kann (das werde ich tun):
    https://de.wordpress.org/plugins/two-factor/
    https://www.ionos.de/digitalguide/hosting/blogs/wordpress-mit-google-authenticator-schuetzen/

    Nun möchte ich meine Website aber nicht öffentlich machen, sondern direkt auf der Hauptseite eine Loginmaske erstellen. Erst wenn man sich da einloggt, soll man auf die eigentliche Website kommen.
    Dafür habe ich auch Anleitungen gefunden:
    https://kinsta.com/de/blog/wordpress-seite-passwort-schutzt/

    Ich möchte aber nicht nur eine Passwortabfrage, sondern auch noch eine 2 Faktor Authentifizierung. Am liebsten mit einem Code über den Google Authentificator:
    https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&hl=de&gl=US

    Kann mir jemand sagen, ob und wie das geht?

    Habt ihr außerdem noch Tipps für mich?
    Ich bin ziemlicher Anfänger auf dem Gebiet, also bitte lieber ein paar Wörter mehr, als zu wenig schreiben. Danke!

    Den Zugang zu meinem Webhoster habe ich schon mit einer 2 Faktor Authentifizierung (Google Authentificator) gesichert.
    Die WordPress User werde ich (nach Anleitung oben) ebenfalls damit sichern.

    FTP und E-Mail müsste ich auch noch damit sichern. Aber das hat nichts mit WordPress zu tun.

    Gruß,
    jepp

Ansicht von 15 Antworten – 1 bis 15 (von insgesamt 17)
  • Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    Du kannst mit dem Plugin Restricted Site Access Inhalte deiner Website nur angemeldeten Benutzer/-innen zugänglich machen. Wenn du dann eine 2-Faktor-Authentifikation eingerichtet hast (ich nutze selber auch gerne Two Factor), greift das auch für diese Anmeldung.

    Thread-Starter jepp94

    (@jepp94)

    Ich danke dir sehr!
    Die beiden Plugins werde ich runterladen und installieren. Danach gebe ich dir ein Feedback. Wahrscheinlich schaffe ich das heute nicht mehr.

    Das scheint aber genau das Richtige für mich zu sein!

    Thread-Starter jepp94

    (@jepp94)

    Hi,
    ich hab es jetzt gerade gemacht und es funktioniert perfekt.
    Danke!

    Kannst du mir noch sagen, wie ich die Anmeldeseite anders gestalten kann?

    Danke und Gruß

    Thread-Starter jepp94

    (@jepp94)

    Hi,
    ich hab mich vorhin zu früh gefreut.

    Wenn man sich anmeldet, ist man danach bei WordPress angemeldet. Das möchte ich nicht, Ich möchte, dass man nach Anmeldung Zugriff auf die Website hat und die Inhalte betrachten kann.

    Hallo,
    Lösungsansätze findest du z. B. in dem folgenden Beitrag. In dem Beitrag hat Bego u. a. das Plugin Password Protected empfohlen. Das Plugin ist zwar schon länger nicht aktualisiert worden, das muss aber kein Problem sein.
    Eine 2-Faktor-Authentifikation dürfte in dem von dir beschriebenen Fall für den Zugang zu einer Webseite ohne Anmeldung allerdings nicht möglich sein.
    Viele Grüße
    Hans-Gerd

    Thread-Starter jepp94

    (@jepp94)

    „Eine 2-Faktor-Authentifikation dürfte in dem von dir beschriebenen Fall für den Zugang zu einer Webseite ohne Anmeldung allerdings nicht möglich sein.“

    Ginge es denn mit Anmeldung?

    Ginge es denn mit Anmeldung?

    ja sicher. Allerdings landen die Benutzer dann im Dashboard. Das wolltest du ja gerade nicht.
    So ganz kann ich das allerdings nicht nachvollziehen: Warum reicht dir so etwas wie das genannte Plugin Password Protected denn nicht aus? – Wenn du ein entsprechend starkes Passwort verwendest, sollte das doch reichen.
    Viele Grüße
    Hans-Gerd

    Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    Wie der Name schon sagt, ist eine 2-Faktor-Authentifikation eine Authentifikation mit zwei getrennten Authentifizierungsmethoden, also z.B.

    • Passwort und One-Time-Password
      (errechnet durch App wie Google Authenticator)
    • Passwort und per E-Mail erhaltener Token
    • Passwort und Eingabe eine UF2-Keys (z.B. Yubikey)

    Der zweite Faktor ist immer personalisiert: Es wird das One-Time-Password-Geheimnis eines einzelnen Benutzers verwendet, dessen E-Mail-Adresse oder dessen persönlicher UF2-Key.

    Wenn du also eine komplette Website sperren und eine 2-Faktor-Authentifikation erreichen möchtest, brauchst du mehrere registrierte Benutzer (oder zumindest einen, siehe unten).

    Die müssen nach der Anmeldung nicht zwangsläufig im Backend landen. Für eine automatische Weiterleitung zur Startseite kannst du z.B. diese Funktion mit dem Plugin Code Snippets im Backend eintragen:

    function wpdocs_my_login_redirect( $url, $request, $user ) {
        if ( $user && is_object( $user ) && is_a( $user, 'WP_User' ) ) {
            if ( $user->has_cap( 'administrator' ) ) {
                $url = admin_url();
            } else {
                $url = home_url();
            }
        }
        return $url;
    }
     
    add_filter( 'login_redirect', 'wpdocs_my_login_redirect', 10, 3 );

    (Quelle: WordPress Dokumentation)

    Für das Intranet eines Kaninchenzüchtervereins könntest du auch ein für alle Anwender genutztes Account anlegen und den Mitgliedern mitteilen, dass sie als Benutzername „Mitglied“, als Passwort „Rudi-der-Rammler“ und als Geheimnis für das One-Time-Password einen beigefügten QR-Code verwenden sollen. Damit jetzt keiner auf die schlaue Idee kommt, das Passwort zu ändern (und damit den Zugang für andere Mitglieder zu sperren), kannst du das Plugn Plainview Protect Passwords nutzen (ist schon etwas älter und nicht aktiv gepflegt, sollte aber funktionieren).

    Möchtest du keine individuellen Nutzer, gibt es auch keine 2-Faktor-Authentifikation. Hier kannst du das von Hans-Gerd erwähnte Plugin Password Protected nutzen. Reicht dir das nicht, kannst du zusätzlich die gesamte Website mit einem .htpassword schützen, das ebenfalls eine Kombination aus (willkürlich gewähltem) Nutzernamen und Passwort abfragt. Hierfür brauchst du dann keine Benutzer in WordPress anlegen. Dazu trägst du in der .htaccess oberhalb des von WordPress eingefügten Blocks sinngemäß folgendes ein:

    AuthType Basic
    AuthName "Passwortgeschützter Bereich"
    AuthUserFile /[pfad-zu-deinem-webstammverzeichnis]/.htpasswd
    require valid-user Mitglied

    Mit einem Passwort-Generator (z.B. https://hostingcanada.org/htpasswd-generator/) kannst du dann das Passwort in einen Hashwert übertragen, den du in einer neuen Datei .htpasswd einträgst.

    Thread-Starter jepp94

    (@jepp94)

    @ Hans-Gerd: natürlich ginge es mit einem starken Passwort. Aber das sehe ich persönlich als komplizierter (bei der Eingabe) und unsicherer an.

    @ Bego: Das geht in die richtige Richtung.
    Was muss ich in dem Code noch anpassen?
    Ich kann nicht programmieren, frei übersetzt steht da
    wenn der (angemeldete) User ein Administrator ist, soll er zur admin_url kommen, wenn er kein Administrator ist, soll er zur home_url kommen.

    Mein Plan ist derzeit:
    2 Admins (die sollen nach dem Login zum WordPress Backend kommen). Das funktioniert, beide haben den QR Code gescannt und kommen mit Namen, Passwort + 6stelligem Code rein.

    Ich (Websitebetreiber) habe es wie bei den Admins eingerichtet. Das funktioniert auch mit Namen, Passwort + 6stelligem Code.

    Dann habe ich einen Testbenutzer angelegt, der soll nach dem Login (Name, Passwort + 6stelliger Code) nicht ins Backend kommen. Wenn ich das für einen zum Laufen bekomme, dann lege ich weitere User an.

    Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    Was muss ich in dem Code noch anpassen?
    Ich kann nicht programmieren, frei übersetzt steht da
    wenn der (angemeldete) User ein Administrator ist, soll er zur admin_url kommen, wenn er kein Administrator ist, soll er zur home_url kommen.

    Ja, genau. Was gefällt dir daran nicht? 🙂

    Thread-Starter jepp94

    (@jepp94)

    Mich stört nichts. Ich wollte nur wissen, ob ich richtig verstanden habe, was da gemacht wird.

    Was sind denn die URLs?
    Die könnte ich als (eingeloggter) Admin einfach testen (copy + paste in die Adressleiste).
    Kannst du das bitte für http://www.musterwebsite.de posten?

    Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    @ Hans-Gerd: natürlich ginge es mit einem starken Passwort. Aber das sehe ich persönlich als komplizierter (bei der Eingabe) und unsicherer an.

    Hm, das sehe ich entschieden anders.

    Ein starkes Passwort braucht nur ausreichend lang sein und eine gewisse Entropie haben.

    type-quickly-prove
    above-firm-left
    like-voice-entered
    musik-tannenzapfen-fahrrad

    sind Passwörter, die nicht kompliziert zu tippen, aber für ein Brute-Force-Skript wegen der Länge des Passworts immer noch schwer zu knacken sind. Leuten, die technisch weniger versiert (oder interessiert?) sind, die Anwendung einer OTP-App zu erklären (und vorauszusetzen, dass jeder über ein entsprechendes Gerät zur Nutzung verfügt), dürfte komplizierter werden.

    Ich halte die Nutzung einer 2-Faktor-Authentifikation für einen breiten Benutzerkreis mit Abonennten-Accounts für ziemlich vermurkst. (Webshop ist was anderes!)

    Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    Kannst du das bitte für http://www.musterwebsite.de posten?

    Uhm, nein? 😀

    home_url() ist die URL der Startseite deiner eigenen WordPress-Website.
    admin_url() ist die URL zum Backend deiner eigenen WordPress-Website.
    home_url('/mitglieder') ist die URL zur Seite „Mitglieder“ im Frontend (vorausgesetzt, du hast die Permalinks auf „Beitragsname“ gesetzt).

    Du brauchst die Funktion nicht mit einer anderen URL ersetzen.

    Wie wär’s, wenn du das einfach mal ausprobierst? 😀

    Du musst nur das Plugin Code Snippets installieren und den von Bego geposteten Code da als Snippet zu speichern. Das hat mit der URL nichts zu tun.

    Bego war flotter und hat das exakter beschrieben 🚀

    Thread-Starter jepp94

    (@jepp94)

    Hi,

    ich habe mich gerade als Admin eingeloggt, das Plugin installiert und aktiviert.
    Danach habe ich bei Plugins bei „Code Snippets“ auf „Snippets“ geklickt und oben auf „Neu hinzufügen“ geklickt.

    Titel (wird egal sein): Admin -> Adminbereich, andere User -> Home URL

    Code:

    function wpdocs_my_login_redirect( $url, $request, $user ) {
        if ( $user && is_object( $user ) && is_a( $user, 'WP_User' ) ) {
            if ( $user->has_cap( 'administrator' ) ) {
                $url = admin_url();
            } else {
                $url = home_url();
            }
        }
        return $url;
    }
     
    add_filter( 'login_redirect', 'wpdocs_my_login_redirect', 10, 3 );

    x Snippet überall ausführen

    Danach habe ich mich ausgeloggt und als Admin wieder eingeloggt:
    https://www.domain.com/wp-admin/
    Da in ich im WordPress Backend.

    Als Testuser (Rolle: Abonnent) lande ich hier:
    https://www.domain.com/

    Die Werkzeugleiste habe ich ausgeblendet.

    Damit lande ich als Testuser nach dem Einloggen auf der Website.
    Super. Danke sehr!!!

    @ Bego: ich möchte mit dir nicht über die Sicherheit diskutieren. Du bist hier Admin und hast viel mehr Ahnung als ich. Bei der Website wird es nur einen sehr kleinen Kreis an Usern geben. Ein Handy hat jeder von denen. Der Google Authentificator ist kinderleicht zu bedienen (Einrichtung ist auch easy). Ich fühle mich damit sicherer.

Ansicht von 15 Antworten – 1 bis 15 (von insgesamt 17)

Das Thema „Zugang Website nur mit 2 Faktor Authentifizierung erstellen“ ist für neue Antworten geschlossen.