Гид по технологиям

Установка и защита Adminer на Ubuntu 22.04

• 8 min read • DevOps • Обновлено 25 Nov 2025
Установка и защита Adminer на Ubuntu 22.04
Установка и защита Adminer на Ubuntu 22.04

Скриншот логотипа Adminer и интерфейса

Adminer (ранее phpMinAdmin) — полноценный инструмент управления базами данных. Он поддерживает реляционные СУБД (MySQL/MariaDB, PostgreSQL, SQLite, MS SQL, Oracle) и NoSQL (например, MongoDB через плагин). Adminer лёгок в установке, быстро работает и удобен для повседневных задач администрирования.

Определение: Adminer — одностраничный PHP‑инструмент для управления базами данных, альтернативный phpMyAdmin, поставляемый как единый PHP‑файл.

Для кого эта инструкция

  • Системные администраторы и девопсы, которые хотят быстрый веб‑интерфейс для работы с разными СУБД.
  • Разработчики, которым нужен лёгкий инструмент для отладки и управления данными.
  • Те, кто предпочитает минималистичные решения и контролирует веб‑сервер Apache.

Основные варианты использования

  • Локальная администрация баз данных на сервере Ubuntu.
  • Удалённый доступ к MariaDB/MySQL с отдельного хоста через Adminer на другом сервере.
  • Быстрая диагностика структуры и содержимого баз без установки тяжёлого ПО.

Предварительные условия

  • Сервер с Ubuntu 22.04.
  • Непривилегированный пользователь с правами sudo.
  • Установленный веб‑сервер Apache2 (инструкции предполагают Apache). Если используется nginx — см. раздел “Альтернативные подходы”.
  • На целевой машине установлена СУБД (MySQL/MariaDB, PostgreSQL, SQLite и т. п.).

Установка Adminer на Ubuntu 22.04

На современных Ubuntu пакет adminer доступен в репозитории universe. Это позволяет установить инструмент без сторонних репозиториев.

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

sudo apt update

Просмотрите информацию о пакете adminer и его зависимостях:

sudo apt info adminer

Информация о пакете Adminer в apt

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

sudo apt install adminer

Установка пакета Adminer через apt

После установки нужно включить конфигурацию Adminer для Apache. Пакет кладёт конф-файл в /etc/apache2/conf-available/adminer.conf.

Активируйте конфигурацию через символическую ссылку в conf-enabled и перезапустите Apache:

sudo ln -s /etc/apache2/conf-available/adminer.conf /etc/apache2/conf-enabled/

sudo apachectl configtest
sudo systemctl restart apache2

Теперь Adminer доступен по пути /adminer, например http://192.168.5.75/adminer — вы должны увидеть страницу входа.

Страница входа Adminer

Adminer поддерживает несколько типов СУБД и удобен, если вы работаете с разными серверами баз данных.

Список поддерживаемых баз данных в интерфейсе Adminer

Изменение стандартного URL пути

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

Откройте конфигурационный файл:

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

Найдите строку Alias и замените /adminer на более уникальный путь, например /mydbadmin:

Alias /mydbadmin /etc/adminer

Проверьте конфигурацию и перезапустите Apache:

sudo apachectl configtest
sudo systemctl restart apache2

Проверьте доступ: http://192.168.5.75/mydbadmin

Смена пути доступа Adminer в браузере

Важно: Alias указывает на директорию, где расположен один файл adminer.php, поставляемый пакетом.

Добавление базовой аутентификации Apache

Базовая аутентификация Apache добавляет ещё один уровень защиты. Она применяется до того, как загрузится страница входа Adminer.

Создайте файл паролей и первого пользователя dbadmin (введите пароль при запросе):

sudo htpasswd -B -c /etc/adminer/.htpasswd dbadmin

Если добавляете дополнительных пользователей, не используйте -c (создание файла):

sudo htpasswd -B /etc/adminer/.htpasswd newuser

Отредактируйте конфигурацию Adminer, указав блок Location для вашего нового пути /mydbadmin:


  AuthType Basic
  AuthName "Restricted Resource"
  AuthBasicProvider file
  AuthUserFile /etc/adminer/.htpasswd
  Require valid-user

Проверьте конфигурацию и перезапустите Apache:

sudo apachectl configtest
sudo systemctl restart apache2

При обращении к URL вы должны сначала увидеть окно базовой аутентификации Apache. После ввода правильных учётных данных откроется форма входа Adminer.

Подтверждение базовой аутентификации перед Adminer

Окно базовой аутентификации Apache перед Adminer

Настройка пользователя базы данных (MySQL/MariaDB) для удалённого доступа

В примере используется MariaDB на отдельном сервере. Необходимо настроить MariaDB слушать на приватном IP и создать пользователя, которому разрешён доступ с сервера Adminer.

Отредактируйте конфигурацию MariaDB (/etc/mysql/mariadb.conf.d/50-server.cnf) и установите bind или listen на приватный IP сервера базы данных. В примере IP — 192.168.5.20:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Измените параметр listen:

listen   = 192.168.5.20

