sudo中sudo怎么配合rsyslog将所有提权操作日志实时远传至集中日志服务器

梦杰同学_6350

梦杰同学_6350

2026-08-08

381人浏览

原创

关键在于sudo日志进入rsyslog管道再转发:需配置Defaults syslog=authpriv,rsyslog精准转发authpriv.*至远程服务器,并在服务端按facility和IP分离存储,确保提权操作实时、可靠、可审计。

sudo中sudo怎么配合rsyslog将所有提权操作日志实时远传至集中日志服务器

要让 sudo 的提权操作日志实时远传至集中日志服务器,关键不是“sudo配合rsyslog”,而是让 sudo 日志进入 rsyslog 管道,再由 rsyslog 转发出去。Linux 默认已将 sudo 日志写入 /var/log/auth.log(Debian/Ubuntu)或 /var/log/secure(RHEL/CentOS),而这些文件本身由 rsyslog 监控并归类——但默认只本地存储。真正要实现“实时远传”,需确保:

  • sudo 日志被 rsyslog 正确捕获(通常已默认支持)
  • rsyslog 将对应 facility(主要是 auth 和 authpriv)的日志转发到远程服务器
  • 服务端能按来源、程序名等可靠接收并分离存储

以下是具体、可落地的配置步骤:

确保 sudo 日志被正确记录到 syslog

sudo 默认通过 syslog() 系统调用向 auth 或 authpriv facility 发送日志。确认 /etc/sudoers 中没有禁用日志(如 Defaults !syslog),且推荐显式启用:

# 推荐在 /etc/sudoers 中添加(用 visudo 编辑)
Defaults    syslog=authpriv
Defaults    log_year, logfile=/var/log/sudo.log

⚠️ 注意:log_year 和 logfile 是本地落盘选项,不影响远程传输;真正决定是否进 syslog 的是 syslog= 设置。authpriv 比 auth 更严格,适合敏感提权行为,且默认被 rsyslog 收集。

验证是否生效:执行 sudo id 后,运行

journalctl -t sudo | tail -3  
# 或  
grep sudo /var/log/auth.log | tail -3

应能看到类似 pam_unix(sudo:session): session opened for user root by user(uid=1000) 的记录。

配置 rsyslog 客户端转发 auth/authpriv 日志

不要盲目转发 *.*,应精准匹配提权相关日志,减少冗余和安全暴露:

  • auth.*:常规认证事件(login、ssh、su)
  • authpriv.*:特权操作(sudo、sudoers、pam_rootok)→ 这才是 sudo 提权的核心日志

编辑 /etc/rsyslog.d/50-sudo-remote.conf(新建独立配置更清晰):

# 启用 TCP 转发(可靠,防丢日志)
authpriv.*  @@192.168.17.160:514;RSYSLOG_ForwardFormat
auth.*      @@192.168.17.160:514;RSYSLOG_ForwardFormat

# 可选:加队列保障网络波动时不丢 sudo 日志
$ActionQueueFileName fwd_sudo
$ActionQueueMaxDiskSpace 500m
$ActionQueueSaveOnShutdown on
$ActionQueueTimeoutShutdown 10000

✅ @@ 表示 TCP(比 @ UDP 更可靠);192.168.17.160 替换为你的日志服务器真实 IP
✅ RSYSLOG_ForwardFormat 是标准格式模板,兼容多数服务端解析
✅ 单独为 sudo 相关日志设队列,避免其他日志挤占缓冲

保存后重启:

sudo systemctl restart rsyslog

服务端接收并按客户端分离存储(含 sudo 日志识别)

服务端需启用 TCP 监听,并用模板把 authpriv 日志单独归类,便于审计:

Find JSON Path Online
Find JSON Path Online

Find JSON Path Online是一款用于查找 JSONPath 路径和生成 JSON 测试数据的在线开发工具。

下载

在 /etc/rsyslog.d/30-remote-sudo.conf 中写:

module(load="imtcp")
input(type="imtcp" port="514")

# 按源 IP + facility 分目录存储,突出 authpriv
template(name="SudoLogTemplate" type="string" 
         string="/var/log/remote/%FROMHOST-IP%/authpriv-%PROGRAMNAME%.log")

if $syslogfacility-text == 'authpriv' then ?SudoLogTemplate
& stop

# 其他 auth 日志也分存(可选)
template(name="AuthLogTemplate" type="string" 
         string="/var/log/remote/%FROMHOST-IP%/auth-%PROGRAMNAME%.log")
if $syslogfacility-text == 'auth' then ?AuthLogTemplate
& stop

创建目录并赋权:

sudo mkdir -p /var/log/remote/192.168.17.161/
sudo chown syslog:adm /var/log/remote

重启服务端 rsyslog:

sudo systemctl restart rsyslog

验证 sudo 日志是否真正远传成功

  1. 在客户端执行提权操作:

    sudo ls /root
  2. 立即在服务端检查:

    # 查看对应 IP 下的 authpriv 日志
    sudo tail -f /var/log/remote/192.168.17.161/authpriv-sudo.log

    应看到类似:

    Jul 21 22:05:12 client-host sudo: user : TTY=pts/0 ; PWD=/home/user ; USER=root ; COMMAND=/bin/ls /root
  3. 若无输出,排查方向:

    • sudo systemctl status rsyslog(客户端和服务端都查是否有 error)
    • sudo ss -tlnp | grep :514(服务端确认 514/tcp 是否监听)
    • sudo ufw status 或 sudo firewall-cmd --list-ports(确认 514/tcp 放行)
    • journalctl -u rsyslog -n 50 --no-pager | grep -i "fail\|reject"(找连接拒绝线索)

不复杂但容易忽略细节。核心就三点:sudo 写进 authpriv → rsyslog 抓住 authpriv 并 TCP 转发 → 服务端按 facility+IP 分离落盘。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

457

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

960

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

3212

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

1056

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

949

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

494

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2956

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

5532

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

867

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习