FreeIPA Docker 编写 WEB UI
FreeIPA Docker Compose WEB UI
在花了几个小时搜索为什么我无法访问我的 webUI 之后,我求助于您。
我使用 docker-compose 在 docker 上设置了 freeipa。我在自己的计算机上使用 host-ip:port 打开了一些端口以获得远程访问。 Freeipa 应该是 运行 在我的服务器上(比方说 192.168.1.2)并且 webui 可以通过端口 80 / 443(192.168.1.4:80 或 192.168.1.4:443)上的任何其他本地计算机访问
当我 运行 我的 .yaml
文件时,freeipa 使用“ipa-server-install 命令成功”消息进行设置。
我认为它可能来自我严格的 iptables 规则,并尝试将所有策略都设置为 ACCEPT 以进行调试。它没有做到。
我有点不知道如何调试它或找到如何修复它。
OS : ubuntu 20.04.3
Docker 版本:20.10.12,构建 e91ed57
freeipa 图片:freeipa/freeipa:centos-8-stream
Docker-撰写版本:1.29.2,构建 5becea4c
我的 .yaml
文件:
version: "3.8"
services:
freeipa:
image: freeipa/freeipa-server:centos-8-stream
hostname: sanctuary
domainname: serv.sanctuary.local
container_name: freeipa-dev
ports:
- 80:80
- 443:443
- 389:389
- 636:636
- 88:88
- 464:464
- 88:88/udp
- 464:464/udp
- 123:123/udp
dns:
- 10.64.0.1
- 1.1.1.1
- 1.0.0.1
restart: unless-stopped
tty: true
stdin_open: true
environment:
IPA_SERVER_HOSTNAME: serv.sanctuary.local
IPA_SERVER_IP: 192.168.1.100
TZ: "Europe/Paris"
command:
- -U
- --domain=sanctuary.local
- --realm=sanctuary.local
- --admin-password=pass
- --http-pin=pass
- --dirsrv-pin=pass
- --ds-password=pass
- --no-dnssec-validation
- --no-host-dns
- --setup-dns
- --auto-forwarders
- --allow-zone-overlap
- --unattended
cap_add:
- SYS_TIME
- NET_ADMIN
restart: unless-stopped
volumes:
- /etc/localtime:/etc/localtime:ro
- /sys/fs/cgroup:/sys/fs/cgroup:ro
- ./data:/data
- ./logs:/var/logs
sysctls:
- net.ipv6.conf.all.disable_ipv6=0
- net.ipv6.conf.lo.disable_ipv6=0
security_opt:
- "seccomp:unconfined"
labels:
- dev
我尝试修改部署文件(添加或删除在互联网上找到的配置文件,例如 add/remove IPA_SERVER_IP、add/remove 外部桥接网络)
非常感谢您的帮助=)
好的,对于那些可能有同样问题的人,我将解释我为调试它所做的一切。
我非常依赖这里找到的答案:https://floblanc.wordpress.com/2017/09/11/troubleshooting-freeipa-pki-tomcatd-fails-to-start/
首先,我用ipactl status
检查了每个服务的状态。根据问题的不同,您可能会有不同的输出,但我的输出是这样的:
Directory Service: RUNNING
krb5kdc Service: RUNNING
kadmin Service: RUNNING
named Service: RUNNING
httpd Service: RUNNING
ipa-custodia Service: RUNNING
pki-tomcatd Service: STOPPED
ipa-otpd Service: RUNNING
ipa-dnskeysyncd Service: RUNNING
ipa: INFO: The ipactl command was successful
因此我检查了 tomcat /var/log/pki/pki-tomcat/ca/debug-xxxx
的日志。我意识到我有 connection refused
与证书相关的东西。
在这里,我首先使用 sudo certutil -L -d /etc/pki/pki-tomcat/alias -n 'subsystemCert cert-pki-ca'
检查了我的证书是否存在于 /etc/pki/pki-tomcat/alias
中。
## output :
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 4 (0x4)
...
...
然后我确保可以使用 /var/lib/pki/pki-tomcat/conf/password.conf 中的密码读取私钥(带有标签 internal=…)
grep internal /var/lib/pki/pki-tomcat/conf/password.conf | cut -d= -f2 > /tmp/pwdfile.txt
certutil -K -d /etc/pki/pki-tomcat/alias -f /tmp/pwdfile.txt -n 'subsystemCert cert-pki-ca'
我仍然没有什么奇怪的,所以我假设在这一点上:
- pki-tomcat 可以访问证书和私钥
- 问题可能出在 LDAP 服务器端
我尝试读取 LDAP 中的用户条目,以使用 ldapsearch -LLL -D 'cn=directory manager' -W -b uid=pkidbuser,ou=people,o=ipaca userCertificate description seeAlso
将其与证书进行比较,但在输入密码后出现错误。因为我的证书没问题而且 LDAP 服务 运行,我假设 证书日期 出了问题。
确实,在安装 freeipa 期间,使用您当前的系统日期作为基础来设置证书。但它也安装 chrony 用于服务器时间同步。重新启动后,我的 chrony conf 错误并将我的主机日期设置为提前 2 年。
我无法找出 chrony conf 的问题,所以我停止了服务并使用 timedatectl set-time "yyyy-mm-dd hh:mm:ss"
手动设置日期。
我重新启动了 freeipa 服务,我的 pki-tomcat
服务又开始工作了。
之后,我将路由器中的freeipa IP设置为DNS。我在本地网络中重新启动了服务和计算机,因此刷新了 DNS 配置。之后,webUI 就可以访问了!
在花了几个小时搜索为什么我无法访问我的 webUI 之后,我求助于您。 我使用 docker-compose 在 docker 上设置了 freeipa。我在自己的计算机上使用 host-ip:port 打开了一些端口以获得远程访问。 Freeipa 应该是 运行 在我的服务器上(比方说 192.168.1.2)并且 webui 可以通过端口 80 / 443(192.168.1.4:80 或 192.168.1.4:443)上的任何其他本地计算机访问
当我 运行 我的 .yaml
文件时,freeipa 使用“ipa-server-install 命令成功”消息进行设置。
我认为它可能来自我严格的 iptables 规则,并尝试将所有策略都设置为 ACCEPT 以进行调试。它没有做到。
我有点不知道如何调试它或找到如何修复它。
OS : ubuntu 20.04.3 Docker 版本:20.10.12,构建 e91ed57 freeipa 图片:freeipa/freeipa:centos-8-stream Docker-撰写版本:1.29.2,构建 5becea4c
我的 .yaml
文件:
version: "3.8"
services:
freeipa:
image: freeipa/freeipa-server:centos-8-stream
hostname: sanctuary
domainname: serv.sanctuary.local
container_name: freeipa-dev
ports:
- 80:80
- 443:443
- 389:389
- 636:636
- 88:88
- 464:464
- 88:88/udp
- 464:464/udp
- 123:123/udp
dns:
- 10.64.0.1
- 1.1.1.1
- 1.0.0.1
restart: unless-stopped
tty: true
stdin_open: true
environment:
IPA_SERVER_HOSTNAME: serv.sanctuary.local
IPA_SERVER_IP: 192.168.1.100
TZ: "Europe/Paris"
command:
- -U
- --domain=sanctuary.local
- --realm=sanctuary.local
- --admin-password=pass
- --http-pin=pass
- --dirsrv-pin=pass
- --ds-password=pass
- --no-dnssec-validation
- --no-host-dns
- --setup-dns
- --auto-forwarders
- --allow-zone-overlap
- --unattended
cap_add:
- SYS_TIME
- NET_ADMIN
restart: unless-stopped
volumes:
- /etc/localtime:/etc/localtime:ro
- /sys/fs/cgroup:/sys/fs/cgroup:ro
- ./data:/data
- ./logs:/var/logs
sysctls:
- net.ipv6.conf.all.disable_ipv6=0
- net.ipv6.conf.lo.disable_ipv6=0
security_opt:
- "seccomp:unconfined"
labels:
- dev
我尝试修改部署文件(添加或删除在互联网上找到的配置文件,例如 add/remove IPA_SERVER_IP、add/remove 外部桥接网络)
非常感谢您的帮助=)
好的,对于那些可能有同样问题的人,我将解释我为调试它所做的一切。
我非常依赖这里找到的答案:https://floblanc.wordpress.com/2017/09/11/troubleshooting-freeipa-pki-tomcatd-fails-to-start/
首先,我用ipactl status
检查了每个服务的状态。根据问题的不同,您可能会有不同的输出,但我的输出是这样的:
Directory Service: RUNNING
krb5kdc Service: RUNNING
kadmin Service: RUNNING
named Service: RUNNING
httpd Service: RUNNING
ipa-custodia Service: RUNNING
pki-tomcatd Service: STOPPED
ipa-otpd Service: RUNNING
ipa-dnskeysyncd Service: RUNNING
ipa: INFO: The ipactl command was successful
因此我检查了 tomcat /var/log/pki/pki-tomcat/ca/debug-xxxx
的日志。我意识到我有 connection refused
与证书相关的东西。
在这里,我首先使用 sudo certutil -L -d /etc/pki/pki-tomcat/alias -n 'subsystemCert cert-pki-ca'
检查了我的证书是否存在于 /etc/pki/pki-tomcat/alias
中。
## output :
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 4 (0x4)
...
...
然后我确保可以使用 /var/lib/pki/pki-tomcat/conf/password.conf 中的密码读取私钥(带有标签 internal=…)
grep internal /var/lib/pki/pki-tomcat/conf/password.conf | cut -d= -f2 > /tmp/pwdfile.txt
certutil -K -d /etc/pki/pki-tomcat/alias -f /tmp/pwdfile.txt -n 'subsystemCert cert-pki-ca'
我仍然没有什么奇怪的,所以我假设在这一点上:
- pki-tomcat 可以访问证书和私钥
- 问题可能出在 LDAP 服务器端
我尝试读取 LDAP 中的用户条目,以使用 ldapsearch -LLL -D 'cn=directory manager' -W -b uid=pkidbuser,ou=people,o=ipaca userCertificate description seeAlso
将其与证书进行比较,但在输入密码后出现错误。因为我的证书没问题而且 LDAP 服务 运行,我假设 证书日期 出了问题。
确实,在安装 freeipa 期间,使用您当前的系统日期作为基础来设置证书。但它也安装 chrony 用于服务器时间同步。重新启动后,我的 chrony conf 错误并将我的主机日期设置为提前 2 年。
我无法找出 chrony conf 的问题,所以我停止了服务并使用 timedatectl set-time "yyyy-mm-dd hh:mm:ss"
手动设置日期。
我重新启动了 freeipa 服务,我的 pki-tomcat
服务又开始工作了。
之后,我将路由器中的freeipa IP设置为DNS。我在本地网络中重新启动了服务和计算机,因此刷新了 DNS 配置。之后,webUI 就可以访问了!