Настройка web-сервера на Astra Linux SE 1.5
Web-сервер Apache2, входящий в состав Astra Linux SE 1.5 Smolensk, не допускает возможности анонимного использования ресурсов web-сервера и требует обязательной настройки авторизации пользователей.
Для обеспечения нормальной работы пользователя с сетевыми сервисами должны быть явно заданы диапазоны его мандатных уровней и категорий, даже если ему не доступны уровни и категории выше 0.
После установки сервера необходимо установить пакет libapache2-mod-auth-pam . После этого сервер настроен и готов к приему запросов на всех сетевых интерфейсах на 80 порту. Если по каким-то причинам он не работоспособен, следует проверить минимально необходимые настройки сервера.
В файле /etc/apache2/ports.conf должны быть указаны параметры:
NameVirtualHost *:80 Listen 80
В каталоге /etc/apache2/sites-available должны находиться файлы с настройками виртуальных хостов и как минимум один из них должен быть разрешен к использованию командой:
В команде необходимо использовать только имя файла (без указания полного пути).
Минимальное содержимое таких файлов с конфигурациями виртуальных хостов выглядит следующим образом (пример для аутентификации через PAM):
ServerAdmin webmaster@localhost ServerName server.domain.name AuthPAM_Enabled on AuthType Basic AuthName "PAM authentication" require valid-user DocumentRoot /var/www/ Options Indexes FollowSymLinks MultiViews AllowOverride None ErrorLog /var/log/apache2/error.log LogLevel warn CustomLog /var/log/apache2/access.log combined
Если не настроена аутентификация через Kerberos, то для всех ресурсов должна использоваться аутентификация и авторизация через PAM, при этом будет использоваться пользовательская БД, прописанная в настройках ОС. Для выполнения аутентификации и авторизации через PAM должен быть установлен пакет libapache2-mod-auth-pam и выполнена следующая команда:
Логин и пароль пользователя будут передаваться от пользователя к серверу в открытом виде с использованием метода аутентификации Basic.
Для корректного функционирования авторизации через PAM пользователю, от которого работает web-сервер (по умолчанию — 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
Если установлен модуль web-сервера Apache2 auth_kerb из пакета libapache2-mod-auth-kerb для аутентификации через Kerberos, нужно отключить его использование при помощи команды:
После окончания правки конфигурационных файлов необходимо перезапустить сервер командой:
ДОКУМЕНТАЦИЯ: ОПЕРАЦИОННАЯ СИСТЕМА СПЕЦИАЛЬНОГО НАЗНАЧЕНИЯ «ASTRA LINUX SPECIAL EDITION». Руководство администратора. Часть 1 (РУСБ.10015-01 95 01-1) Раздел 12. ЗАЩИЩЕННЫЙ КОМПЛЕКС ПРОГРАММ ГИПЕРТЕКСТОВОЙ ОБРАБОТКИ ДАННЫХ.
Установка и настройка связки NGINX + PHP + СУБД на Astra Linux
Обновлено: 21.03.2023 Опубликовано: 2016 год или раньше
Мы рассмотрим процесс настройки небольшого веб-сервера на базе NGINX с интерпретатором PHP и системами управления базами данных MySQL и PostgreSQL.
Данную инструкцию можно использовать для любой операционной системы Linux на основе Debian.
Подготовка сервера
Заходим в систему под суперпользователем:
Настраиваем сеть. В Astra Linux это делается также как и в Ubuntu:
auto eth0
iface lo inet eth0
address 192.168.0.15
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 192.168.0.1 192.168.0.2
* В данном примере мы настроили сетевой интерфейс eth0 (задали IP-адрес 192.168.0.15 маску 255.255.255.0 и шлюз по умолчанию 192.168.0.1)
Для применения настроек необходимо перезапустить сетевую службу:
service networking restart
В Astra Linux по умолчанию не настроены репозитории для установки пакетов, поэтому необходимо это сделать:
deb ftp://ftp.astra-linux.com/astra/current/orel/repository orel main contrib non-free
* Эта строчка подключает официальный репозиторий Astra Linux.
Теперь нужно обновить список пакетов и обновить систему:
Установим sshd для возможности удаленного управления нашим сервером:
apt install openssh-server
Установка и настройка Nginx, PHP, MySQL
Устанавливаем пакет mysql-server:
* Во время установки будет предложено ввести новый пароль для mysql-записи root
В официальных репозиториях Astra Linux нет Nginx, поэтому подключим официальный от nginx inc.:
deb http://nginx.org/packages/debian/ wheezy nginx
* wheezy соответствует 7-й версии Debian. У вас может быть другая версия. Будьте внимательны.
Для успешного получения списка пакетов от нового репозитория, добавляем в систему PGP-ключ:
apt-key add nginx_signing.key
Теперь можем обновлять список пакетов и устанавливать веб-сервер nginx:
Демон запускается автоматически. Попробуйте открыть браузер и ввести IP-адрес сервера. Вы должны увидеть приветствие от Nginx.
Устанавливаем php и php-интерпретатор:
В Astra Linux по умолчанию nginx работает от учетной записи nginx, а php-fpm — от www-data. В результате этого при попытке использовать веб-сервер с php-скриптами мы получим ошибку. Для решения этой проблемы необходимо поменять пользователя, от которого будет работать либо nginx, либо php-fpm. В данном примере, nginx:
* самая первая строчка — меняем nginx на www-data.
Настраиваем виртуальный домен для нового сайта:
server listen 80;
server_name site.local;
set $root_path /var/www/site.local;
gzip on;
client_max_body_size 128M;
gzip_min_length 1000;
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
gzip_types application/x-javascript text/plain application/xml text/css;
location / allow 192.168.0.0/16;
deny all;
root $root_path;
index index.php;
>
location ~ \.php$ fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
include fastcgi_params;
fastcgi_param DOCUMENT_ROOT $root_path;
>
location ~* ^.+\.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|exe|tar|bmp|js)$ root $root_path;
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.
Настройка Apache2 в Astra Linux
Сразу после установки сервер настроен и готов к приему запросов на всех сетевых интерфейсах на 80 порту. Если по каким-то причинам он не работоспособен, следует проверить минимально необходимые настройки сервера. В файле /etc/apache2/ports.conf должны быть указаны параметры:
NameVirtualHost *:80
Listen 80
В каталоге /etc/apache2/sites-available должны находиться файлы с настройками виртуальных хостов и как минимум один из них должен быть разрешен к использованию командой:
a2ensite config_filename
Минимальное содержимое таких файлов с конфигурациями виртуальных хостов выглядит следующим образом:
ServerAdmin webmaster@localhost
ServerName server.domain.name
DocumentRoot /path/to/root/dir/
Options Indexes FollowSymLinks MultiViews
AllowOverride None
ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined
После окончания правки конфигурационных файлов необходимо перезапустить сервер командой:
/etc/init.d/apache2 restart
ВНИМАНИЕ! Для обеспечения нормальной работы пользователя с сетевыми сервисами должны быть явно заданы диапазоны его мандатных уровней и категорий с помощью соответствующих утилит, даже если ему не доступны уровни и категории выше 0.
Настройка авторизации
Если не настроена авторизация через Kerberos, по умолчанию для всех ресурсов будет использоваться авторизация через PAM, при этом будет использоваться пользовательская БД, прописанная в настройках ОС. Логин и пароль пользователя будут передаваться от пользователя к серверу в открытом виде с использованием метода аутентификации Basic. Для корректного функционирования авторизации через PAM пользователю, от которого работает web-сервер (по умолчанию — www-data), необходимо выдать права на чтение информации из БД пользователей и сведений о мандатных метках. Например, добавить права на чтение файла /etc/shadow:
usermod -a -G shadow www-data
и права на чтение каталога /etc/parsec/macdb:
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 при помощи команды:
- в конфигурационных файлах виртуальных хостов web-сервера Apache 2.2 для областей, требующих авторизации, указать:
- создать в БД ALD с помощью утилиты администрирования ALD принципала, соответствующего настраиваемому web-серверу Apache. Принципал создается с автоматически сгенерированным случайным ключом:
- ввести созданного принципала в группу сервисов mac, используя следующую команду:
- создать файл ключа Kerberos для web-сервера Apache с помощью утилиты администрирования ALD ald-client, используя следующую команду:
Полученный файл должен быть доступен web-серверу Apache по пути, указанному в конфигурационном параметре Krb5Keytab (в данном случае — /etc/apache2/keytab). Права доступа к этому файлу должны позволять читать его пользователю, от имени которого работает web-сервер Apache (как правило, владельцем файла назначается пользователь www-data);
- сменить владельца полученного на предыдущем шаге файла keytab на пользователя www-data, выполнив следующую команду:
- сделать файл /etc/apache2/keytab доступным на чтение для остальных пользователей:
- перезапустить web-сервер Apache, выполнив команду: