Linux 集中式登录日志服务器搭建指南:从配置到验证的完整实践——全网最详细!

Linux 集中式登录日志服务器搭建指南:从配置到验证的完整实践 —— 全网最详细!


在企业IT架构中,多台服务器的分散日志管理往往成为安全审计与故障排查的瓶颈——当需要溯源异常登录事件(如未授权SSH访问、sudo滥用)时,逐台服务器查看日志不仅效率低下,更可能因日志遗漏导致安全事件无法追踪。

为解决这一问题,集中式登录日志服务器成为核心解决方案:通过统一收集所有服务器的认证日志(auth/authpriv),实现日志的集中存储、快速检索与合规审计。

本文基于Linux系统默认的rsyslog工具(轻量、稳定、支持跨节点转发),详细讲解从日志源配置转发集中服务器配置接收全流程验证的实践步骤。

一、前置知识:rsyslog与日志类型说明

在开始操作前,需明确两个核心概念:

  • rsyslog:Linux系统默认的日志收集与转发工具,支持TCP/UDP协议,可实现日志的本地存储与远程转发;
  • 日志类型
    • auth:普通认证日志(如SSH登录失败、用户密码验证);
    • authpriv:敏感认证日志(如sudo操作、root用户登录),内容默认仅root用户可查看;
    • *:表示所有日志优先级(如info(普通信息)、warn(警告)、err(错误))。

二、日志源服务器:配置认证日志转发

日志源服务器(即需要发送日志的业务服务器)需通过rsyslog将认证日志转发至集中服务器。

1. 编辑rsyslog转发配置文件

为避免系统升级覆盖配置,建议新建独立配置文件(而非修改默认的50-default.conf):

vim /etc/rsyslog.d/remote-auth-forward.conf

2. 添加转发规则(关键优化)

在文件中添加以下内容(替换日志服务器IP为实际地址):

# 转发规则:将auth/authpriv日志通过TCP协议发送至集中服务器
# @@表示TCP(可靠传输,避免日志丢失),@表示UDP(不推荐,易丢包)
auth,authpriv.* @@日志服务器IP:514

规则解释

  • auth,authpriv.*:指定转发“普通认证+敏感认证”的所有优先级日志;
  • @@日志服务器IP:514:使用TCP协议将日志发送至集中服务器的514端口(rsyslog默认端口);
  • 若需区分不同日志源的日志,可在集中服务器配置按IP命名日志文件(见下文“三、1”)。

3. 重启rsyslog并验证

保存配置后,重启rsyslog服务使配置生效:

systemctl restart rsyslog

验证服务状态(需显示active (running)):

systemctl status rsyslog

排错技巧:若服务启动失败,通过journalctl -xe查看详细报错(如配置文件语法错误)。

三、集中日志服务器:配置接收与存储规则

集中服务器需开启rsyslog的远程接收功能,并为远程日志指定独立存储路径(避免与本地日志混淆)。

1. 开启远程日志接收模块

编辑rsyslog主配置文件/etc/rsyslog.conf,取消以下4行的注释(位于“MODULES” section):

$ModLoad imuxsock      # 加载本地日志接收模块(处理/var/log/messages等)
$ModLoad imklog        # 加载内核日志模块(处理/var/log/kern.log)
$InputTCPServerRun 514 # 开启TCP端口514监听(推荐,可靠传输)
# $InputUDPServerRun 514 # 关闭UDP(减少攻击面,若需保留可取消注释)

