Пост

Установка и настройка сервера FreeIPA в Centos 7

FreeIPA — это комплексное решение для централизованного управления безопасностью Linux-систем, идентификацией и аутентификацией. Оно позволяет создавать многоуровневую систему управления доступом, где руководители подразделений могут добавлять пользователей в группы и настраивать доступ к ресурсам.

В программе FreeIPA для управления идентификацией серверов используются доменные имена. Так же FreeIPA можно использовать как панель управления NS-записями

Подготовительный этап, синхронизация с NTP-сервером

Для синхронизации времени рекомендуется использовать NTP
Остановим и выключим chrony, если он предустановлен

1
2
$ sudo systemctl stop chronyd
$ sudo systemctl disable chronyd

Установим NTP и настроим синхронизацию с нашим ntp-сервером

1
2
3
$ sudo yum install ntpdate
$ sudo nano /etc/ntp.conf
server 192.168.1.10

Смотрим расхождение во времени:

1
2
3
$ sudo ntpdate -qu 192.168.1.10
server 192.168.1.10, stratum 3, offset -14.866896, delay 0.04178
11 Nov 09:46:42 ntpdate[19110]: step time server 192.168.1.10 offset -14.866896 sec

Останавливаем службу, синхронизируем время, запускаем службу

1
2
3
$ sudo systemctl stop ntpd
$ sudo ntpdate 192.168.1.10
$ sudo systemctl start ntpd

Активируем NTP клиента, и смотрим статус

1
2
3
4
5
6
7
8
9
10
$ sudo timedatectl set-ntp true
$ sudo timedatectl status
      Local time: Mon 2019-11-11 09:49:10 MSK
  Universal time: Mon 2019-11-11 06:49:10 UTC
        RTC time: Mon 2019-11-11 06:49:10
       Time zone: Europe/Moscow (MSK, +0300)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a

Можно еще раз проверить расхождение во времени:

1
2
3
$ sudo ntpdate -qu 192.168.1.10
server 192.168.1.10, stratum 3, offset 0.003698, delay 0.04181
11 Nov 09:49:45 ntpdate[19143]: adjust time server 192.168.1.10 offset 0.003698 sec

Настройка доменного имени сервера и сети

Имя FreeIPA сервера должно быть полным (FQDN), установим его:

1
2
3
4
$ sudo hostnamectl set-hostname srv-ipa-01.domain.local
$ sudo hostnamectl status
   Static hostname: srv-ipa-01.domain.local
...

Пропишем адрес сервера FreeIPA в файле /etc/hosts
Если мы планируем добавлять реплицирующий FreeIPA сервер, то его имя и IP-адрес так же надо добавить

1
2
3
4
5
$ sudo nano /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.11   srv-ipa-01.domain.local srv-ipa-01
192.168.1.12   srv-ipa-02.domain.local srv-ipa-02

Если в сети планируется использовать короткие имена машин, должна быть прописана корректная опция domain или search.

Если мы будем использовать FreeIPA-сервер как DNS, припишем в файле resolve.conf его ip-адрес (и ip-адрес реплицирующего, если планируется репликация)

1
2
3
4
5
6
7
8
$ sudo nano /etc/resolve.conf 
search domain.local
# DNS FreeIPA
nameserver 192.168.1.11
nameserver 192.168.1.11
# Наши DNS
nameserver 192.168.1.1
nameserver 192.168.1.2

Отредактируем файл с настройками сетевого интерфейса.
Параметр PEERDNS="no" - отвечает, чтобы файл resolve.conf не перезаписывался, после перезапуска службы Network

1
2
3
4
5
6
7
8
9
10
$ sudo nano /etc/sysconfig/network-scripts/ifcfg-ens160
...
IPADDR="192.168.1.11"
PREFIX="24"
GATEWAY="192.168.1.1"
DNS1="192.168.1.1"
DNS2="192.168.1.2"
PEERDNS="no"
DOMAIN="domain.local"
...

Установка программного обеспечения

Устанавливаем необходимые пакеты

1
$ sudo yum -y install bind bind-utils bind-dyndb-ldap ipa-server ipa-client ipa-server-dns

FreeIPA требует большого количества случайных данных для выполняемых им криптографических операций. Установим генератор случайных чисел rngd

1
2
3
$ sudo yum install rng-tools
$ sudo systemctl start rngd
$ sudo systemctl enable rngd

Установка и настройка FreeIPA

Установим FreeIPA

1
$ sudo ipa-server-install

При установки, можно включить опцию создания директорий пользователей

1
$ ipa-server-install --mkhomedir

Если вы ее не указали, то эту опцию можно добавить после установки FreeIPA сервера командой:

1
$ sudo authconfig --enablemkhomedir --update

Если мы не планируем использовать FreeIPA в качестве DNS, то на соответствующий вопрос отвечаем NO, и дальше устанавливаем параметры

