Linux高级安全PAM使用

本文发布时间: 2019-Mar-21
大家好,关于PAM的使用,有的接触不到,他们配置的地方也不是经常出现,这是我的学习笔记,想分享给大家,有些地方逻辑性很强需要多看我基本上都有注释。PAM 身份验证 及插即用 验证 模块[[email protected] /]# ldd /usr/sbin/sshd --------查看一个程序在运行的时调用那些库文件[[email protected] /]# ldd `which sshd` | grep pam libpam.so.0 => /lib/libpam.so.0 (0x008ae000)[[email protected] /]# ls /lib/security/------pam所有功能插件[[email protected] /]# ls /etc/pam.d/-------一个程序使用什么pam模块 怎么使用都在这里[[email protected] /]# firefox /usr/share/doc/pam-0.99.6.2/html/Linux-PAM_SAG.html -----pam的配置手册6.11 是用方法6.25 是限制 描述6.6 设置环境变量-----------------------------以login 为例子 怎么用的pampam 的难点 前俩列的关系一个用户能不能验证成公 能不能登录进去 取决于前俩个 (auth account )日志信息tail -f /var/log/secure第一列auth ---- 管理用户名密码account ---- 除用户名密码以外的对登录起取决性的其他因素条件(列如 某个时间断 某个网段)password ----当用户对密码进行操作的时候用到他 (不该密码就没他什么事情)session------- 进行会话的时候用到的 (当我打开一个程序的时候相当于建立了一次连接会话)第二列required ------ 必要条件 针对模块(模一个条件必须要成功,如果失败了 还继续往下执行,但是最终百分之百失败)requisite----- 必要条件 针对模块(模块必须验证成功 如果失败了 ,停止验证 如果成功 继续走,看以后的 )sufficient----- 充分条件 针对模快(如果一个模块成功 立即返回成功 如果失败 (忽略不计对最终结果不受影响))otional--- - 可选条件 针对模块 (不管模块验证成功 失败 对最终结果没有影响)include-------包含条件 针对文件( 不同模块调用相同的条件 把条件作一个公共文件) 跳过来之后只读相同类型的-------------------------------------------[[email protected] ~]# cat /etc/shadow | grep user1user1:!$1$hSYfRFbq$ST2mHoyu38nnvPx/kDMv90:15781:0:99999:7:::auth 管的是前俩列account 管的是 后面的-----------------------------------------第三行 模快 (第三行没有跳转的就是模块在手册里查是什么功能 如果跳转了就去看跳转的那个公共文件里对应的模块是什么功能)login 配置文件里的模块pam_securetty.so 安全的tty模块 -------对应的配置文件vim /etc/securetty 只有这里的终端 才是安全的终端pam_nologin.so 阻止非管理员登录的模块 --- touch /etc/nologin 文件 所有普通帐号就不能登录pam_access.so 访问控制模块pam_time.so 时间控制模块pam_echo.so 打印文本信息auth 跳转文件里的模块pam_env.so 设置环境变量模块 -------对应的配置文件 vim /etc/security/pam_env.conf 在这里设置环境变量pam_unix.so 验证用户名密码模块 --pam核心模块负责passwd 找用户名 在shadow 里找密码的模块,在这里他验证的是前面的两行pam_succeed_if.so uid >= 500 quiet(安静模式 不记录到日志) 判断是否成功的模块 判断uid 是否大于等于500pam_deny.so 永远拒绝模块account 跳转文件里的模块pam_unix.so 验证用户名密码模块 ------这里他验证的是后面的pam_permit.so 永远允许的模块-------------------------------------------login 的pam配置文件[[email protected] /]# vim /etc/pam.d/login1 #%PAM-1.0未知用户忽略2 auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securett(模块) y.so--以前的语法 必要条件第一行只针对管理员模块 只针对管理员生效 模块不会验证普通用户vim /etc/securetty----只有这里的终端 才是安全的终端3 auth include system-auth(公共文件) 跳转 vim /etc/pam.d/system-auth 里对应的配置4 account required pam_nologin.so 必要条件 这个模块让你找 touch /etc/nologin 文件 所有普通帐号不能登5 account include system-auth 继续跳转 vim /etc/pam.d/system-auth 里caaount对应的文件6 password include system-auth7 # pam_selinux.so close should be the first session rule8 session required pam_selinux.so close9 session optional pam_keyinit.so force revoke10 session required pam_loginuid.so11 session include system-auth12 session optional pam_console.so13 # pam_selinux.so open should only be followed by sessions to be executed in the user context14 session required pam_selinux.so open----------------------------[[email protected] ~]# vim /etc/pam.d/system-auth1 #%PAM-1.02 # This file is auto-generated.3 # User changes will be destroyed the next time authconfig is run.4 auth required pam_env.so --------环境变量5 auth sufficient pam_unix.so nullok try_first_pass -pam_nologin.so-第一次输入密码以后 往后第二次在验证他会尝试输入第一次的密码6 auth requisite pam_succeed_if.so uid >= 500 quiet 安静7 auth required pam_deny.so 拒绝模块89 account required pam_unix.so --------只管 shadow 的前俩列10 account sufficient pam_succeed_if.so uid < 500 quiet11 account required pam_permit.so1213 password requisite pam_cracklib.so try_first_pass retry=314 password sufficient pam_unix.so md5 shadow nullok try_first_pass use_a uthtok15 password required pam_deny.so1617 session optional pam_keyinit.so revoke18 session required pam_limits.so19 session [success=1 default=ignore] pam_succeed_if.so service in crond qu iet use_uid20 session required pam_unix.so--------------------------用户不需要密码[[email protected] /]# vim /etc/pam.d/login设置用户名密码 如果成功直接通过 这个模块2 auth sufficient pam_permit.so7account sufficient pam_permit.so---------------------------------pam_access.so 访问控制模块每个模块最后有这个提示6.1.4. MODULE SERVICES PROVIDEDAll services are supported. ---------旨的是auth account passwd session这里面都支持这个模块vim /etc/pam.d/login4 auth requisite pam_access.so+代表 授权访问 -代表拒绝访问vim /etc/security/access.conf-: user1 : tty3-: all : 192.168.1.0----------------pam_time.so 时间控制模块vim /etc/pam.d/login9 account required pam_time.so格式services;ttys;users;times[[email protected] /]# vim /etc/security/time.conflogin ; tty3 ; user1 ; al0100-0200 user1 1点到两点才能登录login ; tty3 ; user1 ; allsshd ; * ; * ; al0100-0200------------pam_echo.so 打印文本信息[[email protected] ~]# cat > hello.txt <<EOF> eeeeeeeeeeeee> EOFvim /etc/pam.d/login4 auth optional pam_echo.so file=/root/hello.txt-------------------------注意 顺序问题 优先第一个起作用模块是否支持前两类的关系


(以上内容不代表本站观点。)
---------------------------------
本网站以及域名有仲裁协议。
本網站以及域名有仲裁協議。

2020-Jul-13 01:11am
栏目列表