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
Комментарии