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

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

Ключ

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

Оглавление


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


Аннотация

Для работы web-сервера в составе домена с использованием для аутентификации доменной службы (ALD или FreeIPA):

  1. Компьютер должен быть зарегистрирован в домене;
  2. Служба web-сервера должна быть зарегистрирована в домене;

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

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

Информация

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

Command

Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)

После установки сервера во время инсталляции системы его следует активировать и запустить:

tip
iconfalse

systemctl enable apache2
systemctl start apache2


Для работы сервера в составе домена (авторизация через Керберос) на сервере должна быть включена возможность аутентификации через Керберос, и сервер должен быть зарегистрирован в контроллере домена.

Для домена ALD сценарий может выглядеть так:

Подсказка
iconfalse

keytab="/etc/apache2/keytab"
a2enmod auth_kerb
ald-admin service-add HTTP/`hostname`
ald-admin sgroup-svc-add HTTP/`hostname` --sgroup=mac
ald-client update-svc-keytab HTTP/`hostname` --ktfile="$keytab"
chown www-data "$keytab"
chmod 644 "$keytab"
systemctl restart apache2

При этом в конфигурационном файле должны быть заданы параметры авторизации, например:

использования аутентификации Kerberos дополнительно установить пакет libapache2-mod-auth-kerb, содержащий модуль аутентификации auth_kerb:

Command
sudo apt install libapache2-mod-auth-kerb


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

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

В конфигурационных файлах web-сайтов, доступ к которым предоставляется службой apache2, должны быть заданы параметры авторизации. Например, создадим файл /etc/apache2/sites-available/auth-kerberos.conf со следующим содержимым:

Блок кода
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www
    ErrorLog 
Подсказка
iconfalse

<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 <РЕАЛМ_КЕРБЕРОС>

# Полное доменное имя сервера

KrbServiceName

        AuthType Kerberos
        # Имя реалма Керберос - имя домена ЗАГЛАВНЫМИ буквами
        KrbAuthRealms <РЕАЛМ_КЕРБЕРОС>
        # Полное доменное имя сервера
        KrbServiceName HTTP/<полное_доменное_имя_сервера>
# Имя

        # Имя файла, в котором сохранены
ключиKrb5Keytab
 ключи
        Krb5Keytab /etc/apache2/keytab

KrbMethodNegotiate on
KrbMethodK5Passwd off
require valid-user
KrbSaveCredentials on

</Directory>

</VirtualHost>

После изменения конфигурации не забудьте перезапустить сервер:

Подсказка
iconfalse

systemctl restart apache2

Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.2)

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

Сразу после установки сервер настроен и готов к приему запросов на всех сетевых интерфейсах на 80 порту. Если по каким-то причинам он не работоспособен, следует проверить минимально необходимые настройки сервера. В файле /etc/apache2/ports.conf должны быть указаны параметры:

Подсказка
iconfalse
NameVirtualHost *:80
Listen 80

В каталоге /etc/apache2/sites-available должны находиться файлы с настройками виртуальных хостов и как минимум один из них должен быть разрешен к использованию командой:

панель
borderColor#c2e6ff
bgColor#e2f3ff
themeConfluence
a2ensite config_filename

Минимальное содержимое таких файлов с конфигурациями виртуальных хостов выглядит следующим образом:

Подсказка
iconfalse

<VirtualHost *:80>

ServerAdmin webmaster@localhost

ServerName server.domain.name

DocumentRoot /path/to/root/dir/

<Directory /path/to/root/dir/>

Options Indexes FollowSymLinks MultiViews

AllowOverride None

</Directory>

ErrorLog /var/log/apache2/error.log

LogLevel warn

CustomLog /var/log/apache2/access.log combine

</VirtualHost>

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

панель
borderColor#c2e6ff
bgColor#e2f3ff
themeConfluence
/etc/init.d/apache2 restart
Предупреждение
titleВнимание
Для обеспечения нормальной работы пользователя с сетевыми сервисами должны быть явно заданы диапазоны его мандатных уровней и категорий с помощью соответствующих утилит, даже если ему не доступны уровни и категории выше 0.

Настройка авторизации

Если не настроена авторизация через Kerberos, по умолчанию для всех ресурсов будет использоваться авторизация через PAM, при этом будет использоваться пользовательская БД, прописанная в настройках ОС. Логин и пароль пользователя будут передаваться от пользователя к серверу в открытом виде с использованием метода аутентификации Basic. Для корректного функционирования авторизации через PAM пользователю, от которого работает web-сервер (по умолчанию — www-data), необходимо выдать права на чтение информации из БД пользователей и сведений о метках безопасности. Например, добавить права на чтение файла /etc/shadow:

панель
borderColor#c2e6ff
bgColor#e2f3ff
usermod -a -G shadow www-data

и права на чтение каталога /etc/parsec/macdb:

панель
borderColor#c2e6ff
bgColor#e2f3ff

setfacl -d -m u:www-data:r /etc/parsec/macdb