Перезапустите MariaDB:

sudo systemctl restart mariadb

Подключитесь к серверу MariaDB как root и создайте удалённого пользователя, разрешив доступ с IP сервера Adminer (192.168.5.75):

sudo mysql -u root -p

CREATE USER 'dbadmin'@'192.168.5.75' IDENTIFIED BY 'dbpassword';
GRANT ALL PRIVILEGES ON *.* TO 'dbadmin'@'192.168.5.75' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Проверьте права и выйдите:

SHOW GRANTS FOR 'dbadmin'@'192.168.5.75';
quit

Создание пользователя MariaDB для Adminer

Если на сервере базы данных работает UFW, разрешите подключение к порту MySQL (3306) только с IP сервера Adminer:

sudo ufw allow from 192.168.5.75 to 192.168.5.20 port 3306 proto tcp comment 'allow mysql access for Adminer'
sudo ufw reload
sudo ufw status

Примечание: В некоторых средах порт может отличаться (например, нестандартный порт MySQL), убедитесь в правильности номера.

Правило UFW для доступа к MariaDB

Подключение к MariaDB из Adminer

Откройте страницу Adminer, введите хост базы данных (IP или DNS), логин dbadmin и пароль. Нажмите “Login” для подключения.

Подключение к MariaDB через Adminer

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

Интерфейс Adminer после входа в MariaDB

Дополнительные меры безопасности

Важно: установка базовой аутентификации и изменение пути — полезные меры, но они не заменяют полноценное шифрование и разграничение прав.

Рекомендуемые шаги:

  • Использовать HTTPS на веб‑сервере (сертификаты Let’s Encrypt или внутренние CA). Шифрование защищает пароли и сессии.
  • Ограничить доступ по IP (Allow/Deny) в конфигурации Apache для пути Adminer.
  • Запускать Adminer за VPN или через внутренний прокси, если это возможно.
  • Не использовать учётные записи с привилегиями root для повседневной работы. Создавайте аккаунты с минимально необходимыми правами.
  • Ограничить возможность экспорта/импорта больших дампов для пользователей, если это не требуется.
  • Использовать SELinux/AppArmor профили для ограничения прав веб‑процесса.
  • Регулярно обновлять PHP и зависимости — пакетный менеджер Ubuntu делает это проще.

Короткий чеклист усиления безопасности:

  • HTTPS включён и перенаправление с HTTP настроено
  • Базовая аутентификация настроена
  • Путь доступа изменён и задокументирован
  • UFW/файрволл ограничивает доступ к БД
  • Пользователи БД имеют минимальные права
  • Логи доступа собираются и анализируются

Технические ограничения и случаи, когда Adminer не подходит

Когда стоит не использовать Adminer:

  • В больших средах с жёсткими требованиями аудита и разграничения прав — предпочтительнее полнофункциональные корпоративные решения с централизованной авторизацией.
  • Для автоматизированного CI/CD управления миграциями базы данных лучше использовать специализированные инструменты (Flyway, Liquibase).
  • Если требуется поддержка очень специфичных расширений СУБД, отсутствующих в Adminer.

Контрпример: если требуется централизованная интеграция с LDAP/SSO и сложная ролевка — Adminer можно использовать, но лучше как вспомогательный инструмент, а не основное решение.

Альтернативные подходы

  • phpMyAdmin — мощный интерфейс для MySQL/MariaDB, но тяжелее и фокусирован на одной группе СУБД.
  • pgAdmin — для PostgreSQL с богатым интерфейсом и удобным управлением серверами PostgreSQL.
  • DBeaver / Beekeeper Studio — настольные клиенты, подходят, когда можно подключаться напрямую к БД, а не через браузер.
  • Развёртывание Adminer в docker-контейнере с отдельной сетью и TLS.

Советы по эксплуатации и отладке

  • Если страница не загружается — проверьте статус Apache и журналы:
sudo systemctl status apache2
sudo journalctl -u apache2 --no-pager | tail -n 100
sudo tail -n 200 /var/log/apache2/error.log
  • Если Apache жалуется на конфигурацию, выполните:
sudo apachectl configtest
  • При проблемах с доступом к MariaDB проверьте bind/listen адрес и брандмауэр на сервере БД.

Рекомендации по резервному копированию и откату

  • Перед изменением конфигурации Apache и MariaDB создайте резервные копии файлов конфигурации:
sudo cp /etc/apache2/conf-available/adminer.conf /etc/apache2/conf-available/adminer.conf.bak
sudo cp /etc/mysql/mariadb.conf.d/50-server.cnf /etc/mysql/mariadb.conf.d/50-server.cnf.bak
  • Откат конфигурации (пример):
sudo mv /etc/apache2/conf-available/adminer.conf.bak /etc/apache2/conf-available/adminer.conf
sudo systemctl restart apache2

Playbook (SOP) — быстрый набор команд для развёртывания

  1. Обновление и установка:
sudo apt update
sudo apt install adminer apache2-utils
  1. Включение Adminer для Apache:
