User Tools

Site Tools


решение_freeipa

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
решение_freeipa [2025/10/05 06:34]
val [Работа с LDAP]
решение_freeipa [2025/11/14 12:04] (current)
val [Установка и инициализация клиента]
Line 2: Line 2:
  
 ===== Установка и инициализация ===== ===== Установка и инициализация =====
 +
 +  * Долго инициализируется,​ лучше добавить ресурсов (4Gb + 2CPU)
  
 ==== На выделенный сервер ==== ==== На выделенный сервер ====
Line 17: Line 19:
   * [[https://​tx0.ru/​ru/​notes/​docker-compose/​running-freeipa-through-traefik-reverse-proxy-using-docker-compose|Запуск FreeIPA с использованием Docker Compose]]   * [[https://​tx0.ru/​ru/​notes/​docker-compose/​running-freeipa-through-traefik-reverse-proxy-using-docker-compose|Запуск FreeIPA с использованием Docker Compose]]
   * [[https://​medium.com/​@farshadnick/​how-to-set-up-freeipa-on-docker-12b3dc41acd6|How to set up FreeIPA on docker]]   * [[https://​medium.com/​@farshadnick/​how-to-set-up-freeipa-on-docker-12b3dc41acd6|How to set up FreeIPA on docker]]
 +
 +  * [[Технология Docker#​docker-compose]]
  
 <​code>​ <​code>​
Line 63: Line 67:
     stdin_open: true     stdin_open: true
     environment:​     environment:​
-      IPA_SERVER_HOSTNAME:​ server.corp13.un +      IPA_SERVER_HOSTNAME:​ server.corpX.un 
-      IPA_SERVER_IP:​ 192.168.13.10+      IPA_SERVER_IP:​ 192.168.X.10
       DNS: 172.16.1.254       DNS: 172.16.1.254
       TZ: "​Europe/​Moscow"​       TZ: "​Europe/​Moscow"​
-      IPA_DOMAIN_NAME: ​corp13.un +      IPA_DOMAIN_NAME: ​corpX.un 
-      IPA_REALM_NAME: ​CORP13.UN+      IPA_REALM_NAME: ​CORPX.UN
       PASSWORD: strongpassword       PASSWORD: strongpassword
     command:     command:
-      - --domain=corp13.un +      - --domain=corpX.un 
-      - --realm=CORP13.UN+      - --realm=CORPX.UN
       - --admin-password=strongpassword       - --admin-password=strongpassword
       - --http-pin=strongpassword       - --http-pin=strongpassword
Line 93: Line 97:
  
 server:​~/​freeipa#​ docker-compose logs -f server:​~/​freeipa#​ docker-compose logs -f
 +
 +docker-compose logs -t | head -1
 +
 +docker-compose logs -t | tail -1
 +
 +Около 20 минут
 </​code>​ </​code>​
   * !!! не резолвит имя server (иногда :) и рекурсивные запросы из других сетей, помогает:​   * !!! не резолвит имя server (иногда :) и рекурсивные запросы из других сетей, помогает:​
Line 103: Line 113:
 server# docker exec -ti freeipa-server systemctl reload named server# docker exec -ti freeipa-server systemctl reload named
  
-server# host server.corp13.un 192.168.13.10+server# host server.corpX.un 192.168.X.10
  
-gate# host ya.ru 192.168.13.10+gate# host ya.ru 192.168.X.10
 </​code>​ </​code>​
  
Line 119: Line 129:
 <​code>​ <​code>​
 # apt update && apt install freeipa-client # apt update && apt install freeipa-client
 +2 минуты
  
 # #kinit admin # #kinit admin
Line 124: Line 135:
 gate# ipa-client-install --mkhomedir gate# ipa-client-install --mkhomedir
  
-client1# hostnamectl hostname client1.corp13.un+client1# hostnamectl hostname client1.corpX.un
  
 clientN:~# cat /etc/hosts clientN:~# cat /etc/hosts
 </​code><​code>​ </​code><​code>​
 127.0.0.1 localhost 127.0.0.1 localhost
-127.0.1.1 client1.corp13.un clientN+127.0.1.1 client1.corpX.un client1
 </​code><​code>​ </​code><​code>​
 client1# ipa-client-install --mkhomedir --enable-dns-updates client1# ipa-client-install --mkhomedir --enable-dns-updates
 +...: no
 +...: yes
 +...: admin
 +...: .....
  
 # systemctl status sssd # systemctl status sssd
Line 143: Line 158:
 <​code>​ <​code>​
 [root@server ~]# ipa user-add user1 --first="​Иван"​ --last="​Иванов"​ --password [root@server ~]# ipa user-add user1 --first="​Иван"​ --last="​Иванов"​ --password
 +...
 +Password: password1
 +...
  
 [root@server ~]# #ipa passwd user1 [root@server ~]# #ipa passwd user1
Line 152: Line 170:
  
 <​code>​ <​code>​
-# kinit admin+gate# kinit admin
  
-[root@freeipa-server /]# ipa service-add HTTP/gate.corp13.un+gate# ipa service-add HTTP/gate.corpX.un
  
-gate.corp13.un:​~# ipa-getkeytab -p HTTP/gate.corp13.un -k /​etc/​krb5.keytab+gate# ipa-getkeytab -p HTTP/gate.corpX.un -k /​etc/​krb5.keytab 
 + 
 +gate# klist -ek /​etc/​krb5.keytab
 </​code>​ </​code>​
  
-  * [[Аутентификация доступа к SQUID#​Копируем ключи в системный keytab]] 
   * [[Аутентификация доступа к SQUID#​Настройка сервиса SQUID на использование GSSAPI]]   * [[Аутентификация доступа к SQUID#​Настройка сервиса SQUID на использование GSSAPI]]
 ===== Управление сертификатами ===== ===== Управление сертификатами =====
  
 ==== Корневой сертификат ==== ==== Корневой сертификат ====
 +
 +  * [[Пакет OpenSSL#​Импорт сертификата центра сертификации]]
 +
 <​code>​ <​code>​
 [root@server ~]# cat /​etc/​ipa/​ca.crt [root@server ~]# cat /​etc/​ipa/​ca.crt
Line 184: Line 206:
 ==== Создание ключа и сертификата для gitlab на той же системе ==== ==== Создание ключа и сертификата для gitlab на той же системе ====
 <​code>​ <​code>​
-server.corp13.un:~# openssl genrsa -out /​etc/​gitlab/​ssl/​$(hostname).key 2048+server.corpX.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+server.corpX.un:~# openssl req -new -key /​etc/​gitlab/​ssl/​$(hostname).key -subj '/​CN=server.corpX.un/O=CORPX.UN' -addext '​subjectAltName=DNS:​server.corpX.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+[root@freeipa-server /]# ipa cert-request /​data/​server-gitlab.req --principal=HTTP/​server.corpX.un --certificate-out=/​data/​server-gitlab.crt
  
-server.corp13.un:~# cp /​opt/​freeipa-data/​server-gitlab.crt -v /​etc/​gitlab/​ssl/​$(hostname).crt+server.corpX.un:~# cp /​opt/​freeipa-data/​server-gitlab.crt -v /​etc/​gitlab/​ssl/​$(hostname).crt 
 +</​code>​ 
 +==== Создание ключа и сертификата для стороннего сервиса ==== 
 +  * [[https://​itdraft.ru/​2023/​03/​20/​resheno-freeipa-pki-sozdaem-i-podpisyvaem-ssl-sertifikat/​|FreeIPA PKI - Создаем и подписываем ssl сертификат]] 
 +<​code>​ 
 +[root@freeipa-server /]#
  
 +ipa dnsrecord-add corpX.un keycloak --a-rec="​192.168.X.64"​
 +ipa host-add keycloak.corpX.un
 +ipa service-add HTTP/​keycloak.corpX.un
  
 +openssl genrsa -out /​data/​keycloak.key 2048
 +openssl req -new -key /​data/​keycloak.key -subj '/​CN=keycloak.corpX.un/​O=CORPX.UN'​ -addext '​subjectAltName=DNS:​keycloak.corpX.un'​ -out /​data/​keycloak.req
 +ipa cert-request /​data/​keycloak.req --principal=HTTP/​keycloak.corpX.un --certificate-out=/​data/​keycloak.crt
  
- +server# scp /​opt/​freeipa-data/keycloak.* kube1:/tmp/
-###server.corp13.un:​~# scp kube1:​webd-k8s/​webd.req ​/​opt/​freeipa-data/​+
 </​code>​ </​code>​
 ===== Управление DNS ===== ===== Управление DNS =====
 <​code>​ <​code>​
-ipa dnsrecord-add ​corp13.un kube1 --a-rec="​192.168.13.221"​ +[root@freeipa-server /]# kinit admin 
-ipa dnsrecord-add ​corp13.un kube2 --a-rec="​192.168.13.222"​ +</​code><​code>​ 
-ipa dnsrecord-add ​corp13.un kube3 --a-rec="​192.168.13.223"+ipa dnsrecord-add ​corpX.un kube1 --a-rec="​192.168.X.221"​ 
 +ipa dnsrecord-add ​corpX.un kube2 --a-rec="​192.168.X.222"​ 
 +ipa dnsrecord-add ​corpX.un kube3 --a-rec="​192.168.X.223
 +ipa dnsrecord-add corpX.un kube4 --a-rec="​192.168.X.224"
 </​code>​ </​code>​
 ===== Работа с LDAP ===== ===== Работа с LDAP =====
-<​code>​ + 
-[root@server ~]# ldapsearch -x -b"​dc=corp13,​dc=un"​ -H ldap://​server "​uid=admin"​ +  ​* ​[[Авторизация с использованием LDAP сервера]]
-</​code>​+
  
 ===== Дополнительные материалы ==== ===== Дополнительные материалы ====
Line 212: Line 246:
 ==== Попытка запуска в привилегированном режиме ==== ==== Попытка запуска в привилегированном режиме ====
 <​code>​ <​code>​
-server.corp13.un:​~/​freeipa#​ cat docker-compose.yml+server.corpX.un:​~/​freeipa#​ cat docker-compose.yml
 services: services:
   freeipa:   freeipa:
Line 221: Line 255:
     hostname: server     hostname: server
 #    hostname: freeipa-server #    hostname: freeipa-server
-#    domainname: server.corp13.un+#    domainname: server.corpX.un
     container_name:​ freeipa-server     container_name:​ freeipa-server
     network_mode:​ host     network_mode:​ host
Line 228: Line 262:
     dns:     dns:
 #      - 172.16.1.254 #      - 172.16.1.254
-      - 192.168.13.10+      - 192.168.X.10
     restart: unless-stopped     restart: unless-stopped
     tty: true     tty: true
     stdin_open: true     stdin_open: true
     environment:​     environment:​
-      IPA_SERVER_HOSTNAME:​ server.corp13.un +      IPA_SERVER_HOSTNAME:​ server.corpX.un 
-      IPA_SERVER_IP:​ 192.168.13.10+      IPA_SERVER_IP:​ 192.168.X.10
 #      DNS: 172.16.1.254 #      DNS: 172.16.1.254
-      DNS: 192.168.13.10+      DNS: 192.168.X.10
       TZ: "​Europe/​Moscow"​       TZ: "​Europe/​Moscow"​
-      IPA_DOMAIN_NAME: ​corp13.un +      IPA_DOMAIN_NAME: ​corpX.un 
-      IPA_REALM_NAME: ​CORP13.UN+      IPA_REALM_NAME: ​CORPX.UN
       PASSWORD: strongpassword       PASSWORD: strongpassword
     command:     command:
       - -U       - -U
-      - --domain=corp13.un +      - --domain=corpX.un 
-      - --realm=CORP13.UN+      - --realm=CORPX.UN
       - --admin-password=strongpassword       - --admin-password=strongpassword
       - --http-pin=strongpassword       - --http-pin=strongpassword
Line 272: Line 306:
  
  
-server.corp13.un:​~/​freeipa#​ cat /​opt/​freeipa-data/​var/​log/​ipaclient-install.log+server.corpX.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 DEBUG The ipa-client-install command failed, exception: KerberosError:​ No valid Negotiate header in server response
решение_freeipa.1759635244.txt.gz · Last modified: 2025/10/05 06:34 by val