Adminer

Служит для управление любой популярной базой данных. Заменит аналогичных тяжеловесов, которые требуют больше ресурсов и даст намного больше возможностей. Для начинающим пользователей он будет намного интуитивнее понятным своих аналогов. Все замечательные качества читаем тут https://www.adminer.org/

Установка Adminer в iRedMail

Будет рассмотрена установка для почтового сервера iRedMail. В котором уже предусмотрены настройки для Adminer.

Как установить свой почтовый сервер по проверенной инструкции причем не единожды читаем

Все действия описаны с применением SUDO

Создать каталог, где будет жить Adminer:

sudo mkdir /opt/www/adminer

Перейти во вновь созданный каталог:

cd /opt/www/adminer

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

sudo wget http://www.adminer.org/latest.php

Добавить разрешение на запуск программы

sudo chmod +x latest.php

Включение веб-интерфейса Adminer в iRedMail

Открыть конфигурационный файл веб-сервера:

sudo nano /etc/nginx/sites-available/00-default-ssl.conf

Добавить строку include /etc/nginx/templates/adminer.tmpl;

Должно быть так:

#
# Note: This file must be loaded before other virtual host config files,
#
# HTTPS
server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name _;

    root /var/www/html;
    index index.php index.html;

# Добавлено для вызова в случае ошибок 404 и 403 своей страницы
    error_page 404 403 /custom_404.html;
    location = /custom_404.html {
        root /usr/share/nginx/html;
        internal;
    }

    include /etc/nginx/templates/misc.tmpl;
    include /etc/nginx/templates/ssl.tmpl;
    include /etc/nginx/templates/iredadmin.tmpl;
#    include /etc/nginx/templates/roundcube.tmpl;
    include /etc/nginx/templates/sogo.tmpl;
#    include /etc/nginx/templates/netdata.tmpl;
    include /etc/nginx/templates/php-catchall.tmpl;
    include /etc/nginx/templates/stub_status.tmpl;
# Добавлено для работы с базой Postgresql через Adminer
    include /etc/nginx/templates/adminer.tmpl;
}

Сохранить файл Ctrl+O Enter, закрыть Ctrl+X

Безопасность использования веб-интерфейса Adminer

Чтобы веб-морда Adminer не светила в интернете всем, необходимо сделать следующее.

Ограничить доступ к Adminer по подсетям или конкретному IP сняв комментарий с нужной строки или добавив свои подсети отредактировав файл:

sudo nano /etc/nginx/templates/adminer.tmpl

Получится примерно так:

location ~ ^/adminer$ {
    include /etc/nginx/templates/hsts.tmpl;
    include /etc/nginx/templates/fastcgi_php.tmpl;

    fastcgi_param SCRIPT_FILENAME /opt/www/adminer/latest.php;

# Разрешить доступ только с конкретных адресов или пул адресов
    # Access control
    allow 127.0.0.1;
    #allow 192.168.1.10;
    allow 192.168.1.0/24;
    deny all;
}

location ~ ^/adminer.css$ {
    alias /opt/www/adminer/adminer.css;
}

Сохранить файл Ctrl+O Enter, закрыть Ctrl+X

Строка deny all; запрещает доступ с любого IP, allow разрешает доступ с подсетей записанных в формате CIDR или конкретный адрес.

Перезапуск веб-сервера Nginx

Произвести проверку синтаксиса и перезапустить веб-сервер

sudo nginx -t
sudo systemctl restart nginx

Вход в веб-интерфейс Adminer база данных PostgreSQL

Можно зайти по локальному адресу почтового сервера ip-адрес-сервера/adminer или по доменному имени mail.wildserver.ru/adminer. Естественно страница будет показана при заходе с разрешенных ip-адресов, в противном случае будет показана ошибка 403 - доступ запрещен или пользовательская страница ошибок, которую сделали ранее.

Зайдя на страницу управления базами данных необходимо выбрать Движок PostgreSQL. Поле Сервер оставить по умолчанию localhost. Имя пользователя набрать postgres. Пароль который был создан при установке iRedMail. Строку База данных оставить пустой. Нажать Войти

Вход в Adminer

Ошибка подключения к базе PostgreSQL

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

Unable to connect to PostgreSQL server: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: ВАЖНО: пользователь "postgres" не прошёл проверку подлинности (Peer)

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

Необходимо подредактировать конфигурационный файл PostgreSQL:

sudo nano /etc/postgresql/15/main/pg_hba.conf

путь к файлу может быть другим в зависимости от установленной версии PostgreSQL.

В самом низу есть строчка local all postgres peer надо заменить peer на md5 т.е строки внизу будут такими:

local all     postgres   md5
local all     all                 md5
host  all     all     0.0.0.0/0   md5

Сохранить файл Ctrl+O Enter, закрыть Ctrl+X

Перезапуск PostgreSQL

После введенных изменений нужно перезапустить сервис PostgreSQL

sudo systemctl restart postgresql

Снова заходим mail.wildserver.ru/adminer вводим регистрационные данные и испытываем чувство высокого удовлетворения ☺️

Выбор базы данных

Вход в веб-интерфейс Adminer база данных MariaDB

Зайти по доменному имени mail.wildserver.ru/adminer. Зайдя на страницу управления базами данных необходимо выбрать Движок MySQL. Поле Сервер оставить по умолчанию localhost. Имя пользователя набрать root. Пароль который был создан при установке iRedMail. Строку База данных оставить пустой. Нажать Войти

Изменить оформление Adminer

На свой вкус и цвет можно выбрать шкурку для веб-интерфейса Adminer, все там же на официальном сайте. Для установки требуется только ссылка на файл .css

Заходим в каталог:

cd /opt/www/adminer

Скачиваем понравившийся скин:

sudo wget https://raw.githubusercontent.com/vrana/adminer/master/designs/pappu687/adminer.css

Мне приглянулся вот такой:

Скин Adminer

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

sudo rm /opt/www/adminer/adminer.css