Ansible 持續整合Anolis、Ubuntu基線配置

網路通訊頻道發表於2023-05-06

需求

《Ansible實現等保安全合規基線,運維盡力了!》一文我們主要對Centos6 和 Centos7進行了初始化和安全基線的適配,但是隨著Centos停服,運維要面臨多樣化的替代系統。

因此我們結合《CentOS停服替代後,哪些操作差異你知道嗎?》一文對Anolis8.6 和 Ubuntu22.04 作業系統的差異化操作,透過Ansible Playbook再次納管了Anolis8.6 和 Ubuntu22.04兩個作業系統的初始化配置和安全基線,實現自動化配置的可持續性。

安全控制點

既然是可持續性的接入,因此我們的配置仍從以下幾方面展開:

內部標準初始化配置

身份鑑別

入侵防範

安全審計

其中,“內部標準初始化配置”可根據企業內部已有的標準規範配置進行補充擴充,例如:

標準目錄

標準應用使用者

統一的安裝源

統一的limit引數

等等

而“身份鑑別、入侵方案、安全審計”我們仍按等保要求的安全控制點適配不同的作業系統。

差異化分析

《CentOS停服替代後,哪些操作差異你知道嗎?》一文分析了與Cento7 相比,Anolis8.6 和 Ubuntu22.04 一些差異化操作,透過目錄可以看出主要在以下幾個方面:

DNS

時間同步

安全基線

核心安全模組

防火牆

當然隨著企業內部不同的安全需求,差異化的操作可能更多,但我們只需按部就班的進行整合即可。

Ansible持續整合

在自動化建設中,Ansible作為配置管理工具承擔著作業系統級、基礎元件安裝級、叢集部署級等自動化部署的角色。其中基線配置作為作業系統級的重要組成部分,我們在相容Centos6、Centos7的基礎上,再次適配了Anolis8.6和Ubuntu22.04。

本次介紹我們主要以差異較大的內部標準初始化配置、身份鑑別為主進行介紹。

1.前置解析

本次配置由ansible gather_facts獲取作業系統版本,透過ansible_distribution_major_version變數來做進一步區分,如:

Centos7,ansible_distribution_major_version版本號為7

Anolis8.6,ansible_distribution_major_version版本號為8

Ubuntu22.04,ansible_distribution_major_version版本號為22

另外,我們透過ansible tag對不同模組的配置進行分類定義,以便滿足後續的單獨變更需求。

注意:請更具實際配置調整task的順序,例如:安全基線在生效後,後續建立的新使用者都將滿足新基線的過期要求,但是在安全基線配置前的仍保留永久有效的配置。「如果不注意的話,安全加固將會導致非常嚴重的生產事故」。

2.內部標準初始化配置

內部標準的初始化配置,我們在此特選擇了幾個作業系統間差異較大的dns、ntp為主進行介紹。

dns

關於dns配置,主要是Ubuntu22.04 操作有差異,為保證永久生效,需要藉助resovconf。

ntp

關於ntp配置,主要是

Anolis8 捨棄了ntp,預設使用chrony進行時間同步;

Ubuntu22.04 預設使用timesyncd 進行時間同步,但是透過安裝ntp,也支援ntp進行同步;

3.身份鑑別

1.應對登入的使用者進行身份標識和鑑別,身份標識具有唯一性,應實現身份鑑別資訊防竊取和防重用。靜態口令應在8位以上,由字母、數字、符號等混合組成並每半年更換口令,不允許新設定的口令與前次舊口令相同。應用系統使用者口令應在滿足口令複雜度要求的基礎上定期更換。

2.應具有登入失敗處理功能,應配置並啟用結束會話、限制登入間隔、限制非法登入次數和當登入連線超時自動退出等相關措施。

針對“規則1”標準具體限制如下:

密碼過期時間(90天過期、長度最小8位、禁止使用重複密碼)

密碼最小長度8位,複雜度包含大小寫字母、數字、特殊字元,適配Centos6、Centos7、Anolis8.6、Ubuntu22.04

密碼登入嘗試3次

禁止舊密碼

針對“規則2”標準具體限制如下:

防暴力破解

登入失敗鎖定(3次輸入錯誤,鎖定60秒)

終端1800秒結束會話

ssh每次登入時間不大於一分鐘

ssh身份驗證嘗試次數不大於4次

Anolis8.6

總體上Anolis8.6配置和Centos7 差不多,但是防暴力破解方面,faillock取代了tally。

Ubuntu22.04

Ubuntu22.04 與 Centos 差異較大的地方為:

預設使用apparmor而非selinux進行核心安全限制;

pam 模組使用common-auth和common-account進行限制;

總結

為保證我們的合規基線的可持續化配置,因此我們一直在結合Iac+GitOps的理念,藉助Ansible Playbook實踐,以幫助我們更好的管理 IT 基礎架構需求,同時提高一致性並減少錯誤和手動配置。

來自 “ 木訥大叔愛運維 ”, 原文作者:三頁;原文連結:https://mp.weixin.qq.com/s/7VBmQ0VaJYRQNTlZYJ4kgg,如有侵權,請聯絡管理員刪除。

相關文章