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. Строку База данных оставить пустой. Нажать Войти
Ошибка подключения к базе 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
Мне приглянулся вот такой:
Перед установкой другого оформления сначала необходимо удалить старый файл:
sudo rm /opt/www/adminer/adminer.css
Комментарии