{"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\/fr\/blog\/administrirovanie\/server-dvuhfaktornoj-avtorizatsii-linotp","title":{"rendered":"Serveur d'authentification \u00e0 deux facteurs LinOTP","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Serveur d&#039;authentification \u00e0 deux facteurs LinOTP\" src=\"\/wp-content\/uploads\/2019\/08\/8164a72d86173d429e3aaf4efdfee77c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAujourd'hui, je veux partager comment configurer un serveur d'authentification \u00e0 deux facteurs pour prot\u00e9ger le r\u00e9seau d'entreprise, les sites, les services et SSH. Le serveur fonctionnera avec l'ensemble : LinOTP + FreeRadius. <\/p>\n<p>Pourquoi en avons-nous besoin ? <br \/>\nC'est une solution enti\u00e8rement gratuite et pratique, \u00e0 l'int\u00e9rieur de votre r\u00e9seau, sans d\u00e9pendre de fournisseurs tiers.<\/p>\n<p>Ce service est tr\u00e8s pratique, assez clair, contrairement \u00e0 d'autres produits open source, et prend en charge un grand nombre de fonctionnalit\u00e9s et de politiques (par exemple, login + mot de passe + (PIN + OTPToken)). Il s'int\u00e8gre avec des services d'envoi de SMS via API (LinOTP Config-&gt;Provider Config-&gt;SMS Provider), g\u00e9n\u00e8re des codes pour des applications mobiles comme Google Authenticator et bien d'autres. Je le trouve plus pratique que le service discut\u00e9 dans <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/308988\/\">article<\/a><\/noindex>.<\/p>\n<p>Ce serveur fonctionne parfaitement avec Cisco ASA, un serveur OpenVPN, Apache2, et en fait pratiquement tout ce qui prend en charge l'authentification via un serveur RADIUS (par exemple pour SSH dans un centre de donn\u00e9es).<\/p>\n<p>Exigences :<\/p>\n<p>1 ) Debian 8 (jessie) \u2014<b> Absolument !<\/b> (l'installation d'essai sur Debian 9 est d\u00e9crite \u00e0 la fin de l'article)<\/p>\n<p>D\u00e9but :<\/p>\n<p>Installons Debian 8.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nAjoutons le d\u00e9p\u00f4t LinOTP :<\/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>\nAjoutons les cl\u00e9s :<\/p>\n<pre><code class=\"bash\"># gpg --search-keys 913DFF12F86258E5<\/code><\/pre>\n<p>\nParfois, lors d'une installation \u00ab propre \u00bb, apr\u00e8s avoir ex\u00e9cut\u00e9 cette commande, Debian affiche : <\/p>\n<pre><code class=\"plaintext\">gpg: r\u00e9pertoire cr\u00e9\u00e9 `\\\/root\\\/.gnupg'\\ngpg: nouveau fichier de configuration cr\u00e9\u00e9 `\\\/root\\\/.gnupg\\\/gpg.conf'\\ngpg: ATTENTION : les param\u00e8tres dans `\\\/root\\\/.gnupg\\\/gpg.conf' ne sont pas encore actifs lors de cette ex\u00e9cution\\ngpg: table de cl\u00e9s cr\u00e9\u00e9e `\\\/root\\\/.gnupg\\\/secring.gpg'\\ngpg: table de cl\u00e9s cr\u00e9\u00e9e `\\\/root\\\/.gnupg\\\/pubring.gpg'\\ngpg: pas de serveurs de cl\u00e9s d\u00e9finis (utilisez --keyserver)\\ngpg: \u00e9chec de la recherche sur le serveur de cl\u00e9s : URI mauvais\n<\/code><\/pre>\n<p>\nC'est la configuration initiale de gnupg. Rien de grave. Il suffit d'ex\u00e9cuter la commande encore une fois.<br \/>\n\u00c0 la question de Debian :<\/p>\n<pre><code class=\"plaintext\">gpg: recherche \"913DFF12F86258E5\" sur le serveur hkp keys.gnupg.net\\n(1)\\tLSE LinOTP2 Packaging \\n\\t  cl\u00e9 RSA 2048 bits F86258E5, cr\u00e9\u00e9e : 2010-05-10\\nCl\u00e9s 1-1 de 1 pour \"913DFF12F86258E5\". Entrez les chiffres, N) Suivant ou Q) Quitter&gt;<\/code><\/pre>\n<p>\nR\u00e9pondons : 1<\/p>\n<p>Suivant : <\/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>\nInstallons MySQL. En th\u00e9orie, il est possible d'utiliser un autre serveur SQL, mais pour la simplicit\u00e9, je vais l'utiliser, comme recommand\u00e9 pour LinOTP.<\/p>\n<p>(des informations suppl\u00e9mentaires, y compris sur la reconfiguration de la base de donn\u00e9es LinOTP, peuvent \u00eatre trouv\u00e9es dans la documentation officielle sur <noindex><a rel=\"nofollow\" href=\"http:\/\/linotp.org\/doc\/latest\/part-installation\/server-installation\/deb_install.html#debian\">le lien<\/a><\/noindex>. L\u00e0, vous pouvez \u00e9galement trouver la commande : dpkg-reconfigure linotp pour changer les param\u00e8tres si vous avez d\u00e9j\u00e0 install\u00e9 MySQL).<\/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> (v\u00e9rifier \u00e0 nouveau les mises \u00e0 jour ne fait pas de mal)<br \/>\nInstallons LinOTP et les modules compl\u00e9mentaires :<\/p>\n<pre><code class=\"bash\"># apt-get install linotp<\/code><\/pre>\n<p>\nR\u00e9pondons aux questions de l'installateur : <br \/>\nUtiliser Apache2 : oui<br \/>\nChoisissez un mot de passe pour l'admin LinOTP : \u00ab VotreMotDePasse \u00bb<br \/>\nG\u00e9n\u00e9rer un certificat auto-sign\u00e9 ?: oui<br \/>\nUtiliser MySQL ?: oui<br \/>\nO\u00f9 se trouve la base de donn\u00e9es : localhost<br \/>\nCr\u00e9ons la base LinOTP (nom de la base) sur le serveur : LinOTP2<br \/>\nCr\u00e9ons un utilisateur distinct pour la base de donn\u00e9es : LinOTP2<br \/>\nD\u00e9finissons le mot de passe pour l'utilisateur : \u00abVotreMotDePasse\u00bb<br \/>\nCr\u00e9er la base maintenant ? (quelque chose comme \u201c\u00cates-vous s\u00fbr de vouloir \u2026\u201d): oui<br \/>\nEntrez le mot de passe root de MySQL que nous avons cr\u00e9\u00e9 lors de son installation : \u00abVotreMotDePasse\u00bb<br \/>\nC'est fait.<\/p>\n<p>(optionnel, peut ne pas \u00eatre install\u00e9)<\/p>\n<pre><code class=\"bash\"># apt-get install linotp-adminclient-cli <\/code><\/pre>\n<p>\n(optionnel, peut ne pas \u00eatre install\u00e9)<\/p>\n<pre><code class=\"bash\"># apt-get install libpam-linotp  <\/code><\/pre>\n<p>\nEt donc notre interface web Linotp est maintenant accessible \u00e0 l'adresse : <\/p>\n<pre><code class=\"plaintext\">&quot;&lt;b&gt;https&lt;\\\/b&gt;: \\\\\\\/\\\\\\\/IP_serveur\\\\\\\/manage&quot;<\/code><\/pre>\n<p>\nJe parlerai des param\u00e8tres dans l'interface web un peu plus tard.<\/p>\n<p>Maintenant, le plus important ! D\u00e9marrons FreeRadius et le lier \u00e0 Linotp.<\/p>\n<p>Installons FreeRadius et le module de travail avec LinOTP<\/p>\n<pre><code class=\"bash\"># apt-get install freeradius linotp-freeradius-perl<\/code><\/pre>\n<p>\nsauvegardons les configs clients et Users du radius.<\/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>\nCr\u00e9ons un fichier client vide :<\/p>\n<pre><code class=\"bash\"># touch \/etc\/freeradius\/clients.conf<\/code><\/pre>\n<p>\n\u00c9ditons notre nouveau fichier de config (la config sauvegard\u00e9e peut \u00eatre utilis\u00e9e comme exemple)<\/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 # mot de passe pour se connecter aux clients\n}<\/code><\/pre>\n<p>\nEnsuite, cr\u00e9ons le fichier users :<\/p>\n<pre><code class=\"bash\"># touch \/etc\/freeradius\/users<\/code><\/pre>\n<p>\n\u00c9ditons le fichier, indiquant au radius que nous utiliserons Perl pour l'authentification.<\/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>\nEnsuite, modifions le fichier \/etc\/freeradius\/modules\/perl<\/p>\n<pre><code class=\"bash\"># nano \/etc\/freeradius\/modules\/perl<\/code><\/pre>\n<p>\nNous devons indiquer le chemin vers le script Perl linotp dans le param\u00e8tre module : <\/p>\n<pre><code class=\"plaintext\">Perl { .......\n.........\nmodule = \/usr\/lib\/linotp\/radius_linotp.pm<\/code><\/pre>\n<p>\n\u2026..<br \/>\nEnsuite, cr\u00e9ons un fichier dans lequel nous indiquerons de quelle (domaine, base ou fichier) nous tirerons les donn\u00e9es.<\/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_de_votre_serveur_LinOTP(192.168.X.X)\/validate\/simplecheck\nREALM=webusers1c\nRESCONF=LocalUser\nDebug=True\nSSL_CHECK=False<\/code><\/pre>\n<p>\nJe vais m'arr\u00eater un peu plus longtemps ici, car c'est important :<\/p>\n<p>Description compl\u00e8te du fichier avec des commentaires :<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>Ensuite, cr\u00e9ons le fichier \/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>\nEt copions-y la config (il n'y a rien \u00e0 modifier) :<\/p>\n<pre><code class=\"plaintext\">authorize {\n# normalise la demande de client malform\u00e9e avant de la transmettre \u00e0 d'autres modules (voir '\/etc\/freeradius\/modules\/preprocess')\npreprocess\n# Si vous utilisez plusieurs types de r\u00e9alisations, vous voudrez probablement\n# d\u00e9finir \"ignore_null = yes\" pour tous.\n# Sinon, lorsque le premier style de domaine ne correspond pas,\n# les autres styles ne seront pas v\u00e9rifi\u00e9s.\n# permet une liste de domaine (voir '\/etc\/freeradius\/modules\/realm')\nIPASS\n# comprend quelque chose comme USER@REALM et peut distinguer les composants (voir '\/etc\/freeradius\/modules\/realm')\nsuffix\n# comprend USERREALM et peut distinguer les composants (voir '\/etc\/freeradius\/modules\/realm')\nntdomain\n# Lisez le fichier 'users' pour en savoir plus sur les configurations sp\u00e9ciales \u00e0 appliquer aux\n# certains utilisateurs (voir '\/etc\/freeradius\/modules\/files')\nfiles\n# permet de laisser l'authentification expirer (voir '\/etc\/freeradius\/modules\/expiration')\nexpiration\n# permet de d\u00e9finir des temps de service valides (voir '\/etc\/freeradius\/modules\/logintime')\nlogintime\n# Nous n'avons pas de radius_shortname_map !\npap\n}\n# ici le module perl linotp est appel\u00e9 pour un traitement ult\u00e9rieur\nauthenticate {\nperl\n}<\/code><\/pre>\n<p>\nEnsuite, faisons un lien symbolique :<\/p>\n<pre><code class=\"bash\"># ln -s ..\/sites-available\/linotp \/etc\/freeradius\/sites-enabled<\/code><\/pre>\n<p>\nPersonnellement, je supprime les sites par d\u00e9faut de FreeRadius, mais si vous en avez besoin, vous pouvez soit modifier leur configuration, soit les d\u00e9sactiver.<\/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>\nRevenons maintenant \u00e0 l'interface web et examinons-la un peu plus en d\u00e9tail :<br \/>\nDans le coin sup\u00e9rieur droit, cliquez sur LinOTP Config -&gt; UserIdResolvers -&gt; Nouveau<br \/>\nChoisissez ce que vous voulez : LDAP (AD win, LDAP samba), SQL ou utilisateurs locaux du syst\u00e8me Flatfile. <\/p>\n<p>Remplissez les champs requis.<\/p>\n<p>Ensuite, cr\u00e9ons des REALMS :<br \/>\nDans le coin sup\u00e9rieur droit, cliquez sur LinOTP Config -&gt; Realms -&gt; Nouveau. <br \/>\nEt donnez un nom \u00e0 notre REALM, puis cliquez sur le UserIdResolvers cr\u00e9\u00e9 pr\u00e9c\u00e9demment.<\/p>\n<p>Toutes ces informations sont n\u00e9cessaires \u00e0 FreeRadius dans le fichier \/etc\/linotp2\/rlm_perl.ini, comme je l'ai mentionn\u00e9 plus haut, donc si vous ne l'avez pas modifi\u00e9 \u00e0 ce moment-l\u00e0, faites-le maintenant.<\/p>\n<p>Le serveur est configur\u00e9.<\/p>\n<p>La vuln\u00e9rabilit\u00e9 a \u00e9t\u00e9 confirm\u00e9e dans de nombreuses images officielles Docker, y compris les images couchbase, elasticsearch, flink, solr, storm, etc.<\/p>\n<p><b>Configuration de LinOTP sur 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> (par d\u00e9faut, sous Debian 9, mysql (mariaDB) ne propose pas d'installer un mot de passe pour l'utilisateur root, bien s\u00fbr vous pouvez le laisser vide, mais si vous suivez l'actualit\u00e9, cela m\u00e8ne souvent \u00e0 des '\u00e9checs \u00e9piques', donc nous allons tout de m\u00eame l'installer)<\/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('votre_mot_de_passe') 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>Ins\u00e9rez le code (envoy\u00e9 par JuriM, merci \u00e0 lui !) :<\/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 impl\u00e9mentations unix<br \/>\n}<br \/>\n}<\/p><\/blockquote>\n<p>Modifiez \/etc\/freeradius\/3.0\/mods-enabled\/perl<\/p>\n<blockquote><p>perl {<br \/>\n filename = \/usr\/share\/linotp\/radius_linotp.pm<br \/>\n func_authenticate = authenticate<br \/>\n func_authorize = authorize<br \/>\n}<\/p><\/blockquote>\n<p>Malheureusement, sous Debian 9, la biblioth\u00e8que radius_linotp.pm n'est pas installable depuis les d\u00e9p\u00f4ts, donc nous allons la prendre sur 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>Maintenant, modifions \/etc\/freeradius\/3.0\/clients.conf <\/p>\n<blockquote><p>client servers {<br \/>\n ipaddr = 192.168.188.0\/24<br \/>\n secret = votre_mot_de_passe<br \/>\n}<\/p><\/blockquote>\n<p>Maintenant, modifions nano \/etc\/linotp2\/rlm_perl.ini<\/p>\n<p>Ins\u00e9rez-y le m\u00eame code que lors de l'installation sur Debian 8 (d\u00e9crit ci-dessus)<\/p>\n<p>En th\u00e9orie, c'est tout. (Pas encore test\u00e9)<\/p>\n<p>Je vais laisser ci-dessous quelques liens sur la configuration des syst\u00e8mes qui n\u00e9cessitent souvent une authentification \u00e0 deux facteurs : <br \/>\nConfiguration de l'authentification \u00e0 deux facteurs dans <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\/\">Configuration avec Cisco ASA<\/a><\/noindex>(l\u00e0, un autre serveur de g\u00e9n\u00e9ration de jetons est utilis\u00e9, mais les param\u00e8tres de l'ASA sont les m\u00eames).<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/panda\/blog\/337800\/\">VPN avec authentification \u00e0 deux facteurs<\/a><\/noindex><\/p>\n<p>Configuration <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/270571\/\">authentification \u00e0 deux facteurs dans ssh<\/a><\/noindex> (L\u00e0 aussi, LinOTP est utilis\u00e9) \u2014 merci \u00e0 l'auteur. Vous y trouverez \u00e9galement des choses int\u00e9ressantes sur la configuration des politiques LiOTP.<\/p>\n<p>De plus, de nombreux CMS de sites supportent l'authentification \u00e0 deux facteurs (pour WordPress, LinOTP a m\u00eame son propre module sur <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/LinOTP\/linotp-auth-wordpress\">github<\/a><\/noindex>), par exemple, si vous souhaitez cr\u00e9er une section s\u00e9curis\u00e9e pour les employ\u00e9s de votre entreprise sur votre site d'entreprise.<br \/>\nFAIT IMPORTANT ! NE cochez pas la case \u00ab Google authenticator \u00bb pour utiliser l'authentificateur Google ! Le QR code ne sera pas lisible alors\u2026 (fait \u00e9trange)<\/p>\n<p>Pour la r\u00e9daction de l'article, les informations suivantes ont \u00e9t\u00e9 utilis\u00e9es :<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>Merci aux auteurs.<br \/>\n<br \/>Source : <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 5.0.2.1 - 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.\" \/>\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\/fr\/blog\/administrirovanie\/server-dvuhfaktornoj-avtorizatsii-linotp\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\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.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/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\udd47Serveur d'authentification \u00e0 deux facteurs LinOTP | ProHoster","description":"Aujourd'hui, je souhaite partager comment configurer un serveur.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/server-dvuhfaktornoj-avtorizatsii-linotp","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","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.","og:url":"https:\/\/prohoster.info\/fr\/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","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/36873","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=36873"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/36873\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/27627"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=36873"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=36873"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=36873"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}