setfacl -R -m u:www-data:r /etc/parsec/macdb

setfacl -m u:www-data:rx /etc/parsec/macdb

Настройка web-сервера Apache2 в ALD

Для обеспечения совместной работы web-сервера Apache 2.2 с ALD необходимо:

– наличие в системе, на которой функционирует web-сервер, установленного пакета клиента ALD — ald-client; – разрешение имен должно быть настроено таким образом, чтобы имя системы разрешалось, в первую очередь, как полное имя (например, myserver.example.ru); – клиент ALD должен быть настроен на используемый ALD домен; – в системе должен быть установлен модуль web-сервера Apache 2.2 auth_kerb из пакета libapache2-mod-auth-kerb.

Наличие модуля web-сервера Apache 2.2 auth_kerb предоставляет возможность организации совместной работы с ALD с использованием для аутентификации пользователей посредством Kerberos метода GSSAPI. Для проведения операций по настройке ALD и администрированию Kerberos необходимо знание паролей администраторов ALD и Kerberos. Для обеспечения возможности работы web-сервера Apache 2.2 с ALD необходимо:

активировать модуль web-сервера Apache 2.2 auth_kerb при помощи команды:

панель
borderColor#c2e6ff
bgColor#e2f3ff
a2enmod auth_kerb

в конфигурационных файлах виртуальных хостов web-сервера Apache 2.2 для областей, требующих авторизации, указать:

Подсказка
iconfalse

AuthType Kerberos

KrbAuthRealms REALM

KrbServiceName HTTP/server.my_domain.org

Krb5Keytab /etc/apache2/keytab

KrbMethodNegotiate on

KrbMethodK5Passwd off

require valid-user

создать в БД ALD с помощью утилиты администрирования ALD принципала, соответствующего настраиваемому web-серверу Apache. Принципал создается с автоматически сгенерированным случайным ключом:

панель
borderColor#c2e6ff
bgColor#e2f3ff
ald-admin service-add HTTP/server.my_domain.org

ввести созданного принципала в группу сервисов mac, используя следующую команду:


        KrbMethodNegotiate on
        KrbMethodK5Passwd off
        require valid-user
        KrbSaveCredentials on
    </Directory>
</VirtualHost>

Разрешить использование созданного файла для предоставления доступа к web-сайту:

Command
sudo a2ensite auth-kerberos

sudo mkdir /var/www/html/auth-kerberos

/var/www/html/auth-kerberos/index.html

<html>
<body>
<div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;">
Test Page for Kerberos Auth
</div>
</body>
</html>

После изменения конфигурации перезапустить службу apache2:

Command
iconfalse

sudo systemctl restart apache2


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

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

Для домена ALD сценарий настройки может выглядеть так:bgColor
Подсказка
iconfalse

keytab="/etc/apache2/keytab"
a2enmod auth_kerb
ald-admin service-add HTTP/`hostname`

панель
borderColor#c2e6ff
bgColor#e2f3ff
панель
borderColor#c2e6ff

ald-admin sgroup-svc-add HTTP/

server.my_domain.org

`hostname` --sgroup=mac

создать файл ключа Kerberos для web-сервера Apache с помощью утилиты администрирования ALD ald-client, используя следующую команду:


#e2f3ff

ald-client update-svc-keytab HTTP/

server.my_domain.org

`hostname` --ktfile="

/etc/apache2/keytab"

Полученный файл должен быть доступен web-серверу Apache по пути, указанному в конфигурационном параметре Krb5Keytab (в данном случае — /etc/apache2/keytab). Права доступа к этому файлу должны позволять читать его пользователю, от имени которого работает web-сервер Apache (как правило, владельцем файла назначается пользователь www-data);

сменить владельца полученного на предыдущем шаге файла keytab на пользователя www-data, выполнив следующую команду:

панель
borderColor#c2e6ff
bgColor#e2f3ff
chown www-data /etc/apache2/keytab

сделать файл /etc/apache2/keytab доступным на чтение для остальных пользователей:

панель
borderColor#c2e6ff
bgColor#e2f3ff
chmod 644 /etc/apache2/keytab

перезапустить web-сервер Apache, выполнив команду:

панель
borderColor#c2e6ff
bgColor#e2f3ff
/etc/init.d/apache2 restart
Браузер пользователя должен поддерживать аутентификацию negotiate. В последних версиях браузера Konqueror данная поддержка присутствует автоматически. В браузере Mozilla Firefox в настройках, доступных по адресу about:config, необходимо указать, для каких серверов доступна аутентификация negotiate. Для выполнения данной настройки необходимо задать маски доменов или в общем случае http- и https- соединения в качестве значений параметра network.negotiate-auth.trusted-uris, вставив, например, значение http://, https://.

$keytab"
chown www-data "$keytab"
chmod 644 "$keytab"
systemctl restart apache2


После изменения конфигурации перезапустить сервер:
Подсказка
iconfalse

systemctl restart apache2