Как уже упоминалось в одной из наших предыдущих заметок, в состав Astra Linux Special Edition входит защищенный комплекс программ гипертекстовой обработки данных, в качестве веб-сервера туда включен Apache2, который доработан с целью улучшения безопасности. В данной заметке мы коротко опишем как настроить данный веб-сервер с использованием PAM авторизации.
- Ставим пакеты
aptitude install apache2 libapache2-mod-auth-pam
- Проверяем, что в файле /etc/apache2/ports.conf содержатся следующие строки (если конечно Вы собираетесь использовать стандартный 80, а не какой-нибудь другой порт):
NameVirtualHost *:80
Listen 80
- Создаем конфигурацию виртуального хоста (в примере сайтик из одной стандартной страницы It works!):
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName имясервера
DocumentRoot /var/www/
<Directory /var/www/>
AuthPAM_Enabled on
AuthType Basic
AuthName "PAM authentication"
require valid-user
Options Indexes FollowSymLinks MultiViews
AllowOverride None
</Directory>
ErrorLog /var/log/apache2/error.log
LogLevel debug
CustomLog /var/log/apache2/access.log common
</VirtualHost>
- Включаем PAM авторизацию и наш виртуальный хост:
a2enmod auth_pam
a2ensite имя_файла_конфигурации
service apache2 reload
- Для корректного функционирования авторизации через PAM пользователю, от которого работает веб-сервер (по-умолчанию — www-data), необходимо выдать права на чтение информации из БД пользователей и сведений о мандатных метках, для этого выполняем следующие команды:
usermod -a -G shadow www-data
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
- Затем для пользователя под которым будем заходить, выполняем команду настройки (по-сути просто сбрасываем в 0) минимальный и максимальный наборы мандатных категорий (мы их и не настраивали):
usermac -c 0:0 имя_пользователя_под_которым_будем_заходить
- Открываем браузер обращаемся по именисервера, который указали в конфигурационном файле виртуального хоста, и должны увидеть сперва окно с предложением ввести логи\пароль и после успешного ввода данных Вам откроется страница c текстом «It works!», как на картинке ниже:

