Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Оглавление





Информация
titleДанная статья применима к:
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)

  • Astra Linux Common Edition 2.12
Предупреждение

В репозиториях Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) пакет libapache2-mod-auth-ntlm-winbind отсутствует.




Информация

NTLM — встроенный в операционные системы семейства Microsoft Windows протокол сетевой аутентификации. Широко применяется в различных сервисах на их базе и используется версиями Microsoft Windows вплоть до Windows 10 включительно.

Предупреждение
С самого изобретения протоколы NTLMv1 и NTLMv2 подвергались множеству нападений и демонстрировали широкий спектр серьёзных уязвимостей. В настоящее время рекомендуется использовать авторизацию через Kerberos.



Описание стенда

  • имеется настроенный контроллер домена Windows AD:
    • имя winserver.windom.ex
    • адрес 10.0.2.20;
    • администратор домена
      • имя administrator
      • пароль 1234567890
    • доменный клиент
      • winuser@windom.ex
      • пароль 0987654321
  • web-сервер Astra Linux

Ввод в домен

Действия выполняются на web-сервере. Ввод в домен выполняется с помощью инструмента astra-winbind.

  1. Перед вводом в домен настроить разрешение имен на использование контроллера DNS в качестве сервера DNS;
  2. Установить пакеты:

    Command
    sudo apt install astra-winbind



  3. Ввести компьютер в домен Windows AD:

    Command
    sudo astra-winbind -dc winserver.windom.ex -u adminisrator


Информация
Также для ввода в домен можно использовать инструмент astra-ad-sssd-client (см. Подключение Astra Linux к домену Microsoft Windows с помощью astra-ad-sssd-client).

Создание тестового сайта

Для создания тестового сайта использовался сценарий из статьи про инструмент управления Служба мониторинга ИБП APC apcupsd:

Информация
При работе в Astra Linux Special Edition с включенным МРД в файле /etc/apache2/apache2.conf установить параметру Astra Mode значение off.


Command
sudo apt install apcupsd apcupsd-cgi apache2
sudo a2enmod cgi
sudo systemctl restart apache2
firefox localhost/cgi-bin/apcupsd/multimon.cgi

В результате выполнения сценария будет запущен web-браузер firefox со страницей статуса ИБП (если ИБП не подключен или не обнаружен - то с соответствующим сообщением об ошибке, не влияющем на использование сайта в качестве примера).

Настройка аутентификации с помощью пакета libapache2-mod-auth-ntlm-winbind

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

  1. Загрузить пакет с модулем аутентификации:

    Command

    wget http://ftp.de.debian.org/debian/pool/main/a/apache-mod-auth-ntlm-winbind/libapache2-mod-auth-ntlm-winbind_0.0.0.lorikeet+svn+801-4_amd64.deb


  2. Установить загруженный пакет с модулем аутентификации:

    Command
    sudo apt install ./libapache2-mod-auth-ntlm-winbind_0.0.0.lorikeet+svn+801-4_amd64.deb


  3. Загрузить установленный модуль аутентификации:

    Command
    sudo a2enmod auth_ntlm_winbind


  4. Добавить пользователя www-data в группу winbindd_priv:

    Command
    sudo usermod -a -G winbindd_priv www-data


  5. Назначить группу winbindd_priv владельцем каталога /var/lib/samba/winbindd_privileged/pipe:

    Command
    sudo chgrp winbindd_priv /var/lib/samba/winbindd_privileged/pipe


  6. Перезапустить службу apache2:

    Command
    sudo systemctl restart apache2


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

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

    Command
    Titlentlm_auth --protocol=squid-2.5-ntlmssp --domain=<имя_домена> --username=<имя_доменного_пользователя> --password=<пароль>
    NT_STATUS_OK: The operation completed successfully. (0x0)

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

    Command
    Titlentlm_auth --protocol=squid-2.5-ntlmssp --domain=<имя_домена> --username=<имя_несуществующего_пользователя> --password=<пароль>
    NT_STATUS_NO_SUCH_USER: The specified account does not exist. (0xc0000064)


  2. Аналогичным образом выполнить проверку аутентификации с использованием протокола NTLM:

    Command
    ntlm_auth --protocol=squid-2.5-ntlmssp --domain=<имя_домена> --username=<имя_доменного_пользователя> --password=<пароль>

    и

    Command
    ntlm_auth --protocol=squid-2.5-ntlmssp --domain=<имя_домена> --username=<имя_несуществующего_пользователя> --password=<пароль>


Включение требования аутентификации на тестовом web-сайте

  1. Создать файл с параметрами локации, в которой находится созданный web-сайт:

    Command
    cat << EOT | sudo tee /etc/apache2/conf-enabled/apcupsd.conf
    <Location /cgi-bin/apcupsd/>
    AuthType NTLM
    NTLMAuth on
    NTLMAuthHelper "/usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp"
    Require valid-user
    </Location>
    EOT


  2. Перезапустить службу apache2:

    Command
    sudo systemctl restart apache2


  3. Открыть web-сайт в браузере:

    Command
    firefox localhost/cgi-bin/apcupsd/multimon.cgi

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

...