Установка и защита phpMyAdmin на Nginx сервере в Ubuntu

OpenVPN — открытая реализация одной из технологий VPN, предназначенная для организации защищенных виртуальных частных сетей между территориально удаленным локальными сетями, а также отдельными клиентами. Безопасность туннелей обеспечивается шифрованием с помощью OpenSSL.

Идея заменить Yum на DNF

Алеш Козумплик, разработчик проекта DNF, является сотрудником RedHat. Он говорит:

«Впервые в 2009 году, работая над «Anaconda» — установщиком системы, он получил представление о работе с Linux. Он хотел работать над совершенно другим проектом, который позволил бы ему изучить инструмент для работы с пакетами в Fedora».

Недостатки Yum, которые привели к основанию DNF:

  • Разрешение зависимостей YUM является кошмаром и было разрешено в DNF с помощью библиотеки SUSE libsolv и оболочки Python вместе с C Hawkey.
  • У YUM нет документированного API.
  • Создавать новые функции сложно.
  • Нет поддержки других расширений, кроме Python.
  • Меньшие затраты памяти и меньшая автоматическая синхронизация метаданных — процесс, требующий много времени.

Алеш Козумплик говорит, что у него нет другого выбора, кроме как разветвить YUM и разработать DNF. Сопровождающий пакета YUM не был готов реализовать эти изменения. YUM имеет около 59000 LOC, тогда как DNF имеет 29000 LOC (строк кода).

DNF впервые показала своё присутствие в Fedora 18. Fedora 20 была первым дистрибутивом Linux, который предлагал пользователям использовать функциональность DNF вместо YUM.

Расположение файла конфигурации dnf по умолчанию: /etc/dnf/.

Установка PostgreSQL на Ubuntu Server

Итак, давайте перейдем к установке и рассмотрим все шаги, которые необходимо выполнить, чтобы установить PostgreSQL 13 на Ubuntu Server

Установку я буду производить удаленно, для подключения к Ubuntu Server буду использовать программу PuTTY.

Заметка! О том, как установить Ubuntu Server, я подробно рассказывал в материале – Установка Linux Ubuntu Server

Шаг 1 – Подключение репозитория и обновление списка пакетов в системе

Установка PostgreSQL на Ubuntu Server

Установку и настройку PostgreSQL необходимо выполнять с правами пользователя root, поэтому давайте сразу переключимся на root.

Для этого пишем команду sudo -i и вводим пароль.

Далее, подключаем репозиторий, который будет содержать актуальную версию PostgreSQL, на текущий момент актуальной версией является PostgreSQL 13, поэтому в данном репозитории хранится именно эта версия, которую мы и будем устанавливать.

Однако, если Вам требуется установить не самую последнюю версию, то на этапе установки пакетов нужно будет указать номер версии в названии пакета, чуть ниже, на соответствующем шаге, я поясню, где именно необходимо указать номер конкретной версии.

Читайте также:  PowerShell — скачать и установить для Windows 10, 8.1, 7

Заметка! Что такое репозитории в Linux.

Для подключения репозитория вводим следующую команду, которая создает файл в источниках с адресом нужного репозитория.

sh -c ‘echo «deb $(lsb_release -cs)-pgdg main» > /etc/apt/’

Установка PostgreSQL на Ubuntu Server

После этого нам необходимо импортировать ключ подписи репозитория, для этого вводим команду.

wget —quiet -O — | sudo apt-key add —

Осталось обновить список пакетов в системе, это делаем стандартной командой.

apt-get update

И для проверки того, что теперь нам доступны пакеты PostgreSQL 13, давайте запустим команду поиска пакетов.

apt-cache search postgresql-13

Нужные пакеты нам доступны, и мы можем переходить к установке PostgreSQL 13.

Установка PostgreSQL на Ubuntu Server

Заметка! Установка Debian 10 рядом с Windows 10.

Шаг 2 – Установка необходимых пакетов для PostgreSQL

Для установки актуальной версии, т.е. PostgreSQL 13 и базовых стандартных утилит, необходимо установить пакет postgresql, это делается следующей командой.

apt-get -y install postgresql

Чтобы установить какую-то конкретную версию PostgreSQL, необходимо указать номер этой версии в названии пакета, например, для 12 версии необходимо установить пакет postgresql-12.