На очереди рассказ про настройку kerberos авторизации. Stay tuned!
P. S. Смотрите также нашу статью «Веб-приложения в защищённой среде» и вопросы посетителей, касающиеся Apache.
Похожие статьи
Команда Лаборатории 50 подготовила сборку Mono для Debian Buster и Astra Linux Special Edition 1.6. Состав В сборку входит: Mono 6.12; LibGdiPlus 6.0.6; Entity Framework 6; драйвер Npgsql Entity Framework...
Изменения по сравнению с версией 2020.2 Java Runtime Environment Импортированы исправления из OpenJDK 8u262. Закрыты уязвимости: CVE-2020-14583: incomplete interface type checks in Graal compiler (Hotspot, 8236867). CVE-2020-14664: out-of-bounds write in...
Запуск нескольких экземпляров Apache Tomcat Если есть необходимость запуска нескольких экземпляров сервера Apache Tomcat, то стандартные настройки и скрипты запуска не подходят. Ниже приведена инструкция и примеры скриптов для решения...
Интересная заметка. Проверил, действительно работает. Значит ли это, что в качестве аутентификации можно использовать пользователей домена??? И, есть ли возможность использовать эту аутентификацию на PHP?
Пользователей ALD не получится использовать, по крайней мере без танцев с бубном, если нужно ходить ald’шными, то тут самое оно это керберосная авторизация… постараюсь написать в ближайшее время.
Про php:
1. Повторяем пункты из статьи
2. aptitue install libapache2-mod-php5
3. nano /var/www/test.php
4. вводим, например:
# test. php
< ?php phpinfo(); ?>
5. вводим в браузере имясервера/test.php
6. профит
Здравствуйте.
Какие репозитории используются? libapache2-mod-php5 нет на диске с astra linux se 1.4
Проверил, в наличии (пакетlibapache2-mod-php55.4.4−2astra2_amd64.deb)
А можно ли выключить авторизацию вообще или проводить авторизацию по ip адресам, а не используя парольную защиту.
В SE нет.
Единственный способ — собрать из исходников свой Апач, тогда будет работать)
Спасибо, действительно полезная статья. В связи с отсутствием нормальной документации по Astra Linux просто умоляю вас продолжить писать и заполнять информационный вакуум данного направления. Лично от себя прошу написать обзор по установке и настройке Postgresql в Astra Linux. Еще раз спасибо.
В документации данная тема освещена:
Для Astra Linux SE 1.3 → Руководство администратора РУСБ.10 015−01 95 01 п. 11
Для Astra Linux SE 1.4 → Руководство администратора РУСБ.10 015−01 95 01 п. 6.10.1
Если будут конкретные вопросы пишите.
Артем, а можно эту документацию у Вас попросить? Ещё очень интересна аутентификация. Не знаю, как правильно выразиться, не очень в этом понимаю. Но интересно вот что, в данной статье берётся аутентификация локального пользователя, где установлен сервер. А если ПК прописан в домене, возможно ли авторизоваться пользователем домена при входе на сайт? И как этого пользователя обработать на PHP?
К сожалению тут (http://www.astra-linux.com/materialy-i-dokumentatsiya.html) ее нету, Вам нужно обратиться в Русбитех, чтобы получить, мы не имеем права ее распространять. На этой неделе постараюсь написать статью как настроить для доменных пользователей. Про php… мы в одном из своих проектов (python-django) делали следующим образом:
1. При использовании kerberos авторизации в каждом запросе передается REMOTE_USER
2. Берем его login = request.META.get («REMOTE_USER», None)
3. Дальше делаем, что считаем нужным, мы, например получали группу (роль пользователю назначалась на основе его членства в тех или иных группах ALD) в которую он входит: grp. getgrgid (pwd.getpwnam (self._login).pw_gid).gr_name (не забыть import grp, pwd)
Думаю можно повторить на php.
Спасибо, будем пробовать и запросим документацию. А по блогу, пишите ещё, очень интересно и познавательно, мало информации в интернете про Астру!
Артем, вот спасибо!!!
А то уже измучился… Если этого не знаешь, то в жизни, наверное, не догадаешься…
Добрый день! Подскажите, как настроить на SE 1.4? Что нужно писать вот здесь?
AuthName «PAM authentication»
Выдает ошибку
configuration error: couldn’t perform authentication. AuthType not set!: /
И еще вопрос — возможно ли в этой версии настроить web-сервер так, чтобы не проходить авторизацию при открытии сайта?
AuthType Basic
А для PHP нет желания сделать такую же модную библиотеку поддержки PARSEC как вы сделали для python?
Как я понял, мандатную метку можно определить, делая запрос к БД, если у записи или таблицы БД также есть метка. Не красиво, но других вариантов я не нашёл.
Кстати группу пользователя действительно можно получить через posix_getpwnam ($_SERVER['REMOTE_USER']).
А как отключить BasicAuth для запросов типа OPTIONS ведь Firefox перед отправкой POST (Через AJAX) шлет изначально OPTIONS чтобы узнать — поддерживает ли сервер указанный метод. И передать в этот prefly запрос заголовки авторизации нет никакой возможности. Условные директивы Апач тоже не понимает. В общем получается что сделать что-то нормальное типа SPA на AngularJS уже не получается.
Или есть какой-то способ обойти эту пролему?
Есть ли возможность настроить апач так, чтобы wget-ом можно было выкачивать из определенного каталога файлы любому узлу в сети? А то настроил все, как в статье. Сайт работает, пароль запрашивает, все ок. А если из консоли хочу скачать что-то, то выкачивать не дает.
Без авторизации нельзя.
А когда будет статья с авторизацией пользователей через ALD?
Инструкции есть в руководстве администратора. Если есть вопросы, спрашивайте.
Было бы очень интересно почитать, про аутефикацию ALD пользователей.
Доброго времени суток.
Хотелось бы узнать, можно ли настроить ADL авторизацию для сервера приложений tomcat 7 или 8 версии? Есть ли инструкции и будут ли вообще таковые?
Да, это возможно. Искать информацию по Tomcat + Kerberos.
Правильно ли я понимаю что принципал для сервера tomcat и файл ключа керберос можно создать по аналогии с apache?
Спасибо за статью! Очень помогла
Очень интересуюсь работой модуля WebDAV, серер настраивал, но в обычной редакции. Здесь не получается. Есть какие то инструкции для настройки WebDav сервера на АстраЛинуксе?
Доброго времени суток,
Интересует такой вопрос, можно ли средствами apache2 который в ходит в состав astra linux получить мандатный уровень пользователя?
А вот если все это сделано, а в логах пишет ошибку — permission denied: core_switch_user getmacnam_r () failed: %m
была такая же ситуация,
помогла простановка мандатного уровня (ставил минимум и максимум 0) у всех обычных пользователей
Добавть пожалуйста еще вот что
Файловая система с исходниками сайта DocumentRoot должна быть смонтирована с опцией acl в противном случае authorization fail
Добрый день
Использую PAM авторизацию, но столкнулся со следующей проблемой — при смене пользователя окно авторизации появляется дважды, в какую сторону нужно смотреть?
настройка default-ssl
AuthPAM_Enabled on AuthType Basic
AuthName «PAM autherizattion»
require valid-user
пользователя меняю командой
header ('WWW-Authenticate: Basic realm="Change user"');
header ('HTTP/1,.0 401 Unauthorized');
SE 1.5
разобрался, authname и realm должны быть одинаковые
Спасибо за статью!
Добрый день!
Использую апач с PAM как прокси к бэкенду.
AuthPAM_Enabled on AuthType Basic
AuthName «PAM authentication»
require valid-user
В хэдерах после авторизации в апач поле Authorization содержит значение «Basic ==">.
Затем я авторизуюсь на бэке, и получаю от него «свой» токен, который кладу в sessionStorage.
Дальнейшие запросы к api должны содержать уже мой токен в хэдере Authorization, но я не могу его изменить. Есть ли возможность обойти это?
Спасибо за статью! У меня все заработало ровно так как написано в статье, AL 1.3 SE
Добрый день! Если ли какие-то материалы (помимо документации Astra Linux) по настройке авторизации через Kerberos с целью использования доменными пользователями? При настройке по документации возникает ошибка на сервере: pdlugm_mkdir (*параметры*) failed: invalid argument. Спасибо.
Добрый день.
Можно ли отключить PAM авторизацию на AstraLinux 1.5 (Смоленск)
a2dismod auth_pam не решил проблему
Добрый день, как установить пакет libapache2-mod-auth-pam. На диске его нет.