Меню Рубрики

Установка phpmyadmin и защита

Устанавливаем и защищаем 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 на Ubuntu 16.04/18.04

    phpMyAdmin — веб-приложение для администрирования СУБД MySQL. Благодаря веб-интерфейсу работать с базами данными проще и быстрее, чем через консоль.

    В этой статье мы пошагово покажем, как установить и обезопасить phpMyAdmin на Ubuntu 16.04/18.04.

    1 этап. Подготовка

    Все действия по установке phpMyAdmin выполняются на сервере через подключение по SSH.

    Перед установкой phpMyAdmin необходимо:

    • Создать не рутового (non-root) пользователя с sudo-правами. Для этого выполните команду:

    Где UserName — имя нового пользователя.

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

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

    Где UserName — имя созданного ранее пользователя.

    • Установить LAMP (Linux, Apache, MySQL и PHP) на сервер.
    • Обезопасить соединение с сервером с помощью SSL-сертификата. Так как phpMyAdmin использует веб-интерфейс и требует ввода логина и пароля, использование HTTP-протокола небезопасно. Рекомендуем установить SSL-сертификат.

    Готово. Подготовка завершена, далее установим phpMyAdmin.

    2 этап. Установка phpMyAdmin

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

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

    Чтобы включить mcrypt, выполните команду:

    Чтобы включить mcrypt, выполните команду:

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

    Вместо название_расширения укажите нужное расширение, а вместо 7.0 — версию PHP, которая установлена на сервер. По умолчанию на Ubuntu устанавливается версия 7.0.

    Перезагрузите Apache командой:

    Перейдите по адресу 123.123.123.13/phpmyadmin (где 123.123.13.123.123 — IP-адрес вашего сервера).

    Откроется страница авторизации в phpMyAdmin. Авторизуйтесь в панели, используя логин root и пароль, который указали при установке MySQL.

    Готово. Установка phpMyAdmin завершена.

    3 этап. Настройка безопасности phpMyAdmin

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

    Настройка Apache

    Сначала нужно включить возможность использования файла .htaccess в конфигурационном файле Apache.

    Чтобы открыть конфиг, выполните команду:

    Добавьте следующую строку в файл:

    Сохраните и закройте файл. Перезагрузите Apache командой:

    Создайте файл .htaccess для phpMyAdmin командой:

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

    • AuthType Basic — тип авторизации. Basic означает, что авторизация будет осуществляться на основе пароля.
    • AuthName — текст приветствия в диалоге авторизации.
    • AuthUserFile — файл пароля, который используется для авторизации. Файл должен находиться в недоступной для внешнего мира директории. Ниже мы создадим этот файл.
    • Require val >После ввода указанных строк сохраните и закройте файл.

    Затем нужно создать файл, путь к которому был указан в 4 шаге в значении AuthUserFile, и добавить в него пользователя.

    Сначала установите утилиту htpasswd . Выполните команду:

    Создайте файл и первого пользователя командой:

    Где username — имя пользователя, с помощью которого будет происходить авторизация. Введите пароль для нового пользователя. После этого файл будет создан и в него будет добавлен хэш указанного вами пароля.

    Чтобы создать дополнительного пользователя, используйте эту же команду без флага -c .

    Теперь при попытке зайти по адресу 123.123.123.13/phpmyadmin (где 123.123.13.123.123 — IP-адрес вашего сервера) будет появляться окно авторизации:

    источник

    Установка Phpmyadmin Ubuntu 18.04

    Phpmyadmin — это очень простой и удобный инструмент для управления базами данных MySQL. Он позволяет создавать и редактировать таблицы, вносить в них данные, администрировать пользователей баз данных, а также экспортировать и импортировать записи и структуру таблиц из базы данных.

    Всё это можно делать в простом веб-интерфейсе. В этой статье мы рассмотрим, как выполняется установка Phpmyadmin Ubuntu 18.04 с веб-сервером Apache. Я предполагаю, что такие компоненты, как Apache, MySQL и PHP у вас уже установлены. Если ещё нет, то сначала посмотрите статью установка LAMP Ubuntu 18.04.

    Установка Phpmyadmin в Ubuntu 18.04

    Прежде чем мы сможем установить Phpmyadmin на Ubuntu, нужно убедиться, что у вас установлено расширение php для работы с текстовыми строками в формате юникода. Для его установки выполните в терминале:

    sudo apt install php-mbstring

    Теперь можно установить Phpmyadmin Ubuntu 18.04:

    sudo apt install phpmyadmin

    Установщик спросит вас, какой веб-сервер будет использоваться для работы программы. Отметьте с помощью кнопки Пробел пункт apache2, а затем с помощью Tab и Enter нажмите кнопку Ок:

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

    На следующем этапе надо придумать пароль для пользователя Phpmyadmin, который будет использоваться программой для доступа к её базе данных, его мы тоже никогда использовать не будем:

    После этого установка Phpmyadmin Ubuntu завершена.

    Настройка Phpmyadmin Ubuntu 18.04

    Теперь Phpmyadmin будет доступен по адресу ip_вашего_сервера/phpmyadmin. Вы можете проверить, всё ли работает, просто открыв этот адрес в браузере:

    1. Создание пользователя для Phpmyadmin

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

    Для этого откройте консоль MySQL и выполните там такие команды:

    > CREATE USER ‘admin’@’localhost’ IDENTIFIED BY ‘пароль’;
    > GRANT ALL PRIVILEGES ON *.* TO ‘admin’@’localhost’ WITH GRANT OPTION;
    > FLUSH PRIVILEGES;

    Мы создали пользователя с именем admin и паролем «пароль». Вторая команда выдает этому пользователю права на все базы данных, а также даёт возможность изменять полномочия других пользователей, а третья обновляет таблицы привилегий. Теперь попробуйте авторизоваться в Phpmyadmin:

    2. Защита Phpmyadmin

    Если ваш Phpmyadmin установлен на производственном сервере, который доступен из сети, то, возможно, есть смысл создать для него дополнительный уровень защиты, добавив авторизацию. Для этого создайте файл /usr/share/phpmyadmin/.htaccess со следующим содержимым:

    sudo vi /usr/share/phpmyadmin/.htaccess

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

    Вот что значат эти строки:

    • AuthType Basic — устанавливает тип аутентификации, мы указываем, что будем использовать пароль;
    • AuthName — задает сообщение, которое будет видеть пользователь;
    • AuthUserFile — файл, откуда программа будет брать имена пользователей и пароли;
    • Require — указываем, что аутентификация обязательна.

    Затем создайте новый пароль для своего пользователя:

    sudo htpasswd -c /etc/phpmyadmin/.htpasswd пользователь

    Чтобы настройки из файла .htaccess заработали в этой папке, необходимо, чтобы для неё в файле /etc/apache2/apache2.conf значение AllowOverride было All:

    sudo vi /etc/apache/apache2.conf

    AllowOverride All
    Require all granted

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

    Как удалить Phpmyadmin ubuntu

    Чтобы удалить Phpmyadmin Ubuntu, достаточно выполнить такую команду:

    sudo apt purge phpmyadmin

    Выводы

    В этой небольшой статье мы рассмотрели, как выполняется установка и настройка Phpmyadmin Ubuntu 18.04. Как видите, всё стало намного проще, чем в предыдущих версиях, когда нам нужно было вручную включать различные модули и настраивать местоположение файлов программы.

    источник

    Предложение от 8host.com

    Установка и защита phpMyAdmin в Debian 9

    Для корректной работы многих веб-проектов нужны системы управления базами данных (СУБД), например, MySQL. Однако взаимодействовать с системой исключительно с помощью командной строки MySQL не всегда удобно.

    Благодаря phpMyAdmin пользователи могут управлять системой MySQL через веб-интерфейс. Данный мануал содержит пошаговые инструкции по установке и защите веб-интерфейса phpMyAdmin в Debian 9.

    Требования

    • Сервер Debian 9,настроенный по этому мануалу (с пользователем sudo и настроенным ufw).
    • Стек LAMP (его можно установить с помощью этого мануала).
    • Сертификат Let’s Encrypt для Apache 9. Его можно бесплатно получить с помощью мануала Создание сертификата Let’s Encrypt для Apache в Debian 9.

    При использовании программ вроде phpMyAdmin следует учитывать, что она:

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

    По этим причинам (а также из-за своей популярности и распространённости) данное приложение PHP часто подвергается атакам злоумышленников. Потому ни при каких обстоятельствах его нельзя запускать в удалённой системе по HTTP-соединению. Без SSL/TLS-сертификата для веб-сервера Apache использовать phpMyAdmin очень опасно.

    1: Установка phpMyAdmin

    Пакеты phpMyAdmin доступны в стандартном репозитории Debian.

    Обновите индекс пакетов и установите phpMyAdmin:

    sudo apt update
    sudo apt install phpmyadmin php-mbstring php-gettext

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

    Примечание: В первом вопросе опция apache2 выделена, но не выбрана. Если вы не нажмёте пробел, чтобы выбрать Apache, инсталлятор не переместит необходимые файлы во время установки. Чтобы выбрать Apache, нажмите пробел, Tab и Enter.

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

    Примечание: MariaDB – это разработанный сообществом форк MySQL, и хотя эти две программы тесно связаны друг с другом, они не являются полностью взаимозаменяемыми. phpMyAdmin был разработан специально для управления базами данных MySQL и ссылается на MySQL в различных диалоговых окнах, но установка MariaDB обычно работает с phpMyAdmin корректно.

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

    Теперь нужно явно включить PHP-расширение mbstring.

    Перезапустите Apache, чтобы обновить настройки:

    sudo systemctl restart apache2

    phpMyAdmin установлен. Но прежде чем войти и начать работу с базами данных, вам нужно проверить привилегии пользователей.

    2: Настройка аутентификации и привилегий

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

    В новых установках в Debian root-пользователь MariaDB по умолчанию поддерживает аутентификацию с помощью плагина unix_socket, а не с помощью пароля. Это позволяет во многих случаях обеспечить большую безопасность и удобство, но это также может усложнить работу, например, когда вам необходимо с помощью этого пользователя дать внешней программе (как phpMyAdmin) права администратора. Поскольку сервер использует учетную запись root для таких задач, как ротация логов, запуск и остановка сервера и т.п., лучше не менять ее метод аутентификации. Поскольку phpMyAdmin требует от пользователей парольной аутентификации, вам необходимо создать новую учетную запись MariaDB для доступа к интерфейсу.

    Если вы следовали мануалу по установке стека LAMP и создали учетную запись пользователя MariaDB, как описано в разделе 2, вы можете просто войти в phpMyAdmin под этой учетной записью, используя пароль, который вы создали при настройке.

    Если вы еще не создали пользователя MariaDB или хотите создать другого пользователя специально для управления базами данных через phpMyAdmin, выполните этот раздел. Для начала откройте оболочку MariaDB:

    Примечание: Если у вас включена парольная аутентификация (скорее всего, так и есть, если вы уже создали новую учетную запись для MariaDB), вам потребуется использовать другую команду для доступа к оболочке MariaDB. Следующая команда запустит клиент MariaDB с правами обычного пользователя, и вы получите права администратора только в базе данных после аутентификации:

    Создайте нового пользователя и выберите для него надежный пароль:

    CREATE USER ‘8host’@’localhost’ IDENTIFIED BY ‘password’;

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

    GRANT ALL PRIVILEGES ON *.* TO ‘8host’@’localhost’ WITH GRANT OPTION;

    Закройте оболочку MariaDB:

    Чтобы открыть интерфейс, посетите в браузере следующую ссылку:

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

    3: Защита phpMyAdmin

    Из-за своей распространённости PhpMyAdmin часто подвергается атакам злоумышленников. На данном этапе необходимо обеспечить интерфейсу достаточный уровень защиты для предотвращения вредоносного использования.

    Один из самых простых способ защиты phpMyAdmin – размещение шлюза безопасности. Это делается при помощи специальных файлов Apache под названием .htaccess.

    Сначала нужно включить поддержку файлов .htaccess, отредактировав конфигурационный файл Apache.

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

    В раздел нужно добавить параметр AllowOverride All:

    Options FollowSymLinks
    DirectoryIndex index.php
    AllowOverride All
    . . .

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

    sudo systemctl restart apache2

    Теперь приложение поддерживает файлы .htaccess; нужно только создать такой файл.

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

    sudo nano /usr/share/phpmyadmin/.htaccess

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

    Рассмотрим эти строки подробнее:

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

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

    Файл с паролями нужно создать в каталоге, заданном в директиве AuthUserFile, в данном случае это /etc/phpmyadmin/.htpasswd.

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

    Будет предложено выбрать и подтвердить пароль нового пользователя. После этого файл .htpasswd будет создан, а только что введённый пароль будет помещен в него в хэшированном виде.

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

    sudo htpasswd /etc/phpmyadmin/.htpasswd additionaluser

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

    https://domain_name_or_IP/phpmyadmin
    The server http://111.111.11.111:22 requires a username and password. The server says: Restricted Files.
    User Name:
    Password:

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

    Заключение

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

    источник

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

    Adblock
    detector