福利阁亚洲|欧美日韩123|国产XXXX高湖|17.c在线观看|欧美香蕉网|大地中文在线观看免费高清|爱丫爱丫免费观看高清电视剧|银河影视app官方下载

您當(dāng)前的位置: 首頁 >> 關(guān)注 > >> 內(nèi)容頁

Freeipa的簡單搭建配置

2023-04-05 08:30:13 來源:騰訊云

背景:

想把賬戶統(tǒng)一管理起來,jenkins,gitlab,jumpserver甚至kibana,kubernetes等等。本來搭建過openldap。昨天小伙伴強(qiáng)烈推薦我用一下freeipa......又進(jìn)入了盲區(qū),沒有聽過的東西都比較好奇,淺淺的體驗一下!freeipa服務(wù)就不想部署在kubernetes中了 也準(zhǔn)備docker方式啟動部署。畢竟這樣方便升級還原。kubernetes中部署了還要額外映射端口啥的麻煩......偷懶一下!


(資料圖)

Freeipa安裝

注: 操作系統(tǒng)rockylinux9.0,以docker-compose方式啟動freeipa!。主機(jī)內(nèi)網(wǎng)ip 10.0.4.52.

安裝docker docker-compose

docker安裝

添加docker-ce國內(nèi)源,這里使用了阿**的源,安裝docker-ce:

dnf config-manager     --add-repo     http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repodnf -y install docker-ce docker-ce-cli containerd.io
FOWQt08Rwx.png

安裝docker-compose

訪問github倉庫:https://github.com/docker/compose/releases/,選擇對應(yīng)版本針對系統(tǒng)的版本進(jìn)行下載(會很慢,可以科學(xué)上網(wǎng),或者跟我一樣,提前下載了放在對象存儲上面?。?/p>

image.png
curl "https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-linux-x86_64" -o /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-composedocker-compose --version
OiHd5vienA.png
e2hGOLju0K.png

配置docker鏡像加速,設(shè)置docker服務(wù)開機(jī)啟動:

可以跟據(jù)自己的阿里亞賬戶的容器鏡像服務(wù)-鏡像攻擊-鏡像加速器,配置鏡像加速:

image.png
sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-"EOF"{  "registry-mirrors": ["https://7zk8hbh7.mirror.aliyuncs.com"],  "features": { "buildkit": true },  "experimental": true,  "cgroup-parent": "docker.slice",  "exec-opts": ["native.cgroupdriver=systemd"]}EOFsudo systemctl daemon-reloadsudo systemctl restart docker

注:registry-mirrors下面的忘了那里復(fù)制來的了 就直接帶著了!

docker infodocker -v
image.png

docker-compose 搭建freeipa服務(wù):

創(chuàng)建數(shù)據(jù)目錄,編寫docker-compose.yaml文件

偷懶了docker-compose.yaml存放在了/data/freeipa目錄。freeipa數(shù)據(jù)目錄/data/free-ipa/data /data/free-ipa/data/logs:

mkdir -p /data/free-ipa/data mkdir -p /data/free-ipa/logs
image.png

docker-compose.yaml如下(小伙伴的文件直接拿來用的):

