1. 配置日志权限与所有权
确保日志文件的访问权限严格受限,防止未授权修改或读取。使用chown将日志文件所有者设为root,组设为adm(或自定义的syslog组);通过chmod设置权限为640(所有者可读写,组成员可读,其他用户无权限)。例如:
sudo chown root:adm /var/log/syslog
sudo chmod 640 /var/log/syslog
若需更细粒度控制,可使用setfacl为特定用户或组添加权限(如允许admin用户读取):
sudo setfacl -m u:admin:r /var/log/syslog
2. 优化日志轮转策略
使用logrotate工具自动管理日志文件大小和数量,避免日志过大占用磁盘空间或泄露历史信息。编辑/etc/logrotate.d/rsyslog(或对应服务的配置文件),设置每日轮转、保留7天、压缩旧日志、空日志不轮转,并创建新日志时继承正确权限:
/var/log/syslog {
daily
rotate 7
compress
missingok
notifempty
create 640 root adm
}
3. 强化日志传输安全
若需将日志发送到远程服务器,优先使用加密协议(如TLS)防止中间人攻击。以rsyslog为例,在/etc/rsyslog.conf中添加加密传输配置:
# 加载TLS模块
module(load="imtcp")
module(load="omfwd")
# 配置远程服务器(TCP+TLS)
action(type="omfwd" target="remote.syslog.server" port="6514" protocol="tcp" tls="on" tls.caCert="/path/to/ca.crt")
或在logrotate中配置加密压缩:
/var/log/myapp/*.log {
daily
rotate 7
compress
delaycompress
notifempty
create 640 root adm
sharedscripts
postrotate
/usr/bin/gpg --encrypt --recipient "log_receiver@example.com" /var/log/myapp/*.log.1
endscript
}
4. 启用集中式日志审计
使用auditd(Linux审计框架)记录关键系统事件(如用户登录、文件访问、命令执行),提升日志的可信度和可追溯性。安装并配置auditd:
sudo apt install auditd
添加审计规则(示例:记录所有sudo命令、root用户活动、失败登录):
# 记录sudo命令
-a always,exit -F arch=b64 -S sudo -k perm_mod
# 记录root用户活动
-a always,exit -F euid=0 -k root_activities
# 记录失败登录尝试
-w /var/log/faillog -p wa -k logins
加载规则并重启服务:
sudo augenrules --load
sudo systemctl restart auditd
使用ausearch(搜索日志)、aureport(生成报告)分析审计日志:
sudo ausearch -k perm_mod # 查找sudo命令记录
sudo aureport --summary # 生成安全事件摘要
5. 监控与实时告警
通过工具实时监控日志文件,及时发现异常行为(如大量失败登录、未授权访问)。使用journalctl(systemd系统)实时查看日志:
sudo journalctl -f -u rsyslog # 实时跟踪rsyslog日志
或使用fail2ban自动封禁恶意IP(如针对SSH失败登录):
sudo apt install fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
# 启用SSH防护
sudo sed -i 's/^#enabled = false/enabled = true/' /etc/fail2ban/jail.local
sudo systemctl restart fail2ban
对于企业级监控,可将日志集成到ELK Stack(Elasticsearch+Logstash+Kibana)或Splunk,实现可视化分析和告警。
6. 系统与服务加固
sudo apt update && sudo apt upgrade,修补rsyslog、auditd等日志相关软件的漏洞。cron日志若无需记录,可在/etc/rsyslog.conf中注释对应行),减少攻击面。ufw限制对日志服务的访问(如仅允许内网IP访问rsyslog的514端口):sudo ufw allow from 192.168.1.0/24 to any port 514 proto tcp
sudo ufw enable