好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

访问控制大师,使用pam来支持login的访问控制

这里我们需要 使用 pam_access。pam_access是pam中处理用户 访问 控制 的模块,没有 使用 pam前,linux对用户的所有 访问 控制 都是借助hosts.allow, hosts.deny文件,实现所有服务的 访问 控制 ,再加上usertty就是对用户登陆 控制 (专门是针对login)。但是

  这里我们需要 使用 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测试数据 .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测试数据和.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

查看更多关于访问控制大师,使用pam来支持login的访问控制的详细内容...

  阅读:43次