FreeIPA Docker Compose WEB UI

问题描述 投票:0回答:2

在花了几个小时搜索为什么我无法访问我的 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,添加/删除外部桥接网络)

非常感谢您的帮助=)

docker docker-compose port freeipa
2个回答
2
投票

好吧,对于那些可能有同样问题的人,我将解释我为调试所做的一切。

我广泛依赖在这里找到的答案: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'

我仍然没有什么奇怪的,所以我认为此时:

  1. pki-tomcat 能够访问证书和私钥
  2. 问题可能出在 LDAP 服务器端

我尝试使用

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 就可以访问了!


0
投票

我意识到这是一个超级旧的线程,但你不会碰巧有一个更新的和工作的 yaml 吗?

我正在尝试让 DNS 服务器和 LDAP 在 docker 中工作

© www.soinside.com 2019 - 2024. All rights reserved.