{"id":36873,"date":"2019-10-31T22:14:26","date_gmt":"2019-10-31T19:14:26","guid":{"rendered":"https:\/\/prohoster.info\/blog\/server-dvuhfaktornoj-avtorizatsii-linotp\/"},"modified":"2019-10-31T22:14:26","modified_gmt":"2019-10-31T19:14:26","slug":"server-dvuhfaktornoj-avtorizatsii-linotp","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/server-dvuhfaktornoj-avtorizatsii-linotp","title":{"rendered":"LinOTP Zwei-Faktor-Authentifizierungsserver","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"LinOTP Zwei-Faktor-Authentifizierungsserver\" src=\"\/wp-content\/uploads\/2019\/08\/8164a72d86173d429e3aaf4efdfee77c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHeute m\u00f6chte ich teilen, wie man einen Zwei-Faktor-Authentifizierungsserver f\u00fcr den Schutz von Unternehmensnetzwerken, Websites, Diensten und SSH einrichtet. Auf dem Server wird die Kombination LinOTP + FreeRadius betrieben. <\/p>\n<p>Warum brauchen wir das? <br \/>\nEs ist eine v\u00f6llig kostenlose, benutzerfreundliche L\u00f6sung innerhalb Ihres Netzwerks, die nicht von Drittanbietern abh\u00e4ngig ist.<\/p>\n<p>Dieser Dienst ist sehr benutzerfreundlich und intuitiv im Vergleich zu anderen Open-Source-Produkten. Er unterst\u00fctzt zudem eine Vielzahl von Funktionen und Richtlinien (zum Beispiel Login + Passwort + (PIN + OTP-Token)). Er l\u00e4sst sich \u00fcber die API mit SMS-Versanddiensten integrieren (LinOTP Config -&gt; Provider Config -&gt; SMS Provider), generiert Codes f\u00fcr mobile Anwendungen wie Google Authenticator und vieles mehr. Ich finde, er ist benutzerfreundlicher als der in Betracht gezogene Dienst. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/308988\/\">Artikel<\/a><\/noindex>.<\/p>\n<p>Dieser Server funktioniert hervorragend mit Cisco ASA, OpenVPN-Servern, Apache2 und praktisch allem, was die Authentifizierung \u00fcber einen RADIUS-Server unterst\u00fctzt (zum Beispiel f\u00fcr SSH im Rechenzentrum).<\/p>\n<p>Anforderungen:<\/p>\n<p>1 ) Debian 8 (jessie) \u2014<b> Unbedingt!<\/b> (Eine Testinstallation auf Debian 9 ist am Ende des Artikels beschrieben.)<\/p>\n<p>Beginn:<\/p>\n<p>Wir installieren Debian 8.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nWir f\u00fcgen das LinOTP-Repo hinzu:<\/p>\n<pre><code class=\"bash\"># echo 'deb http:\/\/www.linotp.org\/apt\/debian jessie linotp' &gt; \/etc\/apt\/sources.list.d\/linotp.list<\/code><\/pre>\n<p>\nWir f\u00fcgen die Schl\u00fcssel hinzu:<\/p>\n<pre><code class=\"bash\"># gpg --search-keys 913DFF12F86258E5<\/code><\/pre>\n<p>\nManchmal gibt Debian bei einer \"sauberen\" Installation nach Ausf\u00fchrung dieses Befehls aus: <\/p>\n<pre><code class=\"plaintext\">gpg: Verzeichnis `\/root\/.gnupg' erstellt\ngpg: Neue Konfigurationsdatei `\/root\/.gnupg\/gpg.conf' erstellt\ngpg: WARNUNG: Die Parameter in `\/root\/.gnupg\/gpg.conf' sind bei diesem Start noch nicht aktiv\ngpg: Schl\u00fcsseltabelle `\/root\/.gnupg\/secring.gpg' erstellt\ngpg: Schl\u00fcsseltabelle `\/root\/.gnupg\/pubring.gpg' erstellt\ngpg: Es sind keine Schl\u00fcsselserver angegeben (benutzen Sie --keyserver)\ngpg: Fehler beim Suchen auf dem Schl\u00fcsselserver: falscher URI\n<\/code><\/pre>\n<p>\nDies ist die erste Konfiguration von gnupg. Keine Sorge. F\u00fchren Sie einfach den Befehl erneut aus.<br \/>\nAuf die Frage von Debian:<\/p>\n<pre><code class=\"plaintext\">gpg: Suche nach \"913DFF12F86258E5\" auf dem hkp-Server keys.gnupg.net\n(1)\tLSE LinOTP2 Packaging &lt;linotp2@lsexperts.de&gt;\n\t  2048-Bit RSA-Schl\u00fcssel F86258E5, erstellt: 2010-05-10\nSchl\u00fcssel 1-1 von 1 f\u00fcr \"913DFF12F86258E5\". Geben Sie die Zahl ein, N) N\u00e4chster oder Q) Beenden&gt;<\/code><\/pre>\n<p>\nWir antworten: 1<\/p>\n<p>Weiter: <\/p>\n<pre><code class=\"bash\"># gpg --export 913DFF12F86258E5 | apt-key add -<\/code><\/pre>\n<p><\/p>\n<pre><code class=\"bash\"># apt-get update<\/code><\/pre>\n<p>\nWir installieren MySQL. Theoretisch k\u00f6nnte man auch einen anderen SQL-Server verwenden, aber der Einfachheit halber werde ich ihn verwenden, da er f\u00fcr LinOTP empfohlen wird.<\/p>\n<p>(Weitere Informationen, einschlie\u00dflich zur Neukonfiguration der LinOTP-Datenbank, finden Sie in der offiziellen Dokumentation von <noindex><a rel=\"nofollow\" href=\"http:\/\/linotp.org\/doc\/latest\/part-installation\/server-installation\/deb_install.html#debian\">\u00fcber diesen Link verf\u00fcgbar<\/a><\/noindex>. Dort finden Sie auch den Befehl: dpkg-reconfigure linotp um die Parameter zu \u00e4ndern, wenn Sie MySQL bereits installiert haben).<\/p>\n<pre><code class=\"bash\"># apt-get install mysql-server<\/code><\/pre>\n<p><\/p>\n<pre><code class=\"bash\"># apt-get update<\/code><\/pre>\n<p> (Es schadet nicht, die Updates erneut zu \u00fcberpr\u00fcfen)<br \/>\nWir installieren LinOTP und zus\u00e4tzliche Module:<\/p>\n<pre><code class=\"bash\"># apt-get install linotp<\/code><\/pre>\n<p>\nWir beantworten die Fragen des Installateurs: <br \/>\nApache2 verwenden: ja<br \/>\nW\u00e4hlen Sie ein Passwort f\u00fcr den admin LinOTP: \u201eIhrPasswort\u201c<br \/>\nSelbstsigniertes Zertifikat erstellen?: ja<br \/>\nMySQL verwenden?: ja<br \/>\nWo befindet sich die Datenbank: localhost<br \/>\nWir erstellen die Datenbank LinOTP (Datenbankname) auf dem Server: LinOTP2<br \/>\nEinen separaten Benutzer f\u00fcr die Datenbank erstellen: LinOTP2<br \/>\nBenutzerpasswort festlegen: \u201eIhrPasswort\u201c<br \/>\nSoll ich die Datenbank jetzt erstellen? (etwas wie \u201eSind Sie sicher, dass Sie \u2026\u201c): ja<br \/>\nGeben Sie das MySQL-Root-Passwort ein, das Sie bei der Installation festgelegt haben: \u201eIhrPasswort\u201c<br \/>\nFertig.<\/p>\n<p>(optional, kann weggelassen werden)<\/p>\n<pre><code class=\"bash\"># apt-get install linotp-adminclient-cli <\/code><\/pre>\n<p>\n(optional, kann weggelassen werden)<\/p>\n<pre><code class=\"bash\"># apt-get install libpam-linotp  <\/code><\/pre>\n<p>\nSo, unser Webinterface Linotp ist jetzt verf\u00fcgbar unter der Adresse: <\/p>\n<pre><code class=\"plaintext\">&quot;&lt;b&gt;https&lt;\\\/b&gt;: \\\/\\\/IP_\\u0441\\u0435\\u0440\\u0432\\u0435\\u0440\\u0430\\\/manage&quot;<\/code><\/pre>\n<p>\n\u00dcber die Einstellungen im Webinterface werde ich sp\u00e4ter informieren.<\/p>\n<p>Jetzt, das Wichtigste! Wir starten FreeRadius und verbinden es mit Linotp.<\/p>\n<p>Installieren Sie FreeRadius und das Modul f\u00fcr die Zusammenarbeit mit LinOTP<\/p>\n<pre><code class=\"bash\"># apt-get install freeradius linotp-freeradius-perl<\/code><\/pre>\n<p>\nSichern Sie die Konfigurationen der Radius-Clients und -Benutzer.<\/p>\n<pre><code class=\"bash\"># mv \/etc\/freeradius\/clients.conf  \/etc\/freeradius\/clients.old<\/code><\/pre>\n<p><\/p>\n<pre><code class=\"bash\"># mv \/etc\/freeradius\/users  \/etc\/freeradius\/users.old<\/code><\/pre>\n<p>\nErstellen Sie eine leere Client-Datei:<\/p>\n<pre><code class=\"bash\"># touch \/etc\/freeradius\/clients.conf<\/code><\/pre>\n<p>\nBearbeiten Sie unsere neue Konfigurationsdatei (die gesicherte Konfiguration kann als Beispiel verwendet werden)<\/p>\n<pre><code class=\"bash\"># nano \/etc\/freeradius\/clients.conf<\/code><\/pre>\n<p><\/p>\n<pre><code class=\"plaintext\">client 192.168.188.0\/24 {\nsecret  = passwd # Passwort f\u00fcr die Verbindung der Clients\n}<\/code><\/pre>\n<p>\nErstellen Sie dann die Datei users:<\/p>\n<pre><code class=\"bash\"># touch \/etc\/freeradius\/users<\/code><\/pre>\n<p>\nBearbeiten Sie die Datei und teilen Sie dem Radius mit, dass wir Perl f\u00fcr die Authentifizierung verwenden werden.<\/p>\n<pre><code class=\"bash\"># nano \/etc\/freeradius\/users<\/code><\/pre>\n<p><\/p>\n<pre><code class=\"plaintext\">DEFAULT Auth-type := perl<\/code><\/pre>\n<p>\nBearbeiten Sie dann die Datei \/etc\/freeradius\/modules\/perl<\/p>\n<pre><code class=\"bash\"># nano \/etc\/freeradius\/modules\/perl<\/code><\/pre>\n<p>\nWir m\u00fcssen den Pfad zum Perl-Skript linotp im Parameter module angeben: <\/p>\n<pre><code class=\"plaintext\">Perl { .......\n.........\nmodule = \/usr\/lib\/linotp\/radius_linotp.pm<\/code><\/pre>\n<p>\n\u2026..<br \/>\nNun erstellen wir eine Datei, in der wir angeben, aus welcher Quelle (Domain, Datenbank oder Datei) die Daten abgerufen werden sollen.<\/p>\n<pre><code class=\"bash\"># touch \/etc\/linotp2\/rlm_perl.ini<\/code><\/pre>\n<p><\/p>\n<pre><code class=\"bash\"># nano \/etc\/linotp2\/rlm_perl.ini<\/code><\/pre>\n<p><\/p>\n<pre><code class=\"plaintext\">URL=https:\/\/IP_ Ihres_LinOTP-Servers(192.168.X.X)\/validate\/simplecheck\nREALM=webusers1c\nRESCONF=LocalUser\nDebug=True\nSSL_CHECK=False<\/code><\/pre>\n<p>\nHier m\u00f6chte ich etwas ausf\u00fchrlicher anhalten, da dies wichtig ist:<\/p>\n<p>Vollst\u00e4ndige Beschreibung der Datei mit Kommentaren:<br \/>\n#IP of the linotp server (IP \u0430\u0434\u0440\u0435\u0441 \u043d\u0430\u0448\u0435\u0433\u043e LinOTP \u0441\u0435\u0440\u0432\u0435\u0440\u0430)<br \/>\nURL=https:\/\/172.17.14.103\/validate\/simplecheck<br \/>\n#\u041d\u0430\u0448\u0430 \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0432 \u0432\u0435\u0431 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 LinOTP.)<br \/>\nREALM=rearm1<br \/>\n#\u0418\u043c\u044f \u0433\u0440\u0443\u043f\u043f\u044b \u044e\u0437\u0432\u0435\u0440\u0435\u0439 \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u0432\u0435\u0431\u043c\u043e\u0440\u0434\u0435 LinOTP.<br \/>\nRESCONF=flat_file<br \/>\n#optional: comment out if everything seems to work fine<br \/>\nDebug=True<br \/>\n#optional: use this, if you have selfsigned certificates, otherwise comment out (SSL \u0435\u0441\u043b\u0438 \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u0432\u043e\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0438 \u0445\u043e\u0442\u0438\u043c \u0435\u0433\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c)<br \/>\nSSL_CHECK=False<\/p>\n<p>Nun erstellen wir die Datei \/etc\/freeradius\/sites-available\/linotp<\/p>\n<pre><code class=\"bash\"># touch \/etc\/freeradius\/sites-available\/linotp<\/code><\/pre>\n<p><\/p>\n<pre><code class=\"bash\"># nano \/etc\/freeradius\/sites-available\/linotp<\/code><\/pre>\n<p>\nUnd kopieren die Konfiguration hinein (nichts muss ge\u00e4ndert werden):<\/p>\n<pre><code class=\"plaintext\">authorize {\n# normalisiert fehlerhafte Clientanfragen, bevor sie an andere Module weitergeleitet werden (siehe '\/etc\/freeradius\/modules\/preprocess')\npreprocess\n#  Wenn Sie mehrere Arten von Realms verwenden, m\u00f6chten Sie wahrscheinlich\n#  'ignore_null = yes' f\u00fcr alle von ihnen festlegen.\n#  Andernfalls werden die anderen Stile nicht \u00fcberpr\u00fcft,\n#  wenn der erste Stil nicht \u00fcbereinstimmt.\n# erlaubt eine Liste von Realms (siehe '\/etc\/freeradius\/modules\/realm')\nIPASS\n# versteht etwas wie USER@REALM und kann die Komponenten unterscheiden (siehe '\/etc\/freeradius\/modules\/realm')\nsuffix\n# versteht USERREALM und kann die Komponenten unterscheiden (siehe '\/etc\/freeradius\/modules\/realm')\nntdomain\n#  Liest die Datei 'users', um \u00fcber spezielle Konfigurationen zu erfahren, die f\u00fcr\n# bestimmte Benutzer gelten sollten (siehe '\/etc\/freeradius\/modules\/files')\nfiles\n# erlaubt es, die Authentifizierung ablaufen zu lassen (siehe '\/etc\/freeradius\/modules\/expiration')\nexpiration\n# erm\u00f6glicht die Definition von g\u00fcltigen Servicezeiten (siehe '\/etc\/freeradius\/modules\/logintime')\nlogintime\n# Wir haben kein radius_shortname_map!\npap\n}\n#Hier wird das linotp Perl-Modul f\u00fcr die weitere Verarbeitung aufgerufen\nauthenticate {\nperl\n}<\/code><\/pre>\n<p>\nJetzt erstellen wir einen Symlink:<\/p>\n<pre><code class=\"bash\"># ln -s ..\/sites-available\/linotp \/etc\/freeradius\/sites-enabled<\/code><\/pre>\n<p>\nPers\u00f6nlich entferne ich die standardm\u00e4\u00dfigen Radius-Webseiten, aber wenn Sie sie ben\u00f6tigen, k\u00f6nnen Sie entweder deren Konfiguration bearbeiten oder sie deaktivieren.<\/p>\n<pre><code class=\"bash\"># rm \/etc\/freeradius\/sites-enabled\/default<\/code><\/pre>\n<p><\/p>\n<pre><code class=\"bash\"># rm \/etc\/freeradius\/sites-enabled\/inner-tunnel<\/code><\/pre>\n<p><\/p>\n<pre><code class=\"bash\"># service freeradius reload<\/code><\/pre>\n<p>\nKommen wir nun zur\u00fcck zur Web-Oberfl\u00e4che und betrachten sie etwas genauer:<br \/>\nOben rechts klicken wir auf LinOTP-Konfiguration -&gt; UserIdResolvers -&gt; Neu<br \/>\nW\u00e4hlen Sie, was Sie m\u00f6chten: LDAP (AD Win, LDAP Samba), SQL oder lokale Flatfile-Benutzer. <\/p>\n<p>F\u00fcllen Sie die erforderlichen Felder aus.<\/p>\n<p>Dann erstellen wir REALMS:<br \/>\nOben rechts klicken wir auf LinOTP-Konfiguration -&gt; Realms -&gt; Neu. <br \/>\nund geben unserem REALM einen Namen und klicken auf die zuvor erstellten UserIdResolvers.<\/p>\n<p>Alle diese Daten werden von freeRadius in der Datei \/etc\/linotp2\/rlm_perl.ini ben\u00f6tigt, wor\u00fcber ich zuvor geschrieben habe. Wenn Sie sie also nicht bearbeitet haben, tun Sie das bitte jetzt.<\/p>\n<p>Der Server ist konfiguriert.<\/p>\n<p>Zusatz:<\/p>\n<p><b>LinOTP-Installation auf Debian 9<\/b>:<\/p>\n<p>Installation: <\/p>\n<pre><code class=\"bash\"># echo 'deb http:\/\/linotp.org\/apt\/debian stretch linotp' &gt; \/etc\/apt\/sources.list.d\/linotp.list <\/code><\/pre>\n<pre><code class=\"bash\"># apt-get install dirmngr<\/code><\/pre>\n<p><\/p>\n<pre><code class=\"bash\"># apt-key adv --recv-keys 913DFF12F86258E5\n<\/code><\/pre>\n<pre><code class=\"bash\"># apt-get update<\/code><\/pre>\n<p><\/p>\n<pre><code class=\"bash\"># apt-get install mysql-server<\/code><\/pre>\n<p> (Standardm\u00e4\u00dfig bietet Debian 9 in mysql (MariaDB) nicht an, ein Passwort f\u00fcr den Root-Benutzer festzulegen. Nat\u00fcrlich k\u00f6nnen Sie es leer lassen, aber wenn Sie die Nachrichten lesen, f\u00fchrt das sehr oft zu \"epischen Fehlern\". Daher werden wir es doch festlegen.)<\/p>\n<pre><code class=\"bash\"># mysql -u root -p<\/code><\/pre>\n<pre><code class=\"bash\">use mysql;<\/code><\/pre>\n<pre><code class=\"bash\">UPDATE user SET Password = PASSWORD('hier_passwort') WHERE User = 'root';\n<\/code><\/pre>\n<pre><code class=\"bash\">exit<\/code><\/pre>\n<pre><code class=\"bash\"># apt-get install linotp<\/code><\/pre>\n<pre><code class=\"bash\"># apt-get install linotp-adminclient-cli<\/code><\/pre>\n<pre><code class=\"bash\"># apt-get install python-ldap<\/code><\/pre>\n<pre><code class=\"bash\"># apt install freeradius<\/code><\/pre>\n<pre><code class=\"bash\"># nano \/etc\/freeradius\/3.0\/sites-enabled\/linotp<\/code><\/pre>\n<p>F\u00fcgen Sie den Code ein (\u00fcbermittelt von JuriM, vielen Dank daf\u00fcr!):<\/p>\n<blockquote><p>server linotp {<br \/>\nlisten {<br \/>\n ipaddr = *<br \/>\n port = 1812<br \/>\n type = auth<br \/>\n}<br \/>\nlisten {<br \/>\n ipaddr = *<br \/>\n port = 1813<br \/>\n type = acct<br \/>\n}<br \/>\nauthorize { <br \/>\n preprocess<br \/>\n update { <br \/>\n &amp;control:Auth-Type := Perl<br \/>\n } <br \/>\n} <br \/>\nauthenticate {<br \/>\n Auth-Type Perl {<br \/>\n perl<br \/>\n }<br \/>\n}<br \/>\naccounting {<br \/>\n unix<br \/>\n}<br \/>\n}<\/p><\/blockquote>\n<p>Bearbeiten von \/etc\/freeradius\/3.0\/mods-enabled\/perl<\/p>\n<blockquote><p>perl {<br \/>\n dateiname = \/usr\/share\/linotp\/radius_linotp.pm<br \/>\n func_authenticate = authenticate<br \/>\n func_authorize = authorize<br \/>\n}<\/p><\/blockquote>\n<p>Leider kann die Bibliothek radius_linotp.pm in Debian 9 nicht aus den Repositories installiert werden, daher nehmen wir sie von GitHub.<\/p>\n<pre><code class=\"bash\"># apt install git<\/code><\/pre>\n<pre><code class=\"bash\"># git clone https:\/\/github.com\/LinOTP\/linotp-auth-freeradius-perl<\/code><\/pre>\n<pre><code class=\"bash\"># cd linotp-auth-freeradius-perl\/<\/code><\/pre>\n<pre><code class=\"bash\"># cp radius_linotp.pm \/usr\/share\/linotp\/radius_linotp.pm<\/code><\/pre>\n<p>Jetzt passen wir \/etc\/freeradius\/3.0\/clients.conf an. <\/p>\n<blockquote><p>client servers {<br \/>\n ipaddr = 192.168.188.0\/24<br \/>\n secret = IhrPasswort<br \/>\n}<\/p><\/blockquote>\n<p>Jetzt bearbeiten wir nano \/etc\/linotp2\/rlm_perl.ini.<\/p>\n<p>F\u00fcgen Sie denselben Code ein, der auch bei der Installation auf Debian 8 verwendet wurde (oben beschrieben).<\/p>\n<p>Theoretisch ist das alles. (noch nicht getestet)<\/p>\n<p>Ich werde unten einige Links zur Konfiguration von Systemen hinterlassen, die h\u00e4ufig mit Zwei-Faktor-Authentifizierung gesichert werden m\u00fcssen: <br \/>\nEinrichtung der Zwei-Faktor-Authentifizierung in <noindex><a rel=\"nofollow\" href=\"https:\/\/itsecforu.ru\/2017\/07\/28\/%D0%BA%D0%B0%D0%BA-%D0%B7%D0%B0%D1%89%D0%B8%D1%82%D0%B8%D1%82%D1%8C-apache2-%D1%81-%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E-linotp\/\">Apache2<\/a><\/noindex><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/308988\/\">Einrichtung mit Cisco ASA<\/a><\/noindex>(dort wird ein anderer Token-Generator-Server verwendet, aber die Konfiguration der ASA ist dieselbe).<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/panda\/blog\/337800\/\">VPN mit Zwei-Faktor-Authentifizierung<\/a><\/noindex><\/p>\n<p>Konfiguration <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/270571\/\">Zwei-Faktor-Authentifizierung in SSH<\/a><\/noindex> (dort wird ebenfalls LinOTP verwendet) \u2013 danke an den Autor. Dort finden Sie auch interessante Informationen zur Konfiguration von LiOTP-Richtlinien.<\/p>\n<p>Viele CMS von Websites unterst\u00fctzen ebenfalls die Zwei-Faktor-Authentifizierung. (F\u00fcr WordPress gibt es sogar ein spezielles Modul von LinOTP auf <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/LinOTP\/linotp-auth-wordpress\">github<\/a><\/noindex>), zum Beispiel, wenn Sie einen gesicherten Bereich f\u00fcr die Mitarbeiter Ihres Unternehmens auf Ihrer Unternehmenswebsite erstellen m\u00f6chten.<br \/>\nWICHTIGER HINWEIS! Aktivieren Sie das Kontrollk\u00e4stchen \u00abGoogle Authentifikator\u00bb nicht f\u00fcr die Nutzung des Google Authentifikators! Der QR-Code wird dann nicht erkannt\u2026 (seltsame Tatsache)<\/p>\n<p>F\u00fcr diesen Artikel wurden Informationen aus den folgenden Artikeln verwendet:<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/itnan.ru\/post.php?c=1&amp;p=270571\">itnan.ru\/post.php?c=1&amp;p=270571<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"http:\/\/www.digitalbears.net\/?p=469\">www.digitalbears.net\/?p=469<\/a><\/noindex> <\/p>\n<p>Vielen Dank an die Autoren.<br \/>\n<br \/>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/462523\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f, \u043a\u0430\u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440 \u0434\u0432\u0443\u0445\u0444\u0430\u043a\u0442\u043e\u0440\u043d\u043e\u0439 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438, \u0434\u043b\u044f \u0437\u0430\u0449\u0438\u0442\u044b \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0441\u0435\u0442\u0438, \u0441\u0430\u0439\u0442\u043e\u0432, \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432,ssh. \u041d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u0432\u044f\u0437\u043a\u0430: LinOTP + FreeRadius. \u0417\u0430\u0447\u0435\u043c \u043e\u043d \u043d\u0430\u043c? \u042d\u0442\u043e \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e\u0435, \u0443\u0434\u043e\u0431\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0432\u043e\u0435\u0439 \u0441\u0435\u0442\u0438, \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u044f\u0449\u0435\u0435 \u043e\u0442 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u043e\u0432. \u0414\u0430\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u0432\u0435\u0441\u044c\u043c\u0430 \u0443\u0434\u043e\u0431\u0435\u043d, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043d\u0430\u0433\u043b\u044f\u0434\u0435\u043d, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0445 \u043e\u043f\u0435\u043d\u0441\u043e\u0440\u0441 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432, \u0430 \u0442\u0430\u043a \u0436\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27627,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-36873","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f, \u043a\u0430\u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440 \u0434\u0432\u0443\u0445\u0444\u0430\u043a\u0442\u043e\u0440\u043d\u043e\u0439 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438, \u0434\u043b\u044f \u0437\u0430\u0449\u0438\u0442\u044b \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0441\u0435\u0442\u0438, \u0441\u0430\u0439\u0442\u043e\u0432, \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432,ssh. \u041d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u0432\u044f\u0437\u043a\u0430: LinOTP + FreeRadius. \u0417\u0430\u0447\u0435\u043c \u043e\u043d \u043d\u0430\u043c? \u042d\u0442\u043e \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e\u0435, \u0443\u0434\u043e\u0431\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0432\u043e\u0435\u0439 \u0441\u0435\u0442\u0438, \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u044f\u0449\u0435\u0435 \u043e\u0442 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u043e\u0432. \u0414\u0430\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u0432\u0435\u0441\u044c\u043c\u0430 \u0443\u0434\u043e\u0431\u0435\u043d, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043d\u0430\u0433\u043b\u044f\u0434\u0435\u043d, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0445 \u043e\u043f\u0435\u043d\u0441\u043e\u0440\u0441 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432, \u0430 \u0442\u0430\u043a \u0436\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/server-dvuhfaktornoj-avtorizatsii-linotp\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0421\u0435\u0440\u0432\u0435\u0440 \u0434\u0432\u0443\u0445\u0444\u0430\u043a\u0442\u043e\u0440\u043d\u043e\u0439 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 LinOTP | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f, \u043a\u0430\u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440 \u0434\u0432\u0443\u0445\u0444\u0430\u043a\u0442\u043e\u0440\u043d\u043e\u0439 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438, \u0434\u043b\u044f \u0437\u0430\u0449\u0438\u0442\u044b \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0441\u0435\u0442\u0438, \u0441\u0430\u0439\u0442\u043e\u0432, \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432,ssh. \u041d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u0432\u044f\u0437\u043a\u0430: LinOTP + FreeRadius. \u0417\u0430\u0447\u0435\u043c \u043e\u043d \u043d\u0430\u043c? \u042d\u0442\u043e \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e\u0435, \u0443\u0434\u043e\u0431\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0432\u043e\u0435\u0439 \u0441\u0435\u0442\u0438, \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u044f\u0449\u0435\u0435 \u043e\u0442 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u043e\u0432. \u0414\u0430\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u0432\u0435\u0441\u044c\u043c\u0430 \u0443\u0434\u043e\u0431\u0435\u043d, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043d\u0430\u0433\u043b\u044f\u0434\u0435\u043d, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0445 \u043e\u043f\u0435\u043d\u0441\u043e\u0440\u0441 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432, \u0430 \u0442\u0430\u043a \u0436\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/server-dvuhfaktornoj-avtorizatsii-linotp\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:14:26+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:14:26+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Zwei-Faktor-Authentifizierungsserver LinOTP | ProHoster","description":"Heute m\u00f6chte ich Ihnen zeigen, wie man einen Server f\u00fcr die Zwei-Faktor-Authentifizierung einrichtet, um das Unternehmensnetzwerk, Websites, Dienste und SSH zu sch\u00fctzen. Auf dem Server wird die Kombination LinOTP + FreeRadius laufen. Warum brauchen wir das? Es ist eine v\u00f6llig kostenlose, praktische L\u00f6sung, die innerhalb Ihres eigenen Netzwerks funktioniert und nicht von Drittanbietern abh\u00e4ngig ist. Dieser Dienst ist sehr benutzerfreundlich und \u00fcbersichtlich, im Gegensatz zu anderen Open-Source-Produkten, und unterst\u00fctzt auch","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/server-dvuhfaktornoj-avtorizatsii-linotp","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0421\u0435\u0440\u0432\u0435\u0440 \u0434\u0432\u0443\u0445\u0444\u0430\u043a\u0442\u043e\u0440\u043d\u043e\u0439 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 LinOTP | ProHoster","og:description":"\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f, \u043a\u0430\u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440 \u0434\u0432\u0443\u0445\u0444\u0430\u043a\u0442\u043e\u0440\u043d\u043e\u0439 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438, \u0434\u043b\u044f \u0437\u0430\u0449\u0438\u0442\u044b \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0441\u0435\u0442\u0438, \u0441\u0430\u0439\u0442\u043e\u0432, \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432,ssh. \u041d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u0432\u044f\u0437\u043a\u0430: LinOTP + FreeRadius. \u0417\u0430\u0447\u0435\u043c \u043e\u043d \u043d\u0430\u043c? \u042d\u0442\u043e \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e\u0435, \u0443\u0434\u043e\u0431\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0432\u043e\u0435\u0439 \u0441\u0435\u0442\u0438, \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u044f\u0449\u0435\u0435 \u043e\u0442 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u043e\u0432. \u0414\u0430\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u0432\u0435\u0441\u044c\u043c\u0430 \u0443\u0434\u043e\u0431\u0435\u043d, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043d\u0430\u0433\u043b\u044f\u0434\u0435\u043d, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0445 \u043e\u043f\u0435\u043d\u0441\u043e\u0440\u0441 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432, \u0430 \u0442\u0430\u043a \u0436\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/server-dvuhfaktornoj-avtorizatsii-linotp","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:14:26+00:00","article:modified_time":"2019-10-31T19:14:26+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36873","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 05:08:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:37:23","updated":"2026-01-22 05:08:19"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/36873","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=36873"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/36873\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/27627"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=36873"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=36873"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=36873"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}