CentOS 上 Apache 日志安全加固清单
一 风险概览与关键路径
二 访问控制与防泄露
<FilesMatch "\.(log|txt)$">
Require all denied
</FilesMatch>
三 日志完整性与抗篡改
template(name="json_template" type="list") {
property(name="timestamp" dateFormat="rfc3339")
property(name="hostname")
property(name="appname")
property(name="procid")
property(name="msg")
}
action(type="omfwd"
target="logstash.example.com"
port="5044"
protocol="tcp"
template="json_template"
action.resumeRetryCount="-1"
queue.type="linkedList"
queue.size="10000")
四 日志脱敏与内容安全
filter {
grok {
match => { "message" => "(?<pre>password=)(?<pwd>[^ ]+)" }
add_field => { "sanitized_message" => "%{pre}[REDACTED]" }
remove_field => [ "pwd" ]
}
mutate {
replace => { "message" => "%{sanitized_message}" }
remove_field => [ "sanitized_message" ]
}
}
五 轮转、保留、监控与应急响应
CustomLog "|/usr/sbin/cronolog /var/log/httpd/access_%Y%m%d.log" combined
ErrorLog "|/usr/sbin/cronolog /var/log/httpd/error_%Y%m%d.log"
# 暴力登录尝试(按 IP 统计)
grep "POST /login.php" /var/log/httpd/access_log | awk '{print $1}' | sort | uniq -c | sort -nr
# 扫描器与爬虫特征
grep -i "sqlmap\|nikto\|wget\|curl\|harvest" /var/log/httpd/access_log
# 敏感路径访问
grep "wp-admin\|wp-login\|adminer\|phpmyadmin" /var/log/httpd/access_log