Работа в phpmyadmin
Содержание:
- 2: Защита phpMyAdmin
- Установка NGINX
- Как создать, удалить или изменить таблицу в базе данных phpMyAdmin
- Установка PHP и PHP-FPM
- Шаг 2 — Настройка аутентификации и прав пользователя
- Измените место назначения для ссылки на значок таблицы
- Security
- Увеличьте тайм-аут аутентификации или логин cookie
- Обновление старой версии
- Видео
- Онлайн курсы по Mikrotik
- Conclusion
- 1: Установка phpMyAdmin
- Что такое SQL и зачем он нужен
- Настройка виртуального домена
- 3: Отключение root-логина
- Step 1 — Installing phpMyAdmin
- Похвальные грамоты
- Этап 3. Настройка безопасности phpMyAdmin
- Linked-tables infrastructure (Инфраструктура связанных таблиц)
2: Защита phpMyAdmin
Как видите, установка и запуск phpMyAdmin – довольно простой процесс. Однако не стоит забывать о том, что из-за своей вездесущности PhpMyAdmin часто подвергается атакам злоумышленников. На данном этапе необходимо обеспечить интерфейсу достаточный уровень защиты для предотвращения несанкционированного использования.
Один из самых простых способ защиты phpMyAdmin – размещение шлюза безопасности. Это делается при помощи специальных файлов Apache под названием .htaccess.
Активация переопределения .htaccess
Для начала нужно активировать файл .htaccess, отредактировав конфигурационный файл Apache.
Итак, откройте файл конфигураций Apache:
В раздел <Directory /usr/share/phpmyadmin> нужно добавить параметр AllowOverride All:
Внеся нужную строку, сохраните и закройте файл.
Чтобы обновить настройки, перезапустит веб-сервер:
Создание файла .htaccess
Теперь приложение поддерживает файлы .htaccess; нужно только создать такой файл.
Для корректной работы необходимо создать этот файл в каталоге приложения. Итак, чтобы создать нужный файл и открыть его в текстовом редакторе с привилегиями root, наберите:
В этот файл нужно внести следующий код:
Рассмотрим эти строки подробнее:
- AuthType Basic задает тип авторизации; в данном случае используется аутентификация по паролю с помощью файла паролей.
- AuthName содержит текст сообщения диалогового окна аутентификации. Чтобы неавторизованные пользователи не могли получить дополнительной информации о закрытом приложении, это сообщение не должно содержать подробностей, а только общие данные (например, «Restricted Files», «Restricted Stuff», «Private Zone» и т.п.).
- AuthUserFile задает расположение файла паролей, который будет использоваться для авторизации. Он должен находиться вне обслуживаемых каталогов. Такой файл будет создан позже.
- Require valid-user указывает, что доступ к этому ресурсу могут получить только авторизованные пользователи. Именно этот параметр защищает ресурс от неавторизованных пользователей.
Сохраните и закройте файл.
Создание файла .htpasswd
Теперь в каталоге, указанном в строке AuthUserFile, нужно создать файл паролей .htpasswd.
Для этого понадобится дополнительный пакет, содержащий утилиту htpasswd, который можно установить из стандартного репозитория:
Как помните, файл должен быть создан в каталоге, заданном в директиве AuthUserFile, в данном случае это /etc/phpmyadmin/.htpasswd.
Создайте этот файл и передайте его пользователю, набрав:
Будет предложено выбрать и подтвердить пароль нового пользователя, после чего файл .htpasswd будет создан, а только что установленный пароль пользователя будет помещен в него в хэшированном виде.
Чтобы внести в файл еще одного пользователя, используйте вышеприведенную команду без флага –с:
Теперь при входе в подкаталог phpMyAdmin будут запрашиваться учетные данные пользователя:
Только после авторизации Apache пользователь сможет получить доступ к странице авторизации phpMyAdmin. Это добавит дополнительный уровень безопасности, который защитит веб-интерфейс phpMyAdmin от атак методом подбора паролей.
Установка NGINX
Устанавливаем NGINX:
apt-get install nginx
Внесем изменение в файл nginx.conf:
vi /etc/nginx/nginx.conf
http {
…
server_names_hash_bucket_size 64;
….
}
* в данном примере мы сняли комментарий со строчки server_names_hash_bucket_size 64;* на практике, может встретиться ошибка could not build server_names_hash, you should increase server_names_hash_bucket_size: 32. Она возникает при большом количестве виртуальных серверов или если один из них будет иметь длинное название. Данная строка в конфиге исправит ситуацию.
Перезапускаем nginx:
systemctl enable nginx
systemctl restart nginx
* в процессе запуска мы можем увидим ошибку — возможно, в системе работает другой веб-сервер и занимает 80 порт. Как правило, это apache. Чтобы его выключить (на данном этапе он нам не нужен) вводим команду systemctl stop apache2.
Проверим работу веб-сервера. Открываем браузер и вводим в адресной строке http://<IP-адрес сервера>. В итоге мы должны увидеть заголовок «Welcome to nginx!»:
Если стартовая страница не загружается, проверяем состояние сервиса:
systemctl status nginx
Как создать, удалить или изменить таблицу в базе данных phpMyAdmin
Внимание!
Редактирование базы данных может привести к некорректной работе вашего сайта. Перед внесением изменений создайте бэкап вашего сайта или обратитесь к разработчикам
Как добавить новую таблицу в базу данных
-
1.
Нажмите по необходимой базе данных:
-
2.
Внизу страницы в блоке «Создать таблицу» введите Имя новой таблицы, количество столбцов и нажмите ОК:
-
3.
Укажите данные для создания таблицы:
Localhost, phpMyAdmin, как зайти
Расшифровка значений:
-
4.
Нажмите Сохранить:
Как удалить базу данных phpMyAdmin
-
2.
Нажмите по таблице, которую вы хотите удалить:
-
3.
Перейдите на вкладку Операции:
-
4.
В блоке «Удалить данные или таблицу» нажмите Удалить таблицу (DROP):
-
5.
Нажмите ОК, чтобы подтвердить удаление:
Как изменить данные в таблице базы данных
-
1.
Нажмите по необходимой базе данных:
-
2.
Нажмите по таблице, в которой вы хотите изменить данные:
-
3.
Выберите нужную строку и нажмите Изменить:
-
4.
Внесите изменения и нажмите ОК:
Вопрос, как обновить phpMyAdmin на хостинге, не рассматривается в данной статье, так как phpMyAdmin обновляется автоматически для всего сервера.
Установка PHP и PHP-FPM
Устанавливаем PHP и PHP-FPM:
apt-get install php php-fpm
Разрешаем автозапуск php-fpm и запускаем его:
systemctl enable php7.4-fpm
* обратите внимание, что мы запустили php-fpm версии 7.4. Но установлена может быть и другая версия — ее можно узнать по версии php командой php -v
Настройка связки NGINX + PHP
Открываем файл для настройки виртуального домена по умолчанию:
vi /etc/nginx/sites-enabled/default
В секции location или server редактируем параметр index на следующее значение:
…
index index.php index.html index.htm;
…
* в данном случае мы сказали серверу сначала искать индексный файл index.php, затем остальные по списку.
А внутри секции server добавим следующее:
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;
}
* где /var/www/html — корневой путь хранения скриптов; /run/php/php7.4-fpm.sock — путь до сокетного файла для взаимодействия с php-fpm
Обратите еще раз внимание, что если в нашей системе будет установлена другая версия php, необходимо внести соответствующую корректировку
Пример файла default:
server {
listen 80 default_server;
listen :80 default_server;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
server_name _;
location / {
index index.php index.html index.htm;
}
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;
}
}
Проверяем правильность настроек nginx:
nginx -t
И перезагружаем его:
systemctl restart nginx
Открываем конфигурационный файл PHP-FPM:
vi /etc/php/7.4/fpm/pool.d/www.conf
Проверяем, что путь до сокетного файла такой же, как мы задали в настройках NGINX:
listen = /run/php/php7.4-fpm.sock
В противном случае меняем его и перезапускаем сервис:
systemctl restart php7.4-fpm
Теперь заходим в каталог хранения настроенного сайта:
cd /var/www/html
Создаем index.php со следующим содержимым:
vi index.php
<?php phpinfo(); ?>
Открываем браузере и переходим по адресу http://<IP-адрес сервера>. Мы должны увидеть сводную информацию по PHP и его настройкам:
* в данном примере используется php версии 7.4.
Шаг 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, осталось только установить более жесткие правила безопасности системы, чтобы защитить ее от атак.
Измените место назначения для ссылки на значок таблицы
Это не самое большое раздражение для большинства людей, но может помочь некоторым. Внутри базы данных, когда вы щелкаете одно из имен таблиц, перечисленных слева, вы переходите на вкладку «Обзор» таблицы. Вместо этого, если вы щелкнете по маленькому значку таблицы, он перейдет на вкладку «Структура» таблицы. Мне лично это нравится. Однако, если вы хотите, чтобы ссылка на значок таблицы переместилась на вкладку «Обзор», добавьте следующую строку в конец файла:
Сохраните, выйдите и перезагрузите Apache, чтобы настройки вступили в силу. Возможно, вам придется выйти и заново войти в phpMyAdmin. Кроме того, вы можете сделать так, чтобы ссылка на значок открывала вам любую другую вкладку, если вам нравится:
Обратите внимание, что в любой момент может быть активна только одна из указанных выше опций. Если вы хотите изменить это, просто удалите строку или закомментируйте ее, добавив перед ней
Security
Unfortunately older versions of phpMyAdmin have had serious security vulnerabilities including allowing remote users to eventually exploit root on the underlying virtual private server. One can prevent a majority of these attacks through a simple process: locking down the entire directory with Apache’s native user/password restrictions which will prevent these remote users from even attempting to exploit older versions of phpMyAdmin.
Set Up the .htaccess File
To set this up start off by allowing the .htaccess file to work within the phpmyadmin directory. You can accomplish this in the phpmyadmin configuration file:
sudo nano /etc/phpmyadmin/apache.conf
Under the directory section, add the line “AllowOverride All” under “Directory Index”, making the section look like this:
<Directory /usr/share/phpmyadmin> Options FollowSymLinks DirectoryIndex index.php AllowOverride All
Configure the .htaccess file
With the .htaccess file allowed, we can proceed to set up a native user whose login would be required to even access the phpmyadmin login page.
Start by creating the .htaccess page in the phpmyadmin directory:
sudo nano /usr/share/phpmyadmin/.htaccess
Follow up by setting up the user authorization within .htaccess file. Copy and paste the following text in:
AuthType Basic AuthName "Restricted Files" AuthUserFile /etc/apache2/.phpmyadmin.htpasswd Require valid-user
Below you’ll see a quick explanation of each line
- AuthType: This refers to the type of authentication that will be used to the check the passwords. The passwords are checked via HTTP and the keyword Basic should not be changed.
- AuthName: This is text that will be displayed at the password prompt. You can put anything here.
- AuthUserFile: This line designates the server path to the password file (which we will create in the next step.)
- Require valid-user: This line tells the .htaccess file that only users defined in the password file can access the phpMyAdmin login screen.
Create the htpasswd file
Now we will go ahead and create the valid user information.
Start by creating a htpasswd file. Use the htpasswd command, and place the file in a directory of your choice as long as it is not accessible from a browser. Although you can name the password file whatever you prefer, the convention is to name it .htpasswd.
sudo htpasswd -c /etc/apache2/.phpmyadmin.htpasswd username
A prompt will ask you to provide and confirm your password.
Once the username and passwords pair are saved you can see that the password is encrypted in the file.
FInish up by restarting apache:
sudo service apache2 restart
Это может раздражать, когда вы переходите в другое окно, и ваш сеанс phpMyAdmin заканчивается из-за неактивности. Вы можете увеличить время, в течение которого сеанс phpMyAdmin остается активным, путем редактирования . Сначала сделайте резервную копию файла:
Затем отредактируйте его и добавьте следующую строку в конец файла:
количество секунд, в течение которых сеанс phpMyAdmin будет оставаться активным во время бездействия. Перезагрузите сервер Apache, чтобы настройки вступили в силу. Возможно, вам придется выйти и заново войти в phpMyAdmin.
Обратите внимание, что это немного ослабляет вашу безопасность. Но это может сильно помочь вам при разработке или первоначальной настройке базы данных
Но как только ваша работа будет завершена, я рекомендую удалить строку или закомментировать ее, добавив в начало.
Обновление старой версии
Просто скопируйте конфигурационный файл ./config.inc.php от предыдущей версии в директорию куда был распакован phpMyAdmin. Конфигурационные файлы из очень старых версий (2.3.0 or older) могут потребовать некоторых настроек, т.к. некоторые опции были изменены или удалены.
Не рекомендуется использовать (копировать) файл libraries/config.default.php вместо config.inc.php, т.к. файл config.default.php является специфичным для каждой версии.
Если Вы обновили свой MySQL-сервер с версии старше, чем 4.1.2 до версии 4.1.2 или новее,и используете инфраструктуру связанных таблиц, тогда необходимо запустить SQL-скрипт, который находится в scripts/upgrade_tables_mysql_4_1_2+.sql.
Видео
Предалагаю посмотреть видео всего процесса установки и настройки phpmyadmin на примере веб сервера apache.
Онлайн курсы по Mikrotik
Если у вас есть желание научиться работать с роутерами микротик и стать специалистом в этой области, рекомендую пройти курсы по программе, основанной на информации из официального курса MikroTik Certified Network Associate. Помимо официальной программы, в курсах будут лабораторные работы, в которых вы на практике сможете проверить и закрепить полученные знания. Все подробности на сайте .
Стоимость обучения весьма демократична, хорошая возможность получить новые знания в актуальной на сегодняшний день предметной области. Особенности курсов:
- Знания, ориентированные на практику;
- Реальные ситуации и задачи;
- Лучшее из международных программ.
Conclusion
By following this tutorial, you installed phpMyAdmin on Ubuntu 20.04 running Nginx as the web server. You also learned about several advanced methods to secure a phpMyAdmin installation on Ubuntu, such as disabling root login, creating an extra layer of authentication, and using SSH tunneling to access a phpMyAdmin installation via local requests only.
After completing this tutorial, you can manage your MySQL databases from a reasonably secure web interface. This user interface exposes most of the functionality available via the MySQL command line. You can browse databases and schema, execute queries, and create new data sets and structures.
If you’d like to learn more about working with MySQL, we encourage you to check out this introduction to queries in MySQL. For a deeper understanding of SQL beyond just queries, you may also be interested in our How To Use SQL tutorial series.
1: Установка phpMyAdmin
Пакеты phpMyAdmin доступны в стандартном репозитории Debian.
Обновите индекс пакетов и установите phpMyAdmin:
Чтобы настроить экземпляр, нужно ответить на ряд вопросов.
Примечание: В первом вопросе опция 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, чтобы обновить настройки:
phpMyAdmin установлен. Но прежде чем войти и начать работу с базами данных, вам нужно проверить привилегии пользователей.
Что такое SQL и зачем он нужен
SQL (Structured Query Language) — структурированный язык запросов.
Прототип этого языка появился после реляционной алгебры в конце 70-х годов. Его разработала компания IBM Research. Язык назывался SEQUEL, что расшифровывается как Structured English Query Language, но по мере развития слово «English» ушло из этого словосочетания.
SQL — это «полный язык баз данных». Это значит, что он включает в себя:
Язык SQL используется для работы с реляционными базами данных.
Реляционные базы данных — это базы с наборами данных, между которыми уже предопределены связи. Данные в них организованы в виде таблиц, эти таблицы состоят из строк и столбцов. В каждом столбце хранится свой тип данных, а в строках — наборы связанных значений, которые относятся к одному объекту или сущности.
Реляционная система управления базами данных (РСУБД) – система управления реляционными базами данных. Самая известная РСУБД – MySQL. Пользователь взаимодействует с ней на языке SQL, посылая запросы к базе данных.
Чтобы было удобно работать с этой базой данных, на языке PHP было написано веб-приложение с графическим интерфейсом. Оно получило название phpMyAdmin.
Настройка виртуального домена
Настройка виртуального домена зависит от веб-сервера, который мы используем. Разберем примеры для NGINX и Apache.
NGINX
В данном примере мы рассмотрим настройку связки NGINX + php-fpm. Также мы сконфигурируем два варианта прослушивания — виртуальный домен и с добавлением пути /phpmyadmin.
1) На отдельном домене
Создаем конфигурационный файл для виртуального домена:
vi /etc/nginx/conf.d/phpMyAdmin.conf
server {
listen 80;
server_name phpmyadmin.dmosk.local;
set $root_path /usr/share/phpMyAdmin;
location / {
root $root_path;
index index.php;
}
location ~ \.php$ {
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
include fastcgi_params;
fastcgi_param DOCUMENT_ROOT $root_path;
fastcgi_read_timeout 300;
}
}
* где:
listen — порт, на котором слушает nginx для данного домена.
server_name — домен для которого применяются настройки server. В данном примере phpmyadmin.dmosk.local.
root_path — переменная, в которую мы заносим наш путь до phpMyAdmin.
location / — настройки для запросов к серверу. В конкретном случае, мы используем root_path в качестве корневой директории для скриптов сайта; опция index нужна для поиска скрипта по умолчанию, если нет явного обращения клиентом.
location ~ \.php$ — параметры для обработки скриптов php. В нашем случае, мы обрабатываем скрипты с помощью php-fpm
Стоить обратить внимание, что последний может слушать на порту (по умолчанию, 9000) или через сокет-файл. В примере выше используется последний вариант, а способ с портом закомментирован.
fastcgi_pass — данный параметр важен и зависит от настройки php-fpm
Если последний слушает на порту, мы задаем первый вариант (который закомментирован), иначе — указываем путь до сокетного файла.
Проверяем корректность настройки nginx:
nginx -t
… и если ошибок нет, перезапускаем сервис:
systemctl restart nginx
2) С помощью location /phpmyadmin
Открываем конфигурационный файл для домена по умолчанию:
vi /etc/nginx/conf.d/default.conf
* в вашей ситуации, файл с доменом по умолчанию может быть другим.
Добавляем location ^~ /phpmyadmin со следующими настройками:
server {
listen 80 default_server;
…
location /phpmyadmin {
root /usr/share/;
index index.php;
location ~ ^/phpmyadmin/(.+\.php)$ {
root /usr/share/;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_read_timeout 300;
}
location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/;
}
}
}
* где:
root — каталог, в котором находится каталог с phpmyadmin с порталом.
location ~ \.php$ — параметры для обработки скриптов php. В нашем случае, мы обрабатываем скрипты с помощью php-fpm
Стоить обратить внимание, что последний может слушать на порту (по умолчанию, 9000) или через сокет-файл. В примере выше используется последний вариант, а способ с портом закомментирован.
fastcgi_pass — данный параметр важен и зависит от настройки php-fpm
Если последний слушает на порту, мы задаем первый вариант (который закомментирован), иначе — указываем путь до сокетного файла.
Проверяем корректность настройки nginx:
nginx -t
… и если ошибок нет, перезапускаем сервис:
systemctl restart nginx
3) Проверка настройки php-fpm
После настройки nginx проверяем настройку php-fpm:
vi /etc/php-fpm.d/www.conf
Так как в нашем примере мы используем подключение на основе сокетов, то настройка опции listen должна быть такой:
listen = /run/php-fpm/www.sock
* на основе порта — listen = 127.0.0.1:9000.
Если конфигурационный файл пришлось менять, перезапускаем сервис:
systemctl restart php-fpm
Apache
Создаем конфигурационный файл для виртуального домена:
vi /etc/httpd/conf.d/phpMyAdmin.conf
<VirtualHost *:80>
Define root_domain phpmyadmin.dmosk.local
Define root_path /usr/share/phpMyAdmin
ServerName ${root_domain}
ServerAlias www.${root_domain}
DocumentRoot ${root_path}
<Directory /usr/share/phpMyAdmin>
AllowOverride All
Options Indexes ExecCGI FollowSymLinks
Require all granted
</Directory>
</VirtualHost>
Проверяем корректность настройки apache:
apachectl configtest
… и если ошибок нет, перезапускаем сервис:
systemctl restart httpd
3: Отключение root-логина
В MySQL, как и в обычных системах Linux, root является специальной учетной записью администратора с неограниченным доступом к системе. Этот пользователь является очевидной целью для brute-force атак. Чтобы минимизировать риски, нужно заблокировать в phpMyAdmin любые попытки входа в систему с помощью этого пользователя. То есть даже если вы предоставите действительные учетные данные пользователя root, вы все равно получите ошибку «access denied» и не сможете войти в систему.
Поскольку ранее мы решили использовать dbconfig-common для настройки и хранения параметров phpMyAdmin, конфигурация по умолчанию в настоящее время хранится в базе данных. Сейчас нужно будет создать новый файл config.inc.php для определения пользовательских настроек.
Хотя файлы PHP для phpMyAdmin находятся в /usr/share/phpmyadmin, приложение использует конфигурационные файлы, расположенные в /etc/phpmyadmin. Создайте новый файл пользовательских настроек в /etc/phpmyadmin/conf.d и назовите его pma_secure.php:
Этот файл содержит все необходимые параметры, которые отключают беспарольный вход (AllowNoPassword имеет значение false) и root-логин (AllowRoot со значением false):
Сохраните файл, когда вы закончите редактирование: нажмите Ctrl+X, затем y, чтобы подтвердить изменения, и Enter. Изменения вступят в силу автоматически. Если вы сейчас перезагрузите страницу входа и попытаетесь войти в систему как пользователь root, вы получите ошибку «Access Denied».
Теперь в вашей установке phpMyAdmin пользователю root запрещен вход в систему. Эта мера безопасности блокирует попытки brute-force сценариев угадать пароль root на вашем сервере
Более того, теперь для доступа к веб-интерфейсу phpMyAdmin можно использовать только учетные записи MySQL с пониженными привилегиями, что само по себе является важной мерой безопасности
Step 1 — Installing phpMyAdmin
To get started, we will install phpMyAdmin from the default Ubuntu repositories.
This is done by updating your server’s package index and then using the packaging system to pull down the files and install them on your system:
This will ask you a few questions in order to configure your installation correctly.
Warning: When the prompt appears, “apache2” is highlighted, but not selected. If you do not hit to select Apache, the installer will not move the necessary files during installation. Hit , , and then to select Apache.
- For the server selection, choose
- Select when asked whether to use to set up the database
- You will then be asked to choose and confirm a MySQL application password for phpMyAdmin
The installation process adds the phpMyAdmin Apache configuration file into the directory, where it is read automatically. The only thing you need to do is explicitly enable the PHP extension, which you can do by typing:
Afterwards, restart Apache for your changes to be recognized:
phpMyAdmin is now installed and configured. However, before you can log in and begin interacting with your MySQL databases, you will need to ensure that your MySQL users have the privileges required for interacting with the program.
Похвальные грамоты
В то время как вышеупомянутые 10 твиков phpMyAdmin мои любимые, есть несколько других, которые могут быть полезны для других. Так же, как вышеупомянутые настройки, добавьте каждую строку в конце . Сохраните, выйдите и перезагрузите Apache, чтобы настройки вступили в силу. Возможно, вам придется выйти и заново войти в phpMyAdmin.
Если вы хотите отменить любой из вышеперечисленных изменений, просто удалите строку или закомментируйте ее, добавив перед ней.
Надеюсь, эти твики phpMyAdmin пригодятся вам. Вы можете найти больше настроек в phpMyAdmin Wiki. Наслаждайтесь!
Источник записи: https://www.smarthomebeginner.com
Этап 3. Настройка безопасности phpMyAdmin
Как только основная настройка phpMyAdmin Ubuntu сделана, нужно подумать о безопасности. phpMyAdmin популярен не только среди обычных пользователей, но и среди злоумышленников
Важно обезопасить свой сайт и предотвратить неавторизованный доступ. Дополнительную защиту можно обеспечить с помощью авторизации пользователя на сервере, а затем в phpMyAdmin
-
1.
Откройте конфигурационный файл веб-сервера Apache:
-
2.
Добавьте следующую строку в файл:
phpMyAdmin Ubuntu
-
3.
Сохраните и закройте файл. Перезагрузите Apache командой:
-
4.
Создайте файл для phpMyAdmin командой:
Добавьте в файл следующие строки:
Где:
После ввода указанных строк сохраните и закройте файл.
phpMyAdmin защитить
-
5.
Создайте файл, путь к которому был указан в 4 шаге в значении AuthUserFile, и добавьте в него пользователя.
Сначала установите утилиту :
Создайте файл и первого пользователя командой:
Где username — имя пользователя, с помощью которого будет происходить авторизация.
Введите пароль для нового пользователя. После этого файл будет создан и в него будет добавлен хэш указанного вами пароля.
Чтобы создать дополнительного пользователя, используйте эту же команду без флага .
-
6.
Теперь при попытке зайти по адресу «123.123.123.123/phpmyadmin» (где 123.123.123.123 — IP-адрес вашего сервера) будет появляться окно авторизации:
phpMyAdmin Linux установка
Готово, настройка безопасности завершена.
Linked-tables infrastructure (Инфраструктура связанных таблиц)
Для использования многих опций (закладок, комментариев, SQL-истории, PDF-схем, преобразования содержимого полей, и т.д.) необходимо создать набор специальных таблиц. Эти таблицы могут находиться как в Вашей базе данных, так и в центральной базе при многопользовательской системе (в этом случае данная БД может быть доступна только для пользователя controluser, соответственно, другие пользователи не имеют прав на неё).
Зайдите в директорию scripts/, здесь вы найдете файл create_tables.sql
(Если используете Windows сервер, обратите особое внимание на ).
Если у Вас установлена версия MySQL сервера 4.1.2 или более позднее, используйте вместо вышеуказанного файла create_tables_mysql_4_1_2+.sql, для новой инсталляции.
Если у вас уже есть готовая инфраструктура и вы обновляете MySQL до версии 4.1.2 или выше, используйте upgrade_tables_mysql_4_1_2+.sql.
Вы можете использовать phpMyAdmin для создания баз данных и таблиц, для этого необходимо обладать администраторскими привилегиями на создание баз данных и таблиц, в связи с чем скрипту может понадобиться небольшая настройка (указание названия базы данных).
После импорта create_tables.sql, Вы должны определить названия таблиц в файле config.inc.php, с помощью директив, описанных в разделе «Конфигурирование». Кроме этого необходимо обладать правами controluser на данные таблицы (см
ниже, раздел «Использование режима аутентификации»).