Меню Рубрики

Установка lamp phpmyadmin debian

Устанавливаем и защищаем phpMyAdmin в Debian 7

В прошлой заметке я подробно разобрал процесс установки базовых компонентов любого хостинга – Apache, MySQL и PHP. Уже сейчас хост готов к работе, но для удобства в нем не хватает несколько полезных инструментов. Одним из таких инструментов по праву считается phpMyAdmin. Он упрощает администрирование сервера БД. Добавление пользователей, создание новых баз, выполнение запросов – эти и многие другие задачи легко и просто решать при помощи phpMyAdmin. Установка phpMyAdmin немногим отличается от того же Apache. Правда если оставить phpMyAdmin без дополнительной защиты, то рано или поздно злоумышленники смогут скомпрометировать весь сервер. О простейшем, но эффективным способе защиты phpMyAdmin пойдет речь в этой заметке.

Установка phpMyAdmin

Для установки phpMyAdmin в терминале выполняем команду:

Загрузив все необходимые компоненты, запустится мастер настройки phpMyAdmin. В первом вопросе требуется определиться с установленным web-сервером. Доступно два варианта:

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

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

Далее нас попросят ввести пароль пользователя root MySQL-сервера. Вводим и нажимаем «enter».

Затем нас попросят придумать пароль для доступа в phpMyAdmin. Придумываем пароль посложней и нажимаем «Enter».

Добавляем phpMyAdmin к конфигурации к Apache

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

Перемещаемся в его конец и добавляем строчку для подключения phpMyAdmin:

Сохраняем внесенные изменения (ctrl + o) и закрываем файл (ctrl + x). Перезапускаем Apache:

Проверяем phpMyAdmin

Открывай браузер и переходим по ссылке http://ip_адрес/phpmyadmin . Открытие страницы входа phpMyAdmin – подтверждение успешной установки.

Защищаем phpMyAdmin

Пользоваться phpMyAdmin можно начиать прямо сейчас, но если не обеспечить ему минимальную защиту, то рано или поздно кто-нибудь его взломает. В php приложениях частенько находят ошибки и в большинстве случаев они носят фатальный характер. Чтобы избежать подобных проблем, необходимо изначально продумать организацию дополнительной линии защиты. Проще всего это сделать с помощью установки дополнительной аутентификации на уровне web-сервера.

При обращении к директории, в которой установлен phpMyAdmin, web-сервер будет запрашивать связку логин/пароль. Неправильный ввод данных на этом уровне не позволит злоумышленнику получить доступ к странице ввода учетных данных phpMyAdmin. Пробить такую защиту тоже можно, но сделать это будет намного сложней. Что ж, попробуем обыграть выше сказанный сценарий на практике.

Конфигурируем авторизацию на уровне Apache

Сначала откроем конфигурационный файл phpMyAdmin, который используется с Apache:

Находим в файле блок « » и дописываем директиву «AllowOverride All». Отредактированный блок в итоге должен выглядеть так:

Сохраняем изменения (ctrl + o) и закрываем файл (ctrl + x). При помощи директивы “AllowOverride” мы сообщили Apache, что все директивы могут быть переопределены через внешний файл настроек – «.htaccess».

Подготавливаем .htaccess

Создадим новый конфигурационный файл .htaccess в директории с phpmyadmin:

Читайте также:  Установка бензонасоса на дэу нексия

Прописываем в этом файле необходимость авторизации на уровне web-сервера:

