PAM认证模块使用实例1.概述 本文给出几个通过自定义配置PAM提高网络服务安全性的例子,希望对试图进一步了解PAM的朋友起到抛砖引玉的作用。 2.实例一: 系统使用proftpd提供ftp服务,但是不希望任何用户都可以访问ftp服务,希望可以定义一个文件,只有在该文件中定义的用户可以使用ftp服务。 通过分析需求,我们可以知道,也就是要实现基于用户名的ftp服务的访问控制。通过阅读proftpd的文档,我们可以发现,proftpd是完全支持PAM的。所以我们的实现的思路和步骤是这样的: 首先,打开proftpd的PAM支持,也就是说,告诉proftpd用户认证让PAM去完成。这一点可以通过几个proftpd的配置选项来实现,以下是我们的proftpd.conf配置文件的内容: #/etc/proftpd.confServerName "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的几个选项作个说明:
这样设置以后,我们的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访问进行控制了。 3.实例二: 控制可以登录系统的用户,只有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 该配置文件说明:
所以:
关于pam_access模块的详细资料,可以参考解决方案中的“常见的PAM认证模块简介”系列文章。 上一篇:snort入侵检测系统优化配置 下一篇:网络安全扫描工具Nessus(上) 更多相关文章
|
推荐文章
精彩文章
|