VB 源码VC 源码ASP源码JSP源码PHP源码CGI源码FLASH源码素材模板C 源程序常用软件文档中心其他程序

安全防范

木马病毒
黑客技术
系统安全
防火墙
安全防范
网络安全

本类阅读TOP10

·双网卡共享上网解析
·在Windows XP中共享上网
·局域网共享资源安全防护大全
·代理服务器使用祥解
·为什么局域网中机器PING通却不能上网?
·用单网卡连接两个网段
·常用端口对照详解
·利用Windows自带ICS功能共享上网
·技巧:多种途径访问局域网中的计算机
·UNICODE、DBCS的一点小知识

精品推荐
PAM认证模块使用实例

作者:佚名 来源:月光软件站 加入时间:2005-5-12 月光软件站

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


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

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

#/etc/proftpd.confServerName "proftpd for real user"ServerType standaloneDefaultServer onServerIdent offPort 21Umask 022MaxInstances 3User nobodyGroup nobodyUseReverseDNS offAuthPAM onAuthPAMAuthoritative onAuthPAMConfig ftpDefaultRoot ~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.0auth required /lib/security/pam_listfile.so item=user sense=allow file=/etc/ftpwho onerr=failauth required /lib/security/pam_pwdb.so shadow nullokaccount required /lib/security/pam_pwdb.sosession 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.0auth required /lib/security/pam_securetty.soauth required /lib/security/pam_stack.so service=system-authauth required /lib/security/pam_nologin.soaccount required /lib/security/pam_stack.so service=system-authaccount required /lib/security/pam_access.so accessfile=/etc/login.confpassword required /lib/security/pam_stack.so service=system-authsession required /lib/security/pam_stack.so service=system-authsession 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认证模块简介”系列文章。





相关文章
  • Linux作NEWS服务器
  • 用linux建立自己的mp3广播站
  • 虚拟服务器解决方案
  • 通过串口关闭Linux服务器
  • 设置不同主机之间互相信任登录
  • Linux下Windows磁盘分区(NTFS,FAT32)加载全攻略
  • 为什么操作平台的选择范围小了
  • 让Linux/Windows联合体更好地工作
  • 使用Linux实现负载均衡
  • 构建Linux局域网
  • 构建Linux的动态Web开发环境
  • 使用Linux高效构建企业无线网关/防火墙
  • linux服务器快速架站指导
  • 如何编写用例文档
  • 囚禁你的精灵(daemon)进程
  • WEB安全工具
  • 改进Web站点性能的五个方面
  • 用rsync实现网站镜像和备份
  • 域星型局域网组网指南
  • 嗅探器检测工具和对策
  • 相关软件




    月光软件程序下载编程文档电脑教程网站设计网址导航网络文学游戏天地幽默笑话生活休闲写作范文安妮宝贝
    电脑技术编程开发网络专区谈天说地情感世界游戏元素分类游戏热门游戏体育运动手机专区业余爱好影视沙龙
    音乐天地数码广场教育园地科学大观古今纵横谈股论金人文艺术医学保健动漫图酷二手专区地方风情各行各业

    月光软件站·版权所有