User Tools

Site Tools


решение_freeipa

Решение FreeIPA

Установка и инициализация

На выделенный сервер

С использованием docker compose

# cat /etc/docker/daemon.json
{ "userns-remap": "default" }

# service docker restart

docker run --userns=host ...

cat docker-compose.yml
...
    userns_mode: 'host'
...

docker run --name freeipa-server-container -ti -h ipa.example.test --read-only -v /var/lib/ipa-data:/data:Z freeipa/freeipa-server:centos-9-stream

server.corp13.un:~/freeipa# 
services:
  freeipa:
#    image: freeipa/freeipa-server:centos-9-stream
    image: freeipa/freeipa-server:centos-9-stream-4.12.2
#    read_only: true
#    hostname: server
    hostname: freeipa-server
#    domainname: server.corp13.un
    container_name: freeipa-server
    ports:
      - 80:80
      - 443:443
      - 389:389
      - 636:636
      - 88:88
      - 464:464
      - 88:88/udp
      - 464:464/udp
      - 123:123/udp
      - "53:53/udp" # For DNS
      - "53:53/tcp" # For DNS
    dns:
      - 172.16.1.254
    restart: unless-stopped
    tty: true
    stdin_open: true
    environment:
      IPA_SERVER_HOSTNAME: server.corp13.un
      IPA_SERVER_IP: 192.168.13.10
      DNS: 172.16.1.254
      TZ: "Europe/Moscow"
      IPA_DOMAIN_NAME: corp13.un
      IPA_REALM_NAME: CORP13.UN
      PASSWORD: strongpassword
    command:
      - -U
      - --domain=corp13.un
      - --realm=CORP13.UN
      - --admin-password=strongpassword
      - --http-pin=strongpassword
      - --dirsrv-pin=strongpassword
      - --ds-password=strongpassword
      - --setup-dns
      - --forwarder=172.16.1.254
      - --no-ntp
      - --unattended
    cap_add:
      - SYS_TIME
      - NET_ADMIN
    volumes:
#      - /etc/localtime:/etc/localtime:ro
#      - /sys/fs/cgroup:/sys/fs/cgroup:ro
#      - /sys/fs/cgroup:/sys/fs/cgroup
      - /opt/freeipa-data:/data:Z
#      - /var/lib/ipa-data:/data:Z
    sysctls:
      - net.ipv6.conf.all.disable_ipv6=0
      - net.ipv6.conf.lo.disable_ipv6=0
#    security_opt:
#      - "seccomp:unconfined"

[root@freeipa-server /]# cat /etc/named/ipa-options-ext.conf
server# cat /opt/freeipa-data/etc/named/ipa-options-ext.conf
...
allow-recursion { any; };

[root@freeipa-server /]# systemctl reload named
server# docker exec -ti freeipa-server systemctl reload named

Поверка после установки

[root@server ~]# ipactl status

Установка и инициализация клиента

# apt update && apt install freeipa-client

# #kinit admin

gate# ipa-client-install --mkhomedir

client1# hostnamectl hostname client1.corp13.un

clientN:~# cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 client1.corp13.un clientN
client1# ipa-client-install --mkhomedir --enable-dns-updates

# systemctl status sssd

[root@server ~]# ipa host-show gate|client1

[root@server ~]# host gate|client1

Управление пользователями

[root@server ~]# ipa user-add user1 --first="Иван" --last="Иванов" --password

[root@server ~]# #ipa passwd user1

Создание service principal

# kinit admin

[root@freeipa-server /]# ipa service-add HTTP/gate.corp13.un

gate.corp13.un:~# ipa-getkeytab -p HTTP/gate.corp13.un -k /etc/krb5.keytab

Управление сертификатами

[root@server ~]# cat /etc/ipa/ca.crt

gate# ipa-getcert request -f /root/gate.crt -k /root/gate.key
client1# ipa cert-request --principal=user1 --certificate-out=user1.crt user1.req
server.corp13.un:~# cat /opt/freeipa-data/etc/ipa/ca.crt

server.corp13.un:~# openssl genrsa -out /etc/gitlab/ssl/$(hostname).key 2048
server.corp13.un:~# openssl req -new -key /etc/gitlab/ssl/$(hostname).key -subj '/CN=server.corp13.un/O=CORP13.UN' -addext 'subjectAltName=DNS:server.corp13.un' -out /opt/freeipa-data/server-gitlab.req

[root@freeipa-server /]# ipa cert-request /data/server-gitlab.req --principal=HTTP/server.corp13.un --certificate-out=/data/server-gitlab.crt

server.corp13.un:~# cp /opt/freeipa-data/server-gitlab.crt -v /etc/gitlab/ssl/$(hostname).crt




###server.corp13.un:~# scp kube1:webd-k8s/webd.req /opt/freeipa-data/

Работа с LDAP

[root@server ~]# ldapsearch -x -b"dc=corp13,dc=un" -H ldap://server "uid=admin"

Дополнительные материалы

Попытка запуска в привилегированном режиме

server.corp13.un:~/freeipa# cat docker-compose.yml
services:
  freeipa:
#    image: freeipa/freeipa-server:centos-9-stream
    image: freeipa/freeipa-server:centos-9-stream-4.12.2
#    image: freeipa/freeipa-server:almalinux-10-4.12.2
#    read_only: true
    hostname: server
#    hostname: freeipa-server
#    domainname: server.corp13.un
    container_name: freeipa-server
    network_mode: host
    privileged: true
    cgroup: host
    dns:
#      - 172.16.1.254
      - 192.168.13.10
    restart: unless-stopped
    tty: true
    stdin_open: true
    environment:
      IPA_SERVER_HOSTNAME: server.corp13.un
      IPA_SERVER_IP: 192.168.13.10
#      DNS: 172.16.1.254
      DNS: 192.168.13.10
      TZ: "Europe/Moscow"
      IPA_DOMAIN_NAME: corp13.un
      IPA_REALM_NAME: CORP13.UN
      PASSWORD: strongpassword
    command:
      - -U
      - --domain=corp13.un
      - --realm=CORP13.UN
      - --admin-password=strongpassword
      - --http-pin=strongpassword
      - --dirsrv-pin=strongpassword
      - --ds-password=strongpassword
      - --setup-dns
      - --forwarder=172.16.1.254
      - --no-ntp
      - --unattended
      - --skip-mem-check
      - --no-host-dns
    cap_add:
      - SYS_TIME
      - NET_ADMIN
    volumes:
#      - /etc/localtime:/etc/localtime:ro
#      - /sys/fs/cgroup:/sys/fs/cgroup:rw
      - /sys/fs/cgroup:/sys/fs/cgroup
#      - /sys/fs/cgroup:/sys/fs/cgroup
      - /opt/freeipa-data:/data:Z
#      - /var/lib/ipa-data:/data:Z
#    sysctls:
#      - net.ipv6.conf.all.disable_ipv6=0
#      - net.ipv6.conf.lo.disable_ipv6=0
#    security_opt:
#      - "seccomp:unconfined"


server.corp13.un:~/freeipa# cat /opt/freeipa-data/var/log/ipaclient-install.log
...
2025-09-29T05:28:56Z DEBUG The ipa-client-install command failed, exception: KerberosError: No valid Negotiate header in server response
2025-09-29T05:28:56Z ERROR No valid Negotiate header in server response
2025-09-29T05:28:56Z ERROR The ipa-client-install command failed. See /var/log/ipaclient-install.log for more information

решение_freeipa.txt · Last modified: 2025/10/02 18:18 by val