安全认证Linux-PAM的应用实例

日期: 2009-11-16 来源:TechTarget中国

  承接上篇Linux高级安全认证PAM的配置方法的文章,本节将给出几个使用PAM技术对用户进行安全认证,从而提高系统以及网络服务安全性的例子,来向读者介绍如何在实践中对该机制进行熟练的使用。在系统用户的认证中,我们将介绍如何使用PAM来控制用户登录;在网络服务安全保证的例子中,我们将介绍如何控制FTP服务器的用户登录问题。

  3.1  使用Linux-PAM控制用户安全登录

  假设系统的安全需求为:控制可以登录系统的用户,只允许root用户可以从本地登录,并且只允许liyang用户可以从192.168.13.8网段远程登录Linux系统,其他用户均不可以登录系统。

  为了完成上述安全控制功能,我们需要修改/etc/pam.d/login文件,加入新的规则如图 2中白色区域所示:

图2新规则

  图2

  不难看出,我们在原来的基础上加入了以下这一条规则(在上述程序段用黑体标明):

  account required /lib/security/pam_access.so accessfile=/etc/login.conf

  这条规则的具体含义是我们使用pam_access模块,通过配置文件/etc/login.conf来对用户访问进行控制,accessfile参数即指明了配置文件的完整路径。

  根据需求,我们的/etc/login.conf文件内容如下:

  # vi /etc/login.conf
  +:root:LOCAL
  +:liyang:192.168.13.
  -:ALL:ALL

  该配置文件的含义如下:

  +:root:LOCAL:表示root用户可以从本地登录
  +:liyang:192.168.13.:表示用户liyang可以从192.168.13.8/24网段远程登录Linux系统
  -:ALL:ALL:表示拒绝其他任何人登录

  可以清楚地看到,该文件的每一行由如下三个字段构成,中间使用冒号分割,格式为:权限 : 用户 : 来源

  权限字段使用“+”表示允许访问,“-”表示禁止访问;

  用户字段可以是用户名、组名以及诸如格式的用户名,ALL表示任何人,具有多个值时,可以用空格分开;

  来源字段可以是tty名称(本地登录时)、主机名、域名(以“.”开始),主机IP地址,网络号(以“.”结束)。ALL表示任何主机,LOCAL表示本地登录。这里需要特别强调一下:ALL字段在/etc/login.conf文件中出现的顺序非常重要。如果它出现在文件头部,那么后续的其他字段所表示的访问权限将随之失效;如果它出现在其他字段之后,那么其他的字段将生效。所以一般建议将ALL字段表示的访问权限置于文件末尾处,以保证其他访问权限的正常解析和使用。

  3.2  使用Linux-PAM控制Samba用户的共享登录

  在Samba中集成PAM的访问控制功能,非常简单,只需要完成如下两个步骤即可。首先,在Samba服务器的配置文件smb.conf的[global]配置段中,保证如下的语句未被屏蔽:

  obey pam restrictions = yes

  然后,保证有关Samba的PAM配置/etc/pam.d/samba文件正常即可,该配置文件如图 3所示:

图 3配置文件

 图3

  3.3  使用Linux-PAM控制FTP用户的登录

  假设Linux系统提供FTP服务,但是不希望任何用户都可以轻易地访问该服务,只允许在一个事先定义好的文件中规定的用户可以使用该FTP服务。那么,我们就可以使用Linux-PAM机制来实现该控制。

  当然,值得注意的是该FTP服务需要支持Linux-PAM。幸运的是,当前Linux中的proftpd、vsftpd等都对其完全支持。在下面的例子中,我们将以最新的vsftpd为例来进行举例说明。

  首先,我们需要定义与认证相关的/etc/pam.d/vsftpd文件如图 4所示:

图 4/etc/pam.d/vsftpd文件

  图4

  其中的pam_listfile.so模块就是用来实现基于用户的FTP控制。Item=user就表明是通过用户名进行控制,sense=allow表示如果用户名出现在/etc/vsftpd.ftpusers文件中就返回认证成功信息,file=/etc/vsftpd.ftpusers指定配置文件,onerr=succeed表示如果出现某些错误(比如无法打开配置文件等)时返回的结果,这里是成功信息。

  然后,我们需要编辑/etc/vsftpd/ftpusers文件,并在其中加入可以进行ftp访问的用户名,要注意每个用户占一行(如下所示),之后重启动vsftpd即可,就可以根据这个配置文件通过用户名来对FTP访问进行控制了,如图 5所示:

图5FTP访问控制

图5

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。