This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
решение_freeipa [2025/09/29 09:45] val |
решение_freeipa [2025/10/02 18:18] (current) val [Управление сертификатами] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Решение FreeIPA ====== | ====== Решение FreeIPA ====== | ||
+ | ===== Установка и инициализация ===== | ||
- | * [[https://www.altlinux.org/FreeIPA/Клиент]] | + | ==== На выделенный сервер ==== |
+ | |||
+ | * Настройка сети [[Настройка сети в Linux#Файлы конфигурации Alma Linux]] | ||
+ | * Отключить Сервис Firewall [[Сервис Firewall#CentOS, AlmaLinux]] | ||
+ | |||
+ | * [[https://computingforgeeks.com/install-freeipa-server-on-rocky-almalinux/|Install FreeIPA Server on Rocky Linux 9 / AlmaLinux 9]] | ||
+ | |||
+ | ==== С использованием docker compose ==== | ||
* [[https://hub.docker.com/r/freeipa/freeipa-server]] | * [[https://hub.docker.com/r/freeipa/freeipa-server]] | ||
Line 94: | Line 102: | ||
[root@freeipa-server /]# systemctl reload named | [root@freeipa-server /]# systemctl reload named | ||
server# docker exec -ti freeipa-server systemctl reload named | server# docker exec -ti freeipa-server systemctl reload named | ||
+ | </code> | ||
+ | |||
+ | ==== Поверка после установки ==== | ||
+ | <code> | ||
+ | [root@server ~]# ipactl status | ||
+ | </code> | ||
+ | |||
+ | ===== Установка и инициализация клиента ===== | ||
+ | |||
+ | * [[https://www.altlinux.org/FreeIPA/Клиент]] | ||
+ | |||
+ | <code> | ||
+ | # apt update && apt install freeipa-client | ||
+ | |||
+ | # #kinit admin | ||
- | === | ||
gate# ipa-client-install --mkhomedir | gate# ipa-client-install --mkhomedir | ||
client1# hostnamectl hostname client1.corp13.un | client1# hostnamectl hostname client1.corp13.un | ||
+ | |||
+ | clientN:~# cat /etc/hosts | ||
+ | </code><code> | ||
+ | 127.0.0.1 localhost | ||
+ | 127.0.1.1 client1.corp13.un clientN | ||
+ | </code><code> | ||
client1# ipa-client-install --mkhomedir --enable-dns-updates | client1# ipa-client-install --mkhomedir --enable-dns-updates | ||
- | --- | + | # systemctl status sssd |
+ | |||
+ | [root@server ~]# ipa host-show gate|client1 | ||
+ | |||
+ | [root@server ~]# host gate|client1 | ||
+ | </code> | ||
+ | |||
+ | ===== Управление пользователями ===== | ||
+ | <code> | ||
+ | [root@server ~]# ipa user-add user1 --first="Иван" --last="Иванов" --password | ||
+ | |||
+ | [root@server ~]# #ipa passwd user1 | ||
+ | </code> | ||
+ | |||
+ | ===== Создание service principal ===== | ||
+ | |||
+ | * [[Установка, настройка и запуск пакета SQUID]] | ||
+ | |||
+ | <code> | ||
+ | # kinit admin | ||
[root@freeipa-server /]# ipa service-add HTTP/gate.corp13.un | [root@freeipa-server /]# ipa service-add HTTP/gate.corp13.un | ||
gate.corp13.un:~# ipa-getkeytab -p HTTP/gate.corp13.un -k /etc/krb5.keytab | gate.corp13.un:~# ipa-getkeytab -p HTTP/gate.corp13.un -k /etc/krb5.keytab | ||
+ | </code> | ||
+ | |||
+ | * [[Аутентификация доступа к SQUID#Копируем ключи в системный keytab]] | ||
+ | * [[Аутентификация доступа к SQUID#Настройка сервиса SQUID на использование GSSAPI]] | ||
+ | ===== Управление сертификатами ===== | ||
+ | <code> | ||
+ | [root@server ~]# cat /etc/ipa/ca.crt | ||
+ | |||
+ | gate# ipa-getcert request -f /root/gate.crt -k /root/gate.key | ||
+ | </code> | ||
+ | * [[Пакет OpenSSL#Создание пользовательского сертификата, подписанного CA]] | ||
+ | <code> | ||
+ | client1# ipa cert-request --principal=user1 --certificate-out=user1.crt user1.req | ||
+ | </code> | ||
+ | |||
+ | <code> | ||
- | === | ||
server.corp13.un:~# cat /opt/freeipa-data/etc/ipa/ca.crt | server.corp13.un:~# cat /opt/freeipa-data/etc/ipa/ca.crt | ||
Line 118: | Line 180: | ||
- | gate.corp13.un:~# ipa-getcert request -f /root/gate.crt -k /root/gate.key -K host/gate.corp13.un | + | |
###server.corp13.un:~# scp kube1:webd-k8s/webd.req /opt/freeipa-data/ | ###server.corp13.un:~# scp kube1:webd-k8s/webd.req /opt/freeipa-data/ | ||
- | ---- | + | </code> |
+ | ===== Работа с LDAP ===== | ||
+ | <code> | ||
+ | [root@server ~]# ldapsearch -x -b"dc=corp13,dc=un" -H ldap://server "uid=admin" | ||
+ | </code> | ||
+ | |||
+ | ===== Дополнительные материалы ==== | ||
+ | |||
+ | ==== Попытка запуска в привилегированном режиме ==== | ||
+ | <code> | ||
+ | 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 | ||
- | ldapsearch -x -b"dc=corp13,dc=un" -H ldap://server "uid=admin" | ||
</code> | </code> |