401 Unauthorized

Аннотация

В статье описывается настройка аутентификации Kerberos для web-сервера apache2 в доменах FreeIPA или ALD. В качестве примера создается одностраничный тестовый web-сайт, требующий для просмотра аутентификации Kerberos. Параметры стенда:

  1. Имя домена: ipadomain0.ru;
  2. Контроллер домена:
    1. Имя сервера контроллера: ipa0.ipadomain0.ru;
    1. В качестве web-сервера используется отдельный сервер, введенный в домен;
    2. Имя сервера: web.ipadomain0.ru

    Компьютер с web-сервером зарегистрирован в домене, и далее служба web-сервера разворачивается на этом компьютере. Доступ к содержимому web-сайтов может осуществляться с помощью разных браузеров, требующих отдельных настроек аутентификации. Тестирование работы созданной web-службы выполняется с помощью команды curl, настройка web-браузеров рассматривается в отдельной главе.

    Установка пакетов

    Служба web-сервера представлена в Astra Linux пакетом apache2. При установке ОС пакет apache2 по умолчанию не устанавливается, но может быть выбран для установки на этапе выбора программного обеспечения во время установки ОС.

    Только для Astra Linux Special Edition:

    Службы, устанавливаемые при установке Astra Linux Special Edition (кроме службы SSH), по умолчанию не запускаются автоматически, так как запуск не настроенных служб может создавать угрозу безопасности.
    Если пакет apache2 устанавливался при установке ОС, то после запуска ОС и выполнения настройки службы следует вручную запустить службу и разрешить автоматический запуск службы после перезагрузки:

    Если пакет apache2 не был установлен ранее, то установить его можно с помощью графического менеджера пакетов или командой:

    Для использования аутентификации Kerberos для службы apache2 в составе дистрибутивов Astra Linux имеются два пакета:

    • libapache2-mod-auth-gssapi — рекомендуется к использованию;
    • libapache2-mod-auth-kerb — устарел и не рекомендуется к использованию.

      Рекомендованный вариант (libapache2-mod-auth-gssapi):

    При установке контроллера (реплики контроллера) домена FreeIPA служба apache2 будет установлена и настроена автоматически, однако настройка аутентификации Kerberos при этом не производится.

    Настройка конфигурации apache2

    В конфигурационных файлах web-сайтов, доступ к которым предоставляется службой apache2, должны быть заданы параметры аутентификации. Пример настройки параметров:

      Создать файл /etc/apache2/sites-available/auth-kerberos.conf со следующим содержимым:
      Рекомендованный вариант. Для пакета libapache2-mod-auth-gssapi:

     ServerAdmin webmaster@localhost DocumentRoot /var/www ErrorLog $/error.log CustomLog $/access.log combined AuthType GSSAPI AuthName "test" #GssapiBasicAuth On GssapiCredStore keytab: # Включить 3 нижних параметра, если нужно кешировать сессии (настройка web-браузеров для работы с Kerberos в данной статье не рассматривается) #GssapiUseSessions On #Session On #SessionCookieName myapp_web_gssapi_session path=/my_url;httponly;secure; Require valid-user 

    Полное описание параметров настройки web-сайтов доступно в документации apache2;

     ServerAdmin webmaster@localhost DocumentRoot /var/www/html/ ErrorLog $/error.log CustomLog $/access.log combined AuthType Kerberos # Имя области (realm) Керберос - имя домена ЗАГЛАВНЫМИ буквами KrbAuthRealms # Имя доменной службы, предоставляемой сервером KrbServiceName HTTP/ # Имя файла, в котором сохранены ключи доменной службы Krb5Keytab /etc/apache2/keytab KrbMethodNegotiate on KrbMethodK5Passwd off require valid-user KrbSaveCredentials on 
       
    Тестовая страница для проверки аутентификации Kerberos. Если вы видите этот текст, то аутентификация выполнена успешно.

    Настройка аутентификации Kerberos в домене FreeIPA

    Настройка аутентификации Kerberos в домене ALD

    Для домена ALD сценарий настройки состоит таких же операций, как сценарий для FreeIPA, и отличается только синтаксисом команд. Сценарий настройки для ALD может выглядеть так:

      На контроллере домена выполнить команды:

    keytab=»/etc/apache2/keytab»
    ald-client update-svc-keytab HTTP/`hostname` —ktfile=»$keytab»
    chown www-data «$keytab»
    chmod 644 «$keytab»

    Проверка работы аутентификации

    Созданный на этапе настройки apache2 тестовый сайт должен быть доступен по адресу http://. Далее для получения содержимого сайта используется команда curl. Особенностью работы этой команды является то, что для выполнения аутентификации Kerberos она использует имя таблицы билетов Kerberos, хранящейся в переменной окружения KRB5CCNAME. Если тестирование выполняется не от имени доменного пользователя, значение переменной окружения KRB5CCNAME должно быть установлено вручную.

      Проверка отказа в доступе:

        Попытаться прочитать содержимое web-сайта без выполнения аутентификации:

      curl http://`hostname`/auth-kerberos

      Unauthorized

      This server could not verify that you
      are authorized to access the document
      requested. Either you supplied the wrong
      credentials (e.g., bad password), or your
      browser doesn’t understand how to supply
      the credentials required.


      Apache/2.4.46 (Debian) Server at web.ipadomain0.ru Port 80


      curl —negotiate -u : http://`hostname`/auth-kerberos/

      Unauthorized

      This server could not verify that you
      are authorized to access the document
      requested. Either you supplied the wrong
      credentials (e.g., bad password), or your
      browser doesn’t understand how to supply
      the credentials required.


      Apache/2.4.46 (Debian) Server at web.ipadomain0.ru Port 80

      Расположение таблицы ключей зависит от выбранного способа входа (способа получения билетов Kerberos) и от установленного клиента домена. Например, возможный вариант значения, когда таблица ключей хранится в файле:

      klist
      Ticket cache: KEYRING:persistent:1000:1000
      Default principal: admin@IPADOMAIN0.RU Valid starting Expires Service principal
      03.11.2021 11:26:24 04.11.2021 11:26:22 krbtgt/IPADOMAIN0.RU@IPADOMAIN0.RU

      curl —negotiate -u : http://`hostname`/auth-kerberos/

      Тестовая страница для проверки аутентификации Kerberos.
      Если вы видите этот текст, то аутентификация выполнена успешно.


      Настройка web-браузеров

      Для работы с web-сервером, настроенным в соответствии с настоящей статьей, web-браузер пользователя должен поддерживать аутентификацию negotiate.

      Настройка web-браузера Mozilla Firefox

      Для включения аутентификации в web-браузере Mozilla Firefox в настройках, доступных по адресу about:config, необходимо указать для каких серверов доступна аутентификация negotiate. Для выполнения данной настройки в качестве значений параметра

      network.negotiate-auth.trusted-uris

      задать маски доменов или, в общем случае, разрешить использовать любые http- и https-соединения, указав, например, значения:

      При необходимости обеспечения сквозной аутентификации в браузере Mozilla Firefox в настройках в качестве значений параметра

      network.negotiate-auth.delegation-uris

      задать маски доменов, которым можно передавать данные для сквозной аутентификации. При этом в запускаемых сценариях должна быть определена переменная окружения KRB5CCNAME. Например, для сценариев php это будет выглядеть так:

      putenv("KRB5CCNAME=".$_SERVER[’KRB5CCNAME’]);

      Настройка web-браузера Konqueror

      В современных версиях браузера Konqueror поддержка аутентификации присутствует автоматически.

      Источник

      Настройка сети в Astra Linux «Смоленск»

      Краткое руководство по настройке сетевого интерфейса и доступа по протоколу SSH, а также установке необходимых сетевых утилит в консольной версии ОС специального назначения Astra Linux Special Edition «Смоленск» версий 1.6 и 1.7.1

      Для развёртывания серверов в консольной версии данной ОС в первую очередь необходимо настроить сетевой интерфейс. Для этого при входе в консоль необходимо выставить Integrity Level (уровень целостности) 63. В версии 1.6 он устанавливается принудительно, а в версии 1.7.1 его можно отключить, но в целях безопасности разработчики не рекомендуют его отключать.

      Открываем файл /etc/network/interfaces

      # sudo nano /etc/network/interfaces

      и в конце файла дописываем параметры сети, например:

      # Ethernet network interface auto eth0 iface eth0 inet static address 192.168.1.35 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1

      Затем создадим файл /etc/resolv.conf

      и прописываем адреса DNS-серверов, например:

      После этого запускаем сетевой интерфейс eth0

      Проверяем, применились ли изменения

      и пропингуем что-нибудь, например yandex.ru

      Если всё прописано правильно, то в консоли должны отображаться ответы.

      Что касается сетевых утилит, то в версии 1.7.1 они устанавливаются автоматически. В версии 1.6 их можно выбрать при установке, отметив чекбокс на пункте Средства работы в сети

      Если по каким-то причинам они не были установлены, тогда вставляем установочный диск или монтируем ISO-образ установочного диска в /mnt/cdrom/

      # mount /home/user/iso/smolensk_image.iso /mnt/cdrom

      и устанавливаем пакет net-tools

      # sudo apt install net-tools

      После установки пакета нам будут доступны различные сетевые утилиты, такие как ifconfig, netstat и другие.

      Для использования утилит для работы с DNS типа nslookup и host устанавливаем пакет dnsutils

      # sudo apt install dnsutils

      Также, если по каким-либо не были установлены Средства удалённого доступа SSH, необходимо установить соответствующие пакеты

      # sudo apt install openssh-server openssh-client ssh

      В версии 1.6 пакет ssh необходимо установить в любом случае

      Проверяем состояние запуска службы

      Если она активна, значит всё установилось правильно. Теперь к машине можно подключаться с помощью ssh-клиентов.

      Далее нам необходимо включить файрволл UFW. Для этого проверим статус запуска

      Он должен показать статус inactive.

      Для разрешения подключения по SSH включаем соответствующее правило

      Теперь файрволл должен запуститься и загружаться вместе с системой.

      Проверяем. Для этого перезагрузим систему. В версии 1.7.1 скомандуем

      а в версии 1.6 запускаем команду

      и ждём минуту, когда система начнёт перезагружаться.

      После перезагрузки всё должно нормально работать.

      Похожие посты:

      Источник

      Читайте также:  Установка wps office astra linux
Оцените статью
Adblock
detector