{"id":322892,"date":"2021-05-11T15:00:12","date_gmt":"2021-05-11T15:00:12","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=322892"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=322892","title":{"rendered":"LinOTP \u2014 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u044f \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435"},"content":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441\u0432\u043e\u0438\u043c \u043e\u043f\u044b\u0442\u043e\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u0441 LinOTP \u0438 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0439 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0432\u044f\u0437\u043a\u0438 LinOTP + FreeRADIUS \u0438 Wallix Bastion.<\/p>\n<p><a href=\"http:\/\/linotp.org\/about.html\" rel=\"noopener noreferrer nofollow\">LinOTP<\/a> \u044d\u0442\u043e \u0433\u0438\u0431\u043a\u0430\u044f <strong>\u043e\u043f\u0435\u043d\u0441\u043e\u0440\u0441<\/strong> \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0434\u043b\u044f \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0439 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438.<\/p>\n<p>Wallix Bastion &#8212; \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u044b\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u043c (PAM).<\/p>\n<p>\u041d\u0430 \u0425\u0430\u0431\u0440\u0435 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u0440\u043e LinOTP &#8212; <a href=\"https:\/\/habr.com\/ru\/post\/270571\/\" rel=\"noopener noreferrer nofollow\">1<\/a>, <a href=\"https:\/\/habr.com\/ru\/post\/462523\/\" rel=\"noopener noreferrer nofollow\">2<\/a>. \u0417\u0434\u0435\u0441\u044c \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043d\u043e\u0432\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u041e\u0421 \u0438 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043c \u043e\u0442 \u043d\u0430\u0447\u0430\u043b\u0430 \u0434\u043e \u043a\u043e\u043d\u0446\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438, \u043f\u043e\u0435\u0445\u0430\u043b\u0438..<\/p>\n<p>\u0427\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c:<\/p>\n<ul>\n<li>\n<p>LinOTP 2.12.3<\/p>\n<\/li>\n<li>\n<p>Debian 10 (<a href=\"http:\/\/linotp.org\/download.html\" rel=\"noopener noreferrer nofollow\">\u0422\u0430\u043a \u0436\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f<\/a>)<\/p>\n<\/li>\n<li>\n<p>FreeRADIUS 3<\/p>\n<\/li>\n<li>\n<p>Wallix Bastion 8<\/p>\n<\/li>\n<\/ul>\n<ol>\n<li>\n<p>\u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 linotp.org :<\/p>\n<\/li>\n<\/ol>\n<h3>1. \u0418\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u044f LinOTP<\/h3>\n<p>\u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 linotp.org:<\/p>\n<p><code>echo 'deb http:\/\/www.linotp.org\/apt\/debian buster linotp linotp-deps' &gt; \/etc\/apt\/sources.list.d\/linotp.list<\/code><\/p>\n<p>\u0414\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043f\u0430\u043a\u0435\u0442\u0430 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u043a\u043b\u044e\u0447 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u043f\u0430\u043a\u0435\u0442\u0430:<\/p>\n<p><code>apt-get install dirmngr <\/code><\/p>\n<p><code>apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 913DFF12F86258E5<\/code><\/p>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0411\u0414 (<a href=\"http:\/\/linotp.org\/features.html\" rel=\"noopener noreferrer nofollow\">\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0435 \u0411\u0414<\/a>):<\/p>\n<p><code>apt-get update<\/code><\/p>\n<p><code>apt-get install mariadb-server<\/code><\/p>\n<p><code>mysql_secure_installation<\/code><\/p>\n<p>\u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c LinOTP:<\/p>\n<p><code>apt-get install linotp<\/code><\/p>\n<h3>2. \u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 Active Directory<\/h3>\n<p>\u0414\u043e\u0441\u0442\u0443\u0447\u0430\u0442\u044c\u0441\u044f \u0434\u043e \u0432\u0435\u0431-\u0430\u0434\u043c\u0438\u043d\u0430 LinOTP \u043c\u043e\u0436\u043d\u043e \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435: <strong>https:\/\/&lt;linotp_ip&gt;\/manage<\/strong><\/p>\n<p>\u0418\u0434\u0435\u043c \u0432 <strong>LinotpConfig<\/strong> -&gt; <strong>UserIdResolvers<\/strong> \u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u043e\u0432\u044b\u0439 <strong>UserIdResolver,<\/strong> \u0432\u044b\u0431\u0438\u0440\u0430\u044f \u0442\u0438\u043f <strong>LDAP<\/strong>:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/962\/732\/59c\/96273259c634779651b116196e32fb0a.png\" alt=\"\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f Resolver-a\" title=\"\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f Resolver-a\" width=\"833\" height=\"879\"><figcaption>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f Resolver-a<\/figcaption><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c Realm &#8212; \u0437\u0430\u0434\u0430\u0439\u0442\u0435 \u0435\u043c\u0443 \u0438\u043c\u044f, \u0438 \u0443\u043a\u0430\u0436\u0438\u0442\u0435 LDAP Resolver, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u043b\u0438.<\/p>\n<p>UserIdResolver-\u044b \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u0432 \u00ab\u043e\u0431\u043b\u0430\u0441\u0442\u0438\u00bb, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u0432 LinOTP. \u0412 \u043e\u0434\u043d\u043e\u043c Realm-e \u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u043c\u043d\u043e\u0433\u043e UserIdResolver-\u043e\u0432 (multitenancy, \u0442\u0430\u043a \u0441\u043a\u0430\u0437\u0430\u0442\u044c).<\/p>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432 <strong>User View<\/strong>.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9d3\/9b3\/fbf\/9d39b3fbfd51275f0d02918fe0517b17.png\" alt=\"C\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438\" title=\"C\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438\" width=\"1352\" height=\"781\"><figcaption>C\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438<\/figcaption><\/figure>\n<h3>3. \u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f LinOTP \u0438 FreeRADIUS<\/h3>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c FreeRADIUS \u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u043a\u0435\u0442\u044b:<\/p>\n<p><code>apt-get install linotp-adminclient-cli python-ldap freeradius python-passlib python-bcrypt git libio-all-lwp-perl libconfig-file-perl libtry-tiny-perl<\/code><\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u0438\u043c\u0432\u043e\u043b\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0438 \u0434\u043b\u044f freeradius:<\/p>\n<p><code>ln -s \/etc\/freeradius\/3.0\/sites-available \/etc\/freeradius\/sites-available<\/code><\/p>\n<p><code>ln -s \/etc\/freeradius\/3.0\/sites-enabled \/etc\/freeradius\/sites-enabled<\/code><\/p>\n<p><code>ln -s \/etc\/freeradius\/3.0\/clients.conf \/etc\/freeradius\/clients.conf<\/code><\/p>\n<p><code>ln -s \/etc\/freeradius\/3.0\/users \/etc\/freeradius\/users<\/code><\/p>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043c\u043e\u0434\u0443\u043b\u044c \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 <strong>linotp-auth-freeradius-perl<\/strong>:<\/p>\n<p><code>git clone https:\/\/github.com\/LinOTP\/linotp-auth-freeradius-perl.git<\/code><\/p>\n<p><code>cd linotp-auth-freeradius-perl\/<\/code><\/p>\n<p><code>cp radius_linotp.pm \/usr\/share\/linotp\/radius_linotp.pm<\/code><\/p>\n<p>\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u043c \u043a\u043e\u043d\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<p><code>nano \/etc\/freeradius\/sites-enabled\/linotp<\/code><\/p>\n<pre><code class=\"bash\">server linotp { listen {   ipaddr = *   port = 1812   type = auth } listen {   ipaddr = *   port = 1813   type = acct } authorize {   preprocess   update {     &amp;control:Auth-Type := Perl   } } authenticate {   Auth-Type Perl {     perl   } } accounting {   unix   } }<\/code><\/pre>\n<p>\u0412 sites-enabled \u0443\u0434\u0430\u043b\u044f\u0435\u043c \u0432\u0441\u0435 \u043a\u0440\u043e\u043c\u0435 linotp:<\/p>\n<p><code>ls \/etc\/freeradius\/sites-enabled<\/code><\/p>\n<p><code>linotp<\/code><\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c RADIUS-\u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432. \u042f \u0441\u0440\u0430\u0437\u0443 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e Wallix Bastion:<\/p>\n<p><code>nano \/etc\/freeradius\/clients.conf<\/code><\/p>\n<pre><code class=\"bash\">client Wallix {   ipaddr = 192.168.10.10   secret = your_secret }<\/code><\/pre>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440 perl \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0431\u0430\u0437\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439:<\/p>\n<p><code>nano \/etc\/freeradius\/users<\/code><\/p>\n<pre><code class=\"bash\">DEFAULT Auth-type := perl<\/code><\/pre>\n<p><code>nano \/etc\/freeradius\/3.0\/mods-available\/perl<\/code><\/p>\n<pre><code class=\"bash\">perl {  filename = \/usr\/share\/linotp\/radius_linotp.pm  func_authenticate = authenticate  func_authorize = authorize  }<\/code><\/pre>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u0438\u043c\u043b\u0438\u043d\u043a \u0434\u043b\u044f mods-enabled \u0438 \u0443\u0434\u0430\u043b\u044f\u0435\u043c eap:<\/p>\n<p><code>ln -s \/etc\/freeradius\/3.0\/mods-available\/perl \/etc\/freeradius\/3.0\/mods-enabled\/perl <\/code><\/p>\n<p><code>rm \/etc\/freeradius\/3.0\/mods-enabled\/eap<\/code><\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0443\u0447\u0435\u0442\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u0448\u043b\u0438 \u0432 Radius:<\/p>\n<p><code>nano \/etc\/linotp2\/rlm_perl.ini<\/code><\/p>\n<pre><code class=\"bash\">URL=https:\/\/&lt;Linotp_ip&gt;\/validate\/simplecheck REALM=realm1 RESCONF=resolver1 Debug=True SSL_CHECK=False<\/code><\/pre>\n<h3>4. \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u0442\u043e\u043a\u0435\u043d\u043e\u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439<\/h3>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442\u044c \u043d\u0430\u0448\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043a\u0435\u043d\u044b \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0443 LinOTP \u0435\u0441\u0442\u044c selfservice \u043f\u043e\u0440\u0442\u0430\u043b, \u0447\u0442\u043e \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0440\u0430\u0434\u043e\u0432\u0430\u0442\u044c.<\/p>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 LinOTPConfig &gt; policies \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u043e\u0432\u0443\u044e \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443. \u0412 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c TOTP, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u043d\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0442 \u0432 Google Authenticator, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/931\/43f\/cb3\/93143fcb31641aee084628cc82052691.png\" alt=\"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438\" title=\"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438\" width=\"938\" height=\"835\"><figcaption>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438<\/figcaption><\/figure>\n<p>\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 &#8212; <a href=\"http:\/\/linotp.org\/doc\/latest\/part-management\/policy\/index.html\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a>.<\/p>\n<p>URL \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439: <strong>https:\/\/&lt;LINOTP_ip&gt;<\/strong> \u0438\u043b\u0438 <strong>https:\/\/&lt;LINOTP_ip&gt; \/selfservice\/login<\/strong><\/p>\n<h3>5. Wallix Bastion \u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f<\/h3>\n<p>\u0427\u0442\u043e\u0431\u044b Wallix Bastion \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u043b \u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432\u0442\u043e\u0440\u043e\u0439 \u0444\u0430\u043a\u0442\u043e\u0440 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e, \u0432\u043e-\u043f\u0435\u0440\u0432\u044b\u0445,  \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432\u043d\u0435\u0448\u043d\u044e\u044e \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e.<\/p>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 <strong>Configuration&gt; External authentication <\/strong>\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u043e\u0432\u0443\u044e \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e &#8212; RADIUS. <strong>Secret<\/strong> \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0442\u043e\u0442, \u0447\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0440\u0430\u043d\u0435\u0435 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 freeRADIUS.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/61c\/e7f\/11b\/61ce7f11b045defe56b543a5ceedd5f1.png\" alt=\"\u0412\u043d\u0435\u0448\u043d\u044f\u044f \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043d\u0430 Wallix Bastion\" title=\"\u0412\u043d\u0435\u0448\u043d\u044f\u044f \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043d\u0430 Wallix Bastion\" width=\"551\" height=\"462\"><figcaption>\u0412\u043d\u0435\u0448\u043d\u044f\u044f \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043d\u0430 Wallix Bastion<\/figcaption><\/figure>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 <strong>LDAP\/AD domains<\/strong> \u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c (\u0438\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c, \u0435\u0441\u043b\u0438 \u0432\u044b \u0435\u0449\u0435 \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u0441\u0434\u0435\u043b\u0430\u043b\u0438) \u0434\u043e\u043c\u0435\u043d, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0440\u0430\u043d\u0435\u0435 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0441 LinOTP. \u0412 <strong>Secondary authentication<\/strong> \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 linotp \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u043c\u0435\u043d \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0af\/b49\/21b\/0afb4921bdb5306b2b42fb1387d852f7.png\" width=\"734\" height=\"328\"><figcaption><\/figcaption><\/figure>\n<p>\u0421 \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432 Wallix Bastion \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0432\u0443\u0445\u0444\u0430\u043a\u0442\u043e\u0440\u043d\u043e\u0439 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438, \u0433\u0434\u0435 \u0432\u0442\u043e\u0440\u043e\u0439 \u0444\u0430\u043a\u0442\u043e\u0440 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 LinOTP.<\/p>\n<p><strong>6. Troubleshoot.<\/strong><\/p>\n<p>\u0415\u0441\u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0438\u0441\u043a\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438: <\/p>\n<p>\u041b\u043e\u0433\u0438 RADIUS:<\/p>\n<p><code>\/var\/log\/freeradius\/radius.log<\/code><\/p>\n<p>\u041b\u043e\u0433\u0438 LinOTP:<\/p>\n<p><code>\/var\/log\/linotp\/linotp.log<\/code><\/p>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0442\u043e\u043a\u0435\u043d \u043c\u043e\u0436\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<p><code>https:\/\/&lt;yourlinotpserver&gt;\/validate\/check?user=&lt;login&gt;&amp;pass=&lt;OTPvalue&gt;<\/code><\/p>\n<hr>\n<h3>\u0412\u043c\u0435\u0441\u0442\u043e \u0432\u044b\u0432\u043e\u0434\u0430<\/h3>\n<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b\u0438 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0444\u0430\u043a\u0442\u043e\u0440\u0430 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 &#8212; LinOTP \u0438 \u043f\u0440\u0438\u043a\u0440\u0443\u0442\u0438\u043b\u0438 \u0435\u0435 \u043a \u0440\u0435\u0448\u0435\u043d\u0438\u044e Wallix Bastion \u0441 FreeRADIUS \u0432 \u0440\u043e\u043b\u0438 \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440\u0430.<\/p>\n<p>\u041c\u043e\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0430 \u0430\u043d\u0433\u043b. &#8212; <a href=\"https:\/\/medium.com\/@katerynamok\/linotp-installation-and-usage-1addc11b3c74\" rel=\"noopener noreferrer nofollow\">medium<\/a><\/p>\n<p>\u0421\u043f\u0430\u0441\u0438\u0431\u043e, \u0447\u0442\u043e \u0443\u0434\u0435\u043b\u0438\u043b\u0438 \u0432\u0440\u0435\u043c\u044f, \u043d\u0430\u0434\u0435\u044e\u0441\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0431\u044b\u043b\u0430 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439.<\/p>\n<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/556808\/\"> https:\/\/habr.com\/ru\/post\/556808\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441\u0432\u043e\u0438\u043c \u043e\u043f\u044b\u0442\u043e\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u0441 LinOTP \u0438 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0439 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0432\u044f\u0437\u043a\u0438 LinOTP + FreeRADIUS \u0438 Wallix Bastion.<\/p>\n<p><a href=\"http:\/\/linotp.org\/about.html\" rel=\"noopener noreferrer nofollow\">LinOTP<\/a> \u044d\u0442\u043e \u0433\u0438\u0431\u043a\u0430\u044f <strong>\u043e\u043f\u0435\u043d\u0441\u043e\u0440\u0441<\/strong> \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0434\u043b\u044f \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0439 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438.<\/p>\n<p>Wallix Bastion &#8212; \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u044b\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u043c (PAM).<\/p>\n<p>\u041d\u0430 \u0425\u0430\u0431\u0440\u0435 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u0440\u043e LinOTP &#8212; <a href=\"https:\/\/habr.com\/ru\/post\/270571\/\" rel=\"noopener noreferrer nofollow\">1<\/a>, <a href=\"https:\/\/habr.com\/ru\/post\/462523\/\" rel=\"noopener noreferrer nofollow\">2<\/a>. \u0417\u0434\u0435\u0441\u044c \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043d\u043e\u0432\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u041e\u0421 \u0438 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043c \u043e\u0442 \u043d\u0430\u0447\u0430\u043b\u0430 \u0434\u043e \u043a\u043e\u043d\u0446\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438, \u043f\u043e\u0435\u0445\u0430\u043b\u0438..<\/p>\n<p>\u0427\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c:<\/p>\n<ul>\n<li>\n<p>LinOTP 2.12.3<\/p>\n<\/li>\n<li>\n<p>Debian 10 (<a href=\"http:\/\/linotp.org\/download.html\" rel=\"noopener noreferrer nofollow\">\u0422\u0430\u043a \u0436\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f<\/a>)<\/p>\n<\/li>\n<li>\n<p>FreeRADIUS 3<\/p>\n<\/li>\n<li>\n<p>Wallix Bastion 8<\/p>\n<\/li>\n<\/ul>\n<ol>\n<li>\n<p>\u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 linotp.org :<\/p>\n<\/li>\n<\/ol>\n<h3>1. \u0418\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u044f LinOTP<\/h3>\n<p>\u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 linotp.org:<\/p>\n<p><code>echo 'deb http:\/\/www.linotp.org\/apt\/debian buster linotp linotp-deps' &gt; \/etc\/apt\/sources.list.d\/linotp.list<\/code><\/p>\n<p>\u0414\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043f\u0430\u043a\u0435\u0442\u0430 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u043a\u043b\u044e\u0447 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u043f\u0430\u043a\u0435\u0442\u0430:<\/p>\n<p><code>apt-get install dirmngr <\/code><\/p>\n<p><code>apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 913DFF12F86258E5<\/code><\/p>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0411\u0414 (<a href=\"http:\/\/linotp.org\/features.html\" rel=\"noopener noreferrer nofollow\">\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0435 \u0411\u0414<\/a>):<\/p>\n<p><code>apt-get update<\/code><\/p>\n<p><code>apt-get install mariadb-server<\/code><\/p>\n<p><code>mysql_secure_installation<\/code><\/p>\n<p>\u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c LinOTP:<\/p>\n<p><code>apt-get install linotp<\/code><\/p>\n<h3>2. \u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 Active Directory<\/h3>\n<p>\u0414\u043e\u0441\u0442\u0443\u0447\u0430\u0442\u044c\u0441\u044f \u0434\u043e \u0432\u0435\u0431-\u0430\u0434\u043c\u0438\u043d\u0430 LinOTP \u043c\u043e\u0436\u043d\u043e \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435: <strong>https:\/\/&lt;linotp_ip&gt;\/manage<\/strong><\/p>\n<p>\u0418\u0434\u0435\u043c \u0432 <strong>LinotpConfig<\/strong> -&gt; <strong>UserIdResolvers<\/strong> \u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u043e\u0432\u044b\u0439 <strong>UserIdResolver,<\/strong> \u0432\u044b\u0431\u0438\u0440\u0430\u044f \u0442\u0438\u043f <strong>LDAP<\/strong>:<\/p>\n<figure class=\"full-width\"><figcaption>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f Resolver-a<\/figcaption><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c Realm &#8212; \u0437\u0430\u0434\u0430\u0439\u0442\u0435 \u0435\u043c\u0443 \u0438\u043c\u044f, \u0438 \u0443\u043a\u0430\u0436\u0438\u0442\u0435 LDAP Resolver, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u043b\u0438.<\/p>\n<p>UserIdResolver-\u044b \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u0432 \u00ab\u043e\u0431\u043b\u0430\u0441\u0442\u0438\u00bb, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u0432 LinOTP. \u0412 \u043e\u0434\u043d\u043e\u043c Realm-e \u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u043c\u043d\u043e\u0433\u043e UserIdResolver-\u043e\u0432 (multitenancy, \u0442\u0430\u043a \u0441\u043a\u0430\u0437\u0430\u0442\u044c).<\/p>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432 <strong>User View<\/strong>.<\/p>\n<figure class=\"full-width\"><figcaption>C\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438<\/figcaption><\/figure>\n<h3>3. \u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f LinOTP \u0438 FreeRADIUS<\/h3>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c FreeRADIUS \u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u043a\u0435\u0442\u044b:<\/p>\n<p><code>apt-get install linotp-adminclient-cli python-ldap freeradius python-passlib python-bcrypt git libio-all-lwp-perl libconfig-file-perl libtry-tiny-perl<\/code><\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u0438\u043c\u0432\u043e\u043b\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0438 \u0434\u043b\u044f freeradius:<\/p>\n<p><code>ln -s \/etc\/freeradius\/3.0\/sites-available \/etc\/freeradius\/sites-available<\/code><\/p>\n<p><code>ln -s \/etc\/freeradius\/3.0\/sites-enabled \/etc\/freeradius\/sites-enabled<\/code><\/p>\n<p><code>ln -s \/etc\/freeradius\/3.0\/clients.conf \/etc\/freeradius\/clients.conf<\/code><\/p>\n<p><code>ln -s \/etc\/freeradius\/3.0\/users \/etc\/freeradius\/users<\/code><\/p>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043c\u043e\u0434\u0443\u043b\u044c \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 <strong>linotp-auth-freeradius-perl<\/strong>:<\/p>\n<p><code>git clone https:\/\/github.com\/LinOTP\/linotp-auth-freeradius-perl.git<\/code><\/p>\n<p><code>cd linotp-auth-freeradius-perl\/<\/code><\/p>\n<p><code>cp radius_linotp.pm \/usr\/share\/linotp\/radius_linotp.pm<\/code><\/p>\n<p>\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u043c \u043a\u043e\u043d\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<p><code>nano \/etc\/freeradius\/sites-enabled\/linotp<\/code><\/p>\n<pre><code class=\"bash\">server linotp { listen {   ipaddr = *   port = 1812   type = auth } listen {   ipaddr = *   port = 1813   type = acct } authorize {   preprocess   update {     &amp;control:Auth-Type := Perl   } } authenticate {   Auth-Type Perl {     perl   } } accounting {   unix   } }<\/code><\/pre>\n<p>\u0412 sites-enabled \u0443\u0434\u0430\u043b\u044f\u0435\u043c \u0432\u0441\u0435 \u043a\u0440\u043e\u043c\u0435 linotp:<\/p>\n<p><code>ls \/etc\/freeradius\/sites-enabled<\/code><\/p>\n<p><code>linotp<\/code><\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c RADIUS-\u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432. \u042f \u0441\u0440\u0430\u0437\u0443 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e Wallix Bastion:<\/p>\n<p><code>nano \/etc\/freeradius\/clients.conf<\/code><\/p>\n<pre><code class=\"bash\">client Wallix {   ipaddr = 192.168.10.10   secret = your_secret }<\/code><\/pre>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440 perl \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0431\u0430\u0437\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439:<\/p>\n<p><code>nano \/etc\/freeradius\/users<\/code><\/p>\n<pre><code class=\"bash\">DEFAULT Auth-type := perl<\/code><\/pre>\n<p><code>nano \/etc\/freeradius\/3.0\/mods-available\/perl<\/code><\/p>\n<pre><code class=\"bash\">perl {  filename = \/usr\/share\/linotp\/radius_linotp.pm  func_authenticate = authenticate  func_authorize = authorize  }<\/code><\/pre>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u0438\u043c\u043b\u0438\u043d\u043a \u0434\u043b\u044f mods-enabled \u0438 \u0443\u0434\u0430\u043b\u044f\u0435\u043c eap:<\/p>\n<p><code>ln -s \/etc\/freeradius\/3.0\/mods-available\/perl \/etc\/freeradius\/3.0\/mods-enabled\/perl <\/code><\/p>\n<p><code>rm \/etc\/freeradius\/3.0\/mods-enabled\/eap<\/code><\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0443\u0447\u0435\u0442\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u0448\u043b\u0438 \u0432 Radius:<\/p>\n<p><code>nano \/etc\/linotp2\/rlm_perl.ini<\/code><\/p>\n<pre><code class=\"bash\">URL=https:\/\/&lt;Linotp_ip&gt;\/validate\/simplecheck REALM=realm1 RESCONF=resolver1 Debug=True SSL_CHECK=False<\/code><\/pre>\n<h3>4. \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u0442\u043e\u043a\u0435\u043d\u043e\u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439<\/h3>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442\u044c \u043d\u0430\u0448\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043a\u0435\u043d\u044b \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0443 LinOTP \u0435\u0441\u0442\u044c selfservice \u043f\u043e\u0440\u0442\u0430\u043b, \u0447\u0442\u043e \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0440\u0430\u0434\u043e\u0432\u0430\u0442\u044c.<\/p>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 LinOTPConfig &gt; policies \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u043e\u0432\u0443\u044e \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443. \u0412 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c TOTP, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u043d\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0442 \u0432 Google Authenticator, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435:<\/p>\n<figure class=\"full-width\"><figcaption>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438<\/figcaption><\/figure>\n<p>\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 &#8212; <a href=\"http:\/\/linotp.org\/doc\/latest\/part-management\/policy\/index.html\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a>.<\/p>\n<p>URL \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439: <strong>https:\/\/&lt;LINOTP_ip&gt;<\/strong> \u0438\u043b\u0438 <strong>https:\/\/&lt;LINOTP_ip&gt; \/selfservice\/login<\/strong><\/p>\n<h3>5. Wallix Bastion \u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f<\/h3>\n<p>\u0427\u0442\u043e\u0431\u044b Wallix Bastion \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u043b \u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432\u0442\u043e\u0440\u043e\u0439 \u0444\u0430\u043a\u0442\u043e\u0440 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e, \u0432\u043e-\u043f\u0435\u0440\u0432\u044b\u0445,  \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432\u043d\u0435\u0448\u043d\u044e\u044e \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e.<\/p>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 <strong>Configuration&gt; External authentication <\/strong>\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u043e\u0432\u0443\u044e \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e &#8212; RADIUS. <strong>Secret<\/strong> \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0442\u043e\u0442, \u0447\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0440\u0430\u043d\u0435\u0435 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 freeRADIUS.<\/p>\n<figure class=\"full-width\"><figcaption>\u0412\u043d\u0435\u0448\u043d\u044f\u044f \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043d\u0430 Wallix Bastion<\/figcaption><\/figure>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 <strong>LDAP\/AD domains<\/strong> \u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c (\u0438\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c, \u0435\u0441\u043b\u0438 \u0432\u044b \u0435\u0449\u0435 \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u0441\u0434\u0435\u043b\u0430\u043b\u0438) \u0434\u043e\u043c\u0435\u043d, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0440\u0430\u043d\u0435\u0435 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0441 LinOTP. \u0412 <strong>Secondary authentication<\/strong> \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 linotp \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u043c\u0435\u043d \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0421 \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432 Wallix Bastion \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0432\u0443\u0445\u0444\u0430\u043a\u0442\u043e\u0440\u043d\u043e\u0439 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438, \u0433\u0434\u0435 \u0432\u0442\u043e\u0440\u043e\u0439 \u0444\u0430\u043a\u0442\u043e\u0440 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 LinOTP.<\/p>\n<p><strong>6. Troubleshoot.<\/strong><\/p>\n<p>\u0415\u0441\u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0438\u0441\u043a\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438: <\/p>\n<p>\u041b\u043e\u0433\u0438 RADIUS:<\/p>\n<p><code>\/var\/log\/freeradius\/radius.log<\/code><\/p>\n<p>\u041b\u043e\u0433\u0438 LinOTP:<\/p>\n<p><code>\/var\/log\/linotp\/linotp.log<\/code><\/p>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0442\u043e\u043a\u0435\u043d \u043c\u043e\u0436\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<p><code>https:\/\/&lt;yourlinotpserver&gt;\/validate\/check?user=&lt;login&gt;&amp;pass=&lt;OTPvalue&gt;<\/code><\/p>\n<hr>\n<h3>\u0412\u043c\u0435\u0441\u0442\u043e \u0432\u044b\u0432\u043e\u0434\u0430<\/h3>\n<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b\u0438 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0444\u0430\u043a\u0442\u043e\u0440\u0430 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 &#8212; LinOTP \u0438 \u043f\u0440\u0438\u043a\u0440\u0443\u0442\u0438\u043b\u0438 \u0435\u0435 \u043a \u0440\u0435\u0448\u0435\u043d\u0438\u044e Wallix Bastion \u0441 FreeRADIUS \u0432 \u0440\u043e\u043b\u0438 \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440\u0430.<\/p>\n<p>\u041c\u043e\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0430 \u0430\u043d\u0433\u043b. &#8212; <a href=\"https:\/\/medium.com\/@katerynamok\/linotp-installation-and-usage-1addc11b3c74\" rel=\"noopener noreferrer nofollow\">medium<\/a><\/p>\n<p>\u0421\u043f\u0430\u0441\u0438\u0431\u043e, \u0447\u0442\u043e \u0443\u0434\u0435\u043b\u0438\u043b\u0438 \u0432\u0440\u0435\u043c\u044f, \u043d\u0430\u0434\u0435\u044e\u0441\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0431\u044b\u043b\u0430 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439.<\/p>\n<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/556808\/\"> https:\/\/habr.com\/ru\/post\/556808\/<\/a><br \/><\/br><\/br><\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-322892","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/322892","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=322892"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/322892\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=322892"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=322892"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=322892"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}