В конфигурационном файле мне пришлось воспользоваться следующими директивами:

  • AuthType – директива определяет тип идентификации пользователя. В качестве значения я указываю Basic. Насколько мне известно, вариантов кроме Basic до сих пор в Apache не реализовано (поправьте, если ошибаюсь).
  • AuthName – директива используется совместно с предыдущей. В ней мы пишем текст, который будет отображаться в диалоге запроса логина/пароля. Значением директивы может быть абсолютно любой текст.
  • AuthUserFile – значением директивы выступает путь к файлу, содержащий информацию о пользователях и их паролях, которые могут получить доступ к закрытому ресурсу. На данном этапе этого файла нет, мы создадим его чуть позже.
  • Require – директива позволяет определить принцип аутентификации. Она может принимать несколько значений (например, мы можем перечислить пользователей или группы пользователей, которые могут получать доступ к закрытому ресурсу). Значение Valid-user подразумевает, что получить доступ к закрытому ресурсу могут получить все пользователи, доступные в файле AuthUserFile.

    Создание htpasswd файла

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

    Имя пользователя выбираем любое, с системными пользователями оно не переплетается. Утилита htpasswd запросит пароль для нового пользователя. Придумываем пароль и после завершения создания пользователя перезапустим apache:

    Проверяем авторизацию на уровне web-сервера

    Попробуем обратиться к phpMyAdmin. Если все описанные выше манипуляции были проделаны правильно, то страница входа phpMyAdmin сразу будет недоступна. Вместо нее появится окно с запросом имени пользователя и пароля. Вводим данные, которые мы указали утилите htpasswd и только после этого попадаем на страницу входа в phpMyAdmin.

    источник

    Установка phpmyadmin в Debian 10

    Из этой инструкции вы узнаете, как установить phpmyadmin Debian 10 с Apache, MariaDB, PHP (стек LAMP). phpMyAdmin — это бесплатный веб-инструмент для управления базами данных с открытым исходным кодом, написанный на PHP. Он предоставляет удобный интерфейс, для управления базой данных MySQL или MariaDB.

    Также мы узнаем, как включить базовую аутентификацию веб сервера для phpMyAdmin. Для начала, вам потребуется ОС Debian 10, работающая на вашем локальном компьютере или на удаленном сервере.

    Установка phpmyadmin в Debian 10

    Предполагаю, что вы уже установили стек LAMP в Debian. Если нет, ознакомьтесь с соответствующей инструкцией.

    Обратите внимание, что вам нужно иметь права root при установке программного обеспечения в Debian. Вы можете добавить sudo в начале команды или использовать команду su — для переключения на пользователя root. С этим разобрались, теперь давайте начнем установку phpMyAdmin.

    Шаг 1: Загрузите phpMyAdmin

    PhpMyAdmin не включен в репозиторий программного обеспечения Debian 10, поэтому мы должны загрузить его с phpmyadmin.net с помощью следующей команды.

    Подсказка: Вы всегда можете использовать вышеуказанный формат URL для загрузки последней стабильной версии phpMyAdmin. Просто замените 4.9.0.1 на номер последней версии.

    Переместите phpMyadmin 4.9 в каталог /usr/share/:

    sudo mv phpMyAdmin-4.9.0.1-all-languages /usr/share/phpmyadmin

    Читайте также:  Установка колонн норма времени

    Затем сделайте пользователя веб-сервера (www-data) владельцем этой директории.

    sudo chown -R www-data:www-data /usr/share/phpmyadmin

    Шаг 2: Создайте базу данных и пользователя

    Теперь нам нужно войти в консоль MariaDB и создать базу данных и пользователя для phpMyAdmin. По умолчанию пакет MariaDB в Debian использует unix_socket для аутентификации входа пользователя, что в основном означает, что вы можете использовать имя пользователя и пароль ОС для входа в консоль MariaDB. Таким образом, вы можете выполнить следующую команду для входа без предоставления пароля root для MariaDB.

    Затем создайте новую базу данных для phpMyAdmin, используя следующую команду SQL. Мы называем его phpmyadmin, вы можете использовать любое имя для базы данных.

    CREATE DATABASE phpmyadmin DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

    Следующая команда SQL создаст пользователя базы данных phpmyadmin и установит пароль, и в то же время предоставит все разрешения новой базы данных новому пользователю, чтобы позже phpMyAdmin мог выполнять запись в базу данных. Замените текст, выделенный красным, на ваш пароль.

    GRANT ALL ON phpmyadmin.* TO ‘phpmyadmin’@’localhost’ IDENTIFIED BY ‘vash_parol’;

    Обновите таблицу привилегий и выйдите из консоли MariaDB.

    Шаг 3: Установите модули PHP

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

    sudo apt install php-imagick php-phpseclib php-php-gettext php7.3-common php7.3-gd php7.3-imap php7.3-json php7.3-curl php7.3-zip php7.3-xml php7.3-mbstring php7.3-bz2 php7.3-intl php7.3-gmp

    Затем перезапустите Apache:

    sudo systemctl restart apache2

    Шаг 4. Настройка Apache

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

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

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

    # phpMyAdmin default Apache configuration
    Alias /phpmyadmin /usr/share/phpmyadmin

    Options SymLinksIfOwnerMatch
    DirectoryIndex index.php

    AddType application/x-httpd-php .php
    pen_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
    php_admin_value mbstring.func_overload 0

    # Disallow web access to directories that don’t need it

    Require all denied

    Require all denied

    Require all denied

    SetHandler application/x-httpd-php

    php_value include_path .
    php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
    php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
    php_admin_value mbstring.func_overload 0

    AddType application/x-httpd-php .php

    SetHandler application/x-httpd-php
    pen_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
    php_admin_value mbstring.func_overload 0

    # Disallow web access to directories that don’t need it

    Require all denied

    Require all denied

    Require all denied

    php_value include_path .
    php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
    php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
    php_admin_value mbstring.func_overload 0

    # Disallow web access to directories that don’t need it

    Require all denied

    Require all denied

    Require all denied

    Сохраните и закройте файл. Затем включите этот фрагмент конфигурации:

    sudo a2enconf phpmyadmin.conf

    Нам также нужно создать временную папку phpMyAdmin:

    sudo mkdir -p /var/lib/phpmyadmin/tmp
    sudo chown www-data:www-data /var/lib/phpmyadmin/tmp

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

    sudo systemctl reload apache2

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

    Если phpMyAdmin установлен на вашем локальном компьютере Debian, вы можете получить доступ к веб-интерфейсу phpMyAdmin, введя следующий текст в адресной строке браузера:

    Если соединение отклонено или не удалось установить, возможно, существует межсетевой экран, предотвращающий запросы HTTP. Если вы используете брандмауэр iptables, вам нужно выполнить следующую команду, чтобы открыть TCP-порты 80 и 443.

    sudo iptables -I INPUT -p tcp —dport 80 -j ACCEPT
    sudo iptables -I INPUT -p tcp —dport 443 -j ACCEPT

    Читайте также:  Установка подкрылков на калину гранту

    Если вы используете брандмауэр UFW, выполните эту команду, чтобы открыть порты TCP 80 и 443:

    sudo ufw allow http
    sudo ufw allow https

    Шаг 5: Запустите скрипт установки

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

    Нажмите кнопку Новый сервер, чтобы настроить сервер. Далее просто нажмите на кнопку Apply. Затем нажмите кнопку Display, чтобы отобразить файл конфигурации.

    В каталоге /usr/share/phpmyadmin/ создайте файл config.inc.php:

    sudo vi /usr/share/phpmyadmin/config.inc.php

    Скопируйте содержимое файла config.inc.php со страницы установки phpMyAdmin и вставьте его в файл /usr/share/phpmyadmin/config.inc.php.

    Шаг 6: Создайте администратора

    Теперь, если вы попытаетесь войти в phpMyAdmin с учетной записью root MariaDB, вы можете увидеть следующую ошибку.

    #1698 — Access denied for user ‘root ‘@’localhost’

    mysqli_real_connect(): (HY000/1698): Access denied for user ‘root ‘@’localhost’

    Если вы войдете в систему с пользователем phpmyadmin, вы не увидите вышеупомянутую ошибку. Однако пользователь phpmyadmin может использоваться только для управления базой данных phpmyadmin. Причиной ошибки является то, что по умолчанию пользователь root MariaDB проходит проверку подлинности с помощью плагина unix_socket, а не с помощью плагина mysql_native_password. Чтобы решить эту проблему, мы можем создать другого пользователя-администратора и предоставить все привилегии новому пользователю-администратору.

    Войдите на сервер MariaDB из командной строки.

    Создайте пользователя-администратора с парольной аутентификацией.

    CREATE USER admin@localhost IDENTIFIED BY ‘новый_пароль’;

    Предоставьте все привилегии для всех баз данных.

    GRANT ALL PRIVILEGES *.* TO admin@localhost WITH GRANT OPTION;

    Сбросьте привилегии и выйдите;

    Теперь вы можете войти в phpMyAmin с учетной записью администратора и управлять всеми базами данных.

    Шаг 7: Настройте хранилище настроек

    Теперь в панели управления phpMyAdmin вы можете увидеть предупреждающее сообщение.

    The phpMyAdmin configuration storage is not completely configured, some extended features have been deactivated. Find out why.
    Or alternately go to ‘Operations’ tab of any database to set it up there.

    Нажмите на ссылку Find out why. Затем нажмите Create, чтобы создать таблицы в базе данных phpmyadmin.

    Шаг 8: Ограничение доступа к каталогу /setup

    Чтобы ограничить доступ к каталогу /setup, мы можем включить базовую аутентификацию по паролю с веб-сервером Apache. Выполните следующую команду, чтобы установить пароль для пользователя admin. Файл /etc/apache2/htpasswd используется для хранения имен пользователей и паролей.

    sudo htpasswd -c /etc/apache2/htpasswd admin

    Затем отредактируйте файл конфигурации Apache для phpMyAdmin

    sudo vi /etc/apache2/sites-available/phpmyadmin-le-ssl.conf

    Добавьте следующие строки.

    # Authorize for setup

    AuthType Basic
    AuthName «phpMyAdmin Setup»
    AuthUserFile /etc/apache2/htpasswd

    Require valid-user

    Сохраните и закройте файл. Затем перезагрузите Apache, чтобы изменения вступили в силу:

    sudo systemctl reload apache2

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

    Выводы

    В этой статье мы разобрали как выполняется установка Phpmyadmin Debian 10 Buster вручную. Эту же инструкцию вы можете использовать и для других дистрибутивов.

    источник

  • Добавить комментарий

    Adblock
    detector