CentOS上Filebeat的安全设置怎么做
导读:CentOS上Filebeat安全设置指南 1. 使用非特权用户运行Filebeat 避免以root用户身份运行Filebeat,降低系统权限滥用风险。操作步骤如下: 创建专用用户(如filebeatuser):useradd -r -s...
CentOS上Filebeat安全设置指南
1. 使用非特权用户运行Filebeat
避免以root用户身份运行Filebeat,降低系统权限滥用风险。操作步骤如下:
- 创建专用用户(如
filebeatuser
):useradd -r -s /sbin/nologin filebeatuser # -r表示系统用户,-s禁止登录shell
- 修改Filebeat服务配置(
/etc/systemd/system/filebeat.service
),指定运行用户:[Service] User=filebeatuser Group=filebeatuser
- 重新加载systemd并重启Filebeat:
systemctl daemon-reload systemctl restart filebeat
2. 配置TLS/SSL加密传输
加密Filebeat与Elasticsearch、Logstash等目标服务的通信,防止数据泄露。操作步骤如下:
- 生成证书:使用OpenSSL生成CA证书、服务端证书和私钥(需提前安装OpenSSL):
# 生成CA私钥和自签名证书(有效期10年) openssl genrsa -out ca.key 2048 openssl req -x509 -new -nodes -key ca.key -sha256 -days 3650 -out ca.crt -subj "/CN=Elastic CA" # 生成Filebeat客户端私钥和证书签名请求(CSR) openssl genrsa -out filebeat.key 2048 openssl req -new -key filebeat.key -out filebeat.csr -subj "/CN=filebeat" # 用CA签发Filebeat证书(有效期1年) openssl x509 -req -in filebeat.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out filebeat.crt -days 365 -sha256 # 生成Logstash/Elasticsearch服务端证书(可选,若需双向认证) openssl genrsa -out logstash.key 2048 openssl req -new -key logstash.key -out logstash.csr -subj "/CN=logstash" openssl x509 -req -in logstash.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out logstash.crt -days 365 -sha256
- 配置Filebeat:编辑
/etc/filebeat/filebeat.yml
,指定证书路径:output.elasticsearch: hosts: ["elasticsearch.example.com:9200"] ssl.certificate_authorities: ["/etc/filebeat/certs/ca.crt"] ssl.certificate: "/etc/filebeat/certs/filebeat.crt" ssl.key: "/etc/filebeat/certs/filebeat.key" # 若服务端要求客户端证书(双向认证),取消以下注释 # ssl.client_authentication: "required"
3. 限制文件与目录权限
确保Filebeat配置文件、日志目录及证书仅能被授权用户访问:
- 设置配置文件权限:
chown filebeatuser:filebeatuser /etc/filebeat/filebeat.yml chmod 600 /etc/filebeat/filebeat.yml # 仅所有者可读写
- 设置证书目录权限:
mkdir -p /etc/filebeat/certs chown -R filebeatuser:filebeatuser /etc/filebeat/certs chmod -R 700 /etc/filebeat/certs # 仅所有者可读、写、执行
- (可选)使用ACL进一步限制:
setfacl -m u:elkadmin:r-- /etc/filebeat/filebeat.yml # 允许elkadmin组只读
4. 配置防火墙规则
通过防火墙限制Filebeat的网络访问,仅允许特定IP或网段连接:
- 启用firewalld(若未启用):
systemctl enable firewalld systemctl start firewalld
- 添加Filebeat服务规则(若firewalld内置filebeat服务):
firewall-cmd --permanent --add-service=filebeat firewall-cmd --reload
- 或手动指定端口(如Elasticsearch默认9200):
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="9200" protocol="tcp" accept' firewall-cmd --reload
5. 强化系统级安全
- 禁用不必要的超级用户:锁定默认超级用户(如
adm
、lp
),避免未授权提权:usermod -L adm # 锁定adm账户 usermod -L lp # 锁定lp账户
- 强化用户口令:修改
/etc/login.defs
,设置复杂口令要求(至少8位,含大小写字母、数字、特殊字符):PASS_MIN_LEN 10 PASS_REQUIRE_MIX 1 PASS_WARN_AGE 7
- 保护口令文件:使用
chattr
命令防止/etc/shadow
被篡改:chattr +i /etc/shadow
- 设置root自动注销:编辑
/etc/profile
,添加超时注销设置(如10分钟无操作注销):echo "export TMOUT=600" > > /etc/profile source /etc/profile
- 限制su命令:编辑
/etc/pam.d/su
,仅允许wheel
组用户使用su切换root:
将允许使用su的用户加入auth required pam_wheel.so use_uid
wheel
组:usermod -aG wheel filebeatuser
6. 定期更新与监控
- 更新Filebeat:定期检查Elastic官方仓库,升级至最新稳定版(修复安全漏洞):
yum update filebeat -y
- 监控运行状态:通过systemd监控Filebeat服务状态,设置告警(如通过邮件或短信):
systemctl status filebeat # 查看实时状态 journalctl -u filebeat -f # 实时查看日志
- 审计配置变更:使用
auditd
监控/etc/filebeat
目录的文件变更,及时发现未授权修改:auditctl -w /etc/filebeat -p wa -k filebeat_config
通过以上步骤,可全面增强CentOS上Filebeat的安全性,防范未授权访问、数据泄露及恶意攻击。需根据实际环境调整配置(如证书路径、IP白名单),并在测试环境验证后再应用于生产。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS上Filebeat的安全设置怎么做
本文地址: https://pptw.com/jishu/717489.html