Centos7中安装和配置FreeIPA - 腾讯云开发者社区-腾讯云
下载对应的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
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/*