Работа в phpmyadmin

Содержание:

Download

Many operating systems already include a phpMyAdmin package and will
automatically keep it updated, however these versions are sometimes
slightly outdated and therefore may be missing the latest features.
Additionally, the configuration process varies widely by package and
may not adhere to the official phpMyAdmin documentation. That being said,
it is usually the quickest and easiest way of keeping an updated installation. Please contact your OS
vendor for more information. Some additional information is also available in our documentation. If you just want to
try phpMyAdmin in a virtual machine, you might want to check the .

If you do not find a suitable package or wish to install your own phpMyAdmin,
you can download one of the following
kits. Please note that each version has requirements for the minimum PHP
and MySQL versions.

Since July 2015 all phpMyAdmin releases are cryptographically signed by the
releasing developer. You should verify that the signature matches the archive
you have downloaded. Verification instructions are placed in our
documentation in the chapter.

Шаг 2 — Настройка аутентификации и прав пользователя

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

Настройка доступа по паролю для учетной записи root в MySQL

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

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

Затем проверьте, какой метод аутентификации используют ваши аккаунты пользователей MySQL с помощью следующей команды:

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

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

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

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

Настройка доступа по паролю для выделенного пользователя MySQL

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

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

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

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

После этого закройте командную строку MySQL:

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

Выполните вход в интерфейс с помощью root пользователя или с новым именем пользователя и паролем, которые вы только что задали.

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

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

Установка phpMyAdmin

Нет ничего проще, чем установить PMA на Linux. Я опишу как сделать это на Ubuntu 14.x в Digital Ocean. Зайдите на сервер через SSH.

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

Если вы ограничите доступ MySQL только через localhost (что вы должны сделать), то для хакера база будет вне зоны досягаемости. Конечно он может попытаться подключиться через SSH или осуществит атаку посредством SQL инъекций, но напрямую атаковать базу данных не сможет

Как только вы установите PMA, то данный инструмент становится потенциально уязвим для атак, поэтому меры предосторожности не повредят

Есть несколько мер, которые я бы посоветовал при конфигурировании PMA.

  1. Используйте очень надежные пароли для всех учетных записей MySQL, особенно для пользователя root. Например, 25 символов для пароля.
  2. Для каждого из сайтов, используйте различные учетные записи и привилегии. Таким образом, если один пароль будет украден, пострадает только одна база данных.
  3. Меняйте стандартный URL доступа к PMA. Таким образом люди не смогут достучаться до него по адресу http://yourblog.com/phpmyadmin. Хотя данная мера не очень эффективна, она всё же увеличивает безопасность.

Добваляем алиас в файл :

Перезагружаем apache:

Теперь PMA будет доступен по адресу http://yourblog.com/myobscuredpma.

Если вам необходимо изменить пароль вашего phpMyAdmin, измените содержимое файла :

4. Настройте веб-аутентификацию для доступа к PMA. После этого вам потребуется ввести дополнительный пароль:

Для настройки ограничений пользователя apache следуйте этим шагам:

Установите из пакета :

Создайте директорию для хранения ваших паролей:

Добавьте в поддержку для PMA:

Далее добавьте :

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

Настраиваем дополнительную аутентификацию:

AuthType Basic
AuthName "Login Required for Access"
AuthUserFile /etc/htpasswd/.htpasswd
Require valid-user

Укажите пароль:

И перезапустите Apache:

Теперь для доступа к PMA вам необходимо будет ввести ещё один пароль, как показано выше.

Основные сведения

phpMyAdmin поставляется с широким спектром документации, которые постоянно дополняются пользователями приложения.

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

Чтобы облегчить использование для широкого круга людей, phpMyAdmin переводится на 72 языка и поддерживает языки LTR и RTL.
phpMyAdmin — это проект со стабильной и гибкой базой кода.

Проект phpMyAdmin является членом программы Software Freedom Conservancy. SFC — это некоммерческая организация, которая помогает продвигать, улучшать, разрабатывать и защищать проекты Free, Libre и Open Source Software (FLOSS).

phpMyAdmin 5.1.0 is released

2021-02-24

We at the phpMyAdmin project are pleased to publish phpMyAdmin 5.1.0.

