配置SSH网关服务器
配置SSH网关
现在我们将需要配置中央SSH网关,linux系统是导向所有生产服务器的网关/代理,它必须被严格锁定,并且不能有多余的软件或者服务器在上面运行。此外,linux系统还需要有一个处理入站连接的外部接口以及处理内部连接的内部接口。首先我们需要配置网关使用WiKID对SSH用户进行高强度验证。
从安装PAM Radius开始,PAM Radius主页地址为http://www.freeradius.org/pam_radius_auth/
下载最新版本的tar文件
运行:
$ make
将产生的共享库复制到/lib/security。
$ sudo cp pam_radius_auth.so /lib/security/
编辑/etc/pam.d/sshd来允许进行Radius身份验证
$ sudo vi /etc/pam.d/sshd
注意:不同版本的linux有不同的pam.d文件格式。 请检查linux的具体版本,以下说明适用于Fedora/ Redhat/Centos
转到该文件的第一行,点击Insert键或者i键,插入到这一行。
auth sufficient /lib/security/pam_radius_auth.so
Sufficient标签意味着,如果Radius身份验证成功的话,就不再需要额外的身份验证。然而,如果Radius验证失败的话,将需要来自该系统的用户名和密码来验证。使用“Required”来请求强认证。
写入文件并推出,点击Esc键来推出插入模式,并输入‘:wq‘
编辑或创建/etc/raddb/server文件。
vi /etc/raddb/server
下面这行:
127.0.0.1 secret 1
添加这一行,替代routableIPAddress:
routableIPaddress shared_secret 1
routeableIPaddress是NPS服务器的IP地址
编辑 /etc/pam.d/sshd文件:
#%PAM-1.0
auth sufficient /lib/security/pam_radius_auth.so
auth include system-auth
account required pam_nologin.so
account include system-auth
password include system-auth
session include system-auth
session required pam_loginuid.so
添加WiKID服务器到/etc/raddb/server文件,使用WiKID服务器的外部IP地址以及在网络客户端创建页面输入的共享密码:
# server[:port] shared_secret timeout (s)
127.0.0.1 secret 1
xxx.xxx.xxx.xx wikidserver_secret 3
这里也需要向SSH配置增加一些安全性,打开/etc/ssh/sshd_config(不是附近的ssh_config文件),添加这些配置选项:
#Protocol 2,1
#检查只有协议2被允许: Protocol 2
#禁用root登录:
PermitRootLogin no
#禁用没有密码的帐号:
PermitEmptyPasswords no
现在网关已经设置为使用WiKID一次性密码来进行SSH验证,所有用户必须注册到WiKID服务器,没有人可以作为root登录。下面我们将做点小变动,让用户可以在网关创建自己的RSA密钥,只要用户在WiKID注册后,就能创建自己的密钥:
class="command">ssh-keygen -t rsa
其实,这些密钥的密码短语是多余的,我们必须确保用户不能访问其他密钥。
配置目标服务器
显然,我们需要将这些服务器配置为仅接受来自网关的SSH请求,这可以通过限制端口22对内部地址的访问来实现,编辑/etc/sysconfig/iptables或者端口22的SSH这行:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 192.168.1.0/24 --dport 22 -j ACCEPT
允许 WiKID软件令牌
启动WiKID令牌,选择与SSH网关相关的域名,然后输入密码,就能获得一次性密码,这个密码是有时间限制的,可以在WiKID服务器任意设置密码的有效时间。
当SSH框弹出时用户只需输入一次性密码
令牌同样也可以从命令行运行,这对于SSH很便捷:
java -cp jWiKID-3.1.3.jar:jwcl.jar com.wikidsystems.jw.JWcl domainid
domainid是12位域标识符
结论
很多企业都面临着合规和监管的问题,网络环境也变得越来越复杂和危险,同时,用户也需要更多的远程访问,这些都给企业的安全部门带来不小挑战。
本文主要探讨的是向SSH添加双因素验证,我们选择Radius作为网络验证标准,这是个不错的选择。大部分VPN、远程桌面系统、网络服务器和其他远程访问服务都支持Radius,当大家在考虑添加双因素验证时,只需要考虑系统是否支持Radius即可,然后可以将Radius指向NPS服务器,就可以实现双因素验证。
.分页: [1] [2]
TAG: windows 2008 NPS 双重验证