Linux nginx php mysql phpmyadmin

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

Содержание:

Подготовка к установке

Чтобы установить PhpMyAdmin на Ubuntu 18.04, нужно подготовить стек программ LEMP, состоящий из веб-сервера Nginx, системы управления базами данных MySQL и языка программирования PHP. В репозиториях Ubuntu Linux есть всё необходимое. Достаточно лишь выполнить несколько команд.

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

Установка phpMyAdmin

Установка PhpMyAdmin выполняется следующей командой:

В процессе установки появится окно, предлагающее выбор сервера. Поскольку производится установка на сервер Nginx, достаточно нажать «TAB» и «ОК», оставив поля «< >» пустыми.

Следующим появится окно настройки пакета «dbconfig-common». Рекомендуется выбрать «Yes» (Да). Программа создаст базу данных в MySQL со служебной информацией.

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

Настройка MySQL

Предназначение PhpMyAdmin – управление базами данных MySQL. Поэтому работа PhpMyAdmin и MySQL тесно взаимосвязана.

Для аутентификации в веб-интерфейсе PhpMyAdmin используются данные пользователей MySQL, поэтому важно создать учётную запись MySQL и предоставить привилегии уровня «ALL PRIVILEGES».

Важно. Раздел статьи можно пропустить, если пользователь уже создан и имеет все необходимые привилегии.

Перед тем как выполнить создание нового пользователя нужно открыть оболочку MySQL следующей командой:

Чтобы создать учетную запись в MySQL с необходимыми привилегиями, нужно поочередно выполнить следующие команды в терминале:

Вместо «phpadmin» можно подставить собственный логин, а в поле «mypassword» — ввести собственный пароль.

Выйти из оболочки MySQL можно командой:

Настройка Nginx

PhpMyAdmin не будет работать, поскольку в Nginx отсутствует конфигурация, размещающая веб-интерфейс на определенном хосте.

Далее будет рассмотрен способ размещения веб-интерфейса PhpMyAdmin на 80 порту (HTTP).

Примечание. В будущем рекомендуется настроить Nginx на вещание трафика через 443 порт (HTTPS), установив SSL сертификат и обезопасив соединение от злоумышленников.

Получение информации о PHP

Перед тем как вносить параметры в файлы конфигурации нужно узнать наименование файла Unix сокета. Если этот параметр будет указан неверно, то, переходя на страницу веб-интерфейса PhpMyAdmin будет появляться ошибка 502.

Узнать название файла можно, выполнив последовательно пару команд:

Вывод будет следующим:

В примере «php7.4-fpm.sock» – необходимый файл Unix сокета.

Примечание. Название файла зависит от установленной версии PHP («php7.0-fpm.sock», «php7.2-fpm.sock» и т.д).

Создание конфига Nginx

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

Читайте также:  Увеличение размера диска с за счет диска d windows 10

В созданный файл вносятся следующие строки:

В данном примере важны следующие параметры:

  • IP-адрес сервера «194.61.0.6». Вместо него нужно подставить свой домен, например «site.ru».
  • «php7.4-fpm.sock» — файл Unix сокета.

После внесения кода, требуется сохранить файл. Если используется текстовой реактор Nano, то изменения применяются сочетанием клавиш «CTRL+X», далее следует нажатие «Y» и «Enter».

Теперь нужно удалить файл конфигурации Nginx по умолчанию — «default», и перенести созданный конфиг «phpmyadmin.conf» на его место:

Убедиться в отсутствии синтаксических ошибок можно командой:

Если получен следующий вывод, то всё в порядке:

Примечание. Если вывод Nginx отличается от полученного, значит при написании конфига были обнаружены ошибки. Возможно были допущены ошибки при расставлении скобок «>»

После выполнения предыдущих действий необходим перезапуск сервера Nginx для применения параметров. Выполняется перезагрузка командой:

Убедиться в правильности работы Nginx можно, выполнив команду:

Должен появиться следующий вывод:

Теперь следует проверить доступ к интерфейсу. Для этого нужно ввести в строке браузера IP-адрес, добавив «/phpmyadmin». Выглядеть результат должен следующим образом:

Теперь войти возможно, указав логин и пароль, использованные для подключения к консоли. Установку можно считать завершенной.

Однако, нужно учитывать тот факт, что теперь PhpMyAdmin присутствует в открытом доступе, а защита сервера находится на самом низком уровне. Нужно предпринять ряд шагов, которые обеспечат безопасность.

Смена стандартного местоположения PhpMyAdmin

Обычно программа находится по адресу «/phpmyadmin», «/pma», «/admin», «/mysql». Если оставить PhpMyAdmin в стандартном расположении, то злоумышленники могут использовать программы, взламывающие пароль методом брутфорса (перебора).

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

Для этого нужно открыть, созданный в предыдущих действиях, конфигурационный файл «phpmyadmin.conf» и найти строку «location /phpmyadmin <»:

При изменении слова «phpmyadmin» на нестандартное, меняется веб-адрес, а следовательно боты не смогут найти программу. К примеру, обозначим адресом PhpMyAdmin слово «ubuntu»:

Примечание. Вместо «ubuntu» нужно подставить свое наименование адреса к веб-интерфейсу PhpMyAdmin.

