当前位置: 首页 > 工具软件 > FreeIPA > 使用案例 >

Docker FreeIPA

吕自怡
2023-12-01

Docker FreeIPA部署

服务端部署

Centos7中安装和配置FreeIPA

Centos7中安装和配置FreeIPA - 腾讯云开发者社区-腾讯云

容器部署

GitHub - freeipa/freeipa-container: FreeIPA server in containers — images at https://quay.io/repository/freeipa/freeipa-server?tab=tags or https://hub.docker.com/r/freeipa/freeipa-server/tags

  • 下载对应的Dockerfile

  • 构建镜像

docker build -t freeipa-server -f Dockerfile.centos-7 .
  • 关闭或者配置selinux

setsebool -P container_manage_cgroup 1
  • 启动容器

docker run --name freeipa-server-container -it -d \
    -h ipa.example.test --read-only \
    -e PASSWORD=Secret123 \
#    --add-host=ipa.example.test:10.10.10.142 \
    -e IPA_SERVER_IP=172.30.38.104 \
    --dns=127.0.0.1 \
    -p 53:53/udp -p 53:53 \
    -p 80:80 -p 443:443 -p 389:389 -p 636:636 -p 88:88 -p 464:464 \
    -p 88:88/udp -p 464:464/udp -p 123:123/udp \
    -v $PWD/ipa-data:/data:Z \
    -v /sys/fs/cgroup:/sys/fs/cgroup:ro \
    --sysctl net.ipv6.conf.all.disable_ipv6=0 \
    --tmpfs /run \
    freeipa-server ipa-server-install -U -r EXAMPLE.TEST --no-ntp --setup-dns --forwarder 172.30.13.130  # dns IP

 参数说明:
    -h 该选项为容器中的 FreeIPA 服务器设置主机名。如果无法为容器设置主机名,请使用IPA_SERVER_HOSTNAME环境变量指定它,例如使用 podman run -e IPA_SERVER_HOSTNAME=.... 但是,这可能不适用于只读容器。不要使用ipa-server-install --hostname ...参数
    --read-only 将容器的根文件系统装载为只读
    -e 设置容器的环境变量
        PASSWORD :FreeIPA管理员的密码
        IPA_SERVER_IP :如果您不仅想从运行它的主机使用 FreeIPA 服务器,还想从外部机器使用 FreeIPA 服务器,您可能希望使用这些-p选项使服务可以从外部访问。然后,您可能还希望 IPA_SERVER_IP通过选项来指定环境变量,-e 以定义服务器应将哪个 IP 地址作为其地址放入 DNS。然后启动服务器

验证FreeIPA服务功能

首先,进入容器

docker exec -it 容器ID sh

通过尝试为admin用户初始化Kerberos令牌来验证Kerberos域是否已正确安装。

sh-4.2# kinit admin
Password for admin@EXAMPLE.TEST:   # 密码为: Secret123 
sh-4.2# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: admin@EXAMPLE.TEST
​
Valid starting     Expires            Service principal
07/20/22 06:03:55  07/21/22 06:03:31  krbtgt/EXAMPLE.TEST@EXAMPLE.TEST

如果工作正常,将提示您在安装过程中输入IPA管理员密码然后按ENTER。

接下来,验证IPA服务器是否正常运行。

sh-4.2# ipa user-find admin
--------------
1 user matched
--------------
  User login: admin
  Last name: Administrator
  Home directory: /home/admin
  Login shell: /bin/bash
  Principal alias: admin@EXAMPLE.TEST
  UID: 1455600000
  GID: 1455600000
  Account disabled: False
----------------------------
Number of entries returned 1
----------------------------

/etc/hosts添加如下内容,即可通过页面访问

172.30.38.104 ipa.example.test

docker-compose.yaml

version: '3'
services:
  freeipa:
    container_name: freeipa-server
    image: freeipa-server:latest
    dns: 127.0.0.1
    tmpfs: /run
    sysctls:
      - net.ipv6.conf.all.disable_ipv6=0
    hostname: server2.freeipa.cn
    volumes:
      - ./ipadata:/data:Z
      - /sys/fs/cgroup:/sys/fs/cgroup:ro
    ports:
      - '53:53'
      - '53:53/udp'
      - '80:80'
      - '443:443'
      - '389:389'
      - '636:636'
      - '88:88'
      - '88:88/udp'
      - '464:464'
      - '464:464/udp'
      - '123:123/udp'
    environment:
      - PASSWORD=12345678
      - IPA_SERVER_IP=172.30.38.104
    command: ipa-server-install -U -r FREEIPA.CN --setup-dns --forwarder 172.30.13.130

问题

Failed to create unit file /run/systemd/generator.late/network.service: File exists

添加参数–tmpfs /run

Docker (CentOS 7 with SYSTEMCTL) : Failed to mount tmpfs & cgroup - Stack Overflow

安装FreeIPA以及应用时报错汇总

端口

TCP Ports:

  • 80, 443: HTTP/HTTPS

  • 389, 636: LDAP/LDAPS

  • 88, 464: kerberos

  • 53: bind

UDP Ports:

  • 88, 464: kerberos

  • 53: bind

  • 123: ntp

客户端部署

安装客户端

sudo apt install freeipa-client
或
sudo yum install freeipa-client

配置DNS,/etc/resolv.conf

search example.test
nameserver 10.10.10.142

配置 /etc/hosts

172.30.38.104 ipa.example.test/

修改hostname, /etc/hostname

test01.ipa.example.test

初始化,提示yes

sudo /usr/sbin/ipa-client-install --domain=ipa.example.test --server=ipa.example.test --no-ntp --realm=EXAMPLE.TEST --mkhomedir 
​
退域
ipa-client-install --uninstall --unattended
rm -rf /etc/sssd/*

ipa-server-install(1): Configure IPA server - Linux man page 

 类似资料:

相关阅读

相关文章

相关问答