CentOS

解決問題 Active Directory (1)

教學目標

主要解決將 Red Hat Linux 或 CentOS Linux 作業系統加入 Windows AD 網域的問題。

重點概念

首先企業大多採用 Windows AD 網域使用者驗證機制,然而若我們要將 Linux 作業系統加入 Windows AD 網域,則至少需要兩個元件才能夠將 Linux 作業系統加入至 Windows AD 網域中,第一個元件主要是與集中識別與驗證來源進行互動。第二個元件主要是偵測可用的網域和設定第一個元件使用正確識別來源。

整合 Windows AD 網域的方式

接著主要有三種方式可用於檢索資訊,並且針對 Windows AD 網域進行身份驗證,分別為:

  1. Native LDAP and Kerberos PAM and NSS modules
  2. Samba Winbind
  3. System Security Services Daemon (SSSD)

Native LDAP and Kerberos PAM and NSS modules

第一種方式主要是包括 PAM_KRB5、PAM_LDAP 和 NSS_LDAP 等模組,由於 PAM 和 NSS 模組被加載至每個應用程序中,所以此方式會直接影響 Linux 作業系統。同時沒有快取機制、離線支援和存取憑證的充分保護, 並且 PAM 和 NSS 模組功能有限,因此並不建議使用。

Samba Winbind

第二種方式主要是將 Linux 作業系統連接至 Windows AD 網域的傳統方式,其中 Winbind 主要是在 Linux 作業系統上模擬 Windows 客戶端,並且能夠與 Windows AD 網域伺服器進行溝通。然而 Red Hat 作業系統中的系統安裝服務防護程序 (System Security Service Daemon,SSSD) 的功能已經可以用來替代 Samba Winbind,同時 Samba 3.5.0 版本以上又存在允許攻擊者遠端執行任意程式碼之漏洞 (CVE-2017-7494),能夠讓攻擊者取得管理者權限,所謂 Samba 主要是讓 Linux 使用者可以透過伺服器訊息區塊 (Server Message Block,SMB) 協定存取 Windows 電腦上的檔案,此時攻擊者將會傳送具有寫入權限的共享檔案上傳至 Linux 伺服器,再由伺服器執行惡意程式,此時將可針對開啟檔案和列印共享的 445 連接埠受害者電腦發動攻擊,因此並不建議使用。

System Security Services Daemon (SSSD)

第三種方式主要是透過系統所提供快取和離線支援存取遠端身份識別和資料驗證的共通框架,我們簡稱為 SSSD,SSSD 主要提供了 PAM 和 NSS 的整合,以及透過資料庫儲存本機使用者資訊,同時從集中管理的伺服器檢索核心和擴展使用者資料。無論是 Windows AD 或 LDAP 皆能夠透過 SSSD 將 Linux 系統與身份伺服器進行連線,因此非常建議使用。

整合 Windows AD 網域的操作

再來從 Winbind 轉換至 SSSD 的主要原因為 SSSD 可以應用於直接和間接的整合,並且允許從一個整合的方法切換至另一個整合的方法,並且沒有明顯的移轉成本。若我們要設定 SSSD 或 Winbind 直接將 Linux 作業系統與 Windows AD 網域整合最方便的方法就是使用 realmd 服務,其允許呼叫者以標準的方式設定網路驗證和網域成員的資格。此外 realmd 服務將會自動發現有關可以存取網域的資訊,不需要進階的設定就能夠加入網域。

最後我們僅需要簡單三步驟,就能夠透過 Realmd 套件加入 Windows AD 網域,並且探索 Windows AD 網域的設定和套件,分別為:

  1. 安裝 Realmd 套件。
  2. 加入 Windows AD 網域。
  3. 探索 Windows AD 網域的設定和套件。

安裝 Realmd 套件

1
# yum install realmd

加入 Windows AD 網域

方式一

1
2
3
4
5
# realm join ad.example.com
# realm permit administrator
# su administrator@ad.example.com
# id
uid=1282400500(administrator@ad.example.com) gid=1282400513(domain users@ad.example.com) groups=1282400513(domain users@ad.example.com),1282400512(domain admins@ad.example.com),1282400518(schema admins@ad.example.com),1282400519(enterprise admins@ad.example.com),1282400520(group policy creator owners@ad.example.com),1282400572(denied rodc password replication group@ad.example.com) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

