Рубрики
CentOS

freeipa / centos 8 / ldap

Ссылки:

https://www.freeipa.org/page/Documentation
https://www.freeipa.org/page/Creating_a_binddn_for_Foreman
https://www.freeipa.org/page/Quick_Start_Guide
https://www.freeipa.org/page/Troubleshooting
https://www.freeipa.org/page/HowTos
https://www.freeipa.org/page/IPAv3_AD_trust - АД интеграция

https://www.altlinux.org/FreeIPA
https://cdnnow.ru/blog/ipa-fixes/
https://habr.com/ru/company/pixonic/blog/325546/
https://computingforgeeks.com/how-to-install-and-configure-freeipa-server-on-rhel-centos-8/
https://computingforgeeks.com/set-hostname-and-timezone-on-rhel/
https://pro-ldap.ru/tr/admin24/appendix-common-errors.html
https://packages.debian.org/sid/net/freeipa-server
Настройка клиента FreeIPA на сервере CentOS 7
https://www.dmosk.ru/miniinstruktions.php?mini=freeipa-centos - установка и использование https://www.dmosk.ru/miniinstruktions.php?mini=eap-freeradius-freeipa - freeipa + radius https://www.dmosk.ru/miniinstruktions.php?mini=freeradius-freeipa-rocky - freeipa + rocky + radius https://usermanual.wiki/Document/ipalabinstructions.1065978014/help - чья та лабораторная по freeipa https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/identity_management_guide/user-pwdpolicy#tab_pwpolicy-attrs - про пароли https://www.tux.in.ua/articles/2969 https://itsecforu.ru/2018/12/12/%D0%BA%D0%B0%D0%BA-%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B8%D1%82%D1%8C-%D0%B0%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8E-gitlab-freeipa/ https://itsecforu.ru/2018/07/23/%D0%BA%D0%B0%D0%BA-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%8C-%D0%B8-%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B8%D1%82%D1%8C-freeipa-%D0%BD%D0%B0-red-hat-linux/ https://www.arus.ru/index.php/biblioteka/shpory/item/10553-razvorachivaem-freeipa-server-2 https://computingforgeeks.com/configure-freeipa-replication-on-ubuntu-centos/ https://github.com/freeipa/ansible-freeipa https://www.google.com/search?q=ldap&rlz=1C1GCEA_enRU832RU832&oq=ldap&aqs=chrome..69i57j69i59.2431j0j7&sourceid=chrome&ie=UTF-8 https://www.google.com/search?q=openldap&rlz=1C1GCEA_enRU832RU832&sxsrf=ALeKk016A3eKO5RY-xwg24TxKj0HMvuQ6w:1625058408672&source=lnt&tbs=qdr:y&sa=X&ved=2ahUKEwjKi8Cptr_xAhWhs4sKHS_hC9wQpwV6BAgBECo&biw=1920&bih=937 https://www.google.com/search?q=slapd&rlz=1C1GCEA_enRU832RU832&sxsrf=ALeKk00qN2s13TOugFxnFNhaXwKTaAXRHg:1625058427347&source=lnt&tbs=qdr:y&sa=X&ved=2ahUKEwichrSytr_xAhVS-yoKHU0UBP8QpwV6BAgBECo&biw=1920&bih=937 https://sysadminmosaic.ru/openldap/openldap https://academy.terrasoft.ru/docs/user/ustanovka_i_administrirovanie/upravlenie_polzovateljami_i_dostupom/sinhronizaciya_polzovatelej_s_ldap/nastroit_sinhronizaciyu_s_ldap https://parallel.uran.ru/book/export/html/516 https://pro-ldap.ru/tr/admin24/
Установка radius Server на Windows 2012
https://www.digitalocean.com/community/tutorials/how-to-set-up-and-configure-a-certificate-authority-ca-on-ubuntu-20-04-ru

Инфа:

RHEL IdM - это интегрированное решение для обеспечения централизованно управляемой идентификации (пользователи, хосты, службы), 
аутентификации (SSO, 2FA) и авторизации (контроль доступа к хосту, роли пользователей SELinux, сервисы).

