原文地址:https://galeracluster.com/2022/01/time-to-check-galera-cluster-security/
原文作者:galeracluster.com
網(wǎng)上有很多文章告訴您在Galera集群時(shí)禁用操作系統(tǒng)級(jí)防火墻,并禁用SELinux。雖然我們同意這可能是搭建Galera集群最快的方式,但它不一定有良好的安全性,我們更希望您在2022年使用更安全的Galera集群!
什么是SELinux?安全增強(qiáng)的Linux(Security-Enhanced Linux),允許管理員去控制誰(shuí)可以對(duì)系統(tǒng)有更多的控制權(quán)。它有允許(permissive)模式和強(qiáng)制(enforcing)模式,并且在紅帽企業(yè)版Linux及其衍生品中默認(rèn)開啟。請(qǐng)記住重要的一點(diǎn),如果您通過(guò)我們提供的安裝包來(lái)安裝Galera集群,我們已經(jīng)為它提供了所有必要的上下文。實(shí)際上,您不需要禁用SELinux就可以啟動(dòng)集群。
然而,當(dāng)您使用 rsync 來(lái)做物理狀態(tài)快照(SST) 時(shí),您可以進(jìn)行測(cè)試來(lái)看啟用SELinux是否有意義。
要測(cè)試它,在一個(gè)donor節(jié)點(diǎn)上輸入:setenforce 1(這應(yīng)該是默認(rèn)值)。 然后在一個(gè)joiner節(jié)點(diǎn)上,觸發(fā)一個(gè)SST(假設(shè)您設(shè)置它使用rsync),通過(guò)如下命令來(lái)觸發(fā):
service mysql stop rm -rf /var/lib/mysql/* service mysql start
查看mysqld.log(你應(yīng)該總是啟用錯(cuò)誤日志; 從MySQL的角度來(lái)看,這是你第一次生成、記錄登錄密碼的地方; 從Galera集群的角度來(lái)看,這是所有重要信息被寫入的地方),您將會(huì)看到它無(wú)法完成SST。您可以通過(guò)在donor節(jié)點(diǎn)上執(zhí)行setenforce 0來(lái)快速修復(fù)。現(xiàn)在,更好的方法是編寫SELinux上下文,或者從使用rsync方法切換到使用XtraBackup或新的CLONE SST方法。
那關(guān)于防火墻呢?我們需要使用TCP的3306端口(它是MySQL的端口),TCP和UDP的4567端口(集群復(fù)制通信),TCP的4568端口用于增量狀態(tài)傳輸(IST),以及TCP的4444用于狀態(tài)快照傳輸(SST)。 我們有大量使用防火墻和iptables的文檔。值得注意的是,Galera集群在FreeBSD(和其他BSD衍生產(chǎn)品)上也運(yùn)行得很好,所以也有關(guān)于pf的文檔。
如何測(cè)試防火墻是否出現(xiàn)問(wèn)題? 在joiner節(jié)點(diǎn)上,執(zhí)行:
iptables -A INPUT -p tcp --destination-port 4444 -j DROP
現(xiàn)在,試著做一次SST,像上面那樣刪除數(shù)據(jù)目錄。查看日志文件。修復(fù)方法很簡(jiǎn)單:
iptables -D INPUT -p tcp --destination-port 4444 -j DROP
因此,我們希望今年您可以運(yùn)行一個(gè)更安全的Galera集群環(huán)境。Galera Manager會(huì)自動(dòng)為您配置,所以您也可以考慮使用它。我們?cè)贕itHub上也有一個(gè)非常活躍的支持小組。一定要試一試。
譯者注:
Galera Manager可以嘗試,但是,切記不要直接在生產(chǎn)環(huán)境測(cè)試上述步驟。




