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配置

Visudo Manual

# 配置文件位置
/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

posted @ 2018-04-05 20:57  okokabcd  阅读(10417)  评论(1编辑  收藏  举报