这里我们需要使用pam_access。pam_access是pam中处理用户访问控制的模块,没有使用pam前,linux对用户的所有访问控制都是借助hosts.allow, hosts.deny文件,实现所有服务的访问控制,再加上usertty就是对用户登陆控制(专门是针对login)。但是,随着pam的应用,usertty已经不再使用了,虽然login的man里还会提到。
现在我们看看如何利用pam_access对个别用户进行登陆访问控制(对所有使用login的都有效),首先,我们需要的是访问控制的配置文件,这个文件在/etc/security/access.conf。整个文件的格式都是: 权限:用户(可多个并用空格隔开):源访问点。下面对每个区域简单说明:
权限(permission) 这一位可以是+/-。其中+表示允许访问,-表示禁止访问;
用户(users) 这是指定用户名,用户组名或网络用户组名,指定的是多个要用空格隔开。对于指定网络用户组名时,网络用户组名应指定用户组所在的源访问点并用@和用户组名分开。除此以外,还可以用ALL指定所有的和EXCEPT指定特殊例外的用户。
源访问点(Origins) 这是指定用户域中原访问点。这里可指定用户访问的ttyname,hostname,domainname或ip。其中domainname是指以.开头的主机名,例如,.downsky.net就是指定downsky.net这个域。在这里可以使用ALL和EXCEPT的关键字,也也指定LOCAL。
下面我们看看一些例子,如果你先限制一些用户在某些主机的登陆权限,我们提供登陆服务的主机叫linux,下面我们看看access.conf的配置情况:
1. # access.conf file
2. -:ALL:.foo.com .hacker.org
3. -:ALL EXCEPT root: tty1
4. +:ALL EXCEPT root:192.168.1.
5. +:root user:.downsky.net
6. -:chase:192.168.2.
7. -:ALL:ALL
从以上的配置文件可以看到,第二行拒绝所有从域名.foo.com和.hacker.org的登陆访问;第三行拒绝除root以外的用户从控制台登录访问;第四行允许除root外所有的用户从192.168.1.的网段登录访问。第五行允许root和user用户组中的成员从downsky.net登录访问。第六行拒绝用户chase从192.168.2网段的登录访问,第七行拒绝其它的登录访问...
现在我们只要在/etc/pam.d/login的文件里加上下面一行
account required /lib/security/pam_access.so
就可以使login使用pam_access来对用户进行登陆访问控制了。整个login的文件如下
auth requisite /lib/security/pam_unix.so nullok #set_secrpc
auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_nologin.so
#auth required /lib/security/pam_homecheck.so
auth required /lib/security/pam_env.so
auth required /lib/security/pam_mail.so
account required /lib/security/pam_unix.so
account required /lib/security/pam_access.so
password required /lib/security/pam_pwcheck.so nullok
password required /lib/security/pam_unix.so nullok use_first_pass use_authtok
session required /lib/security/pam_unix.so none # debug or trace
session required /lib/security/pam_limits.so
如果被拒绝的用户登陆本主机的话就会出现下面的输出结果
linux login: chase
Password:
Permission denied
Connection closed by foreign host.
我们还可以从/var/log/messages得到pam_access的日志,对应上面的情况我们从message得到如下的日志:
Apr 25 12:50:25 linux pam_access[13916]: access denied for user `chase' from `192.168.2.78'
Apr 25 12:50:25 linux login[13916]: Permission denied
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
·Red Hat Enterprise Linux AS 4 Update 3 ( (7371次浏览)
·Linux下的FTP服务器配置 (3068次浏览)
·Linux入门时必学60个文件处理命令 (3067次浏览)
·清爽漂亮 Ubuntu 7.04 新手指南 (3019次浏览)
·Linux系统中如何实现远程控制 (2834次浏览)
·RedHat7.2下ADSL双网卡共享上网实战 (2829次浏览)
·linux下安装软件的办法 (2775次浏览)
·菜鸟大学堂:一步一步配置WEB服务器 (2654次浏览)
·Linux下用vsftpd构建FTP服务器 (1102次浏览)
·Windows外衣Linux心 红旗桌面版详测 (1081次浏览)
·Linux下的FTP服务器配置 (3068次浏览)
·Linux入门时必学60个文件处理命令 (3067次浏览)
·清爽漂亮 Ubuntu 7.04 新手指南 (3019次浏览)
·Linux系统中如何实现远程控制 (2834次浏览)
·RedHat7.2下ADSL双网卡共享上网实战 (2829次浏览)
·linux下安装软件的办法 (2775次浏览)
·菜鸟大学堂:一步一步配置WEB服务器 (2654次浏览)
·Linux下用vsftpd构建FTP服务器 (1102次浏览)
·Windows外衣Linux心 红旗桌面版详测 (1081次浏览)
·更好用的Linux:Mandriva 2008正式发布 10-12
·Debian下系统时间比正常时间快8小时的问题 10-12
·开源空间:交叉编译Linux内核(2.6.22.6) 10-12
·新手学堂:类Linux中各种各样的编程语言 10-12
·用Tftp向目标板烧写Linux的系统内核过程 10-11
·RedHat Linux9.0 安装过程 10-11
·7大最有影响力的GNU/Linux发行版 10-11
·Linux系统下的C语言开发都需要学些什么 10-11
·Linux 技巧: 用cron 和at 调度作业 10-11
·各种Linux操作系统版本安装图解教程下载 10-11
·Debian下系统时间比正常时间快8小时的问题 10-12
·开源空间:交叉编译Linux内核(2.6.22.6) 10-12
·新手学堂:类Linux中各种各样的编程语言 10-12
·用Tftp向目标板烧写Linux的系统内核过程 10-11
·RedHat Linux9.0 安装过程 10-11
·7大最有影响力的GNU/Linux发行版 10-11
·Linux系统下的C语言开发都需要学些什么 10-11
·Linux 技巧: 用cron 和at 调度作业 10-11
·各种Linux操作系统版本安装图解教程下载 10-11
最新论坛文章
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
站内频道文章精选
百度推荐,商机无限
搜索您感兴趣的内容