There are many new features and bug fixes; a few highlights include:

  • Improve virtuality dropdown for MariaDB > 10.1
  • Added an option to perform ALTER ONLINE (ALGORITHM=INPLACE) when editing a table structure
  • Added ip2long transformation
  • Improvements to linking to MySQL and MariaDB documentation
  • Add «Preview SQL» option on Index dialog box when creating a new table
  • Add a new vendor constant «CACHE_DIR» that defaults to «libraries/cache/» and store routing cache into this folder
  • Add $cfg for Google ReCaptcha siteVerifyUrl
  • Add the password_hash PHP function as an option when inserting data
  • Improvements to editing and displaying columns of the JSON data type.
  • Added support for «SameSite=Strict» on cookies using configuration «$cfg»
  • Fixed AWS RDS IAM authentication doesn’t work because pma_password is truncated
  • Add config parameters to support third-party ReCaptcha v2 compatible APIs like hCaptcha
  • Add $cfg to set the red text black when ssl is not used on a private network
  • Export blobs as hex on JSON export
  • Fix leading space not shown in a CHAR column when browsing a table
  • Added a rename Button to use RENAME INDEX syntax of MySQL 5.7 (and MariaDB >= 10.5.2)
  • Fixed missing option to enter TABLE specific permissions when the database name contains an «_» (underscore)
  • Fixed a PHP notice «Trying to access array offset on value of type null» on Designer PDF export
  • Fix for several PHP 8 warnings or errors, giving this release full compatibility with PHP 8

There are, of course, many more fixes you can see in the ChangeLog file included with this release or online at https://demo.phpmyadmin.net/master-config/index.php?route=/changelog

Downloads are available now at https://phpmyadmin.net/downloads/

Step 2 — Adjusting User Authentication and Privileges

When you installed phpMyAdmin onto your server, it automatically created a database user called phpmyadmin which performs certain underlying processes for the program. Rather than logging in as this user with the administrative password you set during installation, it’s recommended that you log in as either your root MySQL user or as a user dedicated to managing databases through the phpMyAdmin interface.

Configuring Password Access for the MySQL Root Account

In Ubuntu systems running MySQL 5.7 (and later versions), the root MySQL user is set to authenticate using the plugin by default rather than with a password. This allows for some greater security and usability in many cases, but it can also complicate things when you need to allow an external program — like phpMyAdmin — to access the user.

In order to log in to phpMyAdmin as your root MySQL user, you will need to switch its authentication method from to one that makes use of a password, if you haven’t already done so. To do this, open up the MySQL prompt from your terminal:

Next, check which authentication method each of your MySQL user accounts use with the following command:

In this example, you can see that the root user does in fact authenticate using the plugin. To configure the root account to authenticate with a password, run the following command. Be sure to change to a strong password of your choosing:

Note: The previous statement sets the root MySQL user to authenticate with the plugin. , is MySQL’s preferred authentication plugin, as it provides more secure password encryption than the older, but still widely used, .

However, some versions of PHP don’t work reliably with . PHP has reported that this issue was fixed as of PHP 7.4, but if you encounter an error when trying to log in to phpMyAdmin later on, you may want to set root to authenticate with instead:

Then, check the authentication methods employed by each of your users again to confirm that root no longer authenticates using the plugin:

You can see from this output that the root user will authenticate using a password. You can now log in to the phpMyAdmin interface as your root user with the password you’ve set for it here.

Configuring Password Access for a Dedicated MySQL User

Alternatively, some may find that it better suits their workflow to connect to phpMyAdmin with a dedicated user. To do this, open up the MySQL shell once again:

If you have password authentication enabled for your root user, as described in the previous section, you will need to run the following command and enter your password when prompted in order to connect:

From there, create a new user and give it a strong password:

Note: Again, depending on what version of PHP you have installed, you may want to set your new user to authenticate with instead of :

Then, grant your new user appropriate privileges. For example, you could grant the user privileges to all tables within the database, as well as the power to add, change, and remove user privileges, with this command:

Following that, exit the MySQL shell:

You can now access the web interface by visiting your server’s domain name or public IP address followed by :

Log in to the interface, either as root or with the new username and password you just configured.

When you log in, you’ll see the user interface, which will look something like this:

Now that you’re able to connect and interact with phpMyAdmin, all that’s left to do is harden your system’s security to protect it from attackers.

Правила устройства БД в PhpMyAdmin на локальном сервере

  • Каждый столбец имеет уникальное имя;
  • Все столбцы должны располагаться в определенном порядке, который задается в момент создания БД;
  • В базе данных должен быть обязательно хоть один столбец. Строк может не быть;
  • Каждая строка не может повторяться;

