В предыдущей статье была описана настройка ALD на Astra Linux SE 1.5, поэтому все шаги связанные с подготовкой ALD не будут описываться.
Настройка Apache для аутентификации в домене
Если не настроена авторизация через Kerberos, по умолчанию для всех ресурсов будет использоваться авторизация через PAM, при этом будет использоваться пользовательская БД, прописанная в настройках ОС. Логин и пароль пользователя будут передаваться от пользователя к серверу в открытом виде с использованием метода аутентификации Basic. Для корректного функционирования авторизации через PAM пользователю, от которого работает web-сервер (по умолчанию — www-data), необходимо выдать права на чтение информации из БД пользователей и сведений о мандатных метках. Например, добавить права на чтение файла /etc/shadow:
sudo usermod -a -G shadow www-data
sudo setfacl -d -m u:www-data:r /etc/parsec/macdb
sudo setfacl -R -m u:www-data:r /etc/parsec/macdb
sudo setfacl -m u:www-data:rx /etc/parsec/macdb
Установим требуемый пакет:
sudo apt-get -y install libapache2-mod-auth-kerb
Отключим метод аутентификации PAM:
sudo a2dismod auth_pam
Активируем метод Kerberos:
sudo a2enmod auth_kerb
Отредактируем конфигурационной файл основного сайта
sudo nano -Y sh /etc/apache2/sites-available/default
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName srv.test.local
DocumentRoot /var/www/
<Directory /var/www/>
AuthType Kerberos
KrbAuthRealms REALM
KrbServiceName HTTP/srv.test.local
Krb5Keytab /etc/apache2/keytab
KrbMethodNegotiate on
KrbMethodK5Passwd off
require valid-user
Options Indexes FollowSymLinks MultiViews
AllowOverride None
</Directory>
ErrorLog /var/log/apache2/error.log
LogLevel debug
CustomLog /var/log/apache2/access.log common
</VirtualHost>
Создадим в БД ALD с помощью утилиты администрирования ALD принципала, соответствующего нашему web-серверу Apache. Принципал создается с автоматически сгенерированным случайным ключом
sudo ald-admin service-add HTTP/srv.test.local
На сервере созданного принципала добавим в группу сервисов mac:
sudo ald-admin sgroup-svc-add HTTP/srv.test.local --sgroup=mac
Создадим файл ключа
sudo ald-client update-svc-keytab HTTP/srv.test.local --ktfile="/etc/apache2/keytab"
Назначим владельцем файла системного пользователя www-data:
sudo chown www-data /etc/apache2/keytab
Разрешим чтение остальным:
sudo chmod 644 /etc/apache2/keytab
Перезапустим Web-Сервер:
sudo service apache2 restart
Пробный первый вход на сайт. для этого включим логирование и попробуем.
sudo tail -f /var/log/apache2/access.log /var/log/apache2/error.log
Появятся ошибки
kerb_authenticate_user entered with user (NULL) and auth_type Kerberos
Для их исключения в браузере пользователя должен поддерживать аутентификацию negotiate. В Mozilla Firefox в настройках, доступных по адресу about:config, необходимо указать, для каких серверов доступна аутентификация negotiate. Для выполнения данной настройки необходимо задать маски доменов или в общем случае все http- и https соединения вставив, например, значение
Повторяем попытку открытия и все работает! На этом настройка закончена, но настройки браузера придется повторить на всех используемых АРМ.