一、sudo 组成
sudo 即superuser do,允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登录 和管理时间,同样也提高了安全性 sudo特性: sudo能够授权指定用户在指定主机上运行某些命令。如果未授权用户尝试使用 sudo,会提示联系 管理员 sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服 务器 sudo使用时间戳文件来执行类似的“检票”系统。当用户调用sudo并且输入它的密码时,用户获得 了一张存活期为5分钟的票 sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。它 所存放的位置默认是在/etc/sudoers,属性必须为0440授权编辑规则文件的工具:/usr/bin/sudoedit
执行授权命令:/usr/bin/sudo 时间戳文件:/var/db/sudo 日志文件:/var/log/secure 二、sudo 命令 sudo命令 ls -l /usr/bin/sudo sudo -i -u wang 切换身份功能和 su 相似,但不一样,sudo必须提前授权,而且要输入自已的密码 sudo [-u user] COMMAND -V 显示版本信息等配置信息 -u user 指定代表的用户,默认为root -l,ll 列出用户在主机上可用的和被禁止的命令 -v 再延长密码有效期限5分钟,更新时间戳 -k 清除时间戳(1970-01-01),下次需要重新输密码 -K 与-k类似,还要删除时间戳文件 -b 在后台执行指令 -p 改变询问密码的提示符号 示例:-p "password on %h for user %p: " 三、 sudo 授权规则配置 配置文件格式说明:/etc/sudoers, /etc/sudoers.d/ 配置文件中支持使用通配符 glob ? 任意单一字符 * 匹配任意长度字符 [wxc] 匹配其中一个字符 [!wxc] 除了这三个字符的其它字符 \x 转义 [[alpha]] 字母
sudo别名有四种类型: User_Alias Runas_Alias Host_Alias Cmnd_Alias 别名格式:[A-Z]([A-Z][0-9]_)* 别名定义:Alias_Type NAME1 = item1,item2,item3 : NAME2 = item4, item5 四、实战案例 五、PAM认证机制 1、PAM 介绍 PAM:Pluggable Authentication Modules,插件式的验证模块,Sun公司于1995 年开发的一种与认证 相关的通用框架机制。PAM 只关注如何为服务验证用户的 API,通过提供一些动态链接库和一套统一的 API,将系统提供的服务和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配 置不同的认证方式而无需更改服务程序一种认证框架,自身不做认证 2、PAM架构
3、 PAM相关文件
包名: pam 模块文件目录:/lib64/security/*.so 特定模块相关的设置文件:/etc/security/ 应用程序调用PAM模块的配置文件 主配置文件:/etc/pam.conf,默认不存在,一般不使用主配置 为每种应用模块提供一个专用的配置文件:/etc/pam.d/APP_NAME 注意:如/etc/pam.d存在,/etc/pam.conf将失效 4、PAM工作原理 PAM认证一般遵循这样的顺序:Service(服务)→PAM(配置文件)→pam_*.so PAM认证首先要确定那一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证 文件(位于/lib64/security下)进行安全认证 5、PAM 配置文件格式说明application:指服务名,如:telnet、login、ftp等,服务名字“OTHER”代表所有没有在该文件中明确配置的其它服务
type:指模块类型,即功能 control :PAM库该如何处理与该服务相关的PAM模块的成功或失败情况,一个关健词实现 module-path: 用来指明本模块对应的程序文件的路径名 Arguments: 用来传递给该模块的参数 模块类型(module-type) Auth 账号的认证和授权 Account 帐户的有效性,与账号管理相关的非认证类的功能,如:用来限制/允许用户对某个服务 的访问时间,限制用户的位置(例如:root用户只能从控制台登录) Password 用户修改密码时密码复杂度检查机制等功能 Session 用户会话期间的控制,如:最多打开的文件数,最多的进程数等 -type 表示因为缺失而不能加载的模块将不记录到系统日志,对于那些不总是安装在系统上的模块有 用 Control: required :一票否决,表示本模块必须返回成功才能通过认证,但是如果该模块返回失败,失败结 果也不会立即通知用户,而是要等到同一type中的所有模块全部执行完毕,再将失败结果返回给应 用程序,即为必要条件 requisite :一票否决,该模块必须返回成功才能通过认证,但是一旦该模块返回失败,将不再执 行同一type内的任何模块,而是直接将控制权返回给应用程序。是一个必要条件 sufficient :一票通过,表明本模块返回成功则通过身份认证的要求,不必再执行同一type内的其 它模块,但如果本模块返回失败可忽略,即为充分条件,优先于前面的required和requisite optional :表明本模块是可选的,它的成功与否不会对身份认证起关键作用,其返回值一般被忽略 include: 调用其他的配置文件中定义的配置信息 module-path: 模块文件所在绝对路径: 模块文件所在相对路径:/lib64/security目录下的模块可使用相对路径,如:pam_shells.so、 pam_limits.so 有些模块有自已的专有配置文件,在/etc/security/*.conf目 录下 Arguments debug :该模块应当用syslog( )将调试信息写入到系统日志文件中 no_warn :表明该模块不应把警告信息发送给应用程序 use_first_pass :该模块不能提示用户输入密码,只能从前一个模块得到输入密码 try_first_pass :该模块首先用前一个模块从用户得到密码,如果该密码验证不通过,再提示用户输入新密码 use_mapped_pass 该模块不能提示用户输入密码,而是使用映射过的密码 expose_account 允许该模块显示用户的帐号名等信息,一般只能在安全的环境下使用,因为泄漏用户名会对安全造成一定程度的威胁 6、PAM模块帮助 官方在线文档:http://www.linux-pam.org/Linux-PAM-html/ pam模块文档说明:/user/share/doc/pam-* rpm -qd pam man -k pam_ man 模块名 如:man 8 rootok 7、常用PAM模块 1、 pam_nologin.so 模块 功能:如果/etc/nologin文件存在,将导致非root用户不能登陆,当该用户登陆时,会显示/etc/nologin文 件内容,并拒绝登陆 2、 pam_limits.so 模块 功能:在用户级别实现对其可使用的资源的限制,例如:可打开的文件数量,可运行的进程数量,可用内存空间 修改限制的实现方式: (1) ulimit命令 ulimit是linux shell的内置命令,它具有一套参数集,用于对shell进程及其子进程进行资源限制。 ulimit的设定值是 per-process 的,也就是说,每个进程有自己的limits值。 使用ulimit进行修改,立即生效。 ulimit只影响shell进程及其子进程,用户登出后失效。 可以在profile中加入ulimit的设置,变相的做到永久生效。 -H 设置硬件资源限制.(2) 配置文件: pam_limits的设定值是基于 per-process 的 /etc/security/limits.conf /etc/security/limits.d/*.conf 配置文件格式: #每行一个定义 <domain> <type> <item> <value> 3、pam_google_authenticator 模块 功能:实现SSH登录的两次身份验证,先验证APP的数字码,再验证root用户的密码,都通过才可以登录。
六、时间同步服务 加密和安全当前都离不开时间的同步,否则各种网络服务可能不能正常运行 1、计时方式 原子钟(Atomic clock) 2、时间同步服务 多主机协作工作时,各个主机的时间同步很重要,时间不一致会造成很多重要应用的故障,如:加密协 议,日志,集群等, 利用NTP(Network Time Protocol) 协议使网络中的各个计算机时间达到同步。 目前NTP协议属于运维基础架构中必备的基本服务之一 时间同步软件实现: ntp chrony ntp: 将系统时钟和世界协调时UTC同步,精度在局域网内可达0.1ms,在互联网上绝大多数的地方精度可以 达到1-50ms 项目官网:http://www.ntp.org chrony: 实现NTP协议的的自由软件。可使系统时钟与NTP服务器,参考时钟(例如GPS接收器)以及使用手表 和键盘的手动输入进行同步。还可以作为NTPv4(RFC 5905)服务器和对等体运行,为网络中的计算机 提供时间服务。设计用于在各种条件下良好运行,包括间歇性和高度拥挤的网络连接,温度变化(计算 机时钟对温度敏感),以及不能连续运行或在虚拟机上运行的系统。 通过Internet同步的两台机器之间的典型精度在几毫秒之内,在LAN上,精度通常为几十微秒。利用硬 件时间戳或硬件参考时钟,可实现亚微秒的精度 3、chrony
标签:第十六,sudo,用户,pam,etc,模块,PAM From: https://www.cnblogs.com/dujy/p/17993582