Смотреть:

Данные вставляемые в столбец, имеют уникальный ТИП_ДАННЫХ.

Наиболее распространённые следующие типы данных:

  • «DECIMAL» – Десятичные числа;
  • «CHAR» – Краткий текст длинной до 255 символов;
  • «INT» – Числа целые;
  • «LONGTEXT» – Текст до 4,294,967,295 символов;
  • «TEXT» – Текст обычный до 65,535 символов;
  • «Date» – Даты, формат ГГГГ-ММ-ДД;
  • «DATETIME» – дата и время ГГГГ-ММ-ДД ЧЧ: ММ: СС;
  • «VARCHAR» – любые символы;
  • «Time» – время – формат ЧЧ:MM:СС.

Язык базы данных в PhpMyAdmin на локальном сервере

Главный язык реляционных баз данных язык SQL. На нем пишутся запросы к базе данных. Называются запросы – SQL запрос. Для отправления SQL запросов в phpMyAdmin есть вклада: SQL, в верхнем горизонтальном меню.

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

WebOnTo.ru

Step 3 — Securing Your phpMyAdmin Instance

Because of its ubiquity, phpMyAdmin is a popular target for attackers, and you should take extra care to prevent unauthorized access. One way of doing this is to place a gateway in front of the entire application by using Apache’s built-in authentication and authorization functionalities.

To do this, you must first enable the use of file overrides by editing your phpMyAdmin installation’s Apache configuration file.

Use your preferred text editor to edit the file that has been placed in your Apache configuration directory. Here, we’ll use :

Add an directive within the section of the configuration file, like this:

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

When you have added this line, save and close the file. If you used to edit the file, do so by pressing , , and then .

To implement the changes you made, restart Apache:

Now that you have enabled the use of files for your application, you need to create one to actually implement some security.

In order for this to be successful, the file must be created within the application directory. You can create the necessary file and open it in your text editor with root privileges by typing:

Within this file, enter the following information:

/usr/share/phpmyadmin/.htaccess

Here is what each of these lines mean:

  • : This line specifies the authentication type that you are implementing. This type will implement password authentication using a password file.
  • : This sets the message for the authentication dialog box. You should keep this generic so that unauthorized users won’t gain any information about what is being protected.
  • : This sets the location of the password file that will be used for authentication. This should be outside of the directories that are being served. We will create this file shortly.
  • : This specifies that only authenticated users should be given access to this resource. This is what actually stops unauthorized users from entering.

When you are finished, save and close the file.

The location that you selected for your password file was . You can now create this file and pass it an initial user with the utility:

You will be prompted to select and confirm a password for the user you are creating. Afterwards, the file is created with the hashed password that you entered.

If you want to enter an additional user, you need to do so without the flag, like this:

Then restart Apache to put authentication into effect:

Now, when you access your phpMyAdmin subdirectory, you will be prompted for the additional account name and password that you just configured:

After entering the Apache authentication, you’ll be taken to the regular phpMyAdmin authentication page to enter your MySQL credentials. By adding an extra set of non-MySQL credentials, you’re providing your database with an additional layer of security. This is desirable, since phpMyAdmin has been vulnerable to security threats in the past.

Импорт / экспорт базы данных на XAMPP phpMyAdmin

Для управления базой данных MySQL phpMyAdmin предоставляет вам эффективную платформу. Вы можете обрабатывать данные откуда угодно, используя phpMyAdmin. Более того, возможность импорта и экспорта базы данных дает вам наилучшие шансы на восстановление после любой внезапной или неизбежной потери данных. Точно так же перенос данных с одного сервера на другой может выполняться безупречно. Это веб-интерфейс, который позволяет восстанавливать данные из любого места.

Импортировать базу данных на XAMPP phpMyAdmin

Однако данные легко импортировать или экспортировать, и следующие шаги могут помочь вам в этом. Итак, чтобы импортировать базу данных с помощью phpMyAdmin XAMPP, выполните следующие шаги.

  • Откройте базу данных в phpMyAdmin.
  • Щелкните Базы данных в верхнем меню.
  • В раскрывающемся меню выберите имя базы данных, которую вы хотите импортировать.
  • Щелкните вкладку Импорт.
  • Просмотрите свой файл .sql, щелкнув параметр «Выбрать файл», который вы хотите импортировать. Затем нажмите кнопку «Перейти» внизу.
  • Готово !!

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

