Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Оглавление


Информация
titleДанная статья применима к:
  • ОС СН Смоленск 1.6
  • ОС СН Ленинград 8.1
  • ОС ОН Орёл 1.6 (в части, не касающейся мандатного разграничения доступа)

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 Linux Special Edition все действия должны выполняться в сессии администратора домена или локального администратора (при включенном МКЦ - администратора с высоким уровнем целостности).
  1. Установить пакеты:
        - astra-freeipa-client — пакеты для ввода компьютера в домен;
        - apache2 — служба аpache2;
        - libapache2-mod-auth-kerb — модуль авторизации через Kerberos для службы apache2.
    Команды для установки пакетов:

    Command

    sudo apt update
    sudo apt install astra-freeipa-client apache2 libapache2-mod-auth-kerb


  2. Задать имя компьютера (далее в примере используется имя client):

    Command
    sudo hostnamectl set-hostname client


  3. Ввести компьютер в домен в качестве клиента.

Настройка WEB-сервера

На компьютере - контроллере домена FreeIPA

Действуя от имени администратора домена добавить

Предупреждение
Действия выполняются на основании билета Kerberos администратора домена (по умолчанию - admin).
  1. При работе в сессии администратора домена билет Kerberos выдается автоматически при входе в сессию. При работе в сессии локального администратора получить билет администратора домена:

    Command

    kinit admin


  2. Добавить службу HTTP: 

  
  1. Command
ipa service
  1. ipa service-

add HTTP
  1. add HTTP/client.astra.domain@ASTRA.DOMAIN

Действуя

  1. Получить от

имени администратора домена выгрузить keytab с КД FreeIPA
  1. контроллера домена FreeIPA таблицу ключей (keytab):

    Command

    /usr/sbin/ipa-getkeytab -

p HTTP
  1. p HTTP/client.astra.domain@ASTRA.DOMAIN -k

/tmp
  1. ~/http.keytab

  1. Таблица ключей будет сохранена в домашнем каталоге.


  2. Полученный файл с таблицей ключей http.keytab скопировать на web

Далее полученный файл нужно будет скопировать WEB
  1. -сервер в каталог /etc/apache2/.

На компьютере -

WEB

web-сервере Apache2

Предупреждение
В ОС СН (Смоленск, Ленинград) все действия должны выполняться от имени имени администратора компьютера с высоким уровнем целостности.

Ввести компьютер в домен в качестве клиента.

Установить службу apache2 с модулем авторизации через Kerberos: 

Command

sudo update
sudo apt install apache2 libapache2-mod-auth-kerb

(Часть 2)

Предполагается, что таблица ключей размещена в файле Скопировать keytab с контроллера домена на WEB-сервер в каталог /etc/apache2/http.keytab.Выставить права на keytab:  

  1. Установить права доступа к файлу с таблицей ключей: 

    Command

    sudo chown www-data:www-data /etc/apache2/http.keytab
    sudo chmod

644
  1. 600 /etc/apache2/http.keytab


  2. В конфигурацию виртуального хоста 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
    		
# Имя реалма
  1. # Имя области (realm) Керберос - обычно это имя домена ЗАГЛАВНЫМИ буквами
    		
KrbAuthRealms ASTRA
  1. KrbAuthRealms ASTRA.DOMAIN
    
    		
# Полное
  1. # Полное доменное имя
сервера
  1.  службы (имя ранее созданной службы HTTP):
    		KrbServiceName HTTP/client.astra.domain@ASTRA.DOMAIN
    
    		
# Имя
  1. # Имя файла, в котором сохранены ключи
    		Krb5Keytab /etc/apache2/http.keytab
    		KrbMethodNegotiate on
    		KrbMethodK5Passwd off
    		require valid-user
    		KrbSaveCredentials on
    	</Directory>
    </VirtualHost>


  2. Создать каталог для виртуального сервера:

    1. На компьютере -

WEB
    1. web-сервере назначить мандатные атрибуты каталогу с виртуальным сервером:   

      Command

      sudo pdpl-file -u 3:0:-1:ccnr /var/www/
      sudo pdpl-file -u 3:0:

0xffffffffffffffff
    1. -1:

0x1
    1. ccnr /var/www/html/


    2. Перезапустить web-сервер (службу apache2):

      Command

      sudo systemctl restart apache2


Проверка работы мандатных ограничений

  1. На компьютере - контроллере домена
создать
  1. :
    1. Создать доменного пользователя
, и выставить ему ненулевой   "максимальный уровень конфиденциальности"   (например, 1)
    1. .
    2. Разрешить созданному пользователю работать с ненулевой классификационной меткой. Например, установить ему максимальный иерархический уровень конфиденциальности 1.
  1. На компьютере -
WEB
  1. web-сервере
создать тестовые выполнить
  1. :
   command
    1. sudo pdpl-file 3:0:0xffffffffffffffff:0x1 /var/www/html/

        1. В папке

      web
        1. виртуального сервера /var/www/html/

        создать 
        1. создать 2 файла

      и установить метку на файл 1.html:    Commandsudo touch 
        1. , например 0.html и 1.html с содержимым "Hello world! 0" и "Hello world! 1" соответственно.

          Command

          echo "Hello world! 0" | sudo tee /var/www/html/0.html

      sudo  
        1. echo "Hello world! 1" | sudo tee /var/www/html/1.html


        2. Установить классификационную метку на файл 1.html:   

          Command

          sudo pdpl-file 1:0:0 /var/www/html/1.html

      Должно получиться так: 

      Image Removed


      1. На любом компьютере, который должен выступать в роли клиента:

        1. Включить в web-браузере авторизацию negotiate,  для чего открыть страницу about:config и

      Далее настроить в браузере negotiate авторизацию (
        1. добавить http://

      )
        1.   в параметры network.negotiate-auth.delegation-uris и network.negotiate-auth.trusted-uris:  

          Image Modified

      После всех настроек зайти на клиентский компьютер под доменной учетной записью с уровнем конфиденциальности 0: 

      Далее пытаемся зайти на 
        1. Войти на клиентском компьютере в пользовательскую сессию с нулевой классификационной меткой.
        2. Попытаться получить доступ к странице с ненулевым уровнем конфиденциальности http://client.astra.domain/html/1.html

        ,  в результате чего получаем отказ:  

      Image Removed

      А если запросить  
        1. . Результатом должен стать отказ в доступе:Image Added

          Предупреждение
          В диагностическом сообщении об ошибке указано, что объект не найден (ошибка 404), и не будет указана ошибка 403 (недостаточно прав). Такая диагностика исключает передачу информации о существовании объектов с высоким уровнем конфиденциальности, перекрывая возможный канал утечки информации.


        2. Проверить доступ к странице с нулевой классификационной меткой  

        1. http://client.astra.domain/html/0

      .html  ,  то  получаем доступ к содержимому файла
        1. .html. Доступ  должен предоставляться:  

          Image Modified
        2. Выполнить на клиентском компьютере вход под в пользовательскую сессию с ненулевой классификационной меткой. При этом должны быть доступны обе страницы.