version: "3.3"services:  freeipa:    image: freeipa/freeipa-server:almalinux-8-4.9.8    container_name: xxxx.xxxx.com    domainname: xxxx.xxxx.com    container_name: freeipa_idc    ports:      - "80:80/tcp"      - "443:443/tcp"      # DNS      - "53:53/tcp"      - "53:53/udp"      # LDAP(S)      - "389:389/tcp"      - "636:636/tcp"      # Kerberos      - "88:88/tcp"      - "88:88/udp"      - "464:464/tcp"      - "464:464/udp"      # NTP      - "123:123/udp"    dns:      - 127.0.0.1      - 183.60.82.98      - 183.60.83.19      - 114.114.114.114    tty: true    stdin_open: true    environment:      IPA_SERVER_HOSTNAME: xxxx.xxxx.com      IPA_SERVER_IP: 10.0.4.52       TZ: "Asia/Shanghai"    command:      - --domain=xxxx.com      - --realm=xxx.com      - --admin-password=xxxx  #freeapi的admin管理員賬號      - --http-pin=xxxx      - --dirsrv-pin=xxxx      - --ds-password=xxxx      - --no-dnssec-validation      - --no-host-dns      - --setup-dns      - --auto-forwarders      - --allow-zone-overlap      - --unattended  # 自動無人工干預(yù)安裝    cap_add:      - SYS_TIME      - NET_ADMIN    restart: unless-stopped    volumes:      - /etc/localtime:/etc/localtime:ro      - /sys/fs/cgroup:/sys/fs/cgroup:ro      - /data/free-ipa/data:/data      - /data/free-ipa/logs:/var/logs    sysctls:      - net.ipv6.conf.all.disable_ipv6=0      - net.ipv6.conf.lo.disable_ipv6=0    security_opt:      - "seccomp:unconfined"    labels:      - idc-freeipa    extra_hosts:      - "xxxx.xxxx.com:10.0.4.52 "

就默認(rèn)修改了一下 域名 ip dns 密碼 domain realm 等xxx部分!

cgroup v2帶來的無法啟動

docker-compose up -d docker logs -f freeipa_idc
xgUAwfgzFV.png

網(wǎng)上看了很多文章基本是cgroup的問題:https://serverfault.com/questions/1053187/systemd-fails-to-run-in-a-docker-container-when-using-cgroupv2-cgroupns-priva.https://github.com/freeipa/freeipa-container/issues/520

服務(wù)器查看了一眼確實系統(tǒng)默認(rèn)cgroup v2版本:

mount |grep cgroup
image.png

修改systemd.unified_cgroup_hierarchy=0 并重啟服務(wù)器:

grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=0"reboot

查看cgroup可以支持V1了 繼續(xù)啟動服務(wù)

mount |grep cgroup
image.png
docker-compose down docker-compose up -d 

等待服務(wù)啟動........

image.png

訪問freeipa域名:

第一次訪問點兩次取消進(jìn)入登陸頁面

第一次訪問很坑爹:右上角會彈出一個登陸框讓輸入用戶名密碼,連著輸入都是錯誤的,都懷疑人生準(zhǔn)備重新部署了,看到一篇文章說要點兩次取消就可以出現(xiàn)下面的頁面登陸框:搭建freeIPA服務(wù)器實現(xiàn)用戶管理

image.png
FPtXad7JPP.png
image.png

不出意外輸入可能會顯示密碼錯誤.....日志也不打出新的...怎么破?

image.png

docker-compose.yaml中admin-password 變量盡量別加特殊符號貌似(登陸了后臺可以控制臺修改密碼!)

登陸控制臺基本是如下頁面:

image.png

用戶 用戶組個人關(guān)注的就這兩個關(guān)鍵詞。繼續(xù)強(qiáng)迫癥修改https證書:

image.png

修改freeipa https證書準(zhǔn)備

參照:https://computingforgeeks.com/secure-freeipa-server-with-lets-encrypt-ssl-certificate/文中是宿主機(jī)安裝的方式,當(dāng)然了docker中也是適用!

進(jìn)入freeipa容器

docker exec -it freeipa_idc bash

進(jìn)入容器后,通過管理員用戶身份獲取 Kerberos 票據(jù)來確認(rèn)它正在運行:

sudo kinit adminsudo klist
image.png

安裝epel repo與certbot:

sudo yum install epel-releasesudo yum install certbot python3-certbot-apachecertbot --version
image.png

使用 Let"s Encrypt SSL 證書保護(hù) FreeIPA 服務(wù)器

首先備份當(dāng)前的 FreeIPA 服務(wù)器私鑰和證書,安裝 git、vim 或 nano 文件編輯器(可選主要是git vim )

sudo cp -r /var/lib/ipa/certs{,.bak}sudo cp -r /var/lib/ipa/private{,.bak}sudo yum -y install vim nano git
image.png