Экспорт базы данных на XAMPP phpMyAdmin

Чтобы экспортировать базу данных MySQL через phpMyAdmin XAMPP, выполните следующий шаг.

  • Чтобы начать процесс экспорта, войдите в cPanel и откройте интерфейс phpMyAdmin.
  • На левой панели phpMyAdmin выберите базу данных, которую вы хотите экспортировать.
  • Выберите вкладку «Экспорт» вверху.
  • Теперь вы увидите два варианта: «Быстрый» и «Пользовательский». Вы можете выбрать «Быстрый», если хотите использовать параметр по умолчанию, или выбрать «Пользовательский», если хотите выбрать определенные таблицы и тип представления экспортируемого файла в дополнение ко многим другим параметрам.

Примечание. Старая версия phpMyAdmin не поддерживает Quick. Так что для этого вам придется использовать другой метод.

  • Теперь выделите формат, в который вы хотите экспортировать свою базу данных. Щелкните раскрывающееся меню и откажитесь от формата из данного списка.
  • Подтвердите свой выбор, нажав кнопку «Перейти».
  • Теперь вам будет предложено открыть или сохранить выбранный файл. Вы можете выбрать «Сохранить файл» и сохранить его в желаемом месте.

Поздравляю !! Вы успешно экспортировали файл.

Подключение через панель управления TimeWeb

Чтобы подключиться удаленно к MySQL, необходимо для начала открыть сайт хостинга и авторизоваться в личном кабинете. В панели управления следует выбрать раздел «Базы данных MySQL», через него и будем проводить операции. В новом открывшемся окне находим ссылку «Добавить доступ» напротив того сервера, к которому планируется подключиться. Для разрешения доступа к подсети /24 меняем последний актет IP-адреса на знак %.

При установлении соединения используем имя сервера или его IP-адрес. Данная информация доступна на главной странице в разделе «Информация о сервере». Порт указываем 3306, имя пользователя будет тем же, что и название базы данных. Вводим пароль и устанавливаем соединение.

phpMyAdmin

phpMyAdmin – программное средство, предоставляющее веб-интерфейс для работы с сервером MySQL. Подключиться к базе можно, открыв раздел «Базы данных MySQL» в панели управления хостингом. Находим на странице ссылку «phpMyAdmin» и жмем по ней для подключения. Если она недоступна, значит, пользователем был превышен лимит доступных БД. Увеличить его можно сменой тарифа.

Входим в данный раздел, вбиваем все данные и подключаемся.

Step 2 — Adjusting User Authentication and Privileges

When you installed phpMyAdmin onto your server, it automatically created a database user called which performs certain underlying processes for the program. Rather than logging in as this user with the administrative password you set during installation, it’s recommended that you log in as either your root MySQL user or as a user dedicated to managing databases through the phpMyAdmin interface.

Configuring Password Access for the MySQL Root Account

In Ubuntu systems running MySQL 5.7 (and later versions), the root MySQL user is set to authenticate using the plugin by default rather than with a password. This allows for some greater security and usability in many cases, but it can also complicate things when you need to allow an external program — like phpMyAdmin — to access the user.

In order to log in to phpMyAdmin as your root MySQL user, you will need to switch its authentication method from to if you haven’t already done so. To do this, open up the MySQL prompt from your terminal:

Next, check which authentication method each of your MySQL user accounts use with the following command:

In this example, the root user does in fact authenticate using the plugin. To configure the root account to authenticate with a password, run the following command. Be sure to change to a strong password of your choosing:

Then, run which tells the server to reload the grant tables and put your new changes into effect:

Check the authentication methods employed by each of your users again to confirm that root no longer authenticates using the plugin:

This output indicates that the root user will authenticate using a password. You can now log in to the phpMyAdmin interface as your root user with the password you’ve set for it here.

Configuring Password Access for a Dedicated MySQL User

Alternatively, some may find that it better suits their workflow to connect to phpMyAdmin with a dedicated user. To do this, open up the MySQL shell once again:

Note: If you have password authentication enabled, as described in the previous section, you will need to use a different command to access the MySQL shell. The following will run your MySQL client with regular user privileges, and you will only gain administrator privileges within the database by authenticating:

