什么是 2FA/TOTP?
双因素身份验证 (2FA) 是一种安全流程,除了密码之外还增加了一层验证。通常,它涉及您知道的东西(例如密码)和您拥有的东西(例如移动设备)。基于时间的一次性密码 (TOTP) 是 2FA 的一种特定形式,其中会定期(通常为 30 秒)生成唯一密码,为身份验证流程提供动态且时间敏感的元素。
为什么要在您的VPS 上启用 2FA/TOTP?
数字环境充满了潜在威胁,VPS服务器也不例外。在您的 VPS 上启用 2FA/TOTP 可显著增强服务器的安全状况。单凭密码很容易受到各种攻击,例如暴力破解和网络钓鱼。通过引入第二层身份验证,您可以加强对未经授权访问的防御,从而降低数据泄露和潜在危害的风险。
准备工作
在您的虚拟专用服务器 (VPS)上开始启用基于时间的一次性密码 (TOTP) 的双因素身份验证 (2FA) 之前,请确保您已满足以下先决条件。
VPS 访问
要实施安全措施,您必须通过 SSH 建立与服务器的连接并拥有对 VPS 的管理访问权限。确保您拥有进行配置更改所需的凭据和权限。如果您不是管理员,请与负责VPS管理的人员或团队协调。
PuTTY – 可靠的 SSH 客户端
安全外壳 (SSH) 是安全访问和管理 VPS 的基本协议。PuTTY 是广泛使用且可靠的 Windows SSH 客户端,您可以从 PuTTY 下载 (https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html) 下载。
如果您使用不同的 SSH 客户端,请确保它已配置并准备好连接到您的 VPS。
设置 SSH 密钥验证
配置 SSH 密钥验证是保护虚拟专用服务器 (VPS) 的第一步。
完成 SSH 密钥身份验证设置后,返回此处继续在 VPS 上启用基于时间的一次性密码 (TOTP) 的双因素身份验证 (2FA)。
在您的 VPS 上安装和配置 TOTP
现在 SSH 密钥验证已经到位,让我们继续安装和配置基于时间的一次性密码 (TOTP),为您的 VPS 增加一层安全性。
安装所需的软件包以启用 TOTP
首先安装启用 TOTP 所需的软件包。具体命令可能因 VPS 的操作系统而异。请参阅系统的软件包管理器文档以获取指导。
基于 Debian 的系统的示例命令:
sudo apt-get update
sudo apt-get install libpam-google-authenticator
为 SSH 配置 TOTP
安装所需的软件包后,为 SSH 配置 TOTP。编辑 SSH 守护进程配置文件(通常位于“/etc/ssh/sshd_config”),并确保存在以下几行:
ChallengeResponseAuthentication yes
AuthenticationMethods publickey,keyboard-interactive
保存更改并重新启动 SSH 服务:
sudo service ssh restart
保护您的 SSH 配置
为了增强安全性,请禁用 SSH 的密码验证。再次打开 SSH 配置文件并设置:
PasswordAuthentication no
重新启动 SSH 服务以应用更改。
sudo service ssh restart
在移动设备上设置 TOTP
现在,让我们在您的移动设备上配置基于时间的一次性密码 (TOTP)。此步骤可确保访问虚拟专用服务器 (VPS) 的身份验证过程无缝且安全。
安装 TOTP 身份验证器应用程序
首先在您的移动设备上安装 TOTP Authenticator 应用。Google Authenticator 是一种流行的选择,但Authy或Microsoft Authenticator等替代方案也同样有效。访问您设备的应用商店:
适用于 Android 的应用程序:
– Google 身份验证器
– Microsoft Authenticator
– Authy
适用于 iOS 的应用程序:
– Google 身份验证器
– Microsoft Authenticator
– Authy
下载并安装该应用程序。
将您的VPS添加到身份验证器应用程序
1.打开 TOTP Authenticator 应用程序。
2. 点击添加新帐户或扫描条形码的选项。
3. 在您的 VPS 上,运行以下命令为 TOTP 设置生成二维码:
google-authenticator
4. 使用您的 TOTP Authenticator 应用程序扫描二维码或手动输入提供的密钥。
生成并保存备份代码
作为预防措施,请生成并保存备用代码。如果您无法访问移动设备,这些代码可作为故障保护。在设置过程中(步骤 3),系统将提示您生成备用代码。将这些代码保存在安全的位置,例如密码管理器或物理备份。
在您的移动设备上设置 TOTP 后,您的 VPS 现在需要 SSH 密钥验证和来自验证器应用程序的时间敏感代码才能访问,从而大大增强了服务器的安全性。
测试 TOTP 身份验证
在完成设置之前,测试 TOTP 身份验证以确认其有效性尤为重要。尝试通过 SSH 进入您的 VPS,系统应提示您输入 SSH 密钥和身份验证器应用程序生成的 TOTP。
ssh your_username@your_vps_ip
如果成功,则表示您已成功在VPS上配置基于时间的一次性密码。现在继续执行后续步骤以完成实施并进一步保护您的服务器。
实施 2FA/TOTP
现在已配置了基于时间的一次性密码 (TOTP),是时候在您的 VPS 上强制实施双因素身份验证 (2FA) 了。这可确保访问您的服务器需要 SSH 密钥身份验证和您的移动设备生成的动态 TOTP。
修改 SSH 配置
打开您的 SSH 配置文件(通常位于“/etc/ssh/sshd_config”),并确保配置了以下设置:
ChallengeResponseAuthentication yes
AuthenticationMethods publickey,keyboard-interactive
PasswordAuthentication no
保存更改并重新启动 SSH 服务:
sudo service ssh restart
这些设置确保 SSH 同时需要公钥认证和 TOTP 质询。
禁用密码验证
为了进一步加强安全性,请完全禁用密码验证。确认您的 SSH 配置文件中存在以下行:
PasswordAuthentication no
再次重新启动 SSH 服务以应用更改。
sudo service ssh restart
调整安全组/防火墙规则
如果您的VPS位于防火墙或安全组后面,请确保 SSH 所需的端口(通常为端口 22)已打开。此外,请确认安全组或防火墙允许所选 TOTP 端口(通常为 UDP 端口 123)的流量。根据需要调整这些规则以符合您服务器的特定设置。
通过这些编辑,您的 VPS 现在可以使用基于时间的一次性密码强制实施双重身份验证,从而显著增强服务器的安全状况。通过使用 SSH 密钥和 TOTP 要求测试访问,确保身份验证成功。