使用手動方法使用 Let"s Encrypt 保護(hù) FreeIPA 服務(wù)器:

創(chuàng)建證書目錄:

sudo su -mkdir freeipa-certscd freeipa-certs
image.png

下載 Let"s Encrypt CA 證書:

CERTS=("isrgrootx1.pem" "isrg-root-x2.pem" "lets-encrypt-r3.pem" "lets-encrypt-e1.pem" "lets-encrypt-r4.pem" "lets-encrypt-e2.pem")for CERT in "${CERTS[@]}"do  curl -o $CERT "https://letsencrypt.org/certs/$CERT"done
image.png

將 Let"s Encrypt CA 證書安裝到 FreeIPA 證書存儲中:

CERTS=("isrgrootx1.pem" "isrg-root-x2.pem" "lets-encrypt-r3.pem" "lets-encrypt-e1.pem" "lets-encrypt-r4.pem" "lets-encrypt-e2.pem")for CERT in "${CERTS[@]}"do  ipa-cacert-manage install $CERTdone

預(yù)期會出現(xiàn)一下輸出:

image.png

使用來自服務(wù)器的證書更新本地 IPA 證書數(shù)據(jù)庫:

sudo ipa-certupdate
image.png

獲取 Let"s Encrypt 證書

停止 httpd 服務(wù)以釋放獲取證書所需的端口 80:

sudo systemctl stop httpd

然后運行 Certbot 獲取 Let"s Encrypt 證書:

EMAIL="820042728@qq.com"DOMAIN="xxx.xxxx.com"sudo certbot certonly --standalone --preferred-challenges http --agree-tos -n -d $DOMAIN -m $EMAIL
image.png

您的證書應(yīng)存儲在 /etc/letsencrypt/live/xxx.xxx.com 目錄中

[root@86ca990dc234 freeipa-certs]# ls /etc/letsencrypt/live/xxx.xxxx.com/READMEcert.pem  chain.pem  fullchain.pem  privkey.pem

確認(rèn)生成所需的證書后啟動 httpd 服務(wù)器:

sudo systemctl restart httpd

添加 Let"s Encrypt SSL 證書以在 FreeIPA Web UI 中使用:

DOMAIN="xxx.xxx.com" # Set correct IdM hostnamesudo ipa-server-certinstall -w -d /etc/letsencrypt/live/$DOMAIN/privkey.pem /etc/letsencrypt/live/$DOMAIN/cert.pem --pin=""
image.png

重啟 FreeIPA 服務(wù):

[root@86ca990dc234 freeipa-certs]# sudo ipactl restartRestarting Directory ServiceRestarting krb5kdc ServiceRestarting kadmin ServiceRestarting named ServiceRestarting httpd ServiceRestarting ipa-custodia ServiceRestarting pki-tomcatd ServiceRestarting ipa-otpd ServiceRestarting ipa-dnskeysyncd Serviceipa: INFO: The ipactl command was successfu

可以從終端或網(wǎng)絡(luò)瀏覽器確認(rèn)當(dāng)前使用的 SSL 證書。 使用 OpenSSL:

openssl s_client -showcerts -verify 5 -connect $(hostname -f):443
image.png

瀏覽器訪問:

image.png

使用 bash 腳本使用 Let"s Encrypt 保護(hù) FreeIPA 服務(wù)器:

github 克隆官方 FreeIPA Let"s Encrypt 管理腳本代碼:

git clone https://github.com/freeipa/freeipa-letsencrypt.git
image.png

切換到freeipa-letsencrypt目錄,編輯 renew-le.sh 腳本并設(shè)置 EMAIL 變量::

cd freeipa-letsencrypt$ vim renew-le.shEMAIL="820042728@qq.com"

在 setup-le.sh 腳本中,F(xiàn)reeIPA 服務(wù)器 FQDN 設(shè)置為服務(wù)器的主機(jī)名(確保hostname -f命令將主機(jī)名作為 FQDN 返回:):