sudo ln -s /etc/apache2/conf-available/adminer.conf /etc/apache2/conf-enabled/
sudo apachectl configtest
sudo systemctl restart apache2
  1. Изменение пути (опционально):
sudo sed -i "s|Alias /adminer|Alias /mydbadmin|" /etc/apache2/conf-available/adminer.conf
sudo apachectl configtest
sudo systemctl restart apache2
  1. Добавление базовой аутентификации:
sudo htpasswd -B -c /etc/adminer/.htpasswd dbadmin
sudo systemctl restart apache2
  1. Настройка удалённого пользователя MariaDB (на хосте БД):
sudo mysql -u root -p
CREATE USER 'dbadmin'@'192.168.5.75' IDENTIFIED BY 'dbpassword';
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'dbadmin'@'192.168.5.75';
FLUSH PRIVILEGES;

Критерии приёмки:

  • Adminer открывается по новому пути и запрашивает базовую аутентификацию.
  • Пользователь БД может успешно подключаться и выполнять ожидаемые операции.
  • Правила брандмауэра разрешают трафик только между разрешёнными хостами.

Тестовые сценарии и критерии приёмки

  1. Попытка доступа к /adminer возвращает 404 при удалении alias — проверка изменения пути.
  2. Попытка открыть /mydbadmin без ввода базовой аутентификации — должна запрашиваться аутентификация.
  3. Подключение через Adminer как dbadmin — успешный вход и минимально необходимые операции (SELECT/INSERT).
  4. Попытка подключиться с незарегистрированного IP — блокировка на уровне UFW.

Роли и чеклисты

Системный администратор:

  • Установить пакет adminer.
  • Настроить Apache и HTTPS.
  • Настроить брандмауэр.

DBA:

  • Создать пользователей БД с минимальными правами.
  • Контролировать журналы аудита СУБД.

Разработчик:

  • Проверить доступ к тестовым базам.
  • Убедиться, что возможности импорта/экспорта соответствуют требованиям.

Модель принятия решений (Mermaid)

flowchart TD
  A[Нужно быстро управлять БД через веб?] -->|Да| B{СУБД — MySQL/MariaDB или другие}
  B -->|Только MySQL/MariaDB| C[phpMyAdmin]
  B -->|Несколько типов| D[Adminer]
  B -->|Только PostgreSQL| E[pgAdmin]
  D --> F{Требуется HTTPS/VPN}
  F -->|Да| G[Развернуть за VPN + включить HTTPS]
  F -->|Нет| H[Ограничить доступ по IP + включить basic auth]

Факто-бокс

  • Путь конфигурации Apache Adminer: /etc/apache2/conf-available/adminer.conf
  • Файл паролей Apache: /etc/adminer/.htpasswd
  • Стандартный порт MySQL/MariaDB: 3306 (tcp)
  • Минимальный набор: Ubuntu 22.04 + Apache2 + PHP + пакет adminer
  • Adminer поставляется как единый PHP‑файл и зависит от PHP‑драйверов для каждой СУБД

Совместимость и миграционные заметки

  • Пакет adminer в репозитории Ubuntu обновляется вместе с остальными пакетами. Для использования новых плагинов можно установить самостоятельный файл adminer.php вместо пакета.
  • Если вы мигрируете с phpMyAdmin, обратите внимание, что некоторые функции (например, расширенная визуализация схем) могут отличаться.

Конфиденциальность и соответствие требованиям

  • Adminer передаёт данные через форму входа — обязательно использовать HTTPS для защиты учётных данных.
  • Для соответствия требованиям по журналированию и аудиту храните логи доступа Apache и логи действий в СУБД.

Технические советы по жесткой конфигурации PHP/Apache

  • Ограничьте размер загружаемых файлов в php.ini (upload_max_filesize, post_max_size).
  • Отключите опасные функции PHP, если они не нужны (например, exec, shell_exec) в конфигурации php.ini или через php_admin_value.
  • Используйте Require ip в блоке Location для дополнительной фильтрации по IP.

Отладка частых ошибок

  • 403 Forbidden при доступе — проверьте права на /etc/adminer и наличие AllowOverride/Require в конфигурации.
  • Невозможно подключиться к удалённой БД — проверьте bind/listen, UFW и маршрутизацию между хостами.

Итог

Поздравляем — вы установили и защитили Adminer на Ubuntu 22.04. Вы изменили путь доступа, включили базовую аутентификацию Apache и настроили удалённого пользователя MariaDB. Для повышения безопасности дополнительно включите HTTPS, ограничьте доступ по IP и используйте учётные записи с минимальными правами.

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

Краткая памятка по быстрым командам:

  • Установка: sudo apt install adminer
  • Включение конфигурации: sudo ln -s /etc/apache2/conf-available/adminer.conf /etc/apache2/conf-enabled/
  • Создание htpasswd: sudo htpasswd -B -c /etc/adminer/.htpasswd dbadmin
  • Перезапуск Apache: sudo systemctl restart apache2

Спасибо, что прочитали руководство. Если нужно, могу подготовить инструкцию для nginx или docker‑контейнера с Adminer.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро