linux pam验证

    技术2024-06-02  78

    OpenSSH是一个免费工具,其中包括SSH1和SSH2协议的实现。 它是一种可靠且安全的工具,已广泛用于替代r命令。 ssh会话上的通信经过加密和安全处理,因为它可以加密所有流量,包括密码。

    本文介绍如何配置基于主机的身份验证和PAM身份验证,以及IBM支持的OpenSSH版本中添加的一些新功能和配置选项。 请参阅“ 相关主题”部分以下载IBM支持的OpenSSH版本。

    为了安装OpenSSH,必须首先安装OpenSSL。 现在,它可以作为installp映像格式使用。 请参阅“ 相关主题”部分以获取下载信息。

    SSH中基于主机的身份验证

    当受信任主机上的用户想要登录到远程计算机(可能是不受信任的系统)时,将使用SSH中基于主机的身份验证。 此方法不需要密码。 使用以下配置设置,受信任主机上的用户可以在不提供密码的情况下登录到远程计算机。

    在客户端和服务器端启用以下配置选项。

    在客户端计算机上的/ etc / ssh / ssh_config文件集中,进行以下更改: HostbasedAuthentication yes EnableSSHKeysign yes 在服务器端的/ etc / ssh / sshd_config文件中,进行以下更改: HostbasedAuthentication yes IgnoreRhosts no 请执行以下任一操作: 如果您以root用户身份登录服务器,请在/.rhosts或/.shosts文件中输入主机。 如果您以非root用户身份登录服务器,请在/etc/hosts.equiv文件中输入主机。

    进入模式必须如下:

    <client host name or IP Address > <client username>

    如果要以root用户身份在服务器计算机上登录,请运行ssh root@< server host name > ,服务器将在/.rhosts或/.shosts文件中检查客户端用户名和客户端主机名,并且仅在以下情况下允许登录:找到正确的用户名和主机名条目。

    如果要以非root用户身份登录服务器,请运行ssh non-root@<server host name> ,服务器将在/etc/hosts.equiv文件中查找客户端主机名和客户端用户名条目。并允许用户登录。

    以非root用户身份登录时,应将客户端计算机上的公钥复制到/ etc / ssh / ssh_known_hosts或/ etc / ssh / ssh_known_hosts2文件中。 该文件的格式应与〜/相同。 ssh / known_hosts文件。 公钥前面应有<客户端主机名>,<客户端IP地址>。

    修改sshd_config文件中的配置选项后,停止并启动ssh守护程序(sshd): #stopsrc –s sshd 0513-044 The sshd Subsystem was requested to stop. #startsrc –s sshd 0513-059 The sshd Subsystem has been started. Subsystem PID is 417812

    使用这些设置,您应该能够登录到远程计算机而无需提示输入密码。

    OpenSSH中的PAM支持

    要在OpenSSH中启用PAM身份验证,请运行以下配置命令:

    # lssec -f /etc/security/login.cfg -s usw -a auth_type usw auth_type=STD_AUTH

    如果代码如下所示: auth_type = STD_AUTH ,则使用以下命令将其更改为PAM_AUTH:

    # chsec -f /etc/security/login.cfg -s usw -a auth_type=PAM_AUTH

    将以下内容添加到/etc/pam.conf文件:

    在身份验证部分: sshd auth required /usr/lib/security/pam_aix 在帐户管理部分: sshd account required /usr/lib/security/pam_aix 在密码管理部分: sshd password required /usr/lib/security/pam_aix 在会话管理部分: sshd session required /usr/lib/security/pam_aix

    完成这些设置后,请运行ssh命令以使用PAM身份验证。

    SSH有何新功能?

    以下是IBM支持的OpenSSH版本中添加的一些新功能和配置选项。

    SSH和EFS

    与用户和组关联的私钥存储在EFS密钥库中,受密钥库密码保护。 当用户登录启用EFS的计算机时,登录过程将打开EFS密钥库,并且如果用户密码和密钥库密码相同,则此密钥库中包含的密钥将加载到内核中。 当进程需要读取或写入受EFS保护的文件时,将在以后使用这些密钥。

    使用SSH的开放源代码版本(OpenSSH),登录过程无法打开EFS密钥库并将密钥加载到内核中。 这是SSH的局限性,因为它产生了两个过程,一个用于身份验证,另一个用于会话创建。 为了加载EFS密钥库,必须由单个过程来完成密钥库的创建以及这些密钥与进程凭证的绑定。 在使用SSH的情况下,有两个不同的过程执行此操作,因此密钥库的加载失败。

    IBM支持的SSH版本中已解决此问题。 openssh-4.5p1支持在密码验证的情况下打开密钥库并自动将密钥加载到内核中,从而允许登录过程读取或写入受EFS保护的文件(提供的用户登录密码和EFS密钥库密码)一样)。

    新的sshd_config选项

    ChkHomeDir

    此选项已从openssh-4.5p1(IBM支持的版本)开始添加。 它是sshd_config文件中包含的一个选项。 默认情况下为“否”。 启用后,它设置为“是”,并检查用户主目录是否存在。 如果用户的主目录不存在,它将退出并且不允许用户登录。如果系统管理员希望限制对不存在其主目录的用户的访问,则此选项很有用。

    Frcpasswd政策

    此配置选项包含在IBM支持的OpenSSH-4.5p1及更高版本的sshd_config文件中。 默认情况下,它设置为“否”。 设置为“是”时,它将在允许用户登录之前检查该用户的密码是否已过期。如果该用户的密码已过期,则会提示用户更改密码,然后允许用户进行以下操作:成功更改密码后登录。 否则,登录失败。 即使用户正在遵循公用密钥或基于主机的身份验证,也会执行此密码检查。 这样可以确保用户在登录之前得到授权。

    AllowFiles / DenyFiles

    此选项已添加到IBM支持的OpenSSH-4.7p1及更高版本的sshd_config文件中。 此选项与SFTP有关,SFTP是一种安全FTP,允许用户在远程计算机之间复制文件。 使用这些选项,用户可以控制要复制的文件和目录的访问。

    您可以在sshd_config文件中提及文件名,如以下示例所示。

    在sshd_config文件中,添加以下行并保存文件:

    AllowFiles "<jyo>:/tmp/*"

    如果SSH守护程序正在运行,请运行以下命令来停止和启动服务器:

    # stopsrc -s sshd 0513-044 The sshd Subsystem was requested to stop. # startsrc -s sshd 0513-059 The sshd Subsystem has been started. Subsystem PID is 11160.

    从客户端计算机运行SFTP命令,如下所示:

    # sftp jyo@aixcomm.in.ibm.com Connecting to aixcomm.in.ibm.com... jyo@aixcomm.in.ibm.com's password: sftp> cd /usr Couldn't stat remote file: Permission denied sftp>

    在上一个示例中,登录后,“ jyo”试图更改为/ usr目录。 但是,sshd_config文件中用户jyo的AllowFiles选项为“ jyo:/ tmp / *”将不允许用户“ jyo”更改/ tmp目录中的文件以外的其他文件。

    同样,DenyFiles选项拒绝访问/ directories中的那些文件。 sshd_config文件中的DenyFiles选项允许其余文件。

    AllowFiles和DenyFiles选项采用以下语法来指定文件和目录名称:

    <user/group> : <files/directories> Chroot目录更改

    请遵循IBM developerWorks文章( 使用AIX chroot的openssh)中的指示信息,以了解IBM支持的OpenSSH版本中包含的chroot功能。 请参阅“ 相关主题”部分,以获得更多指向本文的链接。

    从OpenSSH-5.0p1开始,对设置chroot环境进行了修改。 sshd_config文件中包含一个新的配置选项ChrootDirectory,该文件指定身份验证后chroot的路径。

    除了“创建chroot用户并完成安装”部分外,设置chroot环境与在带有AIX chroot的openssh中的提到的内容相同。 请参阅相关主题 。 以后的OpenSSH-5.0p1版本可以跳过此部分。 也。 确保chroot目录中的tmp目录具有777权限。

    您需要在chroot环境中创建用户的主目录,并且chrooted目录应该是root拥有的目录。

    例如,将/ chroot作为chroot目录,则sshd_config填充将如下所示:

    ChrootDirectory /chroot

    / chroot目录的权限应如下所示:

    #chown root:system /chroot

    假设您在chroot环境中以名为“ jyoti”的用户身份登录。 用户“ / home / jyoti”的主目录必须在/ chroot中手动创建。

    #cd /chroot # ls bin dev etc home lib tmp unix usr #cd home #mkdir jyoti

    为了使SFTP在chroot环境中运行,请在sshd_config文件中设置Subsystem config选项,如下所示:

    Subsystem sftp internal-sftp

    此选项使用ChrootDirectory简化了配置。

    要将sshd_config文件中ChrootDirectory选项的使用限制为特定用户,可以将Match指令用于特定用户,如下所示:

    Match User <user name> ChrootDirectory <Name of the directory to chroot> 在OpenSSH中进行审核

    审核子系统使系统管理员可以记录与安全性相关的信息,以后可以对其进行分析以检测潜在的和实际的违反系统安全策略的行为。

    从OpenSSH-4.5p1(4.5.0.5302)开始,IBM支持的SSH版本支持审计。 要在SSH中启用审核,请调整以下设置。

    将以下新类添加到/ etc / security / audit / config文件中:

    sshcl = SSH_failnone, SSH_failpasswd,SSH_failkbdint,SSH_failpubkey, SSH_failhstbsd, SSH_failgssapi, SSH_invldusr,SSH_nologin, SSH_connclose,SSH_auditknwn, SSH_rootdned, SSH_exceedmtrix,SSH_connabndn, SSH_authsuccess

    在“用户”部分下添加以下条目:

    root = sshcl

    为要启用审核的用户提及类名(sshcl)。

    如果root用户已经有一组要审核的类,则将sshcl追加到列表的末尾。 例如,root用户已经具有以下内容:

    root = general,tcpip

    sshcl可以追加到列表的末尾:

    root = general,tcpip,sshcl

    在/ etc / security / audit / events文件中,附加以下事件:

    SSH_failnone = printf "%s" SSH_failpasswd = printf "%s" SSH_failkbdint = printf "%s" SSH_failpubkey = printf "%s" SSH_failhstbsd = printf "%s" SSH_failgssapi = printf "%s" SSH_invldusr = printf "%s" SSH_nologin = printf "%s" SSH_connclose = printf "%s" SSH_auditknwn = printf "%s" SSH_authsuccess = printf "%s" SSH_rootdned = printf "%s" SSH_exceedmtrix = printf "%s" SSH_connabndn = printf "%s"

    运行以下命令以关闭并重新启动审核子系统,并使以上更改生效:

    # /usr/sbin/audit shutdown # /usr/sbin/audit start

    要测试以确保审核配置正确,请运行SSH命令,然后运行auditpr命令以获取审核报告:

    auditpr -v < /audit/trail SSH中的TCP包装器支持

    使用with-tcp-wrappers选项进行编译时,OpenSSH支持TCP包装with-tcp-wrappers 。 使用该选项时,将根据主机名或IP地址限制对TCP服务的访问。 它使用/etc/hosts.allow和/etc/hosts.deny配置文件来确定是否允许客户机连接到SSH服务器。

    TCP包装器服务顺序分析/etc/hosts.allow文件并应用为该服务指定的第一条规则。 在文件中指定的模式是:

    sshd(Service name) : <host name or IP address>

    第一个优先级给予/etc/hosts.allow文件。 如果找到匹配的规则,则sshd允许连接; 否则,它将检查/etc/hosts.deny文件,以确定是否找到任何匹配的规则。 如果找到匹配的规则,则拒绝连接。 否则,将授予访问权限。

    结论

    本文可帮助用户了解如何设置OpenSSH支持的某些身份验证方法。 本文介绍了用于设置认证方法和IBM OpenSSH支持的新功能的配置。


    翻译自: https://www.ibm.com/developerworks/aix/library/au-new_openssh/index.html

    Processed: 0.022, SQL: 9