1. 使用非特权用户运行Filebeat
避免以root用户身份运行Filebeat,降低潜在安全风险。通过useradd命令创建专用用户(如elkuser),并配置Filebeat服务以该用户身份启动。具体操作包括:使用useradd elkuser创建用户,设置密码;修改Filebeat的systemd服务文件(/etc/systemd/system/filebeat.service),将User和Group设置为elkuser;或直接通过sudo -u elkuser /usr/bin/filebeat命令以该用户运行。
2. 配置SSL/TLS加密传输
为Filebeat与目标服务(如Elasticsearch、Logstash)之间的通信启用SSL/TLS加密,防止数据泄露。步骤包括:使用OpenSSL生成CA证书、服务器证书和私钥,存放在/etc/filebeat/certs/目录;在filebeat.yml中配置SSL参数,例如output.elasticsearch部分添加ssl.enabled: true、ssl.certificate_authorities: ["/etc/filebeat/certs/ca.pem"]、ssl.certificate: "/etc/filebeat/certs/filebeat.crt"、ssl.key: "/etc/filebeat/certs/filebeat.key"(如需双向认证,还需配置ssl.keystore和ssl.truststore)。
3. 强化系统访问控制
setenforce 0),永久禁用需修改/etc/selinux/config文件中的SELINUX=disabled(生产环境建议配置适当的SELinux策略而非完全禁用)。systemctl stop firewalld && systemctl disable firewalld)或通过firewall-cmd限制访问,例如仅允许特定IP段访问Filebeat服务(firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="filebeat" accept',然后firewall-cmd --reload)。/etc/filebeat/filebeat.yml)权限为600(chmod 600 /etc/filebeat/filebeat.yml),所有者为运行用户(chown elkuser:elkuser /etc/filebeat/filebeat.yml);使用setfacl进一步限制访问(如setfacl -m u:elkuser:r /etc/filebeat/filebeat.yml)。4. 启用认证与授权
filebeat.yml中配置目标服务的用户名和密码(如Elasticsearch的security.auth.username和security.auth.password),确保只有授权用户能访问。ssl.client_authentication: required),并为Filebeat配置角色权限(如logstash_writer),限制其对Elasticsearch的操作范围。5. 定期更新与监控
yum update filebeat或官方仓库升级)。/var/log/filebeat/filebeat)中的异常信息(如连接失败、认证错误),及时发现并处理安全事件。6. 其他系统级安全加固
chattr +i命令锁定/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow文件,防止未经授权的修改(如chattr +i /etc/shadow)。/etc/pam.d/su文件,添加auth required pam_wheel.so use_uid,限制只有wheel组用户能使用su切换至root。/etc/sysctl.conf中设置net.ipv4.conf.all.rp_filter=1、net.ipv4.conf.default.rp_filter=1),启用反向路径过滤,防止IP欺骗攻击。