1
2
3
4
5
6
7
8
9
Do you want to configure integrated DNS (BIND)? [no]: no

Server host name [srv-ipa-01.domain.local]: srv-ipa-01.domain.local
Please confirm the domain name [domain.local]: srv-ipa-01.domain.local
Please provide a realm name [SRV-IPA-01.DOMAIN.LOCAL]: SRV-IPA-01.DOMAIN.LOCAL
Directory Manager password:
IPA admin password:

Continue to configure the system with these values? [no]: yes

Если мы планируем использовать FreeIPA в качестве DNS, то на соответствующий вопрос отвечаем YES, и дальше устанавливаем параметры

1
2
3
4
5
6
7
Do you want to configure integrated DNS (BIND)? [no]: yes

Server host name [srv-ipa-01.domain.local]: srv-ipa-01.domain.local
Please confirm the domain name [domain.local]: domain.local
Please provide a realm name [DOMAIN.LOCAL]: DOMAIN.LOCAL
Directory Manager password:
IPA admin password:

Далее пойдут вопросы по настройке DNS

Если мы не хотим перенаправлять DNS запросы с FreeIPA на другой сервер, в соответствующем вопросе пишем NO

1
2
3
Checking DNS domain domain.local., please wait ...
Do you want to configure DNS forwarders? [yes]: no
No DNS forwarders configured

Если мы хотим перенаправлять DNS запросы с FreeIPA на другой сервер, в соответствующем вопросе пишем YES, и далее оставляем DNS, которые предложит FreeIPA, либо прописываем другие

1
2
3
4
5
6
7
8
9
10
11
Checking DNS domain domain.local., please wait ...
Do you want to configure DNS forwarders? [yes]:
Following DNS servers are configured in /etc/resolv.conf: 192.168.1.11, 192.168.1.12
Do you want to configure these servers as DNS forwarders? [yes]:
All DNS servers from /etc/resolv.conf were added. You can enter additional addresses now:
Enter an IP address for a DNS forwarder, or press Enter to skip: 8.8.8.8
DNS forwarder 8.8.8.8 added. You may add another.
Enter an IP address for a DNS forwarder, or press Enter to skip: 8.8.4.4
DNS forwarder 8.8.4.4 added. You may add another.
Enter an IP address for a DNS forwarder, or press Enter to skip:
Checking DNS forwarders, please wait

Разрешаем обратную зону

1
2
3
4
Do you want to search for missing reverse zones? [yes]:
Do you want to create reverse zone for IP 192.168.1.11 [yes]:
Please specify the reverse zone name [1.168.192.in-addr.arpa.]:
Using reverse zone(s) 1.168.192.in-addr.arpa.

Далее отобразятся наши данные для проверки

1
2
3
4
5
6
7
8
9
10
11
The IPA Master Server will be configured with:
Hostname:	srv-ipa-01.domain.local
IP address(es):	192.168.1.11
Domain name:	domain.local
Realm name: 	DOMAIN.LOCAL

BIND DNS server will be configured to serve IPA domain with:
Forwarders:	8.8.8.8, 8.8.4.4
Forward policy:	only
Reverse zone(s):  1.168.192.in-addr.arpa.
Continue to configure the system with these values? [no]: yes

Затем пойдет долгий процесс установки, и отобразятся какие порты надо открыть

1
2
3
4
5
6
7
8
9
10
1. You must make sure these network ports are open:
TCP Ports:
* 80, 443: HTTP/HTTPS
* 389, 636: LDAP/LDAPS
* 88, 464: kerberos
* 53: bind
UDP Ports:
* 88, 464: kerberos
* 53: bind
* 123: ntp

Открываем эти порты

1
2
3
4
$ sudo firewall-cmd --permanent --zone=public --add-service={ntp,http,https,ldap,ldaps,kerberos,kpasswd,dns}
$ sudo firewall-cmd --permanent --zone=public --add-port=53/tcp
$ sudo firewall-cmd --permanent --zone=public --add-port=53/udp
$ sudo firewall-cmd --reload

Проверка

Получаем билет kerberos

1
2
$ kinit admin
Password for [email protected]:

Проверим полученный билет

1
2
3
4
5
6
$ klist
Ticket cache: KEYRING:persistent:1000:1000
Default principal: [email protected]

Valid starting       Expires              Service principal
11/05/2019 15:55:28  11/06/2019 15:55:20  krbtgt/[email protected]

Если на каком-нибудь этапе возникают ошибка, FreeIPA-сервер можно удалить, и попытаться установить заново

1
$ sudo ipa-server-install --uninstall -U

Что бы зайти в вэб-интерфейс, надо прописать ip-адрес и доменное имя в файле hosts, и в браузере набрать доменное имя

Авторский пост защищен лицензией CC BY 4.0 .

© IT Draft. Некоторые права защищены.