Имя хоста / время:

0. Редактируем файл /etc/hosts
vim /etc/hosts
-----------------
192.168.122.198 ipa.example.com
-----------------
1. Переименовываем хост:
hostnamectl set-hostname ipa.example.com
2. Проверяем временную зону:
timedatectl status
timedatectl set-time HH:MM:SS
timedatectl set-time "yyyy-MM-dd hh:mm:ss"
timedatectl list-timezones
timedatectl set-timezone Europe/Moscow
timedatectl set-ntp yes

Установка freipa centos:


0. Добавляем репозиторий epel 
dnf -y install epel-release

1. Временно отключаем selinux
setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

2. Ищем пакет idm и устанавливаем его 
yum module list idm
yum module info idm:DL1
yum -y install @idm:DL1

3. Ставим пакеты  freeipa
yum -y install freeipa-server
yum -y install ipa-server-dns bind-dyndb-ldap

4. Производим настройку, выполняем команды 
!!! Внимание будет задано очень много различных вопросов.
ipa-server-install
ipa-server-install --setup-dns

5. Проверка после установки
Проверяем слушаются ли порты 53, 80, 88, 123, 389, 443, 464, 636
ss -tplnu 
Проверяем работу керберос, создаются ли билеты:
kinit admin
klist

6. Настраиваем shell для ipa пользователей
ipa config-mod --defaultshell=/bin/bash

7. Создаем пользователя в ipa для проверки
ipa user-add test  --first=Test --last=User --email=test@example.com --password

8. Проверяем какие есть у нас учетные записи
ipa user-find

9. Собственно можем проверить подключение.
!!! Политика по умолчанию попросит сменить нас пароль.
ssh test@localhost

10. Настраиваем firewall
!!! Нужно открыть порты
TCP Ports:
* 80, 443: HTTP/HTTPS
* 389, 636: LDAP/LDAPS
* 88, 464: kerberos
* 53: bind
UDP Ports:
* 88, 464: kerberos
* 53: bind
* 123: ntp

Base DN:

You can find your basedn, and other interesting things, in /etc/ipa/default.conf
cat  /etc/ipa/default.conf

Users: cn=users,cn=accounts,$SUFFIX
Groups: cn=groups,cn=accounts,$SUFFIX


Добавление системной учетной записи ipa:

https://www.freeipa.org/page/HowTo/LDAP
https://github.com/noahbliss/freeipa-sam - скрипт для управления системными учетными записями


# ldapmodify -x -D 'cn=Directory Manager' -W
--------------------------------------------
dn: uid=ЖЕЛАЕМЫЙ_ПОЛЬЗОВАТЕЛЬ,cn=sysaccounts,cn=etc,dc=example,dc=com
changetype: add
objectclass: account
objectclass: simplesecurityobject
uid: ЖЕЛАЕМЫЙ_ПОЛЬЗОВАТЕЛЬ
userPassword: ПАРОЛЬ_ДЛЯ_ЖЕЛАЕМЫЙ_ПОЛЬЗОВАТЕЛЬ
passwordExpirationTime: 20380119031407Z
nsIdleTimeout: 0

^D
---------------------------------------------

Проверка:
ldapsearch -D "uid=sync,cn=sysaccounts,cn=etc,dc=ipa,dc=server,dc=ru" -W
ldapsearch -h ipa.server.ru -D "uid=sync,cn=sysaccounts,cn=etc,dc=ipa,dc=server,dc=ru" -W


Проверка существования системного пользователя:
kinit ad-user #ваш пользователь с правами админа
ldapsearch -Y GSSAPI uid=ЖЕЛАЕМЫЙ_ПОЛЬЗОВАТЕЛЬ #серсиная учетная запись пользователя которого создали

Смена пароля для системной учетной записи freeipa:
kinit admin
ldappasswd -Y GSSAPI -W -S "uid=ЖЕЛАЕМЫЙ_ПОЛЬЗОВАТЕЛЬ,cn=sysaccounts,cn=etc,dc=example-domain,dc=example,dc=com"

