commit 64a43720edb633c7bb91eb8f5081ad49a603f997 Author: alex Date: Wed Apr 8 10:04:50 2026 +0300 Добавить 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