From there, create a new user and give it a strong password:

Then, grant your new user appropriate privileges. For example, you could grant the user privileges to all tables within the database, as well as the power to add, change, and remove user privileges, with this command:

Following that, exit the MySQL shell:

You can now access the web interface by visiting your server’s domain name or public IP address followed by :

Log in to the interface, either as root or with the new username and password you just configured.

When you log in, you’ll be taken to the phpMyAdmin user interface:

Now that you’re able to connect and interact with phpMyAdmin, all that’s left to do is harden your system’s security to protect it from attackers.

XAMPP phpMyAdmin Что это такое?

phpMyAdmin – это бесплатное программное обеспечение с открытым исходным кодом, которое позволяет вам управлять MySQL через Интернет. В этом случае вы можете легко управлять базой данных через графический пользовательский интерфейс, известный как phpMyAdmin. phpMyAdmin написан на PHP и приобрел большую популярность с точки зрения веб-решения для управления MySQL. Вы можете выполнять операции в MySQL через пользовательский интерфейс phpMyAdmin, но при этом можете напрямую выполнять SQL-запросы. И он позволяет вам выполнять такие операции, как редактирование, создание, удаление, изменение базы данных MySQL, изменение полей, таблиц, индексов и т.д. Фактически, какой пользователь должен иметь какие права, вы также можете управлять этим. phpMyAdmin имеет огромную поддержку многоязычного сообщества.

Настройка и запуск PHP MyAdmin

Подготовка

Для использования phpMyAdmin, необходимо настроить стек LAMP (Linux, Apache, MySQL и PHP) на сервере с Ubuntu. Это можно сделать при установке сервера.

Установка phpMyAdmin

Веб-интерфейс phpMyAdmin

Сначала установим phpMyAdmin из репозиториев Ubuntu по умолчанию.

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

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

В процессе установки будет задано несколько вопросов по конфигурации:

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

В процессе установки в директорию /etc/your_server/conf-enabled/ будет добавлен файл конфигурации phpMyAdmin.

Включим расширения PHP mcrypt и mbstring следующими командами:

sudo phpenmod mcrypt
sudo phpenmod mbstring

Далее перезапустим сервер для применения изменений:

Интерфейс пользователя

sudo systemctl restart apache2

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

http://<доменное_имя_или_IP_адрес>/phpmyadmin

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

После входа вы увидите интерфейс пользователя(см. рисунок).

Ниже приведен пример установки и первичной настройки PhpMyAdmin.

Apache

Для поддержки файла .htaccess, который используется многими сайтами, необходимо установить и настроить веб-сервер Apache.

Устанавливаем apache и модуль для php:

apt-get install apache2 libapache2-mod-php

Заходим в настройки портов:

vi /etc/apache2/ports.conf

И редактируем следующее:

Listen 8080
#<IfModule ssl_module>
#       Listen 443
#</IfModule>
#<IfModule mod_gnutls.c>
#       Listen 443
#</IfModule>

* мы настроили прослушивание на порту 8080, так как на 80 уже работает NGINX. Также мы закомментировали прослушивание по 443, так как и он будет слушаться NGINX.

Теперь открываем настройку следующего модуля:

vi /etc/apache2/mods-available/dir.conf

И добавляем впереди индексных файлов index.php:

<IfModule dir_module>
    DirectoryIndex index.php index.html …
</IfModule>

* если не указан конкретный скрипт, сначала веб-сервер пытается найти и запустить index.php, затем index.html и так далее.

Открываем основной конфигурационный файл для apache:

vi /etc/apache2/apache2.conf

Рядом с опциями Directory дописываем:

