Настройка сервера. Создание домена FreeIPA и пользователя
Для демонстрации настройки было использовано два стенда. На первом была установлена система Asta Linux Orel, и он был использован в качестве сервера FreeIPA. Он был настроен с помощью следующей последовательности команд:
# Меняем имя сервера в нашем домене astradomain.ad на server hostnamectl set-hostname server.astradomain.ad # После данного этапа потребуется перезагрузка! # установим пакет fly-admin-freeipa-server sudo apt-get update sudo apt-get install fly-admin-freeipa-server # Запустим настройщик freeipa sudo fly-admin-freeipa-server
После настройки – программа установки сервера FreeIPA выведет ссылку на Web-интерфейс для управления доменом. Нам потребуется создать нового пользователя, для которого мы и будем настраивать доступ по токену.
Для этого переходим во вкладку "Идентификация" → "Пользователи" → "Активные пользователи" и добавляем нового пользователя. В нашем случае был создан пользователь "user"
Настройка клиента. Подключение к домену
После добавления нового пользователя, переходим к настройке клиента. В качестве клиентского стенда был использован Astra Linux Smolensk с 5ым обновлением безопасности. Настройка была осуществлена с помощью следующих команд:
# Меняем имя клиента в нашем домене astradomain.ad на client hostnamectl set-hostname client.astradomain.ad # После данного этапа потребуется перезагрузка! # отключаем соединение sudo nmcli con down "Проводное соединение 1" # настраиваем сетевую карту соединения - по умолчанию eth0 sudo nmcli con mod "Проводное соединение 1" connection.interface-name eth0 # настраиваем DNS - вместо DNS_SERVER_IP указать IP-адрес сервера DNS. При необходимости указать адрес локального сервера DNS. В нашем случае в качестве dns сервера выступал сам сервер FreeIPA. Поэтому был указан его IP адрес sudo nmcli con mod "Проводное соединение 1" ipv4.dns "DNS_SERVER_IP 8.8.8.8" sudo nmcli con mod "Проводное соединение 1" ipv4.ignore-auto-dns yes # включаем сетевое соединение sudo nmcli con up "Проводное соединение 1" # устанавливаем графический клиент для подключения к домену sudo apt-get update sudo apt-get install fly-admin-freeipa-client # подключаемся к домену через пользователя admin sudo fly-admin-freeipa-client
После подключения, настрйщик должен написать, что обнаружен настроенный клиент в домене astradomain.ad
попробуем подключиться к созданному пользователю user
su user
Если после ввода пароля вам удалось аутентифицироваться, как пользователь user, значит настройка прошла успешно
Настройка аутентификации по токену для клиента
Создание заявки на сертификат
Для упрощения настройки был создан скрипт, выполняющий все действия по настройке за вас. Скачаем его:
sudo apt-get install git git clone https://github.com/lo1ol/AstraSSSDTokenLogin cd AstraSSSDTokenLogin
Вставим токен и запустим скрипт
bash ./setup.sh
После ввода пароля в первую очередь необходимо сгенерировать ключ на токене (или использовать существующий) и создать запрос на сертификат нашего ключа
Выберем существующий ключ или создадим новый
После выбора ключа вам будет предложено ввести данные для заявки. Все эти данные являются опциональными, кроме "Общего имени". Туда необходимо ввести имя пользователя, под которым мы хотим аутентифицироваться:
Выберем место, куда сохранить файл с заявкой
В конце выполнения скрипта он вам выведет идентификатор вашего ключа. Необходимо запомнить его
Созданую заявку копируем и отправляем на сервер. Распечатать ее можно, например, с помощью команды:
cat cert.csr
Создание сертификата
Переходим к серверу, который получил нашу заявку. Чтобы создать сертификат по данной заявке для данного пользователя, опять таки перейдем во вкладку "Идентификация" → "Пользователи" → "Активные пользователи" и выберем нашего пользователя и в новой вкалдке выбирвем "Действия"→"Новый сертификат". В открывшемся окне вставляем нашу заявку.
Выданный сертификат можно получить в этой же вкладке, промотав чуть ниже до пункта с сертификатами. Нажмём на вкладку "Загрузить" и отправим сертификат пользователю
Также пользователю потребуется корневой сертификат УЦ, его можно получить во вкладке "Аутентификация"→"Сертификаты". Выбираем самый первый сертификат и нажимаем на вкладку "Действия"→ "Загрузить"
После этого полученный сертификат пользователя и УЦ отправляем клиенту.
Финальная настройка на стороне клиента
После получения сертификата пользователя и УЦВ, вставим токен и запустим скрипт
bash ./setup.sh
но на этот раз выбираем вторую вкладку в разделе меню
В следующем окне указываем путь до сертификата пользователя:
В следующем окне необходимо укзать идентификатор ключа, для которого был выписан сертификат. Вы его должны были запомнить после первого запуска скрипта setup.sh.
В следующем разделе указываем путь до сертификата УЦ
Настройка закончена. Проверим, что все установлено правильно. Для этого попробуем зайти под пользователем user
Токен должен был замигать и должно было появиться предложение ввести PIN.
Если все прошло успешно, то можно попробовать осуществить аналогичную аутентификацию через greeter