Шаг 3 – Проверка установки

Чтобы проверить, установился и запущен ли PostgreSQL, давайте выполним следующую команду, которая покажет статус сервиса PostgreSQL.

Установка PostgreSQL на Ubuntu Server

systemctl status postgresql

Как видим, PostgreSQL 13 установился и работает.

Заметка! Установка MySQL 8 на Windows 10.

Что требуется от операционной системы?

Для обеспечения должного уровня безопасности, рекомендуем ознакомиться с нашими рекомендациями.

Приступаем к установке.

Все действия по установке будем выполнять от пользователя root.

Что требуется от операционной системы?

1. Обновляем информацию о репозиториях:

apt-get update

2. Устанавливаем текущие обновления системы и установленных программ:

apt-get upgrade

3. Устанавливаем OpenVPN:

apt-get install openvpn

Что требуется от операционной системы?

Важно. В базовых репозиториях, зачастую отсутствует новейшая версия пакета. Разработчики OpenVPN ведут собственный репозиторий, о том как его настроить можно ознакомиться на официальном сайте.

4. Аналогичным образом устанавливаем пакет easy-rsa:

apt-get install easy-rsa

Действия после установки.

Размещаем скрипты easy-rsa:

cd /etc/openvpn/ && make-cadir easy-rsa

Подготавливаем публичные ключи (PKI — Public Key Infrastructure):

1. Переходим в директорию /etc/openvpn/easy-rsa:

cd /etc/openvpn/easy-rsa

2. Создаем символьную ссылку на файл конфигурации openssl:

ln -s

3. Инициализируем скрипт vars:

source ./vars

Система сообщит: NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/keys

4. Выполняем ./clean-all

5. Для создания центра сертификации выполняем скрипт:

./build-ca

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

Создаем ключ сервера.

Что требуется от операционной системы?

Для создания ключа сервера выполним команду:

./build-key-server server

Следует обратить внимание, что процесс похож на генерацию сертификата центра сертификации, однако, перед подписанием сертификата программа задаст 2 уточняющих вопроса. Если все указано верно, отвечаем “y”.

Читайте также:  Как установить kms сервер для активации windows 7

Перемещение сертификатов и ключей

Сервер

Ключи и сертификаты созданы. Настало время раздать их пользователям, а серверные ключи скопировать в соответствующие каталоги на сервере.

1. Переходим в каталог с ключами:

cd /etc/openvpn/easy-rsa/keys

2. Копируем только необходимые серверу файлы:

cp /etc/openvpn

Важно понимать, что перечисленные выше файлы являются основой работы и безопасности VPN сервера. Утеря или подмена этих файлов может иметь крайне негативные последствия. Важно хранить их в надежном месте и не передавать по открытым каналам связи.

Клиенты

Клиенту понадобится всего 3 файла , , Каждому клиенту необходимо отдавать только его ключи. Данные файлы можно разместить в директории /etc/openvpn на машине клиента, если она под управлением Linux-подобной ОС.

В ОС Windows их следует разместить в пользовательский каталог.

Настройка доступа по IP

Еще один способ защитить PhpMyAdmin — предоставить или запретить доступ к веб-интерфейсу определенным хостам на уровне сервера Nginx. Это позволит ограничить доступ всем, кроме некоторых IP-адресов, или направленно заблокировать нежелательные, вредоносные хосты.

Предоставление доступа определенным хостам

В Nginx предусмотрена функция управления доступом на основе IP. Настройка хостов производится в блоке location PhpMyAdmin, с помощью переменных «allow» (разрешить) и «deny» (запретить). Если нужно разрешить запросы только с данного хоста, то достаточно внести эти строки:

allow ; deny all;

В примере переменная «» — разрешенный публичный IP-адрес.

Чтобы узнать свой публичный IP адрес, нужно перейти по ссылке  или последовательно ввести в консоли команды:

sudo apt-get install curl

curl

Выводом будет обычный IP адрес.

Настройка доступа по IP

В принципе, разрешить доступ можно со скольких угодно хостов, создав «белый список». Параметр «deny all», наоборот блокирует все хосты, кроме разрешенных.

Примечание. При изменении сети или использовании VPN, публичный IP-адрес меняется. Важно вписать все возможные адреса хостов, с которых ожидается вход в PhpMyAdmin. В противном случае можно потерять доступ к веб-интерфейсу.

