赞
踩
在当前数字时代,网络安全成为了一个非常重要的话题。随着越来越多的人和组织依赖于计算机系统来进行工作和存储敏感信息,确保身份验证安全变得至关重要。双因素身份验证(2FA)是一种强大的安全措施,可在传统的用户名和密码之外添加另一层保护。
MultiOTP是一个开源项目,它提供了一套PHP类和工具用于实现双因素身份验证(2FA)。MultiOTP支持基于时间的一次性密码(TOTP)和基于计数的一次性密码(HOTP)。
该项目允许您构建本地的强认证服务器来验证用户身份,并可与移动设备上的OTP生成器(如Microsoft Authenticator或Google Authenticator)配合使用。通过生成一次性密码,MultiOTP增加了登录过程的安全性。
与商业化的双因素身份验证工具不同,MultiOTP是免费且可以在没有互联网访问的情况下离线运行。这使得您能够在无网络连接的环境中配置和使用MultiOTP,为系统提供更高的安全性。
MultiOTP可以应用于多种场景,包括Windows登录和远程桌面访问,通过为这些场景启用双因素身份验证,确保只有通过认证的用户能够访问系统。MultiOTP具有灵活的配置选项和易于使用的界面,使您能够轻松集成和管理双因素身份验证。
GITHUB地址:https://github.com/multiOTP/multiotp
前提条件
docker run --name multiotp \
--restart always \
-v /multiotp/multiotp/data:/etc/multiotp \
-v /multiotp/freeradius/config:/etc/freeradius \
-v /multiotp/log/multiotp:/var/log/multiotp \
-v /multiotp/log/freeradius:/var/log/freeradius \
-p 8080:80 \
-p 8443:443 \
-p 1812:1812/udp \
-p 1813:1813/udp \
-d multiotp/multiotp-open-source
当运行上述Docker命令时,各个参数的含义如下:
--name multiotp
:为容器指定一个名称为multiotp
。
--restart always
:设置容器在出现故障或重新启动Docker宿主机时始终自动重新启动。
-v /multiotp/multiotp/data:/etc/multiotp
:将主机上的/multiotp/multiotp/data
目录挂载到容器内的/etc/multiotp
目录,用于持久化存储MultiOTP配置数据。
-v /multiotp/freeradius/config:/etc/freeradius
:将主机上的/multiotp/freeradius/config
目录挂载到容器内的/etc/freeradius
目录,用于持久化存储FreeRADIUS配置数据。
-v /multiotp/log/multiotp:/var/log/multiotp
:将主机上的/multiotp/log/multiotp
目录挂载到容器内的/var/log/multiotp
目录,用于持久化存储MultiOTP日志。
-v /multiotp/log/freeradius:/var/log/freeradius
:将主机上的/multiotp/log/freeradius
目录挂载到容器内的/var/log/freeradius
目录,用于持久化存储FreeRADIUS日志。
-p 8080:80
:将主机上的8080端口映射到容器内的80端口,用于访问MultiOTP的Web界面。
-p 8443:443
:将主机上的8443端口映射到容器内的443端口,用于访问MultiOTP的安全Web界面(HTTPS)。
-p 1812:1812/udp
:将主机上的1812 UDP端口映射到容器内的1812 UDP端口,用于FreeRADIUS接收认证请求。
-p 1813:1813/udp
:将主机上的1813 UDP端口映射到容器内的1813 UDP端口,用于FreeRADIUS接收账务请求。
-d
:以分离模式(即后台模式)运行容器。
multiotp/multiotp-open-source
:指定要运行的Docker镜像名称和标签,这里是MultiOTP的官方Docker镜像。
通过以上参数设置,您可以成功运行MultiOTP容器,并实现容器的自动重启和持久化配置、日志的存储。
docker exec -it multiotp bash
multiotp -config default-request-prefix-pin=0 multiotp -config default-request-ldap-pwd=0 multiotp -config ldap-server-type=1 multiotp -config ldap-cn-identifier="sAMAccountName" multiotp -config ldap-group-cn-identifier="sAMAccountName" multiotp -config ldap-group-attribute="memberOf" multiotp -config ldap-ssl=0 multiotp -config ldap-port=389 # Domain controller IP address: multiotp -config ldap-domain-controllers=SH-DC-03.test.com,ldap://192.168.1.4:389 multiotp -config ldap-base-dn="DC=test,DC=com" # Account for multiOTP authentication in AD: multiotp -config ldap-bind-dn="CN=Multiotp,OU=Administrators,DC=test,DC=com" multiotp -config ldap-server-password="Test@1013" # Group of users you want to enable OTP for: multiotp -config ldap-in-group="MultiOTPGroup" multiotp -config ldap-network-timeout=10 multiotp -config ldap-time-limit=30 multiotp -config ldap-activated=1 # Key to access a MultiOTP server: multiotp -config server_secret=dGx9cn5qeFV7fFJ5RGRcGd4^C
之前已经创建了MultiOTPGroup组,并将1个用户添加到了该组中。现在我们需要将AD(Active Directory)用户与multiOTP同步。
multiotp -debug -display-log -ldap-users-sync
建议您更改默认凭据
接下来就是要在要使用multiOTP实施双因素身份验证的Windows计算机上安装multiOTP-CredentialProvider。multiOTP-CredentialProvider可以在任何Windows 7/8/8.1/10/11或Windows Server 2012(R2)/2016/2019/2022版本上安装。
https://github.com/multiOTP/multiOTPCredentialProvider/releases
目前最新版本 5.9.6.1
安装完毕后重启电脑就可以了啊,下面是效果图:
虽然已经测试成功了,但目前还是存在一些问题需要解决的,其他的功能有待配置完善。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。