Как уже упоминалось в одной из наших предыдущих заметок, в состав 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.
Интересная заметка. Проверил, действительно работает. Значит ли это, что в качестве аутентификации можно использовать пользователей домена??? И, есть ли возможность использовать эту аутентификацию на PHP?
Пользователей ALD не получится использовать, по крайней мере без танцев с бубном, если нужно ходить ald’шными, то тут самое оно это керберосная авторизация….постараюсь написать в ближайшее время.
Про php:
1. Повторяем пункты из статьи
2. aptitue install libapache2-mod-php5
3. nano /var/www/test.php
4. вводим, например:
# test.php
5. вводим в браузере имясервера/test.php
6. профит
P.S. А если имелся ввиду php-auth-pam….то это скучная история.
Здравствуйте.
Какие репозитории используются? libapache2-mod-php5 нет на диске с astra linux se 1.4
Проверил, в наличии (пакетlibapache2-mod-php5_5.4.4-2astra2_amd64.deb )
А можно ли выключить авторизацию вообще или проводить авторизацию по ip адресам, а не используя парольную защиту.
В SE нет.
Единственный способ — собрать из исходников свой Апач, тогда будет работать)
Спасибо, действительно полезная статья. В связи с отсутствием нормальной документации по Astra Linux просто умоляю вас продолжить писать и заполнять информационный вакуум данного направления. Лично от себя прошу написать обзор по установке и настройке Postgresql в Astra Linux. Еще раз спасибо.
В документации данная тема освещена:
Для Astra Linux SE 1.3 -> Руководство администратора РУСБ.10015-01 95 01 п. 11
Для Astra Linux SE 1.4 -> Руководство администратора РУСБ.10015-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
p.s. Наткнулся на это когда понадобилось по nfs подключать папку для сайта
Добрый день
Использую 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. На диске его нет.