Настройка домена ALD в Astra Linux

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Я администрирую серверы на базе Astra Linux и хочу рассказать о своем видении настройки ALD домена: серверной части, клиентской, использовании файла hosts (по сравнению с DNS сервером). Также дам описание настройки резервного сервера.

ALD мне интересен в первую очередь потому, что уже имеет интеграцию с Astra Linux. Статья будет вам полезна, если вы собираетесь узнать больше о Astra Linux не только из официальной wiki. Кроме того, эту операционную систему (вместе с рядом других решений компании «Астра») смогут поставить на виртуальную машину клиенты публичного облака #CloudMTS.

Серверная часть

Настройку произвожу на виртуальных машинах в virtualbox, на сервере ip-адрес 192.168.1.1, также на данном сервере расположен репозиторий (настройка ip-адресов и репозиториев ничем не отличаются от настроек в Debian, на базе которой построена Astra). Первое, что необходимо настроить — это синхронизацию времени: поднимем ntp сервер, который будет брать время с текущей машины. Для это нужно отредактировать файл /etc/ntp.conf, внеся в него следующие изменения:

server 127.127.1.0
fudge 127.127.1.0 stratum 10
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

Параметры подсети укажите в соответствии с вашими ip адресами.

Запустим службу:

systemctl enable ntp
systemctl start ntp

Вы можете использовать DNS сервер — bind, например. Он присутствует в стандартном репозитории Astra Linux. На мой взгляд, использование файл hosts — это более простая реализация, чем полноценный DNS сервер. При этом корректно настроенный файл /etc/hosts должен быть одинаковый на всех машинах в домене. Перед редактированием данного файла зададим корректное hostname для сервера:

hostnamectl set-hostname dc1.local

В данной ситуации hostname сервера будет dc1, а имя домена, соответственно, local, именно на эти параметры будет ориентироваться ald-server при инициализации. Последним штрихом перед инициализацией ald сервера будет корректная настройка файла /etc/hosts:

127.0.0.1   localhost
#127.0.1.1 hostname
192.168.1.1     dc1.local     dc1
192.168.1.2     dc2.local     dc2
192.168.1.101   host1.local host1
192.168.1.102   host2.local host2

Обязательно необходимо «закомментировать» 127.0.1.1, а также важна последовательность указания полного имени хоста, т. е. первым должно быть указано имя хоста с доменом, и только потом имя хоста без домена.

В данном примере указан один домен и две рабочие станции. Если рабочих станций больше, то, соответственно, всех их необходимо перечислить в данном файле, а также скопировать данный файл на все машины, которые планируется ввести в домен. После этого можно приступать к установке необходимых пакетов, а также инициализации сервера:

sudo apt install ald-server-common fly-admin-ald-server smolensk-security-ald

Пакет smolensk-security-ald добавит возможность администрировать ald сервер в стандартной утилите fly-admin-smc (об этом будет рассказано далее).

Во время установки будет запрос на создание пароля администратора домена. Для текущей публикации будет создан пароль 12345678, далее данный пароль будет использован для ввода всех машин в домен.

ВАЖНО. Если по каким-то причинам у вас сбились настройки сервера, то их можно отредактировать в файле /etc/ald/ald.conf. В текущем файле важен параметр DOMAIN, значение данного параметра всегда должно начинаться с . (точки), т.е. в текущем примере данная строка будет выглядеть так:

DOMAIN = .local

Инициализируем сервер командой:

ald-init init

После инициализации необходимо перезагрузить сервер. В процессе инициализации домена будет еще запрос на создание пароля администратора домена, а также запрос на создание пароля на базу данных kerberos. Если все прошло удачно, то на экране появится сообщение:

Теперь приступим к настройке клиентской части.

Клиентская часть

Настроим ntp клиента для синхронизации времени, скопируем файл hosts с сервера, зададим имя хоста, а также настроим /etc/ald/ald.conf. В файле /etc/ntp.conf необходимо добавить строки:

server dc1.local

Запустим службу ntp:

systemctl start ntp
systemctl enable ntp

Зададим имя хоста (в данном пример ip адрес хоста 192.168.1.101):

hostnamectl set-hostname host1

Перед настройкой ald.conf необходимо установить необходимые пакеты:

sudo apt install fly-admin-ald-client ald-client

Ниже представлен пример файла ald.conf (данный файл аналогичен файлу ald.conf с сервера):

Теперь можно ввести машину в домен командой:

ald-client join

После ввода машины в домен ее необходимо перезагрузить. Во время инициализации необходимо ввести пароль учетной записи, у которой имеются права на ввод машины в домен.

Если все прошло удачно, то на экране отобразится следующий текст:

Резервный сервер ald

На будущем резервном сервере необходимо установить пакеты:

sudo apt install ald-server-common smolensk-security-ald

И отредактировать файл /etc/ald/ald.conf, изменив один параметр:

SERVER_ID=2

Далее зададим корректное имя хоста для резервного сервера:

sudo hostnamectl set-hostname dc2.local

Теперь инициализируем резервный сервер командой:

sudo ald-init init --slave

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

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

sudo ald-init promote

Необходимо на всех клиентских рабочих станциях отредактировать файл /etc/ald/ald.conf. Как это сделать одной командой — расскажу в разделе «Дополнительно».