Политики паролей:

!!! Перед выполнением команд получаем билеты
!!! kinit admin
!!! klist

Показать все настройки: 
ipa config-show --all

Помощь по парольным политикам:
ipa help pwpolicy

Показать политики:
ipa pwpolicy-show

Показать что можем изменить в парольной политике:
ipa help pwpolicy-mod 

Показать все политики:
ipa pwpolicy-show --all

Изменим минимальное время  жизни пароля: 
ipa pwpolicy-mod --minlife=0

Смена пароля пользователем:
ssh username@ipaserver - подключились по ssh
ipa passwd - сменили пароль

Работа с пользователями в консоли ipa:

!!! Перед выполнением команд получаем билеты
!!! kinit admin
!!! klist

Проверяем какие есть учетные записи:
ipa user-find

Показать помощь по команде config-mod:
ipa help config-mod

Настраиваем shell для ipa пользователей:
ipa config-mod --defaultshell=/bin/bash

Создаем пользователя в ipa:
ipa user-add test  --first=Test --last=User --email=test@example.com --password

Проверяем какие есть учетные записи:
ipa user-find

Смена пароля пользователю vpupkin:
ipa passwd vpupkin

Помощь по добавлена пользователей в freeipa:
ipa help user-add

Пример создания пользователя с паролем:
echo "p@ssw0rd" | ipa user-add vpupkin --first=Vasja --last=Pupkin --password

Настраиваем firewall, вариант 1 вера в firewalld:


sudo firewall-cmd --add-service={http,https,dns,ntp,freeipa-ldap,freeipa-ldaps} --permanent
sudo firewall-cmd --reload

Настраиваем firewall, вариант 2 вера в iptables.service:

systemctl disable firewalld.service 
dnf install iptables-services.x86_64
systemctl enable iptables.service
systemctl start iptables.service
mkdir /etc/iptables
vim /etc/iptables/iptables.v4 
-----------------------------
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -s 10.0.0.0/23 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -s 10.0.0.134/32 -p tcp -m state --state NEW -m tcp --dport 10050 -j ACCEPT
-A INPUT -s 10.0.0.0/22 -p tcp -m multiport --dports 53,80,88,389,443,464,636 -j ACCEPT
-A INPUT -s 10.0.0.0/22 -p udp -m multiport --dports 53,88,123,464 -j ACCEPT
#-A INPUT -s 10.0.0.0/22 -p tcp -m multiport --dports 53,80,88,135,138,139,389,443,445,464,636,1024:1300,3268 -j ACCEPT
#-A INPUT -s 10.0.0.0/22 -p udp -m multiport --dports 53,88,123,138,139,389,445,464 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -m limit --limit 100/sec -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 4 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 12 -j ACCEPT
COMMIT
----------------------------- 
vim /etc/iptables/iptables.v6
-----------------------------
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p ipv6-icmp -j ACCEPT
COMMIT

-----------------------------

iptables-restore /etc/iptables/iptables.v4 
ip6tables-restore /etc/iptables/iptables.v6 

service iptables save
service ip6tables save


Присоединим компьютер к FreeIPA домену:

0. Ставим пакеты:
yum install -y ipa-client realmd

1. Проверяем возможность подключения к домену:
realm discover -v example.com

2. Подключаем к домену:
sudo ipa-client-install
--mkhomedir \
--enable-dns-updates \
--ssh-trust-dns \
--server=ipa.example.com \
--domain=example.com \
-p admin -w password \
--fixed-primary -U \
--force-ntpd

ldapsearch

Since IPA 3.0 we've configured /etc/openldap/ldap.conf with some bare defaults:
URI ldaps://ipaserver.example.com
BASE dc=example,dc=com
TLS_CACERT /etc/ipa/ca.crt

ldapsearch -x uid=admin
ldapsearch -x -h ipa.example.com  -b dc=example,dc=com uid=admin

Удаление freeipa

ipa-server-install --uninstall

zabbix_ldap