Astra linux install nginx

Аннотация

В данной статье представлена инструкция по установке web-сервера NGINX. Web-сервера NGINX (пакет nginx) доступен в составе расширенного репозитория Astra Linux Special Edition x.7 (см. Репозитории Astra Linux Special Edition x.7: структура, особенности подключения и использования ).

Программное обеспечение расширенного репозитория является сторонним по отношению к Astra Linux, не дорабатывается с точки зрения выполнения требований по безопасности информации и не проверяется при сертификации.
Подробнее см. Использование стороннего программного обеспечения в аттестованных информационных системах, функционирующих под управлением Astra Linux Special Edition.

При использовании программного обеспечения расширенного репозитория рекомендуется для дополнительной изоляции процессов осуществлять их запуск в изолированной программной среде (контейнере) [п. 7.2 РукКСЗ1]. При использовании для этих целей Docker-контейнеров их запуск целесообразно осуществлять от имени непривилегированного пользователя в rootless-режиме, а при включенном мандатном контроле целостности (МКЦ) с применением технологии запуска контейнеров на пониженном [п. 7.2.1] или выделенном [п. 7.2.7] уровне МКЦ.

Что такое NGINX

Общая информация

NGINX (читается [engine x]) — это HTTP-сервер и обратный прокси-сервер, почтовый прокси-сервер, а также TCP/UDP прокси-сервер общего назначения, выполняющий следующие функции:

  • Основная функциональность HTTP-сервера:
    • Обслуживание статических запросов, индексных файлов, автоматическое создание списка файлов, кэш дескрипторов открытых файлов;
    • Акселерированное обратное проксирование с кэшированием, распределение нагрузки и отказоустойчивость;
    • Акселерированная поддержка FastCGI, uwsgi, SCGI и memcached серверов с кэшированием, распределение нагрузки и отказоустойчивость;
    • Модульность;
    • Фильтры, в том числе сжатие (gzip), byte-ranges (докачка), chunked ответы, XSLT-фильтр, SSI-фильтр, преобразование изображений; параллельная обработка подзапросов на одной странице в SSI-фильтре через прокси или FastCGI/uwsgi/SCGI;
    • Поддержка SSL и расширения TLS SNI;
    • Поддержка HTTP/2 с приоретизацией на основе весов и зависимостей;
    • Виртуальные серверы, определяемые по IP-адресу и имени;
    • Поддержка keep-alive и pipelined соединений;
    • Настройка форматов журналов, буферизованная запись в журналы, быстрая ротация журналов, запись журналов в syslog;
    • Специальные страницы для ошибок 3xx-5xx;
    • rewrite-модуль: изменение URI с помощью регулярных выражений;
    • Выполнение разных функций в зависимости от адреса клиента;
    • Ограничение доступа в зависимости от адреса клиента, по паролю (HTTP Basic аутентификация) и по результату подзапроса;
    • Проверка HTTP referer;
    • Методы PUT, DELETE, MKCOL, COPY и MOVE;
    • FLV и MP4 стриминг;
    • Возможность ограничения скорости отдачи ответов;
    • Возможность ограничение числа одновременных соединений и запросов с одного адреса;
    • Геолокация по IP-адресу;
    • A/B-тестирование;
    • Зеркалирование запросов;
    • Встроенный Perl;
    • Сценарный язык njs;
    • Перенаправление пользователей на IMAP- или POP3-серверы с использованием внешнего HTTP-сервера аутентификации;
    • Аутентификация пользователей с помощью внешнего HTTP-сервера аутентификации и перенаправление соединения на внутренний SMTP-сервер;
    • Поддерживаемые методы аутентификации:
      • POP3: USER/PASS, APOP, AUTH LOGIN/PLAIN/CRAM-MD5;
      • IMAP: LOGIN, AUTH LOGIN/PLAIN/CRAM-MD5;
      • SMTP: AUTH LOGIN/PLAIN/CRAM-MD5;
      • Проксирование TCP и UDP;
      • Поддержка SSL и расширения TLS SNI для TCP;
      • Распределение нагрузки и отказоустойчивость;
      • Ограничение доступа в зависимости от адреса клиента;
      • Выполнение разных функций в зависимости от адреса клиента;
      • Ограничение числа одновременных соединений с одного адреса;
      • Настройка форматов журналов, буферизованная запись в журналы, быстрая ротация журналов, запись журналов в syslog;
      • Геолокация по IP-адресу;
      • A/B-тестирование;
      • Сценарный язык njs;
      • Один главный и несколько рабочих процессов, рабочие процессы работают под непривилегированным пользователем;
      • Изменение настроек и обновление исполняемого файла без перерыва в обслуживании клиентов;
      • Поддержка kqueue (FreeBSD 4.1+), epoll (Linux 2.6+), /dev/poll (Solaris 7 11/99+), event ports (Solaris 10), select и poll:
        • Использование возможностей, предоставляемых kqueue, таких как EV_CLEAR, EV_DISABLE (для временного выключения события), NOTE_LOWAT, EV_EOF, число доступных данных, коды ошибок;
        • Использование возможностей, предоставляемых epoll, таких как EPOLLRDHUP (Linux 2.6.17+, glibc 2.8+) и EPOLLEXCLUSIVE (Linux 4.5+, glibc 2.24+);

        Оригинальная документация NGINX

        Оригинальная документация NGINX доступна по ссылке: https://nginx.org/ru/

        Установка NGINX

        Для установки пакета nginx:

          Подключить репозитории:

            актуальное оперативное обновление расширенного репозитория;

          Источник

          Установка и настройка связки 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.

          Источник

          Astra linux install nginx

          Скачиваем дистрибутив КриптоПро CSP с сайта.

          Распаковываем и устанавливаем КриптоПро CSP КС1 с дополнительными компонентами lsb-cprocsp-devel:
          tar -xvf ./linux-amd64_deb.tgz && cd ./linux-amd64_deb/
          sudo ./install.sh kc1 lsb-cprocsp-devel cprocsp-stunnel

          Для сборки Nginx на Astra Smolensk 1.6 SE необходимо установить пакеты build-essential и patch.

          Скачиваем актуальный devel DVD — https://download.astralinux.ru/astra/stable/smolensk/devel/1.6/
          Монтируем:
          sudo apt-cdrom add
          sudo apt update
          sudo apt-get install build-essential patch

          Скачиваем Nginx и накладываем патч:
          wget https://nginx.org/download/nginx-1.18.0.tar.gz
          tar -xvf ./nginx-1.18.0.tar.gz
          cp ./ng-nginx.1.18.0.patch ./nginx-1.18.0 && cd ./nginx-1.18.0/
          patch -p1 < ./ng-nginx.1.18.0.patch

          Получаем дополнительные исходные тексты:
          wget https://sourceforge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.gz
          tar -xvf ./pcre-8.45.tar.gz
          wget https://zlib.net/zlib-1.2.13.tar.gz
          tar -xvf ./zlib-1.2.13.tar.gz
          wget https://www.openssl.org/source/openssl-1.1.1o.tar.gz
          tar -xvf ./openssl-1.1.1o.tar.gz

          Собираем (предварительно проверив пути):
          ./configure \
          —user=nginx \
          —group=nginx \
          —with-cc-opt=’-fstack-protector -fstack-protector-strong —param=ssp-buffer-size=4 -Wformat -Werror=format-security -Werror=implicit-function-declaration -Winit-self -Wp,-D_FORTIFY_SOURCE=2 -fPIC’ \
          —with-ld-opt=’-Wl,-z,relro -Wl,-z,now -Wl,—as-needed -pie -L/opt/cprocsp/lib/amd64 -lrdrsup -lssp -lcapi10 -lcapi20′ \
          —prefix=/opt/nginx \
          —conf-path=/etc/nginx/nginx.conf \
          —error-log-path=/var/log/nginx/error.log \
          —http-log-path=/var/log/nginx/access.log \
          —lock-path=/var/run/lock/nginx.lock \
          —pid-path=/var/run/nginx.pid \
          —with-pcre=./pcre-8.45/ \
          —with-pcre-jit \
          —with-zlib=./zlib-1.2.13/ \
          —with-http_ssl_module \
          —with-http_sspi_module \
          —with-http_stub_status_module \
          —with-openssl=./openssl-1.1.1o/ \
          —with-openssl-opt=’no-gost no-comp no-dtls no-deprecated no-dynamic-engine no-engine no-hw-padlock no-nextprotoneg no-psk no-tests no-ts no-ui-console no-ocsp’ \
          —with-stream \
          —with-stream_ssl_module \
          —with-stream_sspi_module \
          —with-http_v2_module

          Для rhel based дистрибутивов добавляются опции:
          —with-pcre-opt=-fPIC —with-zlib-opt=-fPIC

          Копируем базовый конфиг в директорию с кодом:
          sudo cp ./nginx.conf.sample ./nginx-1.18.0/conf/nginx.conf
          make
          sudo make install

          Создаем системного пользователя:
          sudo adduser —system —no-create-home —group nginx
          sudo chown -R nginx:nginx /var/log/nginx/

          Переносим init скрипт:
          sudo cp ./nginx.init /etc/init.d/nginx
          sudo chmod +x /etc/init.d/nginx
          sudo systemctl daemon-reload

          Создаем запрос на сертификат для Nginx:
          sudo -u nginx /opt/cprocsp/bin/amd64/cryptcp -creatrqst -provtype 80 -rdn ‘CN=Astra, C=RU ,S=77 Москва, L=г. Москва’ -certusage 1.3.6.1.5.5.7.3.1 -cont ‘\\.\HDIMAGE\nginx1’ -ex /tmp/request.req

          Выпускаем на УЦ сертификат по запросу и устанавливаем в контейнре:
          sudo -u nginx /opt/cprocsp/bin/amd64/certmgr -install -store uMy -cont ‘\\.\HDIMAGE\nginx1’ -file /tmp/user.crt

          Дополнительная информация и пример конфигурационного файла по ссылке.

          Доступность сервиса проверяем с помощью:

          csptest
          /opt/cprocsp/bin/amd64/csptest -tlsc -server host_name -v

          браузера с поддержкой ГОСТ TLS (на Linux — Chromium GOST)

          Открыть страницу в браузере, посмотреть сертификат, убедиться что алгоритм ГОСТ.

          Источник

          Читайте также:  Pyinstaller build exe on linux
Оцените статью
Adblock
detector