方式二

1
2
3
4
# realm join --user=administrator@ad.example.com
# su administrator@ad.example.com
# id
uid=1282400500(administrator@ad.example.com) gid=1282400513(domain users@ad.example.com) groups=1282400513(domain users@ad.example.com),1282400512(domain admins@ad.example.com),1282400518(schema admins@ad.example.com),1282400519(enterprise admins@ad.example.com),1282400520(group policy creator owners@ad.example.com),1282400572(denied rodc password replication group@ad.example.com) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

探索 Windows AD 網域的設定和套件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# realm discover ad.example.com
ad.example.com
type: kerberos
realm-name: ad.example.com
domain-name: ad.example.com
configured: kerberos-member
server-software: active-directory
client-software: sssd
required-package: oddjob
required-package: oddjob-mkhomedir
required-package: sssd
required-package: adcli
required-package: samba-common-tools
login-formats: %U@ad.example.com
login-policy: allow-realm-logins

總結我們可以透過 Realmd 套件解決將 Red Hat Linux 或 CentOS Linux 作業系統加入 Windows AD 網域的問題,同時能夠符合許多企業的資安政策,以利導入系統平台的解決方案。

相關資源

解決問題 CentOS (1)

教學目標

主要解決安裝 CentOS Linux 作業系統的問題。

重點概念

CentOS Linux 作業系統主要是由社群支援的發行版本,它是由 Red Hat 公開 Red Hat 企業級 Linux (RHEL) 開放原始碼所衍生出來的 Linux 作業系統。因此 CentOS Linux 將能夠相容 RHEL 功能為目標,同時每個 CentOS 版本皆獲得長達十年的維護和安裝更新,新版本的 CentOS 大約是每兩年發行一次,而每個版本會每六個月更新一次,以利支援新的硬體,如此一來將能夠建立一個安裝且穩定的 Linux 作業系統環境。

然而我們只要從 CentOS 官方網站下載 ISO 光碟映像檔,透過掛載光碟映像檔進行 CentOS Linux 作業系統的安裝,相關安裝步驟如下所示:

  1. 選擇「Install CentOS 7」的選項,按下「Enter」鍵。
  2. 選擇安裝使用的語言為「中文」與「繁體中文 (台灣)」,按下「繼續」。
  3. 在「安裝摘要」畫面中點選「軟體選擇」,點選「GNOME 桌面環境」,按下「完成」。
  4. 在「安裝摘要」畫面中點選「網路與主機名稱」,開啟「乙太網路」,按下「完成」。
  5. 在「安裝摘要」畫面中點選「安裝目的地」,按下「完成」。
  6. 在「安裝摘要」畫面中,按下「開始安裝」。
  7. 在「配置」畫面中,點選「ROOT 密碼」,輸入密碼之後,按下「完成」。
  8. 在「配置」畫面中,當安裝完成之後,請按下「重新開機」。
  9. 在「初始設定」畫面中,點選「授權資訊」,勾選「我接受此授權協議」,按下「完成」。
  10. 在「初始設定」畫面中,按下「設定完成」。
  11. 在「歡迎使用」畫面中,點選「漢語」,按下「下一步」。
  12. 在「輸入」畫面中,點選「漢語」鍵盤配置或輸入法,按下「下一步」。
  13. 在「隱私權」畫面中,開啟「隱私權」允許應用程式確認地理位置,按下「下一步」。
  14. 在「時區」畫面中,設定時區,按下「下一步」。
  15. 在「線上帳號」畫面中,按下「略過」。
  16. 在「關於您」畫面中,輸入「全名」和「使用者名稱」,按下「下一步」。
  17. 在「密碼」畫面中,輸入「密碼」和「驗證」,按下「下一步」。
  18. 在「準備出發」,按下「開始使用 CentOS Linux」,即代表安裝完成。

總結我們僅需要透過簡單直覺操作的視覺操作介面就能夠輕易安裝完成 CentOS Linux 作業系統,安裝時請確認是否有設定桌面環境、網路、安裝目的地、ROOT 密碼,如此一來當安裝完成之後就能夠直接開始瀏覽器上網進行操作。

相關資源