FQDN=$(hostname -f)hostname -f
image.png

運行 setup-le.sh 腳本:

sudo bash setup-le.sh

該腳本將執(zhí)行以下操作:

將 Let"s Encrypt CA 證書安裝到 FreeIPA 證書存儲中為 FreeIPA Web 界面申請新證書

會出現(xiàn)一下提示讓輸入pass:

Enter pass phrase for /var/lib/ipa/private/httpd.key:

嘗試了好多次沒有找到這個pass,最后參照:https://github.com/freeipa/freeipa-letsencrypt/issues/18。找到此pass:

cat /var/lib/ipa/passwds/xxx.xxxx.com-443-RSA
image.png
image.png

重啟httpd服務(wù),確認(rèn) ipa-certupdate 命令執(zhí)行成功:

sudo systemctl restart httpdsudo ipa-certupdate
image.png

修改 Apache Web 服務(wù)器配置文件以設(shè)置 SSL 證書和密鑰:

如果只對在瀏覽器頁面上使用 Let"s Encrypt SSL 感興趣,您可以手動修改 ssl.conf 文件并設(shè)置以下指令(但是文章中說不推薦?):

$ sudo vim /etc/httpd/conf.d/ssl.confSSLCertificateFile /etc/letsencrypt/live/xxxx.xxxx.com/fullchain.pemSSLCertificateKeyFile /etc/letsencrypt/live/xxxx.xxxx.com/privkey.pem
image.png
image.png

重啟httpd服務(wù):

systemctl restart httpd
image.png

更新 FreeIPA Let"s Encrypt 證書:

每當(dāng)續(xù)訂 SSL 證書時,運行以下命令以在 FreeIPA 端更新:

DOMAIN="xxxx.xxxx.com" # Set correct IdM hostnamesudo ipa-server-certinstall -w -d /etc/letsencrypt/live/$DOMAIN/privkey.pem /etc/letsencrypt/live/$DOMAIN/cert.pem --pin=""

根據(jù)需要輸入目錄管理員密碼:

image.png

然后在安裝證書后繼續(xù)重啟 FreeIPA 服務(wù):

sudo ipactl restart

跑了一遍流程了知道怎么偷懶換成自己的證書了試一下:

騰訊云下載了nginx證書:

image.png

修改/etc/httpd/conf.d/ssl.conf對應(yīng)位置:

SSLCertificateFile 對應(yīng)上圖pem文件,SSLCertificateKeyFile對應(yīng)上面key文件(可以直接修改后綴!)

image.png

重啟apache服務(wù):

systemctl restart httpd

成功修改成自己的泛域名證書:

image.png

注意

關(guān)于證書還是自動生成使用 Let"s Encrypt SSL 不要自己上傳自己的證書,會出現(xiàn)無法登陸的問題:

image.png
[remote xxx.xxx.xxx.xxxx:3045] ipa: INFO: 401 Unauthorized: HTTPSConnectionPool(host="xxx.xxx.com", port=443): Max retries exceeded with url: /ipa/session/cookie (Caused by SSLError(SSLError(1, "[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:897)"),))

我當(dāng)時出現(xiàn)了web ui登陸的錯誤:記一次FreeIPA WEBUI 登陸錯誤 Login failed due to an unkno基本也是這樣的樣子,后面將證書重新使用 Let"s Encrypt SSL 生成后解決問題!

關(guān)鍵詞:
分享到:
x 廣告
x 廣告

  Copyright @ 2001-2013 www.nuoxin-cn.com All Rights Reserved 中國時尚網(wǎng) 版權(quán)所有

聯(lián)系方式:954 29 18 82 @qq.com

   粵ICP備18025786號  營業(yè)執(zhí)照公示信息   未經(jīng)吉中國時尚網(wǎng)書面授權(quán),請勿建立鏡像,轉(zhuǎn)載請注明來源,違者依法必究

關(guān)于我們 | 聯(lián)系方式 | 版權(quán)聲明 | 招聘信息 | 友情鏈接 | 合作伙伴 |