在花了几个小时搜索为什么我无法访问我的 webUI 之后,我向您求助。 我使用 docker-compose 在 docker 上设置 freeipa。我在自己的计算机上使用 host-ip:port 打开了一些端口来获得远程访问。 Freeipa 应该在我的服务器上运行(比方说 192.168.1.2),并且可以通过端口 80 / 443(192.168.1.4:80 或 192.168.1.4:443)上的任何其他本地计算机访问 webui
当我运行我的
.yaml
文件时,freeipa 会通过“ipa-server-install 命令成功”消息进行设置。
我认为这可能来自我严格的 iptables 规则,并尝试将所有策略设置为接受来调试。它没有做到。
我有点不知道如何调试这个问题或找到如何修复它。
操作系统:ubuntu 20.04.3 Docker 版本:20.10.12,构建 e91ed57 freeipa 图像:freeipa/freeipa:centos-8-stream Docker-compose 版本: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
我尝试修改部署文件(添加或删除在互联网上找到的conf,例如添加/删除IPA_SERVER_IP,添加/删除外部桥接网络)
非常感谢您的帮助=)
好吧,对于那些可能有同样问题的人,我将解释我为调试所做的一切。
我广泛依赖在这里找到的答案: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
与证书相关的东西。
在这里,我首先使用
/etc/pki/pki-tomcat/alias
检查我的证书是否存在于 sudo certutil -L -d /etc/pki/pki-tomcat/alias -n 'subsystemCert cert-pki-ca'
中。
## 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'
我仍然没有什么奇怪的,所以我认为此时:
我尝试使用
ldapsearch -LLL -D 'cn=directory manager' -W -b uid=pkidbuser,ou=people,o=ipaca userCertificate description seeAlso
读取 LDAP 中的用户条目,将其与证书进行比较,但输入密码后出现错误。因为我的证书正常并且 LDAP 服务正在运行,所以我认为 证书日期出了问题。
事实上,在安装 freeipa 期间,使用您当前的系统日期作为基础来设置证书。但它还安装了 chrony 来同步服务器时间。重新启动后,我的时间配置错误,并将我的主机日期设置为提前 2 年。
我无法找出 chrony conf 的问题,因此我停止了服务并使用
timedatectl set-time "yyyy-mm-dd hh:mm:ss"
手动设置日期。
我重新启动了 freeipa 服务,我的
pki-tomcat
服务又开始工作了。
之后,我将路由器中的freeipa IP设置为DNS。我重新启动了本地网络中的服务和计算机,以便刷新 DNS 配置。之后,webUI 就可以访问了!
我意识到这是一个超级旧的线程,但你不会碰巧有一个更新的和工作的 yaml 吗?
我正在尝试让 DNS 服务器和 LDAP 在 docker 中工作