Astra linux защищенный web сервер

Настройка PAM авторизации в защищенном Apache

Как уже упоминалось в одной из наших предыдущих заметок, в состав Astra Linux Special Edition входит защищенный комплекс программ гипертекстовой обработки данных.

В качестве веб-сервера туда включен Apache2, который доработан с целью улучшения безопасности. В данной заметке мы коротко опишем как настроить данный веб-сервер с использованием PAM авторизации.

aptitude install apache2 libapache2-mod-auth-pam
NameVirtualHost *:80 Listen 80
 ServerAdmin webmaster@localhost ServerName имясервера DocumentRoot /var/www/ AuthPAM_Enabled on AuthType Basic AuthName "PAM authentication" require valid-user Options Indexes FollowSymLinks MultiViews AllowOverride None ErrorLog /var/log/apache2/error.log LogLevel debug CustomLog /var/log/apache2/access.log common 
a2enmod auth_pam a2ensite имя_файла_конфигурации service apache2 reload
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
usermac -c 0:0 имя_пользователя_под_которым_будем_заходить

pam_apache_astra

  • Открываем браузер обращаемся по именисервера, который указали в конфигурационном файле виртуального хоста, и должны увидеть сперва окно с предложением ввести логи\пароль и после успешного ввода данных Вам откроется страница c текстом «It works!», как на картинке ниже:
  • На очереди рассказ про настройку kerberos авторизации. Stay tuned!

    P.S. Смотрите также нашу статью «Веб-приложения в защищённой среде» и вопросы посетителей, касающиеся Apache.

    39 комментариев

    Интересная заметка. Проверил, действительно работает. Значит ли это, что в качестве аутентификации можно использовать пользователей домена. И, есть ли возможность использовать эту аутентификацию на 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….то это скучная история.

    Источник

    Astra linux web server

    Заходим в систему под суперпользователем: Настраиваем сеть. В Astra Linux это делается также как и в Ubuntu:

    * В данном примере мы настроили сетевой интерфейс eth0 (задали IP-адрес 192.168.0.15 маску 255.255.255.0 и шлюз по умолчанию 192.168.0.1) Для применения настроек необходимо перезапустить сетевую службу:

    Читайте также:  Linux посмотреть крон задачи

    В Astra Linux по умолчанию не настроены репозитории для установки пакетов, поэтому необходимо это сделать:

    Для синхронизации времени установим пакет ntpdate, синхронизируем время и настроим автоматическое задание: # apt-get install ntpdate
    # ntpdate ru.pool.ntp.org
    # mkdir -p /var/cron/tabs && echo ‘0 0 * * * /usr/sbin/ntpdate ru.pool.ntp.org’ >> /var/cron/tabs/crontab && crontab /var/cron/tabs/crontab && crontab -l

    Установка и настройка Nginx, PHP, MySQL

    Теперь можем обновлять список пакетов и устанавливать веб-сервер nginx: # apt-get update
    # apt-get install nginx Демон запускается автоматически. Попробуйте открыть браузер и ввести IP-адрес сервера. Вы должны увидеть приветствие от Nginx. Устанавливаем php и php-интерпретатор: # apt-get install php5 php5-fpm В Astra Linux по умолчанию nginx работает от учетной записи nginx, а php-fpm — от www-data. В результате этого при попытке использовать веб-сервер с php-скриптами мы получим ошибку. Для решения этой проблемы необходимо поменять пользователя, от которого будет работать либо nginx, либо php-fpm. В данном примере, nginx:

    expires modified +1w; * site.local необходимо заменить на домен вашего веб-приложения или сайта.
    ** /var/www/site.local — директория, в которую мы поместим файлы сайта.
    *** allow 192.168.0.0/16 — подсеть, для которой мы разрешаем доступ к сайту. Если ограничивать не требуется, удалите строчку и следующую за ней deny all.
    **** Остальные параметры я рекомендую изучить самостоятельно. Создаем директорию для сайта, которую мы указали в конфигурационном файле: Создаем в нем файл index.php с функцией phpinfo: Перезапускаем наши демоны: # service php5-fpm restart && service nginx restart Проверьте работоспособность сервера, введя в адресной строке браузера IP-адрес сервера (в данном примере, 192.168.0.15). Сервер должен вернуть много параметров в различных таблицах.

    Также в данных таблицах вы должны увидеть «MySQL Suppert — Enabled». Это говорит о том, что сервер готов к работе с базой MySQL. Источник

    Операционные системы Astra Linux

    Операционные системы Astra Linux Common Edition и Astra Linux Special Edition разработаны коллективом открытого акционерного общества «Научно-производственное объединение Русские базовые информационные технологии» и основаны на свободном программном обеспечении. Astra Linux Common Edition предназначена для автоматизации коммерческих предприятий и органов государственного управления. Astra Linux Special Edition предназначена для применения в автоматизированных системах в защищенном исполнении, обрабатывающих информацию ограниченного распространения, включая государственную тайну до степени секретности «особой важности» . На сайте представлена подробная информация о разработанных операционных системах семейства Astra Linux, а также техническая документация для пользователей операционных систем и разработчиков программного обеспечения. Кроме того, предоставлена возможность скачать дистрибутивы и исходные тексты операционной системы Astra Linux Common Edition, а также задать интересующие вопросы разработчикам . Мы будем признательны Вам за вопросы и предложения, которые позволят совершенствовать наши изделия в Ваших интересах и адаптировать их под решаемые Вами задачи!

    Читайте также:  Copying files in linux to windows

    Репозитория открытого доступа в сети Интернет для операционной системы Astra Linux Special Edition нет. Операционная система распространяется посредством DVD-дисков. Информацию о сетевых репозиториях операционной системы Astra Linux Common Edition Вы можете получить на нашем сайте. Источник

    Установка и настройка Apache2 на Astra Linux

    В данной статье приведён пример установки и настройки Apache HTTP Server (Apache2) на OC Astra Linux SE. Если в ОС уже настроен виртуальный дисплей xvfb, то подготовка системы не требуется и можно перейти сразу к установке Apache2.

    Подготовка системы

    Выполните следующие действия: Разрешите доступ к DISPLAY 0.0. Для этого откройте файл X0.hosts, выполнив в терминале команду: sudo nano /etc/X0.hosts

    В открывшемся файле добавьте строку: Примечание . Если у вас физический дисплей настроен на другой номер, то после X необходимо указать соответствующую цифру. Откройте конфигурационный файл xserverrc: sudo nano /etc/X11/xinit/xserverrc exec /usr/bin/X -nolisten tcp «$@» Откройте конфигурационный файл fly-dmrc: sudo nano /etc/X11/fly-dm/fly-dmrc

    sudo service fly-dm restart После перезагрузки X-сервера запустите его заново командой startx и авторизуйтесь. Для корректной работы сервисов должен быть произведён вход пользователем в графическое окружение системы из физической консоли.

    Установка и настройка Apache2

    В стандартной поставке Astra Linux SE Apache2 доступен только в конфигурации prefork. В связи с этим для Astra Linux используется Apache2 собственной сборки, собранный с модулем coworker. Apache HTTP Server поставляется с архивом платформы и распаковывается в каталог /opt/ Foresight /fp9.2 -biserver/bin/apache/2.2. Примечание . При смене каталога расположения Apache HTTP Server надо изменить в файле conf/httpd.conf значения параметров ServerRoot, DocumentRoot, Directory и ScriptAlias, где указан путь до /opt/ Foresight /fp9.2-biserver/bin/apache/2.2, на соответствующий новому расположению веб-сервера. Перенесите init-файл apache2-fp9.2 в каталог /etc/init.d/ командами в терминале: sudo cp /opt/ Foresight /fp9.2 -biserver/bin/apache/2.2/apache2-fp9.2 /etc/init.d/ sudo chmod +x /etc/init.d/apache2-fp9.2

    init-файл запуска Apache2 можно создать вручную, вставив листинг скрипта ниже в файл /etc/init.d/apache2-fp9.2. Откройте файл для редактирования: sudo juffed /etc/init.d/apache2-fp9.2 Вставьте текст скрипта и сохраните файл apache2-fp9.2: # Required-Start: $local_fs $remote_fs $network $syslog $named # Required-Stop: $local_fs $remote_fs $network $syslog $named # Default-Start: 2 3 4 5 # Short-Description: Start/stop apache2 web server

    Читайте также:  Версия linux для разработчиков

    Источник

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

    В ОС Astra Linux Special Edition все действия должны выполняться от имени имени администратора компьютера с высоким уровнем целостности.

    Установить пакеты для ввода компьютера в домен, службу Apache2 и модуль авторизации через Kerberos:

    На компьютере — контроллере домена FreeIPA

    Получить авторизацию администратора домена, и, действуя от имени администратора домена, добавить службу HTTP:

    Далее полученный файл /tmp/http.keytab нужно будет скопировать на web-сервер в каталог /etc/apache2/.

    На компьютере — web-сервере Apache2 (Часть 2)

    Скопировать keytab (файл /tmp/http.keytab) с контроллера домена на web-сервер в каталог /etc/apache2/.

    Выставить права на keytab:

    В конфигурацию виртуального хоста virtualhost в файле /etc/apache2/sites-available/000-default.conf внести настройки:

     ServerAdmin webmaster@localhost DocumentRoot /var/www ErrorLog $/error.log CustomLog $/access.log combined AuthType Kerberos # Имя реалма Керберос - имя домена ЗАГЛАВНЫМИ буквами KrbAuthRealms ASTRA.DOMAIN # Полное доменное имя сервиса (имя ранее созданной службы HTTP): KrbServiceName HTTP/client.astra.domain@ASTRA.DOMAIN # Имя файла, в котором сохранены ключи Krb5Keytab /etc/apache2/http.keytab KrbMethodNegotiate on KrbMethodK5Passwd off require valid-user KrbSaveCredentials on 

    Создать каталог для виртуального сервера:

    На компьютере — web-сервере назначить мандатные атрибуты каталогу с виртуальным сервером:

    sudo pdpl-file 3:0:0xffffffffffffffff:ccnr /var/www/
    sudo pdpl-file 3:0:0xffffffffffffffff:ccnr /var/www/html/

    Проверка работы мандатных ограничений

    На компьютере — контроллере домена создать доменного пользователя, и выставить ему ненулевой «максимальный уровень конфиденциальности» (например, 1).

    На компьютере — web-сервере в папке виртуального сервера /var/www/html/ создать 2 файла и установить ненулевую мандатную метку на файл 1.html:

    echo «Hello world! 0» | sudo tee /var/www/html/0.html
    echo «Hello world! 1» | sudo tee /var/www/html/1.html
    sudo pdpl-file 1:0:0 /var/www/html/1.html

    На любом компьютере, который должен выступать в роли клиента, в web-браузере negotiate авторизацию (для чего открыть страницу about:config и добавить http:// в параметры network.negotiate-auth.delegation-uris и network.negotiate-auth.trusted-uris):

    После чего зайти на клиентский компьютер под пользовательской доменной учетной записью с нулевым уровнем конфиденциальности и попытаться получить доступ к странице с ненулевым уровнем конфиденциальности http://client.astra.domain/html/1.html. Результатом должен стать отказ в доступе:

    При этом в диагностическом сообщении об ошибке будет указано, что объект не найден (ошибка 404), и не будет указана ошибка 403 (недостаточно прав).
    Такая диагностика исключает передачу информации о существовании объектов с высоким уровнем конфиденциальности, перекрывая возможный канал утечки информации.

    При этом доступ к странице с нулевым уровнем конфиденциальности http://client.astra.domain/html/0.html должен предоставляться:

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

    Источник

    Оцените статью
    Adblock
    detector