В данном файле необходимо изменить параметры SERVER и SERVER_ID:

SERVER=dc2.local #dc2.local – резервный сервер

SERVER_ID=2 #2 – id резервного сервера

И далее выполнить команду:

sudo ald-client commit-config

Администрирование ald сервера

Как было написано ранее, администрирование можно производить через стандартную системную утилиту fly-admin-smc. Ее можно запустить через консоль, либо в панели управления, перейдя на вкладку «Безопасность» и запустив аплет «Политика безопасности». Первым делом необходимо настроить политику паролей в соответствии с вашими требованиями:

Выше представлена вкладка политики паролей. После настройки политики можно приступить к созданию пользователей и настройке их прав.

На вкладке «Пользователи» необходимо нажать кнопку +, ввести имя пользователя, тип файловой системы, установить local (также можно хранить каталоги на сетевых ресурсах), а также убрать галку «новая» напротив надписи «Первичная группа». При этом пользователь будет добавлен в группу «domain user». Далее создадим пароль для пользователя.

На вкладке «Привилегии домена» можно сделать пользователя «администратором» домена, а также разрешить авторизацию с конкретных доменных машин, или с любых машин, входящих в домен.

На вкладке «МРД» указываем, к каким меткам пользователь имеет доступ, а также уровень целостности.

Дополнительно: «заливка» hosts на все рабочие станции

Представьте ситуацию, в будущий домен будет входить 100 или более машин. Раскидать в ручную файл hosts проблематично. В данной ситуации поможет bash с СИ подобным синтаксисом.

На тестовом стенде имеется подсеть 192.168.1.0/24, 192.168.1.1 - сервер, 192.168.1.2 - 192.168.1.100 - рабочие станции. На каждой машине (в том числе и на сервере) имеется пользователь user с паролем 12345678. Данный пользователь должен быть полноценным администратором (с доступом к sudo, во время установки системы создается пользователь имеющий данные права) и иметь уровень целостности 63. Для данной цели необходимо выполнить следующие команды:

sudo usermod -aG astra-admin,astra-console user
sudo pdpl-user -l 0:0 -i 63 user

Если пользователь user отсутствует в системе, выполним следующие команды:

sudo useradd -m -G astra-admin,astra-console -s /bin/bash user
sudo passwd user
sudo pdpl-user -l 0:0 -i 63 user 

Чтобы не вводить пароль при распространении ключей, необходимо установить утилиту sshpass:

sudo apt install sshpass

Теперь можно приступить к формированию ключа (без sudo, с правами пользователя user), для беспарольного доступа:

shh-keygen -t rsa -b 1024

Распространим ключи на рабочие станции:

for((i=2;i<101;i++)); do sshpass -p 12345678 ssh-copy-id -f -o  StrictHostKeyChecking=no user@192.168.1.$i; done

Скопируем файл hosts на все машины с помощью утилиты scp:

for((i=2;i<101;i++)); do scp /etc/hosts user@192.168.1.$i:/home/user; ssh user@192.168.1.$i sudo cp /home/user/hosts /etc/hosts; done

После выполнения данных команд файл hosts будет распространен на все машины, которые будут входить в домен.

Таким же образом можно редактировать данный файл на всех хостах в домене. Например, нам необходимо удалить строку с именем хоста host40:

for((i=2;i<102;i++)); do ssh user@192.168.1.$i sudo sed -i '/host40/d' /etc/hosts; done

Если необходимо переключиться на резервный сервер на всех клиентских машинах, выполним команду:

for((i=2;i<102;i++)); do ssh user@192.168.1.$i sudo sed -i 's/SERVER=dc1.local/SERVER=dc2.local/g' /etc/ald/ald.conf; sudo sed -i 's/SERVER_ID=1/SERVER_ID=2/g' /etc/ald/ald.conf; sudo ald-client commit-config -f; done

На этом у меня сегодня всё, спасибо за ваше внимание.

Делитесь в комментариях вашим опытом.

Выбрать готовые образы программных решений для виртуальных машин IaaS можно в личном кабинете на сайте #CloudMTS.

Источник: https://habr.com/ru/company/cloud_mts/blog/690864/


Интересные статьи

Интересные статьи

В данной пошаговой инструкции мы подробно опишем весь процесс получения доступа к WhatsApp Business API через официального партнера Facebook — сервис Gupshup и подключени...
SWAP (своп) — это механизм виртуальной памяти, при котором часть данных из оперативной памяти (ОЗУ) перемещается на хранение на HDD (жёсткий диск), SSD (твёрдотельный накоп...
По мере исчерпания адресов IPv4, многие операторы связи столкнулись с необходимостью организовывать доступ своих клиентов в сеть с помощью трансляции адресов. В этой статье я расскажу, как можно ...
Наверное не будет уж очень удивительным если я тут, на IT площадке Хабра, скажу что я иногда балую себя программированием. Основная OS у меня Linux, но иногда приходится собирать исполняемые фай...
Автокэширование в 1с-Битрикс — хорошо развитая и довольно сложная система, позволяющая в разы уменьшить число обращений к базе данных и ускорить выполнение страниц.