Данная статья применима к:
- Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7)
- Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
Astra Linux Special Edition РУСБ.10015-16 исп. 1 и исп. 2
Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)
Astra Linux Common Edition 2.12 (в части, не касающейся мандатного разграничения доступа)
Настройка web-сервера
На компьютере - web-сервере Apache2 (часть 1)
Установить пакеты для ввода компьютера в домен, службу Apache2 и модуль авторизации через Kerberos:
sudo apt install astra-freeipa-client apache2 libapache2-mod-auth-kerb
Ввести компьютер в домен в качестве клиента.
На компьютере - контроллере домена FreeIPA
Получить авторизацию администратора домена, и, действуя от имени администратора домена, добавить службу HTTP:
ipa service-add HTTP/client.astra.domain@ASTRA.DOMAIN
На компьютере - web-сервере Apache2 (Часть 2)
Скопировать keytab (файл /tmp/http.keytab) с контроллера домена на web-сервер в каталог /etc/apache2/.
Выставить права на keytab:
sudo chmod 644 /etc/apache2/http.keytab
<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 # Имя реалма Керберос - имя домена ЗАГЛАВНЫМИ буквами 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 3:0:0xffffffffffffffff:ccnr /var/www/html/
Проверка работы мандатных ограничений
На компьютере - контроллере домена создать доменного пользователя, и выставить ему ненулевой "максимальный уровень конфиденциальности" (например, 1).
На компьютере - web-сервере в папке виртуального сервера /var/www/html/ создать 2 файла и установить ненулевую мандатную метку на файл 1.html:
echo "Hello world! 1" | sudo tee /var/www/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. Результатом должен стать отказ в доступе:
Такая диагностика исключает передачу информации о существовании объектов с высоким уровнем конфиденциальности, перекрывая возможный канал утечки информации.
При этом доступ к странице с нулевым уровнем конфиденциальности http://client.astra.domain/html/0.html должен предоставляться:
При входе на клиентский компьютер под пользовательской доменной учетной записью с ненулевым уровнем конфиденциальности должны быть доступны обе страницы.