CentOS系统提供了多种日志记录机制,可以帮助管理员监控和分析安全事件。以下是利用CentOS日志功能进行安全分析的综合指南:
CentOS系统中与安全相关的主要日志文件包括:
/var/log/secure
- 认证和安全相关消息/var/log/audit/audit.log
- 审计日志(Auditd)/var/log/messages
- 系统常规日志/var/log/cron
- 计划任务日志/var/log/maillog
- 邮件服务器日志/var/log/httpd/
- Apache Web服务器日志(如安装)/var/log/nginx/
- Nginx Web服务器日志(如安装)对于使用systemd的CentOS 7/8系统:
# 查看所有日志
journalctl
# 查看特定服务的日志
journalctl -u sshd
# 查看今天的日志
journalctl --since today
# 查看错误级别的日志
journalctl -p err
# 实时监控日志
journalctl -f
yum install audit
systemctl enable auditd
systemctl start auditd
# 查看当前审计规则
auditctl -l
# 监控/etc/passwd文件的修改
auditctl -w /etc/passwd -p wa -k passwd_changes
# 监控所有登录尝试
auditctl -a always,exit -F arch=b64 -S execve -k user_execs
# 搜索审计日志
ausearch -k passwd_changes
grep "Failed password" /var/log/secure
grep "Accepted password" /var/log/secure
grep sudo /var/log/secure
grep "useradd\|userdel\|usermod" /var/log/secure
grep "Invalid user" /var/log/secure
安装和配置logwatch可以自动分析日志并发送报告:
yum install logwatch
配置邮件发送(编辑/usr/share/logwatch/default.conf/logwatch.conf
):
Output = mail
MailTo = admin@yourdomain.com
MailFrom = logwatch@yourdomain.com
Detail = High
yum install epel-release
yum install fail2ban
systemctl enable fail2ban
systemctl start fail2ban
配置示例(/etc/fail2ban/jail.local
):
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/secure
maxretry = 3
bantime = 3600
CentOS使用logrotate管理日志轮转,配置文件位于/etc/logrotate.conf
和/etc/logrotate.d/
对于更复杂的环境,考虑:
通过合理配置和使用这些工具,您可以有效地监控CentOS系统的安全状况,及时发现并响应潜在的安全威胁。