<Directory /var/www/*/www>
    AllowOverride All
    Options Indexes ExecCGI FollowSymLinks
    Require all granted
</Directory>

* где Directory указывает на путь, для которого мы хотим задать настройки; AllowOverride — позволит переопределить все настройки с помощью файла .htaccess; Options задает некоторые настройки: Indexes разрешает списки каталогов, ExecCGI разрешает запуск cgi скриптов, Require all granted — предоставляет всем доступ к сайтам в данном каталоге.

Ниже допишем:

<IfModule setenvif_module>
    SetEnvIf X-Forwarded-Proto https HTTPS=on
</IfModule>

* этой настройкой мы при получении заголовка X-Forwarded-Proto со значением https задаем переменную $_SERVER равную on. Данная настройки критична для функционирования некоторых CMS.

Запрещаем mpm_event:

a2dismod mpm_event

* по умолчанию, apache2 может быть установлен с модулем мультипроцессовой обработки mpm_event. Данный модуль не поддерживает php 7 и выше.

Разрешаем модуль мультипроцессовой обработки mpm_prefork:

a2enmod mpm_prefork

Разрешаем модуль php:

a2enmod php7.4

* в данном примере установлен php версии 7.4.

Разрешаем модуль setenvif:

a2enmod setenvif

Разрешаем модуль rewrite:

a2enmod rewrite

В процессе включения модулей, если мы видим «Module … already enabled», значит модуль уже включен.

Разрешаем автозапуск Apache и перезапускаем службу:

systemctl enable apache2

systemctl restart apache2

Открываем браузер и вводим в адресную строку http://<IP-адрес сервера>:8080. Мы должны увидеть привычную страницу:

* в разделе Server API мы должны увидеть Apache.

NGINX + Apache

Ранее мы настроили связку nginx + php-fpm. Теперь настроим nginx + apache. Открываем конфигурационный файл nginx для сайта по умолчанию:

vi /etc/nginx/sites-enabled/default

Находим наш настроенный location для php-fpm:


        location ~ \.php$ {
            set $root_path /var/www/html;
            fastcgi_pass unix:/run/php/php7.4-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
            include fastcgi_params;
            fastcgi_param DOCUMENT_ROOT $root_path;
        }

и меняем на:


        location ~ \.php$ {
            proxy_pass http://127.0.0.1:8080;
            proxy_redirect     off;
            proxy_set_header   Host             $host;
            proxy_set_header   X-Forwarded-Proto $scheme;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        }

Проверяем и перезапускаем nginx:

nginx -t

systemctl restart nginx

Пробуем открыть в браузере http://<IP-адрес сервера> — должна открыться та же страница, что при проверке Apache (с добавлением 8080):

Apache Real IP

Запросы на apache приходят от NGINX, и они воспринимаются первым как от IP-адреса 127.0.0.1. На практике, это может привести к проблемам, так как некоторым сайтам необходимы реальные адреса посетителей. Для решения проблемы будем использовать модуль remoteip.

Создаем конфигурационный файл со следующим содержимым:

vi /etc/apache2/mods-available/remoteip.conf

<IfModule remoteip_module>
  RemoteIPHeader X-Forwarded-For
  RemoteIPTrustedProxy 127.0.0.1/8
</IfModule>

Активируем модуль:

a2enmod remoteip

Перезапускаем apache:

systemctl restart apache2

Для проверки настройки открываем браузер и вводим в адресную строку http://<IP-адрес сервера>, где откроется наша страница phpinfo. В разделе Apache Environment мы должны увидеть внешний адрес компьютера, с которого обращаемся к серверу в опции REMOTE_ADDR.

Шаг 3 — Обеспечение безопасности phpMyAdmin

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

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

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

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

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

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

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

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

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

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

/usr/share/phpmyadmin/.htaccess

Вот что означает каждая из этих строк:

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

После завершения редактирования сохраните и закройте файл.

Вы использовали следующее местонахождение для вашего файла пароля . Теперь вы можете создать этот файл и передать его для первоначального пользователя с помощью утилиты :

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

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

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

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

Prerequisites

In order to complete this guide, you will need:

  • An Ubuntu 20.04 server. This server should have a non-root user with administrative privileges and a firewall configured with . To set this up, follow our initial server setup guide for Ubuntu 20.04.
  • A LAMP (Linux, Apache, MySQL, and PHP) stack installed on your Ubuntu 20.04 server. If this is not completed yet, you can follow this guide on installing a LAMP stack on Ubuntu 20.04.

Additionally, there are important security considerations when using software like phpMyAdmin, since it:

  • Communicates directly with your MySQL installation
  • Handles authentication using MySQL credentials
  • Executes and returns results for arbitrary SQL queries

For these reasons, and because it is a widely-deployed PHP application which is frequently targeted for attack, you should never run phpMyAdmin on remote systems over a plain HTTP connection.

If you do not have an existing domain configured with an SSL/TLS certificate, you can follow this guide on securing Apache with Let’s Encrypt on Ubuntu 20.04. This will require you to register a domain name, create DNS records for your server, and .

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector