linux控制用户的登录地点以及PAM的用法_绿色软件之家

绿色软件之家:您身边最放心的安全下载站! 最新更新|软件分类|软件专题|手机版|系统之家|纯净系统

您当前所在位置:首页操作系统LINUX → linux控制用户的登录地点以及PAM的用法

linux控制用户的登录地点以及PAM的用法

时间:2015/6/28来源:绿色软件之家作者:网管联盟我要评论(0)

  控制用户的登录地点

  文件/etc/secruity/access.conf可控制用户登录地点,为了使用access.conf,必须在文件/etc/pam.d/login中加入下面行:

  account required /lib/security/pam_access.so

  access.conf文件的格式:

  permission : users : origins

  其中:

  permission:可以是 "+"或"-",表示允许或拒绝。

  user:可以是用户名、用户组名,如果是all则表示所有用户。

  origins:登录地点。local表示本地,all表示所有地点,console表示控制台。另外,origins也可以是某一网络。

  后面两个域中加上 except是"除了"的意思。例如:除了用户wheel、shutdown、sync禁止所有的控制台登录:

  -:ALL EXCEPT wheel shutdown sync:console

  root账户的登录地点不在access.conf文件中控制,而是由/etc/securetty文件控制。

  必须保证/etc/pam.d/login有下面这行:

  auth required     pam_securetty.so

  etc/securetty文件指定了允许root登录的tty设备,由/bin/login程序读取,其格式是一个被允许的名字列表,你可以编辑/etc/securetty且注释掉如下的行。

  # tty2

  # tty3

  # tty4

  # tty5

  # tty6

  这时,root仅可在tty1终端登录。

  关于PAM的一些解释

  热身:

  何要授予用户特权的程序都要能够进行用户认证。当您登入系统时,您需要提供用户名和口令,而后登入进程据此以检验登入的合法性---确认您就是该用户。还有除口令认证之外的其他认证形式,而且口令的存储方式也是各不相同的。

  1、说明

  A、PAM可加载目标文件(模块)是在RedHat linux系统中它们被放在了/lib/security目录下

  B、PAM库本地系统配置文件/etc/pam.conf OR /etc/pam.d/目录下的一些配置文件来设置

  2、# more login

  #%PAM-1.0

  auth required     pam_securetty.so

  用来控制root用户只可以从包含在/etc/securetty文件中的终端登录系统。

  auth required     pam_stack.so service=system-auth

  auth required     pam_nologin.so

  提供标准的UNIX nologin登录认证。如果/etc/nologin文件存在,则只有root用户可以登录,其他用户登录时只会得到/etc/nologin文件的内容。如果/etc/nologin不存在,则该模块没有作用。

  account    required     pam_stack.so service=system-auth

  password   required     pam_stack.so service=system-auth

  # pam_selinux.so close should be the first session rule

  session    required     pam_selinux.so close

  session    required     pam_stack.so service=system-auth

  session    optional     pam_console.so

  # ls -l /dev/pts/1

  crw--w---- 1 root tty 136, 1 May 15 21:19 /dev/pts/1

  # ls -l /dev/pts/2

  crw--w---- 1 test tty 136, 2 May 15 21:20 /dev/pts/2

  用户登陆时,它将TTY设备权限改成该用户所有,当用户退出时,将TTY设备权限改为root所有。

  # pam_selinux.so open should be the last session rule

  session    required     pam_selinux.so multiple open

  login要做两件事,首先查询用户,然后为用户提供所需服务,例如提供一个shell程序。

  通常,login会提示用户输入密码。然后对密码进行校验,这项任务就是Linux-PAM完成的。

  上 例中三个required连续使用, 即便第一个模块失败了,也要完成三个模块的校验。这是一种安全上的考虑 ---这种设计永远不要让用户知道他或她们为什么会被拒绝,否则会让其更容易突破认证。可以将"required"改成"requisite"来修改这种 认证方式。如果有任何"requisite"模块以失败返回,整个PAM认证将终止再调用其它模块也以失败返回。

  3、pam_unix认证模块

  所属类型: account; auth; password; session

  功能描述:该模块是标准UNIX认证模块pam_unix的替代模块。

  在 作为auth类型使用时,此时该模块可识别的参数有debug、audit、use_first_pass、try_first_pass、 nullok、nodelay,主要功能是验证用户密码的有效性,在缺省情况下(即不带任何参数时),该模块的主要功能是禁止密码为空的用户提供服务;

  auth  required      /lib/security/$ISA/pam_env.so

  auth  sufficient    /lib/security/$ISA/pam_unix.so likeauth nullok

  auth  required      /lib/security/$ISA/pam_deny.so

  在作为account类型使用时,此时该模块可识别的参数有debug、audit,该模块主要执行建立用户帐号和密码状态的任务,然后执行提示用户修改密码,用户采用新密码后才提供服务之类的任务;

  account     required      /lib/security/$ISA/pam_unix.so

  account     sufficient    /lib/security/$ISA/pam_succeed_if.so uid < 100 quiet

  account     required      /lib/security/$ISA/pam_permit.so

  在 作为password类型使用时,此时该模块可识别的参数有debug、 audit、 nullok;、not_set_pass、use_authtok、try_first_pass、use_first_pass、md5、 bigcrypt、shadow、nis、

  remember,该模块完成让用户更改密码的任务;

  password    requisite     /lib/security/$ISA/pam_cracklib.so retry=3

  password    sufficient    /lib/security/$ISA/pam_unix.so nullok use_authtok md5

  shadow

  password    required      /lib/security/$ISA/pam_deny.so

#p#副标题#e#

  在作为session类型使用时,此时该模块没有可识别的参数,该模块仅仅完成记录用户名和服务名到日志文件的工作。

  session     required      /lib/security/$ISA/pam_limits.so

  session     required      /lib/security/$ISA/pam_unix.so

  可带参数:

  debug:将调试信息写入日志

  audit:记录更为信息的信息

  nullok:缺省情况下,如果用户输入的密码为空,则系统能够不对其提供任何服务。但是如果使用参数,用户不输入密码就可以获得系统提供的服务。同时,也允许用户密码为空时更改用户密码。 ?

  nodelay:当用户认证失败,系统在给出错误信息时会有一个延迟,这个延迟是为了防止。黑客猜测密码,使用该参数时,系统将取消这个延迟。通常这是一个1秒钟的延迟。

  try_first_pass:在用作auth模块时,该参数将尝试在提示用户输入密码前,使用前面一个堆叠的auth模块提供的密码认证用户;在作为password模块使用时,该参数是为了防止用户将密码更新成使用以前的老密码。

  use_first_pass:在用作auth模块时,该参数将在提示用户输入密码前,直接使用前面一个堆叠的auth模块提供的密码认证用户;在作为password模块使用时,该参数用来防止用户将密码设置成为前面一个堆叠的password模块所提供的密码。

  no_set_pass:使密码对前后堆叠的password模块无效。

  use_authok:强制使用前面堆叠的password模块提供的密码,比如由pam_cracklib模块提供的新密码。

  md5:采用md5对用户密码进行加密。

  shadow:采用影子密码。

  unix:当用户更改密码时,密码被放置在/etc/passwd中。

  bigcrype:采用DEC C2算法加密用户密码。

  nis:使用NIS远处过程调用来设置新密码。

  remember=x:记录x个使用过的旧密码,这些旧密码以MD5方式加密后被保存在/etc/security/opasswd文件中。

  broken_shadow:在作为account使用时,该参数用来忽略对影子密码的读错误。

  likeauth:未知。

  配置实例:

  参考/etc/pam.d/system-auth

  设置密码中的常见错误信息?

  ⑴当用户输入的密码字符数太少时:

  BAD PASSWORD: it's WAY too short

  ⑵当用户输入的密码相同字符太多时:

  BAD PASSWORD: it does not cont

关键词标签:linux控制用户的登录地

相关阅读

文章评论
发表评论

热门文章 安装红帽子RedHat Linux9.0操作系统教程安装红帽子RedHat Linux9.0操作系统教程使用screen管理你的远程会话使用screen管理你的远程会话GNU/Linux安装vmwareGNU/Linux安装vmware如何登录linux vps图形界面 Linux远程桌面连如何登录linux vps图形界面 Linux远程桌面连

相关下载

人气排行 Linux下获取CPUID、硬盘序列号与MAC地址linux tc实现ip流量限制dmidecode命令查看内存型号linux下解压rar文件安装红帽子RedHat Linux9.0操作系统教程Ubuntu linux 关机、重启、注销 命令lcx.exe、nc.exe、sc.exe入侵中的使用方法查看linux服务器硬盘IO读写负载