Настройка WEB-сервера
На компьютере - контроллере домена FreeIPA
Действуя от имени администратора домена добавить службу HTTP:
На компьютере - WEB-сервере Apache2
Ввести компьютер в домен в качестве клиента.
Установить службу apache2 с модулем авторизации через Kerberos:
sudo apt install apache2 libapache2-mod-auth-kerb
Выставить права на 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 # Полное доменное имя сервера 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:0x1 /var/www/html/
Перезапустить web-сервер:
Проверка работы мандатных ограничений
На компьютере - контроллере домена создать доменного пользователя, и выставить ему ненулевой "максимальный уровень конфиденциальности" (например, 1).
На компьютере - WEB-сервере создать тестовые выполнить:
sudo /var/www/html/1.html
sudo pdpl-file 1:0:0 /var/www/html/1.html
Далее настроить в браузере negotiate авторизацию ( добавить http:// ):
После всех настроек зайти на клиентский компьютер под доменной учетной записью с уровнем конфиденциальности 0:
Далее пытаемся зайти на http://client.astra.domain/html/1.html , в результате чего получаем отказ:
А если запросить http://client.astra.domain/html/0.html , то получаем доступ к содержимому файла: