Данная статья устарела. Использовать предлагаемый в статье модуль libapache2-mod-auth-kerb не рекомендуется.
Актуальную версию инструкции по настройке см. Настройка аутентификации Kerberos для службы apache2 в Astra Linux.
Данная статья применима к:
Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7), РУСБ.10015-10
Astra Linux Special Edition РУСБ.10015-17
Astra Linux Special Edition РУСБ.10015-37 (очередное обновление 7.7)
Astra Linux Special Edition РУСБ.10015-03 (очередное обновление 7.6)
Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7)
Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
Astra Linux Special Edition РУСБ.10015-16 исп. 1
Astra Linux Special Edition РУСБ.10015-16 исп. 2
Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)
Astra Linux Common Edition 2.12
Настройка web-сервера
На компьютере - web-сервере Apache2 (часть 1)
Установить пакеты:
- astra-freeipa-client — пакеты для ввода компьютера в домен;
- apache2 — служба аpache2;
- libapache2-mod-auth-kerb — модуль авторизации через Kerberos для службы apache2.
Команды для установки пакетов:sudo apt update
sudo apt install astra-freeipa-client apache2 libapache2-mod-auth-kerbЗадать имя компьютера (далее в примере используется имя client):
sudo hostnamectl set-hostname client
На компьютере - контроллере домена FreeIPA
При работе в сессии администратора домена билет Kerberos выдается автоматически при входе в сессию. При работе в сессии локального администратора получить билет администратора домена:
kinit adminДобавить службу HTTP:
ipa service-add HTTP/client.astra.domain@ASTRA.DOMAINПолучить от контроллера домена FreeIPA таблицу ключей (keytab):
/usr/sbin/ipa-getkeytab -p HTTP/client.astra.domain@ASTRA.DOMAIN -k ~/http.keytabТаблица ключей будет сохранена в домашнем каталоге.Полученный файл с таблицей ключей http.keytab скопировать на web-сервер в каталог /etc/apache2/.
На компьютере - web-сервере Apache2 (Часть 2)
Предполагается, что таблица ключей размещена в файле /etc/apache2/http.keytab.
Установить права доступа к файлу с таблицей ключей:
sudo chown www-data:www-data /etc/apache2/http.keytab
sudo chmod 600 /etc/apache2/http.keytabВ конфигурацию виртуального хоста virtualhost в файле /etc/apache2/sites-available/000-default.conf внести настройки:
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory /var/www> AuthType Kerberos # Имя области (realm) Керберос - обычно это имя домена ЗАГЛАВНЫМИ буквами KrbAuthRealms ASTRA.DOMAIN # Полное доменное имя службы (имя ранее созданной службы HTTP): KrbServiceName HTTP/client.astra.domain@ASTRA.DOMAIN # Имя файла, в котором сохранены ключи Krb5Keytab /etc/apache2/http.keytab KrbMethodNegotiate on KrbMethodK5Passwd off require valid-user KrbSaveCredentials on </Directory> </VirtualHost>
Создать каталог для виртуального сервера:
На компьютере - web-сервере назначить мандатные атрибуты каталогу с виртуальным сервером:
sudo pdpl-file -u 3:0:-1:ccnr /var/www/
sudo pdpl-file -u 3:0:-1:ccnr /var/www/html/Перезапустить web-сервер (службу apache2):
sudo systemctl restart apache2
Проверка работы мандатных ограничений
- На компьютере - контроллере домена:
- Создать доменного пользователя.
- Разрешить созданному пользователю работать с ненулевой классификационной меткой. Например, установить ему максимальный иерархический уровень конфиденциальности 1.
- На компьютере - web-сервере:
В папке виртуального сервера /var/www/html/ создать 2 файла, например 0.html и 1.html с содержимым "Hello world! 0" и "Hello world! 1" соответственно.
echo "Hello world! 0" | sudo tee /var/www/html/0.html
echo "Hello world! 1" | sudo tee /var/www/html/1.htmlУстановить классификационную метку на файл 1.html:
sudo pdpl-file 1:0:0 /var/www/html/1.html
На любом компьютере, который должен выступать в роли клиента:
Включить в web-браузере авторизацию negotiate, для чего открыть страницу about:config и добавить http:// в параметры network.negotiate-auth.delegation-uris и network.negotiate-auth.trusted-uris:
- Войти на клиентском компьютере в пользовательскую сессию с нулевой классификационной меткой.
Попытаться получить доступ к странице с ненулевым уровнем конфиденциальности http://client.astra.domain/html/1.html. Результатом должен стать отказ в доступе:
В диагностическом сообщении об ошибке указано, что объект не найден (ошибка 404), и не будет указана ошибка 403 (недостаточно прав). Такая диагностика исключает передачу информации о существовании объектов с высоким уровнем конфиденциальности, перекрывая возможный канал утечки информации.Проверить доступ к странице с нулевой классификационной меткой http://client.astra.domain/html/0.html. Доступ должен предоставляться:
- Выполнить на клиентском компьютере вход под в пользовательскую сессию с ненулевой классификационной меткой. При этом должны быть доступны обе страницы.