2026-04-08 10:05:53 +03:00
2026-04-08 10:05:53 +03:00
2026-04-08 10:04:50 +03:00
2026-04-08 10:05:06 +03:00

Домашнее задание 38

LDAP. Централизованная авторизация и аутентификация

Для выполнение задания используется vagrant box centos/stream9

Создание Vagrantfile

Зададим следующие характеристики для VM

Для ldap-server

  • CPU - 1
  • Memory - 2048mb

ldap-client

  • CPU - 1
  • Memory - 512mb

Готовый Vagrantfile

Cоздание ansible.yml

Сценарий для Ansible будет выполнять следующие действия:

На VM ldap-server

  1. Установка freeipa server
  2. Настройка firewalld
  3. Генерирует новые пароли для freeipa admin, directory manager и тестового пользователя
  4. Запускает настройку freeipa сервера
  5. Создает тестового пользователя pupkin.a
  6. Генерирует ключи ssh для тестового пользователя

На VM ldap-client

  1. Установка freeipa client
  2. Настрока freeipa client, присоединение к домену lab.local

При выполнение будут созданы пароли для FreeIPA admin, directory manager и тестового пользователя. Ansible при выполнении сообщит эти пароли. Пароли для admin и directory manager сохраняться в файлах admin_pass и ds_pass. После генерации ssh ключа для тестового пользователя, закрытый ключ сохраниться в файле id_rsa

Готовый ansible.yml

Проверка

Запускаем vagrant

alex@ubuntu-pc:~/Документы/38$ vagrant up 
Bringing machine 'ldap-server' up with 'virtualbox' provider...
Bringing machine 'ldap-client' up with 'virtualbox' provider...
==> ldap-server: Importing base box 'centos/stream9'...
==> ldap-server: Matching MAC address for NAT networking...
==> ldap-server: Checking if box 'centos/stream9' version '20260406.0' is up to date...
==> ldap-server: Setting the name of the VM: 38_ldap-server_1775628947639_31533
==> ldap-server: Clearing any previously set network interfaces...
==> ldap-server: Preparing network interfaces based on configuration...
    ldap-server: Adapter 1: nat
    ldap-server: Adapter 2: intnet
==> ldap-server: Forwarding ports...
    ldap-server: 22 (guest) => 2222 (host) (adapter 1)
==> ldap-server: Running 'pre-boot' VM customizations...
==> ldap-server: Booting VM...
==> ldap-server: Waiting for machine to boot. This may take a few minutes...
...

...
TASK [update] ******************************************************************
ok: [ldap-client]

TASK [install ipa-client] ******************************************************
changed: [ldap-client]

TASK [add dns] *****************************************************************
changed: [ldap-client]

TASK [get admin pass] **********************************************************
ok: [ldap-client]

TASK [freeipa client config] ***************************************************
changed: [ldap-client]

PLAY RECAP *********************************************************************
ldap-client                : ok=6    changed=3    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

Теперm попробуем подключиться под пользователем pupkin.a используя закрытый ключ на VM ldap-client.

Для начало нужно узнать, какой порт прокидываетcя для ssh на VM ldap-client, это можно сделать с помощью команды vagrant port

alex@ubuntu-pc:~/Документы/38$ vagrant port ldap-client
The forwarded ports for the machine are listed below. Please note that
these values may differ from values configured in the Vagrantfile if the
provider supports automatic port collision detection and resolution.

    22 (guest) => 2200 (host)

Подключаемся к 127.0.0.1:2200

alex@ubuntu-pc:~/Документы/38$ ssh -i ./id_rsa pupkin.a@127.0.0.1 -p 2200
The authenticity of host '[127.0.0.1]:2200 ([127.0.0.1]:2200)' can't be established.
ED25519 key fingerprint is SHA256:ls8n7jfC7pcCkMlLZ+TZEUPHx2F581cnp7NqOnopqC8.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[127.0.0.1]:2200' (ED25519) to the list of known hosts.
[pupkin.a@ldap-client ~]$

Мы успешно авторизовались под пользователем pupkin.a используя закрытый ключ ssh.

Помотрим id пользователя

[pupkin.a@ldap-client ~]$ id
uid=1960600003(pupkin.a) gid=1960600003(pupkin.a) groups=1960600003(pupkin.a) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

Теперь подключимся на ldap-server, и найдем пользователя по uid 1960600003

[root@ldap-server ~]# ipa user-find --uid=1960600003
--------------
1 user matched
--------------
  User login: pupkin.a
  First name: Aristarkh
  Last name: Pupkin
  Home directory: /home/pupkin.a
  Login shell: /bin/sh
  Principal name: pupkin.a@LAB.LOCAL
  Principal alias: pupkin.a@LAB.LOCAL
  Email address: pupkin.a@lab.local
  UID: 1960600003
  GID: 1960600003
  SSH public key fingerprint: SHA256:zyFW5NFxW1tJNkgR8C9oi77Cwiv8Tsis7qswCkcTfMg (ssh-rsa)
  Account disabled: False
----------------------------
Number of entries returned 1
----------------------------

Как видим в FreeIPA uid 1960600003 это и есть наш пользователь pupkin.a

Задание полностью выполнено!

Description
LDAP. Централизованная авторизация и аутентификация
Readme 33 KiB