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/*
ipa-server-install(1): Configure IPA server - Linux man page