Поиск по сайту:

Как установить и защитить phpMyAdmin в Ubuntu 16.04


Введение

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

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

Предпосылки

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

Во-первых, мы предположим, что вы используете пользователя без полномочий root с привилегиями sudo, как описано в шагах 1-4 при начальной настройке сервера Ubuntu 16.04.

Мы также предполагаем, что вы завершили установку LAMP (Linux, Apache, MySQL и PHP) на свой сервер Ubuntu 16.04. Если это еще не сделано, вы можете следовать этому руководству по установке стека LAMP в Ubuntu 16.04.

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

  • Взаимодействует напрямую с вашей установкой MySQL
  • Обрабатывает аутентификацию с использованием учетных данных MySQL
  • Выполняет произвольные запросы SQL и возвращает результаты.

По этим причинам, а также потому, что это широко распространенное PHP-приложение, которое часто подвергается атакам, вам никогда не следует запускать phpMyAdmin на удаленных системах через обычное HTTP-соединение. Если у вас нет существующего домена, настроенного с сертификатом SSL/TLS, вы можете следовать этому руководству по защите Apache с помощью Let’s Encrypt в Ubuntu 16.04.

Выполнив эти шаги, вы готовы приступить к работе с этим руководством.

Шаг первый — установите phpMyAdmin

Для начала мы установим phpMyAdmin из стандартных репозиториев Ubuntu.

Мы можем сделать это, обновив наш локальный индекс пакетов, а затем используя систему упаковки apt, чтобы извлечь файлы и установить их в нашей системе:

  1. sudo apt-get update
  2. sudo apt-get install phpmyadmin php-mbstring php-gettext

Это задаст вам несколько вопросов, чтобы правильно настроить вашу установку.

Предупреждение. При появлении первого приглашения apache2 выделяется, но не выбирается. Если вы не нажмете пробел, чтобы выбрать Apache, программа установки не переместит необходимые файлы во время установки. Нажмите «Пробел», «Tab», а затем «Ввод», чтобы выбрать Apache.

  • Для выбора сервера выберите apache2.
  • Ответьте да, когда вас спросят, следует ли использовать dbconfig-common для настройки базы данных
  • Вам будет предложено ввести пароль администратора базы данных
  • Затем вам будет предложено выбрать и подтвердить пароль для самого приложения phpMyAdmin

В процессе установки файл конфигурации Apache phpMyAdmin фактически добавляется в каталог /etc/apache2/conf-enabled/, откуда он автоматически считывается.

Единственное, что нам нужно сделать, это явно включить расширения PHP mcrypt и mbstring, что мы можем сделать, набрав:

  1. sudo phpenmod mcrypt
  2. sudo phpenmod mbstring

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

  1. sudo systemctl restart apache2

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

https://domain_name_or_IP/phpmyadmin

Теперь вы можете войти в интерфейс, используя имя пользователя root и пароль администратора, который вы установили во время установки MySQL.

Когда вы войдете в систему, вы увидите пользовательский интерфейс, который будет выглядеть примерно так:

Шаг второй — защитите свой экземпляр phpMyAdmin

Мы смогли довольно легко настроить и запустить наш интерфейс phpMyAdmin. Однако мы еще не закончили. Из-за своего повсеместного распространения phpMyAdmin является популярной целью для злоумышленников. Мы должны принять дополнительные меры для предотвращения несанкционированного доступа.

Один из самых простых способов сделать это — разместить шлюз перед всем приложением. Мы можем сделать это, используя встроенные в Apache функции аутентификации и авторизации .htaccess.

Настройте Apache для разрешения переопределений .htaccess

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

Мы отредактируем связанный файл, который был помещен в наш каталог конфигурации Apache:

  1. sudo nano /etc/apache2/conf-available/phpmyadmin.conf

Нам нужно добавить директиву AllowOverride All в раздел файла конфигурации, например:

<Directory /usr/share/phpmyadmin>
    Options FollowSymLinks
    DirectoryIndex index.php
    AllowOverride All
    . . .

Когда вы добавите эту строку, сохраните и закройте файл.

Чтобы применить сделанные вами изменения, перезапустите Apache:

  1. sudo systemctl restart apache2

Создайте файл .htaccess

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

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

  1. sudo nano /usr/share/phpmyadmin/.htaccess

В этом файле нам нужно ввести следующую информацию:

AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user

Давайте рассмотрим, что означает каждая из этих строк:

  • AuthType Basic: в этой строке указывается тип аутентификации, который мы реализуем. Этот тип реализует аутентификацию по паролю с использованием файла паролей.
  • AuthName: устанавливает сообщение для диалогового окна аутентификации. Вы должны оставить его общим, чтобы неавторизованные пользователи не могли получить информацию о том, что защищается.
  • AuthUserFile: задает расположение файла паролей, который будет использоваться для аутентификации. Это должно быть за пределами каталогов, которые обслуживаются. Вскоре мы создадим этот файл.
  • Require valid-user: указывает, что доступ к этому ресурсу должен быть предоставлен только пользователям, прошедшим проверку подлинности. Это то, что на самом деле предотвращает вход неавторизованных пользователей.

Когда вы закончите, сохраните и закройте файл.

Создайте файл .htpasswd для аутентификации.

Расположение, которое мы выбрали для нашего файла паролей, было \/etc/phpmyadmin/.htpasswd. Теперь мы можем создать этот файл и передать его начальному пользователю с htpasswd. полезность:

  1. sudo htpasswd -c /etc/phpmyadmin/.htpasswd username

Вам будет предложено выбрать и подтвердить пароль для создаваемого пользователя. После этого создается файл с введенным вами хешированным паролем.

Если вы хотите ввести дополнительного пользователя, вам нужно сделать это без флага -c, например:

  1. sudo htpasswd /etc/phpmyadmin/.htpasswd additionaluser

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

https://domain_name_or_IP/phpmyadmin

После входа в систему аутентификации Apache вы попадете на обычную страницу аутентификации phpMyAdmin, чтобы ввести другие учетные данные. Это добавит дополнительный уровень безопасности, поскольку в прошлом phpMyAdmin страдал от уязвимостей.

Заключение

Теперь у вас должен быть настроен phpMyAdmin и он готов к использованию на вашем сервере Ubuntu 16.04. Используя этот интерфейс, вы можете легко создавать базы данных, пользователей, таблицы и т. д., а также выполнять обычные операции, такие как удаление и изменение структур и данных.