如何在 Ubuntu 和 CentOS 上使用 pam-radius 配置 sudo 进行双因素身份验证
在此页
- 在 Centos/RHEL 上配置 sudo 以进行双因素身份验证
- 在 Ubuntu 上配置 sudo 以进行双因素身份验证
攻击者在渗入您的网络后,经常使用丢失、被盗、弱或默认凭据来提升他们的权限。虽然双因素身份验证可以大大减少渗透,但还有其他获取入口的方法,例如恶意软件。本教程展示了如何将 radius 添加到 Centos 7 和 Ubuntu 14.04 的 sudo,以使用 WiKID 强身份验证服务器进行双因素身份验证。使用 pam-radius 很好,因为它允许您插入 radius 服务器,例如 Windows 上的 Freeradius 或 NPS,因此您可以在您的目录中执行授权,然后针对单独的双因素身份验证服务器进行身份验证。在中央目录中管理您的用户是一种非常好的安全做法。请注意,由于我们使用的是 RADIUS,因此此基本设置适用于所有企业级 2FA 系统。
在 Centos/RHEL 上配置 sudo 以进行双因素身份验证
我们将从 RHEL/Centos 7 开始。安装先决条件:
sudo yum -y install make gcc pam pam-devel
获取最新的 PAM RADIUS 代码(撰写本文时为 1.4):
wget ftp://ftp.freeradius.org/pub/radius/pam_radius-x.x.x.tar.gz
构建库:
tar -xzvf pam-radius-x.x.x.tar.gz
cd pam-radius-x.x.x
sudo ./configure
sudo make
将库复制到正确的位置:
cp pam_radius_auth.so /lib/security/
或者对于 64 位:
cp pam_radius_auth.so /lib64/security/
创建配置目录,复制名称服务器下的配置文件:
sudo mkdir /etc/raddb
cp pam_radius_auth.conf /etc/raddb/server
编辑 /etc/raddb/server 并将您的 radius 服务器 IP 和共享密钥添加到此文件。
# server[:port] shared_secret timeout (s)
127.0.0.1 secret 1
radius_server_IP secret 3
#
# having localhost in your radius configuration is a Good Thing.
(请注意,虽然我们最终希望 radius 进入循环,但您也可以将您的 WiKID 服务器用作 radius 服务器,将此 Centos 盒子添加为 WiKID 上的网络客户端,重新启动 WiKID 并完成或至少您可以通过这种方式进行测试。一路上做一些小测试总是一个好主意,一定要删除它们。)
接下来,我们需要告诉 sudo 使用 radius。编辑文件 /etc/pam.d/sudo 并将 \auth include system-auth\ 替换为:
auth required pam_radius_auth.so
这就是 Centos/RHEL 7 盒子。同样的设置也适用于 5 和 6。
在 Ubuntu 上配置 sudo 以进行双因素身份验证
接下来是 Ubuntu 14.04 服务器。首先,安装 pam-radius:
sudo apt-get install libpam-radius-auth
通过编辑 /etc/pam_radius_auth.conf 使用 NPS 服务器配置它。所以它和上面一样:
# server[:port] shared_secret timeout (s)
127.0.0.1 secret 1
radius_server_IP secret 3
#
# having localhost in your radius configuration is a Good Thing.
编辑 /etc/pam.d/sudo 文件并在 comm-auth 行上方添加 auth sufficient pam_radius_auth.so 行:
auth required pam_env.so readenv=1 user_readenv=0
auth required pam_env.so readenv=1 envfile=/etc/default/locale user_readenv=0
auth sufficient pam_radius_auth.so
@include common-auth
@include common-account
@include common-session-noninteractive
那是针对 Ubuntu 服务器的。
现在,无论何时管理员尝试使用 sudo,他们都必须输入一次性密码。 PAM 会将用户名和 OTP 转发到您的 radius 服务器或您的 WiKID 服务器进行验证。
对管理帐户使用双因素身份验证是保护网络安全的强大工具。它甚至可能成为 PCI DSS 要求的一部分。