Linux安全知多少?PAM这样实施安全策略(二)
四、PAM实现双因子认证
买了台ECS/VPS,设置密码太复杂了不方便记住也不方便输入,用证书登录得y用证书也不方便。何不设置个弱口令外加个动态验证码?
双因子可以使用Google动态令牌,也可以使用Duo Unix,Duo Unix支持App动态口令、短信口令以及电话。
首先需要到DUO官网注册账号,新建一个UNIX Application保护应用,获得
Integration key、Secret key、API hostname。
图11
然后安装pam_duo
图12
安装后修改配置文件/etc/duo/pam_duo.conf
图13
然后在配置文件中添加该模块,SSH需要在配置文件开启USE PAM以及USE DNS
图14
接着登录服务器,这时会出现一个url让你进行注册
图15
访问url绑定注册完成后再次登录时就可以选择动态验证码了
图16
五、PAM_DUO源码浅析
进入DUO_UNIX项目地址,PAM_DUO认证中主要就是pam_sm_authenticate函数的处理,处理时首先会读取DUO的配置文件,之后检测是否配置了其他config文件,有则更新conf的值。此外,也将检测是否配置了debug参数。
图17
图18
然后调用duo_parse_config检查配置文件的读写权限,当返回值为-2时抛出错误“config文件应仅root可读”,当返回值为-1时抛出文件不可打开错误:
图19
图20
然后检查是否开启fips_mode:
图21
调用pam_get_user获取认证用户信息,检查用户密码信息:
图22