如何将SSH身份验证配置到FreeRADIUS服务器
如果您的数据中心中有各种管理员用户登录到您的Linux服务器,那么您可能希望更好地控制这些帐户的身份验证。当然,最安全的方法之一是使用SSH密钥身份验证。但是在某些情况下,可能需要为SSH使用中央身份验证服务器。如果是这种情况,您总是可以使用FreeRADIUS(参见:Ubuntu Server 18.04下安装FreeRADIUS和daloRADIUS web管理界面)。
准备工作:
要使此身份验证系统正常工作,您需要满足以下条件:
功能正常的FreeRADIUS服务器
具有sudo特权的用户帐户
用于通过SSH登录服务器的IP地址
出于本教程的目的,我将在Ubuntu Server 18.04上进行演示。我将使用的IP地址是:
192.168.1.216-FreeRADIUS服务器
192.168.1.16-客户端服务器A
如何安装必要的身份验证程序包
首先要做的是在客户端服务器A上安装和配置必要的身份验证软件包。登录到该服务器并发出以下命令:
sudo apt-get install libpam-radius-auth
如何配置客户端服务器
完成此操作后,请为libpam-radius-auth配置必要的信息。发出命令:
sudo nano /etc/pam_radius_auth.conf
在该文件中,查找以下行:
127.0.0.1 secret 1
在该行下面,添加以下内容:
192.168.1.216 PASSWORD 3
确保更改IP地址以使其与FreeRADIUS服务器的IP地址匹配,并将PASSWORD更改为安全的唯一密码。
保存并关闭文件。
使用以下命令设置该文件的权限:
sudo chmod 0600 /etc/pam_radius_auth.conf
接下来,我们必须配置登录要求。为此,发出命令:
sudo nano /etc/pam.d/login
在该文件的顶部附近(在auth可选的pam_faildelay.so条目下),添加以下内容:
auth sufficient pam_radius_auth.so
在同一文件中,找到@include common-auth条目,并在其上方添加以下内容:
/etc/pam.d/sshd
保存并关闭文件。
发出命令:
sudo nano /etc/pam.d/common-auth
修改以下行:
auth [success=1 default=ignore] pam_unix.so nullok_secure
为:
auth [success=1 default=ignore] pam_unix.so nullok_secure try_first_pass
保存并关闭文件。
最后,在客户端服务器A上,添加将使用以下命令通过SSH登录的用户名(无密码):
sudo useradd -m USERNAME
其中USERNAME是要添加的用户的名称。
如何配置FreeRADIUS服务器
现在,您已经完成了客户端的工作,让我们配置服务器。在FreeRADIUS服务器上,发出以下命令:
sudo nano /etc/freeradius/3.0/clients.conf
在“定义半径客户端”部分(顶部附近)中,添加以下内容:
client A {
ipaddr = 192.168.1.16
secret = PASSWORD
}
确保将IP地址更改为客户端服务器的IP地址,并将PASSWORD设置为与客户端服务器上pam_radius_auth.conf文件中使用的密码相同的密码。
保存并关闭文件。
现在,我们添加用户。发出命令:
sudo nano /etc/freeradius/3.0/users
在该文件中,将为需要登录到客户端服务器的每个用户添加一行。(每个用户)要添加的行如下所示:
USERNAME Cleartext-Password := "PASSWORD"
其中USERNAME是客户端服务器上的用户,而PASSWORD是用于SSH登录的密码。
根据需要添加尽可能多的用户条目,记住每个用户必须在客户端服务器上有一个没有密码的帐户。
保存并关闭文件。
使用以下命令重新启动FreeRADIUS:
sudo systemctl restart freeradius
此时,您应该能够使用您在freuis服务器上配置的凭据,从网络上的任何机器上SSH到客户机服务器。