庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>操作系统>Linux>系统安全>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

PAM认证模块使用实例

 作者:本站收集   日期:2005-3-13
字号选择〖 〗/ 双击滚屏 单击停止   


概述:本文给出几个通过自定义配置PAM提高网络服务安全性的例子,希望对试图进一步了解PAM的朋友起到抛砖引玉的作用。

实例一:系统使用proftpd提供ftp服务,但是不希望任何用户都可以访问ftp服务,希望可以定义一个文件,只有在该文件中定义的用户可以使用ftp服务。

通过分析需求,我们可以知道,也就是要实现基于用户名的ftp服务的访问控制。通过阅读proftpd的文档,我们可以发现,proftpd是完全支持PAM的。所以我们的实现的思路和步骤是这样的:
首先,打开proftpd的PAM支持,也就是说,告诉proftpd用户认证让PAM去完成。这一点可以通过几个proftpd的配置选项来实现,以下是我们的proftpd.conf配置文件的内容:

#/etc/proftpd.conf
ServerName "proftpd for real user"
ServerType standalone
DefaultServer on
ServerIdent off
Port 21
Umask 022
MaxInstances 3
User nobody
Group nobody
UseReverseDNS off
AuthPAM on
AuthPAMAuthoritative on
AuthPAMConfig ftp
DefaultRoot ~
AllowOverwrite on

我们对关于PAM的几个选项作个说明:

AuthPAM:设置是否采用PAM用户认证模块进行用户认证。
AuthPAMAuthoritative:是否使用PAM作为最终的用户认证方法。
AuthPAMConfig:指定进行PAM认证时使用的配置文件名称,PAM配置文件位于
/etc/pam.d/目录下。

这样设置以后,我们的proftpd就可以支持PAM认证方法了。

我们这样定义/etc/pam.d/ftp文件:

[root@test /root]# more /etc/pam.d/ftp
#%PAM-1.0
auth required /lib/security/pam_listfile.so item=user sense=allow file
=/etc/ftpwho onerr=fail
auth required /lib/security/pam_pwdb.so shadow nullok
account required /lib/security/pam_pwdb.so
session required /lib/security/pam_pwdb.so

其中的pam_listfile.so模块就是用来实现基于用户的ftp控制。Item=user就表明是通过用户名进行控制,sense=allow表示如果用户名出现在/etc/ftpwho文件中就返回认证成功信息,file=/etc/ftpwho指定配置文件,onerr=fail表示如果出现某些错误(比如无法打开配置文件等)时返回的结果,这里是失败信息。关于pam_listfile模块的详细资料,可以参考解决方案中的“常见的PAM认证模块简介”系列文章。

然后,我们在/etc下建立ftpwho文件,并在其中加入可以进行ftp访问的用户名,要注意每个用户占一行,之后重启动proftpd,就可以根据这个配置文件通过用户名来对ftp访问进行控制了。


实例二:控制可以登录系统的用户,只有root可以从本地登录,bye2000以及tom用户可以从192.168.1.0网段登录,其他用户均不可以登录系统。

修改/etc/pam.d/login文件如下所示:
root@test /root]# more /etc/pam.d/login
#%PAM-1.0
auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_stack.so service=system-auth
auth required /lib/security/pam_nologin.so
account required /lib/security/pam_stack.so service=system-auth
account required /lib/security/pam_access.so accessfile=/etc/login.conf
password required /lib/security/pam_stack.so service=system-auth
session required /lib/security/pam_stack.so service=system-auth
session optional /lib/security/pam_console.so

即,我们在原来的基础上加入了以下这一条规则:
account required /lib/security/pam_access.so accessfile=/etc/login.conf

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

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

[root@test /root]# more /etc/login.conf
+:root:LOCAL
+:bye2000 tom:192.168.1.
-:ALL:ALL

配置文件说明:

该文件的每一行由如下三个字段构成,中间使用冒号分割:
权限 : 用户 : 来源
权限字段可以是”+”(即允许访问),”-”(禁止访问);
用户字段可以是用户名、组名以及诸如user@host格式的用户名,ALL表示任何人,
具有多个值时,可以用空格分开。
来源字段可以是tty名称(本地登录时)、主机名、域名(以”.”开始),主机ip地址,网络号(以”.”结束)。ALL表示任何主机,LOCAL表示本地登录。
可以使用EXCEPT操作符来表示除了…之外。

所以:
+:root:LOCAL---表示root用户可以从本地登录。
+:bye2000 tom:192.168.1.---表示bye2000和tom可以从192.168.1.0/24网段telnet登录。
-:ALL:ALL---表示拒绝其他任何人登录。

关于pam_access模块的详细资料,可以参考解决方案中的“常见的PAM认证模块简介”系列文章。

上一篇:一个被入侵网站分析报告    下一篇:逃避kstat的检测的lkm程序的实现方法  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 本站收集
信息来源: 网络 录入时间: 2005-3-13
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