前言

在linux零碎中,root账户是有全副管理权限的,一旦root账户明码外泄,对于服务器而言将是致命的威逼;出于平安思考,通常会限度root账户的登陆,改为配置普通用户登陆服务器后su切换到root账户应用,这种形式较为平安,限度root账户登陆的形式有多种,本文次要介绍如何通过linux-PAM限度账户登陆;

PAM模块简介

Linux-PAM (Pluggable Authentication Modules for Linux)可插拔认证模块。Linux-PAM是一套实用于Linux的身份验证共享库零碎,它为零碎中的应用程序或服务提供动静身份验证模块反对。它提供了对所有服务进行认证的地方机制,在Linux中,PAM是可动静配置的,本地系统管理员能够自由选择应用程序如何对用户进行身份验证。

由此可知PAM能够对linux零碎的账户做验证,咱们通过PAM模块能够对linux零碎内的账户进行登陆限度;PAM下的功能模块较多,此次次要讲述通过pam_listfile.so模块限度账户登陆的办法

pam_listfile.so模块能够实现基于"用户/组,主机名/IP,终端"的访问控制。访问控制依附PAM配置文件中的管制选项和一个自定义的配置文件来实现的。而且除了针对上述拜访源的管制之外,还可能管制到ruser,rhost,所属用户组和登录shell。

访问控制的配置办法

上面说下基于用户的访问控制的配置办法:

/etc/pam.d/目录下是PAM配置文件所在门路,/etc/pam.d/sshd和/etc/pam.d/login 两个文件是本次要批改的文件;/etc/pam.d/sshd对应的是sshd登陆的配置文件,/etc/pam.d/login对应的是治理终端登陆的配置文件;

咱们先在/etc/pam.d/sshd文件中减少一行如下信息:

auth  required  pam_listfile.so item=user sense=deny file=/etc/pam.d/denyuser onerr=succeed

此行示意用户通过治理终端登陆主机的时候,会调用pam\_listfile.so模块来验证用户是否能够登录;pam\_listfile.so中配置的item=user示意基于用户;sense=deny示意回绝;file=/etc/pam.d/denyuser则是定义了一个denyuser的文件;此行的含意是denyuser文件中的用户回绝通过ssh零碎;

此处对pam_listfile.so模块配置做下阐明:

格局分为五个局部:别离是item、sense、file、onerr以及apply。

其中:

item=[tty|user|rhost|ruser|group|shell]__:定义了对哪些列出的指标或者条件采纳规定,显然,这里能够指定多种不同的条件。

onerr=succeed|fail__:定义了当呈现谬误(比方无奈关上配置文件)时的缺省返回值。

sense=allow|deny__:定义了当在配置文件中找到符合条件的我的项目时的管制形式。如果没有找到符合条件的我的项目,则个别验证都会通过。

file=filename__:用于指定配置文件的全门路名称。

_apply=user|@group__:定义规定实用的用户类型(用户或者组)_。

测试成果

咱们在云主机中增加此配置测试下成果;

编辑下/etc/pam.d/sshd文件增加上述信息:(信息须要增加到auth的第一行之前,否则不会失效)

在/etc/pam.d目录下创立denyuser文件,并写入root;

之后测试下应用root账户ssh登录云主机,提醒明码被回绝;

在服务器内查看/var/log/secure文件,日志中显示的登陆谬误为:

依据日志能够看出root登陆不上是被pam_listfile限度了;

如果想限度其余用户,能够在denyuser文件中将要限度的用户名增加下,增加后对应用户的登陆也会被限度;

上面在通过在/etc/pam.d/login配置文件增加限度,login文件管制的是终端登陆,云主机通过控制台的近程连接功能登陆属于终端登陆;

调整后通过近程终端vnc连贯后,应用root账户登陆无奈失常;阐明配置曾经失效。

以上是通过linux-PAM的pam_listfile.so模块限度账户登陆的办法,咱们能够灵活运用此模块限度主机内的账户登陆状况,增强主机的安全性。

作者:马寅初