From 64a43720edb633c7bb91eb8f5081ad49a603f997 Mon Sep 17 00:00:00 2001 From: alex Date: Wed, 8 Apr 2026 10:04:50 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 143 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 143 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..c045850 --- /dev/null +++ b/README.md @@ -0,0 +1,143 @@ +# Домашнее задание 38 + +## LDAP. Централизованная авторизация и аутентификация + +Для выполнение задания используется vagrant box centos/stream9 + +### Создание Vagrantfile + +Зададим следующие характеристики для VM + +Для ldap-server +- CPU - 1 +- Memory - 2048mb + +ldap-client +- CPU - 1 +- Memory - 512mb + +Готовый [Vagrantfile](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](ansible.yml) + + +### Проверка + +Запускаем vagrant +```bash +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** +```bash +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 +```bash +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 пользователя +```bash +[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 +```bash +[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 + +Задание полностью выполнено! \ No newline at end of file