首页 > 运维 > linux运维 > 正文

如何配置sudo日志 集中审计

P粉602998670
发布: 2025-08-14 15:57:02
原创
1021人浏览过

配置 sudo 日志集中审计的核心是通过本地记录、日志转发和集中存储实现特权操作的可追溯性。1. 首先配置 sudo 单独日志:使用 visudo 设置 defaults logfile=/var/log/sudo.log 并启用 log_input 和 log_output 以记录输入输出;2. 设置日志文件权限为 0600,确保仅 root 可读写;3. 配置 rsyslog 转发日志:在 /etc/rsyslog.conf 中加载 omfwd 模块,并添加规则如 :msg, contains, "sudo" @@192.168.1.100:514 使用 tcp 协议发送至日志服务器;4. 在远程日志服务器启用 imtcp 模块并监听 514 端口,通过模板按主机或关键字存储日志,如使用 ?hosttemplate 分离不同客户端日志;5. 可选增强审计:结合 auditd 监控 /usr/bin/sudo 执行和 /etc/sudoers 文件访问,记录更细粒度行为;6. 推荐接入 elk、graylog 或 splunk 等平台实现集中分析与告警;7. 安全方面需限制日志服务器访问权限,启用完整性校验,定期备份日志,并配置异常行为告警,确保审计数据不可篡改且具备事后追溯能力。最终通过“本地记录 + syslog 转发 + 集中存储 + 增强审计”形成完整的 sudo 操作审计体系。

如何配置sudo日志 集中审计

配置 sudo 日志集中审计,主要是为了实现对系统中特权操作的统一记录与监控,便于安全审计和事后追溯。以下是实现 sudo 日志集中审计的完整配置思路和步骤,适用于 Linux 系统(以 CentOS/RHEL/Ubuntu 为例)。


一、启用本地 sudo 日志记录

默认情况下,sudo 的操作通常记录在

/var/log/secure
登录后复制
(RHEL/CentOS)或
/var/log/auth.log
登录后复制
(Ubuntu/Debian)中。但为了更清晰地审计,建议将 sudo 日志单独输出。

1. 修改 sudoers 配置

使用

visudo
登录后复制
编辑 sudoers 文件:

sudo visudo
登录后复制

添加或确认以下行:

Defaults    logfile = /var/log/sudo.log
Defaults    log_input, log_output
登录后复制
  • logfile
    登录后复制
    :指定 sudo 操作单独记录到
    /var/log/sudo.log
    登录后复制
  • log_input, log_output
    登录后复制
    :记录用户输入和命令输出(需配合
    sudo
    登录后复制
    tty_tickets
    登录后复制
    使用)
注意:log_input 和 log_output 会记录终端交互内容,可能涉及敏感信息,请评估安全策略。

2. 设置日志文件权限

确保日志文件权限安全:

sudo touch /var/log/sudo.log
sudo chown root:root /var/log/sudo.log
sudo chmod 0600 /var/log/sudo.log
登录后复制

二、配置 rsyslog 将日志发送到远程日志服务器

要实现集中审计,需将本地的 sudo 日志通过 syslog 协议发送到远程日志服务器(如 syslog-ng、rsyslog server、ELK、Splunk 等)。

1. 修改 rsyslog 配置(本地客户端)

编辑 rsyslog 配置文件:

sudo vim /etc/rsyslog.conf
登录后复制

确保启用以下模块(取消注释):

module(load="imuxsock") # 接收本地日志
module(load="imklog")   # 内核日志
module(load="omfwd")    # 支持转发
登录后复制

添加规则,将 sudo 日志转发到远程服务器(假设日志服务器 IP 为 192.168.1.100,端口 514):

# 转发所有包含 sudo 的日志
:msg, contains, "sudo" @@192.168.1.100:514

# 或者转发整个 authpriv 日志(sudo 默认属于 authpriv.*)
authpriv.* @@192.168.1.100:514
登录后复制

使用

@@
登录后复制
表示 TCP(可靠传输),
@
登录后复制
表示 UDP(不推荐用于审计)

集简云
集简云

软件集成平台,快速建立企业自动化与智能化

集简云 22
查看详情 集简云

2. 重启 rsyslog 服务

sudo systemctl restart rsyslog
登录后复制

三、配置远程日志服务器(集中收集端)

在日志服务器上配置 rsyslog 接收来自客户端的日志。

1. 启用网络接收功能

编辑

/etc/rsyslog.conf
登录后复制

module(load="imtcp")
input(type="imtcp" port="514")
登录后复制

2. 定义日志存储路径(可选按主机分离)

# 按主机名保存日志
$template HostTemplate,"/var/log/remote/%HOSTNAME%/auth.log"
authpriv.* ?HostTemplate
登录后复制

或专门保存 sudo 日志:

:msg, contains, "sudo", ?File,"/var/log/audit/sudo.log"
& stop
登录后复制

3. 创建目录并重启服务

sudo mkdir -p /var/log/remote /var/log/audit
sudo systemctl restart rsyslog
登录后复制

四、增强审计能力(可选但推荐)

1. 结合 auditd 进行更细粒度审计

sudo 日志只记录“谁执行了什么命令”,而

auditd
登录后复制
可以记录系统调用、文件访问等。

/etc/audit/rules.d/audit.rules
登录后复制
中添加:

# 监控 sudo 命令执行
-a always,exit -F path=/usr/bin/sudo -F perm=x -k sudo_exec

# 监控关键配置文件
-w /etc/sudoers -p wa -k sudoers_access
登录后复制

重启 auditd:

sudo systemctl restart auditd
登录后复制

日志将记录在

/var/log/audit/audit.log
登录后复制
,可通过
ausearch -k sudo_exec
登录后复制
查询。

2. 使用集中式日志平台(如 ELK、Graylog)

将 rsyslog 输出接入:

  • ELK:通过 Filebeat 收集日志,Logstash 过滤,Kibana 展示
  • Graylog:直接接收 syslog,支持告警和搜索
  • Splunk:部署 Universal Forwarder 或接收 syslog

五、安全建议

  • 所有日志服务器应设置访问控制,仅允许授权人员查看。
  • 启用日志完整性校验(如 auditd 的 log_file_integrity)。
  • 定期归档和备份日志,防止被篡改或删除。
  • 配置日志告警,如频繁 sudo 失败、root 登录等异常行为。

基本上就这些。通过“本地记录 + syslog 转发 + 集中存储 + 增强审计”,可以实现完整的 sudo 操作集中审计体系。关键是确保日志不被本地用户篡改,因此远程集中存储是核心。

以上就是如何配置sudo日志 集中审计的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号