CentOS下sudo的使用和sudoers配置
一、sudo命令
sudo [参数选项] 命令
参数选项
-l:列出目前用户可执行与无法执行的指令;
-v:延长密码有效期限5分钟;
-u<用户>:以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份;
-k:结束密码的有效期限,也就是下次再执行sudo时便需要输入密码;
-b:在后台执行指令;
-h:显示帮助;
-H:将HOME环境变量设为新身份的HOME环境变量;
-p:改变询问密码的提示符号;
-s<shell>:执行指定的shell;
-V :显示版本信息。
注意:
# 远程sudo加-t参数
二、sudo配置
# 配置文件位置
/etc/sudoers
root ALL=(ALL) ALL
用户 机器 角色 命令
# 编辑配置文件
# 1。推荐使用visudo来编辑
# 2。批量管理用
echo "%sa ALL=(ALL) ALL" >> /etc/sudoers
# 检查配置文件语法
visudo -c
# 检查配置文件权限
2.1 主机别名
说明:
配置时注意写法
一般不用主机别名
2.2 用户别名
2.3 命令别名
2.4 身份别名
Runas_Alias OP = root, vagrant
2.5 使用别名
类似于rbac,用户别名就是角色,命令别名就是资源权限
# 用户别名
User_Alias ADMIN = vagrant, yysue
# 命令别名
Cmnd_Alias USERCMD = /sbin/useradd, /bin/passwd
Cmnd_Alias SOFTCMD = /bin/rpm, /usr/bin/yum
# 身份别名
Runas_Alias OP1 = root, vagrant
# 关联
ADMIN ALL=(OP1) USERCMD, SOFTCMD
三、sudo审计
sudo日志审计:记录sudo命令的用户的操作
所谓日志审计,就是记录所有系统及相关用户行为的信息,并且可以自动分析、处理、展示
- 通过环境变量命令及rsyslog服务进行全部日志审计(信息太大,不推荐)
- sudo配合rsyslog服务,进行日志审计(审计信息少,效果不错)
- 在bash解释器程序里嵌入一个监视器,让所有被审计的系统用户使用修改过的增加了监视器的特殊bash程序作为解释程序
- 齐治的堡垒机:商业产品
- Python开发的开源产品
- jumpserver
- CrazyEye
3.1 配置(CentOS6)
1)检查是否安装sudo/rsyslog
# 检查
rpm -qa sudo rsyslog
# 安装
yum install sudo rsyslog -y
2)配置/etc/sudoers
# 追加一行配置:日志输出
echo "Defaults logfile=/var/log/sudo.log" >> /etc/sudoers
# 验证
tail -1 /etc/sudoers
grep 'Defaults' /etc/sudoers
# 检查语法
visudo -c
3)配置/etc/rsyslog.conf(可以不配置)
echo "local2.debug /var/log/sudo.log" >> /etc/rsyslog.conf
通过sudo运行的命令都被记录到配置的日志文件了
3.2 日志集中管理
rsync+inotify或定时任务+rsync,推到日志管理服务器上, ip_date.sudo.log
rsyslog服务来处理
日志收集解决方案:scribe,Flume,stom,logstash ELK