開源身份認證工具 FreeIPA 安裝配置大全

文/圖:曹江華

IPA 是 Identity、Policy 和 Audit 的縮寫, FreeIPA 是一個開源免費的身份認證體系,能夠提供類似 Active Directory 的身份認證功能,也是一款整合的安全訊息管理解決方案。

FreeIPA 整合了 LDAP+Kerberos+Web 管理的集中式用戶認證管理系統,FreeIPA 包含 Linux、389 Directory Server、MIT Kerberos、NTP、DNS、Dogtag (Certificate System) 等技術。

FreeIPA 簡介

FreeIPA 的好處是全整合,企業級應用都全部整合了,幾條命令就能搞定,極大的節省實施部署時間。而且支援企業級的集中身份認證授權管理如 LDAP、Kerberos、CA、DNS、SUDO、密碼策略,便於大規模集中管理,能夠實現單點登入(Single Sign-On)。它是 IDM 的開源版本,是 Red Hat 支援的開源項目,持續維護有保證。而且 接口豐富,支援 Web 界面和命令行,客戶端能夠自動註冊到 IPA 伺服器,FreeIPA 的組件如下(圖1)。

圖1:FreeIPA的結構示意圖。
圖1:FreeIPA的結構示意圖。

FreeIPA 組件

FreeIPA 分為數個部分,其中驗證服務使用 Kerberos 的密鑰分發中心 (Key Distribution Center, KDC)。目錄服務使用 389 Directory Server,389 Directory Server 是一個企業級的 Linux 目錄服務,完全支援 LDAPv3 規範。證書系統採用 Red Hat Certificate System 認證系統,提供安全框架來確保用戶的身份以及通訊的私密性。域名解析服務使用 DNS Bind 伺服器 。安全管理服務使用 SSSD,SSSD 是 Red Hat Enterprise Linux 6 中新加入的一個守護進程,該進程可以用來存取多種驗證伺服器,如 LDAP,Kerberos 等,並提供授權。SSSD 是介於本地用戶和數據儲存系統之間的進程。本地客戶端首先連接SSSD,再由 SSSD 聯繫外部資源提供者,例如一台遠程伺服器。時間同步方面使用NTP伺服器 ,用戶可透過瀏覽器和IPA命令管理。FreeIPA 官方推薦的生產環境部署方案,可參考以下 URL。
http://www.freeipa.org/page/Deployment_Recommendations

架設服務要點

域名是 Kerberos 的基礎,為避免域名衝突,在搭建前一定要規劃好域名體系。推薦採用申請的有管理權限的域名,即使在內網使用,也不建議用沒有管理權限的域名。 FreeIPA 必須每次都從頭開始搭建,不能在測試環境搭建好,修改一下域名就能在生產環境使用。建議採用整合的 DNS 伺服器,雖然可以使用外部的 DNS 伺服器,但配置起來較為複雜且出錯概率較大。為了性能和穩定性,FreeIPA 伺服器儘量不要安裝其他的應用程式。多主複製環境根據規模大小、存取頻度,每個數據中心推薦 2 到 3 個副本,但不要超過 4 個。客戶端至少需要配置 2 個 DNS 伺服器,來增加冗餘性。FreeIPA 包括伺服器和客戶端,伺服器和客戶端交互過程下(圖2)。FreeIPA 的相關服務埠號如下,設置防火牆的時候要打開(表1)。

服務 埠號 通訊協定
HTTP/HTTPS 80,443 TCP
LDAP/LDAPS 389,636 TCP
Kerberos 88,464 TCP/UDP
DNS 53 TCP/UDP
NTP 123 UDP

表1:使用FreeIPA時要打開的埠號。

FreeIPA客戶端和伺服器通信示意圖。
FreeIPA 客戶端和伺服器通信示意圖。

部署環境及方案架構

先介紹一下部署環境,首先是網路環境,FreeIPA伺服器不提供對外存取,這次以example.com為域名說明,表2是這次的FreeIPA伺服器配置。

角色 作業系統 主機名稱 IP位址 DNS
IPA伺服器 CentOS 7 ipa.example.com 192.168.12/24 192.168.1.2
IPA 客戶端 CentOS 7 client1.example.com 192.168.1.100/24 192.168.1.2
IPA伺服器副本 CentOS 7 ipa1.example.com 192.168.13/24 192.168.1.2

表2:是次的 FreeIPA 伺服器配置。

接下來設置主機名稱,我們需要設置為 FQDN (Fully Qualified Domain Name),這裡是 ipa.example.com。在 /etc/hosts 中解析主機名稱為本地 IP 位址,設定如下。
192.168.1.12 ipa.example.com ipa
然後開啟防火牆的相關下埠號。

firewall-cmd –add-service={ssh,dns,freeipa-ldap,freeipa-ldaps, https,https,ntp} –permanent (ENTER)
firewall-cmd –permanent –add-port={80/tcp,443/tcp,389/tcp,636/tcp,88/tcp,464/tcp,53/tcp,88/udp,464/udp,53/udp,123/udp} (ENTER)
firewall-cmd –reload (ENTER)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *