暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

[译] 是时候该检查Galera集群的安全了?

原创 严少安 2022-03-09
1271

原文地址:https://galeracluster.com/2022/01/time-to-check-galera-cluster-security/
原文作者:galeracluster.com

网上有很多文章告诉您在Galera集群时禁用操作系统级防火墙,并禁用SELinux。虽然我们同意这可能是搭建Galera集群最快的方式,但它不一定有良好的安全性,我们更希望您在2022年使用更安全的Galera集群!

什么是SELinux?安全增强的Linux(Security-Enhanced Linux),允许管理员去控制谁可以对系统有更多的控制权。它有允许(permissive)模式和强制(enforcing)模式,并且在红帽企业版Linux及其衍生品中默认开启。请记住重要的一点,如果您通过我们提供的安装包来安装Galera集群,我们已经为它提供了所有必要的上下文。实际上,您不需要禁用SELinux就可以启动集群。

然而,当您使用 rsync 来做物理状态快照(SST) 时,您可以进行测试来看启用SELinux是否有意义。

要测试它,在一个donor节点上输入:setenforce 1(这应该是默认值)。 然后在一个joiner节点上,触发一个SST(假设您设置它使用rsync),通过如下命令来触发:

service mysql stop rm -rf /var/lib/mysql/* service mysql start

查看mysqld.log(你应该总是启用错误日志; 从MySQL的角度来看,这是你第一次生成、记录登录密码的地方; 从Galera集群的角度来看,这是所有重要信息被写入的地方),您将会看到它无法完成SST。您可以通过在donor节点上执行setenforce 0来快速修复。现在,更好的方法是编写SELinux上下文,或者从使用rsync方法切换到使用XtraBackup或新的CLONE SST方法。

那关于防火墙呢?我们需要使用TCP的3306端口(它是MySQL的端口),TCP和UDP的4567端口(集群复制通信),TCP的4568端口用于增量状态传输(IST),以及TCP的4444用于状态快照传输(SST)。 我们有大量使用防火墙iptables的文档。值得注意的是,Galera集群在FreeBSD(和其他BSD衍生产品)上也运行得很好,所以也有关于pf的文档。

如何测试防火墙是否出现问题? 在joiner节点上,执行:

iptables -A INPUT -p tcp --destination-port 4444 -j DROP

现在,试着做一次SST,像上面那样删除数据目录。查看日志文件。修复方法很简单:

iptables -D INPUT -p tcp --destination-port 4444 -j DROP

因此,我们希望今年您可以运行一个更安全的Galera集群环境。Galera Manager会自动为您配置,所以您也可以考虑使用它。我们在GitHub上也有一个非常活跃的支持小组。一定要试一试。


译者注:
Galera Manager可以尝试,但是,切记不要直接在生产环境测试上述步骤。

最后修改时间:2022-03-09 09:22:25
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论