Ubuntu 上 Filebeat 安全性配置清单
一 身份与权限最小化
sudo useradd -r -s /usr/sbin/nologin filebeat && sudo mkdir -p /var/lib/filebeat /var/log/filebeatsudo chown -R filebeat:filebeat /var/lib/filebeat /var/log/filebeat /etc/filebeat[Service]
User=filebeat
Group=filebeat
ProtectSystem=strict
PrivateTmp=true
NoNewPrivileges=true
sudo systemctl daemon-reload && sudo systemctl restart filebeatsudo chmod 600 /etc/filebeat/filebeat.yml二 传输加密 TLS 与双向认证
sudo mkdir -p /etc/filebeat/certs
# CA
openssl req -x509 -newkey rsa:4096 -keyout /etc/filebeat/certs/ca.key -out /etc/filebeat/certs/ca.crt -days 3650 -nodes -subj "/CN=YourCA"
# Filebeat 客户端证书
openssl req -newkey rsa:4096 -keyout /etc/filebeat/certs/filebeat.key -out /etc/filebeat/certs/filebeat.csr -nodes -subj "/CN=filebeat_client"
openssl x509 -req -in /etc/filebeat/certs/filebeat.csr -CA /etc/filebeat/certs/ca.crt -CAkey /etc/filebeat/certs/ca.key -CAcreateserial -out /etc/filebeat/certs/filebeat.crt -days 3650
# 如直连 ES,还需生成 ES 服务端证书(CN 与 ES 主机名或 IP 匹配)
openssl req -newkey rsa:4096 -keyout /etc/filebeat/certs/es.key -out /etc/filebeat/certs/es.csr -nodes -subj "/CN=your_es_host"
openssl x509 -req -in /etc/filebeat/certs/es.csr -CA /etc/filebeat/certs/ca.crt -CAkey /etc/filebeat/certs/ca.key -CAcreateserial -out /etc/filebeat/certs/es.crt -days 3650
sudo chown -R filebeat:filebeat /etc/filebeat/certs && sudo chmod 600 /etc/filebeat/certs/*.key
output.elasticsearch:
hosts: ["https://your_elasticsearch_host:9200"]
username: "filebeat_writer"
password: "<StrongPassword>"
ssl.enabled: true
ssl.verification_mode: certificate
ssl.certificate_authorities: ["/etc/filebeat/certs/ca.crt"]
ssl.certificate: "/etc/filebeat/certs/filebeat.crt"
ssl.key: "/etc/filebeat/certs/filebeat.key"
input {
beats {
port => 5044
ssl => true
ssl_certificate => "/etc/logstash/certs/logstash.crt"
ssl_key => "/etc/logstash/certs/logstash.key"
ssl_certificate_authorities => ["/etc/logstash/certs/ca.crt"]
ssl_verify_mode => "force_peer"
}
}
output.logstash:
hosts: ["logstash_host:5044"]
ssl.enabled: true
ssl.certificate_authorities: ["/etc/filebeat/certs/ca.crt"]
ssl.certificate: "/etc/filebeat/certs/filebeat.crt"
ssl.key: "/etc/filebeat/certs/filebeat.key"
sudo systemctl restart filebeat && sudo systemctl status filebeat 并检查日志是否成功建立 TLS 连接。三 认证与访问控制
output.elasticsearch.username/password 中使用该专用账号凭据。sudo ufw allow from <filebeat_subnet> to any port 9200,5044 proto tcp
sudo ufw enable
四 运行环境与系统加固
seccomp:
enabled: false
sudo journalctl -u filebeat -f五 快速核查清单