Как уже упоминалось в одной из наших предыдущих заметок, в состав 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.
Похожие статьи
22 октября вышла новая версия 1.7 ОС СН Astra Linux Special Edition. Сейчас рассмотрим цены и условия лицензирования. (далее…)
22 октября вышла версия 1.7 отечественной операционной системы Astra Linux Special Edition. В этой статье рассмотрим изменения в схеме лицензирования, сертификации и сделаем обзор новинок защиты. Обзор состава новой версии...
Astra Linux Special Edition 1.7 22 октября 2021 года вышла новая версия дистрибутива Astra Linux Special Edition 1.7. Основные новинки сосредоточены вокруг нового уровня сертификации, новой схемы лицензирования и расширения...
Интересная заметка. Проверил, действительно работает. Значит ли это, что в качестве аутентификации можно использовать пользователей домена??? И, есть ли возможность использовать эту аутентификацию на 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. На диске его нет.