Теперь нужно сохранить изменения в файле и перезагрузить сервер Nginx следующей командой:

При попытке открыть в веб-браузере старый адрес, появится ошибка 404 (не найдено):

Теперь открыть страницу возможно только по новому адресу:

Установка ограничения root доступа

Учётная запись root даёт не только особые привилегия пользователям, но и является уязвимостью, играющей на руку злоумышленнику. С изменением адреса PhpMyAdmin была устранена уязвимость в безопасности для автоматизированных программ, но всегда стоит минимизировать риски и защититься от других видов атак на сервер.

Для обеспечения защиты PhpMyAdmin придётся ввести ограничение root прав программе. Для этого нужно создать файл конфигурации по адресу:

В созданный файл необходимо вставить следующий код:

В данном примере важны следующие параметры:

  • АllowNoPassword – вход без пароля (false – отключен);
  • AllowRoot – вход с учётной записи root пользователя (false – отключен).
Читайте также:  Как создать резервную копию образа системы windows 10

Как только файл будет сохранен, изменения вступят в силу. При попытке выполнить вход из учётной записи суперпользователя, появится ошибка — «Access Denied» (Доступ запрещен).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Как установить phpMyAdmin с Nginx в Ubuntu 18.04

phpMyAdmin — это инструмент на основе PHP с открытым исходным кодом для управления серверами MySQL и MariaDB через веб-интерфейс.

phpMyAdmin позволяет взаимодействовать с базами данных MySQL, управлять учетными записями и привилегиями пользователей, выполнять SQL-операторы, импортировать и экспортировать данные в различных форматах данных и многое другое.

В этом руководстве описывается, как установить phpMyAdmin с Nginx в Ubuntu 18.04.

Подготовка

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

Хотя это и не обязательно, настоятельно рекомендуется получить доступ к вашему экземпляру phpMyAdmin через HTTPS. Если на ваших сайтах не включен SSL, ознакомьтесь с нашей статьей о том, как защитить свой Nginx с помощью Let’s Encrypt в Ubuntu 18.04 .

Установка phpMyAdmin в Ubuntu

Установить phpMyAdmin — довольно простая задача. Начните с обновления списка пакетов:

Затем выполните следующую команду, чтобы установить пакет phpMyAdmin из репозиториев Ubuntu по умолчанию:

Читайте также:  Окно ввода windows forms

Установщик попросит вас выбрать веб-сервер, который должен быть автоматически настроен для запуска phpMyAdmin. Нет возможности выбрать Nginx, нажмите TAB чтобы выбрать OK а затем Enter . Мы настроим Nginx в следующем разделе.

Затем установщик спросит вас, хотите ли вы использовать инструмент dbconfig-common для настройки базы данных. Выберите Yes и нажмите Enter .

Введите пароль для регистрации phpMyAdmin в базе данных, выберите OK и нажмите Enter .

Вам будет предложено подтвердить пароль, ввести тот же пароль, выбрать OK и нажать Enter .

На этом этапе phpMyAdmin установлен на вашем сервере Ubuntu.

Создайте администратора MySQL

В системах Ubuntu под управлением MySQL 5.7 (и более поздних версий) пользователь root по умолчанию настроен на использование auth_socket аутентификации auth_socket .

Плагин auth_socket аутентифицирует пользователей, которые подключаются с локального хоста через файл сокета Unix. Это означает, что вы не можете пройти аутентификацию как root, указав пароль.

Вместо изменения метода аутентификации для корневого пользователя MySQL мы создадим нового административного пользователя MySQL. Этот пользователь будет иметь те же привилегии, что и пользователь root, и будет настроен на использование mysql_native_password аутентификации mysql_native_password .

Мы будем использовать этого пользователя для входа в панель управления phpMyAdmin и выполнения административных задач на нашем сервере MySQL.

Начните с входа на сервер MySQL в качестве пользователя root:

Из оболочки MySQL выполните следующие команды, которые создадут нового пользователя-администратора и предоставят соответствующие разрешения:

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

Настройка Nginx и phpMyAdmin

Есть несколько способов настроить Nginx для обслуживания файлов phpMyAdmin. Если серверный блок вашего домена уже настроен для обслуживания запросов PHP, вы можете просто создать символическую ссылку из установочных файлов phpMyAdmin в корневой каталог документов вашего домена.

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

Откройте текстовый редактор и создайте следующий файл:

Вставьте следующий контент:

Сохраните файл и закройте редактор.

Теперь вы можете добавить следующую строку в каждый блок сервера домена, где вы хотите получить доступ к phpMyAdmin, используя: domain.com/phpmyadmin

Доступ к phpMyAdmin

Чтобы получить доступ к интерфейсу phpMyAdmin, откройте свой любимый браузер и введите доменное имя вашего сервера или общедоступный IP-адрес, а затем /phpmyadmin :

Введите учетные данные для входа в систему с правами администратора и нажмите Go .

После входа в систему вы увидите панель управления phpMyAdmin, которая будет выглядеть примерно так:

Выводы

Поздравляем, вы успешно установили phpMyAdmin на свой сервер Ubuntu 18.04. Теперь вы можете начать создавать базы данных MySQL, пользователей и таблицы, а также выполнять различные запросы и операции MySQL.

Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.

Источник

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