如何使用privacyIDEA设置您的OTP设备
由Nemo @ pixabay
在这方面,我们将设置一个可以充当自己的个人OTP设备的系统,管理网络中的所有身份验证设备。 然后,您可以将您的服务配置为对本机进行身份验证。 使用一些虚拟化机制是一个好主意。 如果你有一些旧的硬件,这甚至是一样好。
我们将在ubuntu 14.04 LTS系统上安装privacyIDEA ,您可能在此处或这里已经看到。 但这次我们会做得更顺畅,更优雅!
基础安装
免责声明:我认为您在这种情况下是root用户。 如果没有,你应该在每个命令前加上“sudo”。
所以首先我们安装一个简单的ubuntu服务器14.04 LTS没有什么。 请不要安装任何数据库或网络服务器。 您只应选择openssh作为本机上的服务运行。
安装privacyIDEA
privacyIDEA 1.3.3在启动板存储库中附带了一堆新的debian软件包,这使得它更易于设置。
首先我们需要将系统添加到系统中:
apt-get install software-properties-common
add-apt-repository ppa:privacyidea/privacyidea
apt-get update
现在我们添加了privacyidea仓库,你可以看看可用的:
root@ubuntu:~# apt-cache search privacyidea
privacyidea - two-factor authentication system e.g. for OTP devices
privacyideaadm - admin client for privacyIDEA
privacyidea-radius - FreeRADIUS module for privacyIDEA, OTP authentication
privacyidea-all - two-factor authenticaion system. This is a metapackage to install everything.
privacyidea-otrs - OTRS module for privacyIDEA, OTP authentication
privacyidea-nginx - two-factor authentication system. This is a meta package to install privacyidea with nginx
privacyidea-appliance - two-factor authentication system. This is a setup tool for easy system setup.
对于不同的场景,有不同的(元)包。 如上所述,我们想安装一种“电器”。 所以让我们这样做:
apt-get install privacyidea-appliance privacyidea-radius
这将安装Nginx网络服务器,MySQL数据库,FreeRADIUS服务器和具有所有python依赖关系的privacyIDEA。
您将被要求输入MySQL根密码。 选择一个好的 - 我们以后不需要它! ;-)
安装完成后,您就可以配置设备了。
配置您的设备
有一个工具来配置您的设备的所有必要手段。 在命令行中以root用户身份启动它。
privacyidea-setup-tui
这是一个基于对话框的文本UI工具,它允许您在操作系统级别执行所有相关任务,例如管理令牌管理员,设置日志级别,重新生成加密和签名密钥,设置正确的Web服务和RADIUS服务以及管理RADIUS客户端。
至少我们需要执行以下任务:
- 创建至少一个令牌管理员
- 创建MySQL数据库
- 创建RADIUS客户端
该工具基于FreeRADIUS客户端文件的解析器逻辑,privacyIDEA ini文件和nginx文件。 所以您也可以在命令行编辑文件,更改将被保留。
注意:如果您手动编辑这些文件,安装工具将不会保留文件中的任何注释!
创建您的令牌管理员
要管理你的令牌管理员去隐私权 ? 管理管理员 。
在那里你可以选择添加新的管理员 。
您将被要求:
- 一个用户名,我在哪里选择管理员和
- 在屏幕上没有回显的密码(两次!)。
现在,您创建了您的管理员(或管理员),您可以点击取消并取消并返回主菜单。
创建MySQL数据库
你也可以略过这一步。 然后,privacyIDEA将使用/ var / lib / privacyidea /上的SQLite数据库运行。 但是我们选择在这种情况下使用MySQL数据库。
那么去privacyIDEA ? 数据库 ...
您可以在本地选择重置 ,这将创建MySQL数据库,创建用户并设置数据库表。
是的,我们做!
最后,您将看到使用MySQL数据库的新配置。
创建RADIUS客户端
在主菜单中选择FreeRADIUS ? 客户端配置来管理您的RADIUS客户端。 默认的/etc/freeradius/clients.conf附带一个localhost客户端,这就是为什么你已经在列表中看到一个客户端。
注意:您不能删除最后一个客户端,因此我们创建新的客户端!
我们将创建一个客户端网络来处理网络中所有可能的客户端和客户机本地主机,以针对系统运行测试。 所以我选择这些值 - 你应该相应地适应网络:
- 网络
-
名字:mynetwork
-
ip:172.16.200.0
-
网络掩码:24
-
秘密:topSecret4All
-
短名称:
空
- 本地主机
-
名称:localhost
-
ip:127.0.0.1
-
网络掩码:32
-
秘密:topSecretOnce
-
短名称:
空
我们选择添加新客户端来创建新客户端“mynetwork”,对话框将会询问我们上述值。 因此,网络172.16.200.0/24上的所有客户端都将能够发出RADIUS秘密“topSecret4All”的RADIUS请求。
客户端配置的名称
IP地址
网络掩码
共享的秘密
短名称可以留空
您可以选择客户端“localhost”并将其删除。 之后,您可以根据上述设置创建一个新的客户端“localhost”。
完成配置
现在完成配置基本系统。 安装工具应该意识到,您更改重要数据并重新启动服务。 但是要确保您可以手动执行此操作:
service uwsgi restart
service freeradius restart
注册令牌
您现在可以注册认证设备,这是使用管理Web UI完成的。 将您的浏览器指向https://您的服务器,接受自签名证书的证书警告,您将获得登录屏幕:
在此登录屏幕上,您可以以令牌管理员身份登录。 您创建的所有令牌管理员需要在其名称中添加“@admin”,以指示他们是管理员。
Web UI可以让您看到令牌,用户,策略,计算机和审核日志。
连接到用户源
由于privacyIDEA不管理用户本身,因此我们需要从某些来源读取用户。 我们将使用/ etc / passwd文件。
点击privacyIDEA配置 ? useridresolvers ,点击新建按钮并选择Flatfile 。
单击保存以将名称为“local”的解析器定义保存。
注意:任何时候,您可以点击绿色圆圈中的白色问号,这将在另一个浏览器窗口中转到上下文联机帮助。 事实上,阅读有关解析器和领域的东西可能是一个好主意;-)。
关闭解析器窗口时,您将被自动导入到领域窗口,或者您可以单击privacyIDEA Config ? 领域创造了一个新的境界。 在此对话框中,您需要单击新建 。
输入领域的名称(“realm1”),然后选择解析器(“本地”),然后单击保存 。
然后你会看到你的领域的新领域。
您可以关闭窗口,然后单击“ 用户视图 ”选项卡。
向用户注册令牌
在底部,您可以通过输入“r *”并单击搜索按钮来搜索用户。 您将看到用户根。 通过点击它来选择用户。 用户将在左侧栏中被提及为所选用户。 现在您可以点击左侧栏中的按钮注册 。
然后将打开注册对话框。 选择“HMAC eventbased”令牌类型并选择生成HMAC密钥 。
点击按钮注册 。 服务器将创建一个秘密密钥,并渲染可以使用Google Authenticator App进行扫描的QR码。 此Google Authenticator应用程序现在将用作身份验证设备。
扫描QR码后,您可以单击“确定” ,最后设置一个PIN码(仅限您所知道的密码)。
现在您有两个因素来验证身份验证设备生成的PIN和OTP值。
测试你的系统
现在我们可以通过向该设备发出RADIUS请求来检查系统。 我将从系统本身以root身份登录,通过ssh使用以下命令:
echo "User-Name=root, Password=PIN+OTP" | radclient -s 127.0.0.1 auth topSecretOnce
密码从PIN和OTP值连接起来,“topSecretOnce”是本地主机的共享密钥。
root@ubuntu:~# echo "User-Name=root, Password=test570391" | radclient -s 127.0.0.1 auth topSecretOnce
Received response ID 209, code 3, length = 55
Reply-Message = "privacyIDEA server denied access!"
Total approved auths: 0
Total denied auths: 1
Total lost auths: 0
root@ubuntu:~# echo "User-Name=root, Password=test137634" | radclient -s 127.0.0.1 auth topSecretOnce
Received response ID 180, code 2, length = 48
Reply-Message = "privacyIDEA access granted"
Total approved auths: 1
Total denied auths: 0
Total lost auths: 0
注意:由于应用程序和服务器中的启动计数器不同,第一个身份验证将失败。
现在,您可以使用所有启用RADIUS的应用程序(防火墙,OpenVPN),并使用以前定义的共享密钥将其配置为针对privacyIDEA进行身份验证。
快乐认证!