优化建议

  • 仅保留$InputTCPServerRun 514(TCP协议),关闭UDP(#注释),避免UDP端口暴露带来的DDoS风险;
  • 若服务器仅作为日志接收端,imuxsockimklog可保留(用于本地日志收集)。

2. 配置远程日志存储策略(安全优先)

为远程认证日志指定独立存储路径,并设置安全权限(避免未授权访问)。

(1)定义日志存储模板

继续编辑/etc/rsyslog.conf,在文件末尾添加以下内容:

# 模板1:按统一路径存储(适用于单日志源)
$template RemoteAuthLogs,"/var/log/remote/auth.log"

# 模板2:按日志源IP命名(推荐,多日志源场景)
# $template RemoteAuthLogs,"/var/log/remote/%FROMHOST-IP%.auth.log"
# %FROMHOST-IP%:自动替换为日志源服务器的IP,如192.168.1.100.auth.log

# 匹配规则:仅接收auth/authpriv日志,应用模板存储
auth.*,authpriv.* ?RemoteAuthLogs

模板说明

  • 模板2(按IP命名)更适用于多服务器场景,可快速区分不同服务器的日志;
  • ?RemoteAuthLogs:表示将匹配的日志写入模板指定的路径。
(2)创建日志目录并设置权限

原文章中的777权限过于开放(任何用户可读写),正确的权限设置应为:

# 递归创建日志目录(-p:若父目录不存在则创建)
mkdir -p /var/log/remote
# 设置权限:所有者rsyslog可读写执行,组和其他仅读执行
chmod 755 /var/log/remote
# 更改所有者为rsyslog(rsyslog服务默认运行用户)
chown rsyslog:rsyslog /var/log/remote

安全说明

  • rsyslog服务以rsyslog用户运行,需确保该用户对日志目录有写入权限;
  • 755权限仅允许所有者修改目录,其他用户仅能读取,避免日志被篡改。

3. 验证端口监听与防火墙

(1)验证端口监听

执行以下命令,确认集中服务器已开启514端口监听:

netstat -anutpl | grep 514

预期输出(TCP为例):

tcp        0      0 0.0.0.0:514             0.0.0.0:*               LISTEN      1234/rsyslogd
tcp6       0      0 :::514                  :::*                    LISTEN      1234/rsyslogd
(2)开放防火墙端口

若端口未监听或无法访问,需开放防火墙端口:

  • CentOS/RHEL
    firewall-cmd --add-port=514/tcp --permanent
    firewall-cmd --reload
    
  • Ubuntu/Debian
    ufw allow 514/tcp
    ufw reload
    

四、全流程验证:确保日志同步正常

配置完成后,需通过手动测试真实场景验证日志是否成功转发与存储。

1. 手动发送测试日志(快速验证)

日志源服务器执行以下命令,手动生成一条测试日志:

# 发送auth.info级别的测试日志(info:普通优先级)
logger -p auth.info "Test auth log from $(hostname)"

集中服务器查看日志(若使用模板2,替换为实际IP):

# 查看最新10条日志
tail -n 10 /var/log/remote/auth.log
# 过滤测试日志
grep "Test auth log" /var/log/remote/auth.log

预期输出

Jul 10 15:00:00 web-server logger: Test auth log from web-server

2. 真实场景验证(SSH登录)

本地机器使用SSH登录日志源服务器(触发真实认证日志):

ssh user@日志源服务器IP

集中服务器查看日志(若使用模板2,替换为实际IP):

# 过滤SSH登录日志(sshd:SSH服务进程名)
grep "sshd" /var/log/remote/auth.log

成功登录的预期输出

Jul 10 15:10:00 web-server sshd[1234]: Accepted password for user from 192.168.1.200 port 12345 ssh2

失败登录的预期输出

Jul 10 15:15:00 web-server sshd[1235]: Failed password for user from 192.168.1.200 port 12346 ssh2

五、后续运维:保障日志系统稳定性

搭建完成后,需进行以下运维操作,确保日志系统的安全性可持续性

1. 设置日志轮转(避免日志过大)

日志文件会不断增长,需通过logrotate自动压缩、删除旧日志。编辑rsyslog的轮转配置:

vim /etc/logrotate.d/rsyslog

添加以下内容(针对远程认证日志):

/var/log/remote/*.auth.log {
    daily          # 每日轮转1次
    rotate 7       # 保留最近7天的日志
    compress       # 压缩旧日志(.gz格式)
    delaycompress  # 延迟压缩(保留当天日志不压缩)
    missingok      # 若日志文件不存在,忽略错误
    notifempty     # 若日志文件为空,不轮转
    create 644 rsyslog rsyslog  # 新建日志文件时,设置权限与所有者
}

2. 定期备份日志(合规要求)

日志是安全审计的关键证据,需定期备份至异地存储(如NAS、云存储)。示例:

# 每日凌晨1点,用rsync备份日志至NAS
0 1 * * * rsync -avz /var/log/remote/ nas_user@nas_server:/backup/logs/

3. 日志可视化与告警(进阶)

若需更高效的日志检索与告警,可结合以下工具:

  • ELK Stack(Elasticsearch + Logstash + Kibana):适用于大规模日志场景,支持全文检索与可视化;
  • Grafana + Loki:轻量级方案,适用于中小规模场景,内置告警功能;
  • Graylog:开源日志管理平台,支持异常登录告警(如10分钟内5次失败登录)。

六、常见问题排查

  1. 日志未转发

    • 检查日志源服务器的rsyslog状态(systemctl status rsyslog);
    • 检查网络连通性(ping 日志服务器IP);
    • 检查集中服务器的防火墙是否开放514端口(firewall-cmd --list-ports)。
  2. 日志未存储

    • 检查集中服务器的日志目录权限(ls -ld /var/log/remote);
    • 验证rsyslog配置文件语法(rsyslogd -N1,无输出表示语法正确);
    • 查看rsyslog报错日志(journalctl -u rsyslog -f)。

结语

至此,集中式登录日志服务器搭建完成!实现了:

  • 多服务器认证日志的统一收集
  • 日志的安全存储(权限控制、按IP区分);
  • 快速的安全审计(如异常登录溯源)。
1. 安装要求: 系统:windows 2012 R2 Standerd 环境:安装.net3.5和web服务 软件版本:K + SolarWinds Event Log Forwarder for Windows 日志服务器IP: 2. 安装过程: 运行开始安装: 至此,Kiwi Syslog server安装完成,开始激活。 3. 软件激活: 1)打开任务管理器: 2)找到文件夹下的,复制替换C:\Program Files (x86)\Syslogd下的相同文件, 3)运行Kiwi Syslog Server,Help-Enter license details,开始激活: 4)单击"Copy Unique Machine ID"复制Machine ID: 5)以管理员身份运行下的Keygen: 6)粘贴刚才复制的Machine ID,输入任意用户名,单击生成激活文件: 7)将激活文件放置任意位置,方便一会使用: 8)选择激活文件: 9)至此,激活成功。 4. 主要配置: 5. 客户端SolarWinds Event LogForwarder的安装: 安装操作简易,这里不做详细。 运行软件: 至此,windows下syslog搭建好,接下来是Linux配置syslog服务器。 6. CentOS配置rsyslog客户端远程记录日志: 1. 安装Rsyslog守护进程: # rpm -qa " grep rsyslog # rsyslogd –v 若rsyslog守护进程没有出现在系统中,使用以下命令来安装: # yum install rsyslog 2. 配置Rsyslog守护进程为客户端: # vi /etc/rsyslog.conf 添加以下声明,将IP地址替换为你的远程rsyslog服务器的IP地址: *.* @192.168.4.14:514 // UDP端口 ( 若需要可靠地协议,*.* @@192.168.4.14:514//TCP端口 若想要转发服务器上的指定设备的日志消息,如内核设备, kern.* @192.168.4.14:514 ) 修改配置文件后,重启进程以激活修改:CentOS 7: # systemctl restart rsyslog.service CentOS 6:# service rsyslog restart 3. 让Rsyslog进程自动启动,运行以下命令: CentOS 7:# systemctl enable rsyslog.service CentOS 6:# chkconfig rsyslog on 7. 华为交换机设置Syslog日志服务器日志获取: <Huawei> system-view [Huawei]info-center enable //开启信息中心 [Huawei] info-center loghost 192.168.4.14 channel loghost //指定向日志主机输出日志信息的通道为 loghost 通道 [Huawei] info-center source default channel loghost debug state off log state off trap state off //关闭所有模块日志主机的 log、trap、debug 的状态 [Huawei]info-center loghost facility local7 language English //将IP地址为的主机作为日志主机,输出语言为英文 [Huawei]info-center source default channel loghost log level informational //设置信息级别为informational,允许输出信息的模块为所有模块 8. 日志服务器搭建成功后效果截图: ----------------------- Kiwi-Syslog日志服务器搭建全文共2页,当前为第1页。 Kiwi-Syslog日志服务器搭建全文共2页,当前为第2页。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值