Чтобы начать настройку, нужно открыть файл конфигурации:

sudo nano /etc/nginx/sites-available/

Параметры вносятся примерным образом:

Для вступлений изменений в силу, требуется перезапустить процесс сервера Nginx:

sudo systemctl restart nginx

Ограничение доступа определенным хостам

Можно рассмотреть обратную ситуацию, когда требуется запретить доступ определенному хосту. Для этого в конфигурационный файл должна быть внесена следующая строка:

deny ;

В приведенном случае «» — запрещённый публичный IP-адрес.

Можно использовать любое число директив «deny», если нужно запретить доступ нескольким хостам.

Чтобы начать настройку, нужно открыть файл конфигурации:

sudo nano /etc/nginx/sites-available/

И внести параметры примерно подобным образом:

Для вступлений изменений в силу, требуется перезапустить процесс сервера Nginx:

sudo systemctl restart nginx

Настройка доступа по IP

После данной настройки все неразрешенные хосты будут отклоняться, получая ошибку 403.

Читайте также:  Windows 10 — отзывы и мнения пользователей

Azure Server Management Tools

Nano Server поддерживает возможность подключения и управления непосредственно через веб-службы Azure — Server Management Tools (SMT) . Эта возможность доступна в большинстве подписок Azure и не требует дополнительной оплаты. Для реализации возможности управления из облака Azure необходимо развернуть отдельный локальный шлюз.

Напоследок, перечислим еще несколько менее популярных возможностей удаленного управления сервером. Сюда входят Windows Management Instrumentation (WMI), Virtual Machine Manager (VMM) и System Center Operations Manager (SCOM).

Nano Server — это отличный вариант установки для Windows Server 2016, который имеет меньший размер, чем более ранняя опция установки — Server Core.

Nano Server — новая опция не управляемой установки для Windows Server 2016. Это глубокий рефакторинг Windows Server, оптимизированный для облака. Nano Server в Windows Server 2016 идеально подходит для следующих сценариев:

Azure Server Management Tools
  • Вычислить хост для Hyper-V или части отказоустойчивого кластера Windows
  • Контейнерный хост
  • Хост хранилища для файлового сервера масштабирования (SOFS)
  • DNS сервер
  • Веб сервер, на котором запущен IIS
  • Application Platform для приложений, которые создаются с использованием шаблонов облачных вычислений и выполняются в контейнере и/или гостевой системе VM

Nano Server не управляем; так, что для организаций, которые не полностью управляют своими текущими развёртываниями сервера удалённо, он может потребовать некоторых изменений в процедурах управления и операций.

Клиенты Windows Server обратили внимание на:

Nano Server решает эти проблемы, включая только необходимую для предлагаемых вариантов использования функциональность, и ничего больше.

Это минимизирует возможности внешних атак, тем самым устраняя перезагрузки и минимизируя зону обслуживания, обеспечивая более быстрое развёртывание и время перезагрузки, и освобождая ресурсы для других целей.

Улучшение безопасности Eliminating, установленная по умолчанию функция Nano Server также уменьшает количество открываемых драйверов, сервисов и портов.

Сравнение функциональных возможностей по умолчанию между Nano Server и Server Core

Azure Server Management Tools

Использование ресурсов Nano Server

Минимизация ресурсов, используемых Nano Server, освобождает их для увеличения мощности VM. А также, если требуются перезагрузки, повышает производительность загрузки.

Сравнение использования ресурсов между Nano Server и Server Core

Улучшение развёртывания Nano Serve

Время установки, включая специализации, для Nano Server значительно меньше, чем для Server Core. Это обеспечивает быстрое развёртывание, с меньшими затратами для копирования по сети при передислокации, и снижение пропускной способности сети для развёртываний, что должно быть учтено в общей мощности.

Требования для развёртывания, сравнение между Nano Server и Server Core

Структура Server Core

Azure Server Management Tools

На рисунке ниже показан Nano Server — отдельная опция установки из других параметров инсталляции сервера в Windows Server 2016, так же как в Windows Server 2008 и Windows Server 2008 R2 был Server Core.

Различные опции архитектуры установки для Windows Server 2016

Примечание . Перемещение между Nano Server и другие параметры установки потребуют переустановки.