FreeIPA是一套身分識別和存取管理的開源軟體,主要核心功能包含認證 (Authentication)、授權控管 (Authorization)、目錄服務 (Directory Service)和憑證管理 (PKI),同時其主要應用於Linux作業系統平台,簡言之,其類似Linux作業系統的Microsoft Active Directory(AD)。對於預算有限但有資安需求的中小企業,可透過FreeIPA建立一套穩固和彈性的使用者控管中心系統,IT管理人員不再需要依序登入每台機器去新增特定帳號(如bob, tracy)。另外,當新進員工入職,僅需在FreeIPA控制介面設定,即可使全公司的特定主機能立即識別該使用者身分,相當適合中小企業提升運維效率。
本文主要著重在FreeIPA的認證 (Authentication)功能,其透過 Kerberos 協定實現單一登入(SSO),讓使用者只需一組帳號密碼即可登入到對應的客戶端,如同本文封面影片所示。
硬體環境和架構
- FreeIPA Server 端:硬體為樹莓派5b/8g,Linux作業系統為AlmaLinux 10,並利用docker部署FreeIPA服務,IP為192.168.0.114,主機名為ipa.rpi.lab。
- Client端:硬體為N100迷你主機配置的虛擬機,Linux作業系統為Ubuntu 22.04 LTS desktop, IP為192.168.0.113,主機名為ub-vm.rpi.lab。主要作為開發人員的測試平台(Dev Host)
- 控管邏輯:配置HBAC Rule(allow_dev_group_login),允許dev_group的成員(bob)可登入Client端,而hr_group的成員(tracy)則被禁止登入Client端。
配置作業
配置作業分為FreeIPA server端和client端,經樹莓派以docer成功部署FreeIPA後,配置內容如下:
FreeIPA Server 端配置(樹莓派端)
a. 取得 kinit admin 票據
kinit admin
b. 新增使用者與群組
2. 設定群組:前往 Identity -> Groups,建立dev_group並將bob加入;建立hr_group並將tracy加入。
c. 確認使用者資訊
sudo docker exec -it freeipa ipa user-show bob
d. 配置 Hosts
e. 配置 HBAC Rule
1. Who:指定為dev_group,換言之,只有該群組內的成員被允許。
2. Accessing:指定為dev_servers主機群組,其中上述客戶端(ub-vm.rpi.lab)被配置在dev_servers主機群組中。
FreeIPA 客戶端配置(Ubuntu VM 端)
a. 安裝 freeipa-client
sudo apt install freeipa-client -y
sudo ipa-client-install --mkhomedir
b. 檢視使用者資訊
id bob
id tracy
接下來即可參考影片方式,自行測試控管邏輯。
最後,關於HBAC的Via Service設定內容,HBAC 規則不僅定義"誰能進哪台機器",還定義"透過什麼管道進入"。在Via Service區塊中,可根據管控邏輯加入下列選項:
- sudo / sudo-i:允許使用者執行提權動作。
- login:允許本地終端機登入。
- gdm-password:允許使用者登入圖形化桌面,原因在於 Linux 桌面環境(如GNOME)使用的是GDM(GNOME Display Manager)認證。
沒有留言:
張貼留言