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

满满鞋店

满满鞋店

2016-01-29 18:14

访问控制大师 使用pam来支持login的访问控制,访问控制大师,使用pam来支持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.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
  
展开更多 50%)
分享

猜你喜欢

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

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
访问控制大师 使用pam来支持login的访问控制

VB对低层硬件访问控制

编程语言 网络编程
VB对低层硬件访问控制

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

设置apache目录访问身份验证(目录访问控制)

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
设置apache目录访问身份验证(目录访问控制)

Java入门笔记4_访问控制和包

编程语言 网络编程
Java入门笔记4_访问控制和包

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

SQLServer 2005 控制用户权限访问表图文教程

编程语言 网络编程
SQLServer 2005 控制用户权限访问表图文教程

C++类的继承与多重继承的访问控制

编程语言 网络编程
C++类的继承与多重继承的访问控制

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

系统管理员必备常识之RAID磁盘阵列

系统管理员必备常识之RAID磁盘阵列

Word办公打印设置技巧

Word办公打印设置技巧
下拉加载更多内容 ↓