美文网首页
20210115-编译安装ssh的坑之PAM

20210115-编译安装ssh的坑之PAM

作者: 負笈在线 | 来源:发表于2021-01-15 10:43 被阅读0次

    1.Linux软件ssh安装选择RPM包VS编译包

          选择RPM包的优点:稳定,可靠,规范,对应的解决方案也比较成熟,运维方便并便于自动化

          选择RPM包的缺点:更新不够及时,可能存在安全漏洞不及时解决

          选择编译包的优点:功能新,提供最快的安全漏洞解决支持,自主选择模块

          选择编译包的缺点:自主选择性强,操作及管理难度较大,运维不方便且不利于自动化

    2.SSH的PAM验证机制

          A:RPM包安装自带PAM模块;如果是编译安装,必须--with-pam

          B:登录时的PAM验证机制流程:

      第一阶段:验证阶段

      1)经过pam_securetty.so判断,看用户是什么,如果是root,读取/etc/securetty的配置

      2)经过pam_env.so配置额外的环境变量

      3)透过pam_unix.so验证口令

      4)3验证不通过则pam_deny.so判断UID是不是大于500.小于500则返回失败

      5)由pam_deny.so拒绝连接

      第二阶段:授权阶段

      1)先以pam_nologin.so判断/etc/nologin是否存在,若存在则不许一般使用者登陆;

      2)以pam_unix进行账号管理,

      3)pam_succeed_if.so判断UID是否小于500,若小于500则不记录登录信息。

      4)最后以pam_permit.so允许该账号登陆。

      第三阶段:口令阶段

      1)先以pam_cracklib.so配置口令仅能尝试错误3次;

      2)接下来以pam_unix.so透过md5,shadow等功能进行口令检验,若通过则回报login程,若不通过则以pam_deny.so拒绝登陆。

      第四阶段:会议阶段

      1)先以pam_selinux.so暂时关闭SELinux;

      2)使用pam_limits.so配置好用户能够操作的系统资源;

      3)登陆成功后开始记录相关信息在登录文件中;

      4)以 pam_loginuid.so规范不同的 UID 权限;

      5)开启pam_selinux.so的功能。

    3.为什么root无法以telnet直接登陆系统,但是却能够使用ssh直接登陆?

          一般来说,telnet会引用login的PAM模块,而login的验证阶段会有/etc/securetty的限制!由于远程联机属于pts/n (n 为数字)的动态终端机接口装置名称,并没有写入到/etc/securetty ,因此root无法以telnet登陆远程主机。至于ssh使用的是/etc/pam.d/sshd这个模块,你可以查阅一下该模块,由于该模块的验证阶段并没有加入pam_securetty,因此就没有/etc/securetty的限制!故可以从远程直接联机到服务器端。

    4.运维中一定不要用Telnet吗?

          在配置ssh时,最好先临时启用Telnet(xinetd),在Telnet环境下确认ssh配置完成,并确实ssh登录正常后,再关闭Telnet(xinetd)。

    5.编译安装情况下如何确定ssh是否部署PAM模块

          在SSH主配置文件/etc/ssh/sshd_config开启PAN机能「UsePAM yes」查看log中没有PAM的报错,有报错是这样的「Starting sshd:/etc/ssh/sshd_config line 82: Unsupported option UsePAM」,说明没有部署PAM模块。

    相关文章

      网友评论

          本文标题:20210115-编译安装ssh的坑之PAM

          本文链接:https://www.haomeiwen.com/subject/bfbiaktx.html