config local php postfixadmin

PostfixAdmin. Установка и настройка

Аренда сервера. Выделенные серверы в Украине и Нидерландах
Аренда сервера

config local php postfixadminPostfixAdmin – это web-интерфейс, который призван облегчить такие рутинные задачи как: добавление и удаление доменов, почтовых ящиков и алиасов, изменение паролей к почтовым ящикам. Кроме этого при помощи postfixadmin доменам можно назначать своих администраторов, которые будут иметь возможность добавлять и удалять почтовые ящики и алиасы на вверенном им домене, изменять пароли.

Отмечаем нужные опции:

Пакет postfixadmin установлен и мы переходим к его настройке. В процессе настройки мы позаботимся о безопасности, настроим виртуальный хост для postfixadmin таким образом, чтобы даже в случае взлома злоумышленник не смог причинить практически никакого вреда системе. Итак, поехали.

Для скриптов postfixadmin мы выделим отдельную площадку. Для этих целей создадим пользователя и домашнюю директорию с деревом каталогов под виртуалхост, установим соответствующие права:

В директории /home/postfixadmin/tmp будут размещаться временные файлы, генерируемые PHP скриптом (сессии, к примеру), а в директории /home/postfixadmin/admin.example.com – скрипты postfixadmin. Перенесем их в эту директорию и зададим нужного владельца на дерево каталогов:

Создадим базу данных для posfixadmin:

Создадим файл /home/postfixadmin/admin.example.com/config.local.php и отредактируем его (для совместимости с последующими версиями не рекомендуется редактировать config.inc.php, вместо этого рекомендуется заносить измененные опции в config.local.php):

Теперь переходим к настройке виртуалхоста для postfixadmin. В созданной нами директории для конфигурационных файлов виртуалхостов (/usr/local/etc/apache/vhosts) создаем файл postfixadmin.conf:

ServerName admin.example.com
ServerAdmin [email protected]
DocumentRoot «/home/postfixadmin/admin.example.com»

Источник

Установка и настройка PostfixAdmin на CentOS 7

Инструкция рассчитана на тех, у кого уже есть настроенный почтовый сервер и необходимо отдельно установить систему управления для него. Если настроенного почтового сервера нет, лучше перейти к инструкции Настройка полноценного почтового сервера на Postfix, которая уже включает подраздел с установкой и PostfixAdmin, и Dovecot, и систем безопасности.

Настройка веб-сервера и сервера баз данных

PostfixAdmin работает как веб-приложение на веб-сервере. В качестве последнего в данной инструкции будет использоваться httpd (apache) + PHP. Если есть желание настроить систему управления Postfix на NGINX, читайте инструкцию Установка NGINX на CentOS.

В качестве СУБД будем использовать MariaDB.

Httpd + PHP

Для установки httpd на CentOS выполняем следующую команду:

Разрешаем http-порт в брандмауэре:

Разрешаем автозапуск и запускаем сервис httpd:

systemctl enable httpd

systemctl start httpd

Открываем браузер и проверяем работоспособность веб-сервера. Мы должны увидеть что-то подобное:

config local php postfixadmin

PHP и дополнительные компоненты

yum install php php-mysql php-mbstring php-imap

* php-mysql — компонент для подключения к базе MySQL (MariaDB), php-mbstring — расширение для работы со строковыми данными; php-imap необходим для взаимодействия с почтовой системой по IMAP.

Для применения настроек перезагружаем httpd:

systemctl restart httpd

MariaDB

yum install mariadb mariadb-server

Включаем автозапуск и запускаем сервис:

systemctl enable mariadb

systemctl start mariadb

Задаем пароль для суперпользователя mariadb:

Установка и настройка PostfixAdmin

Сначала скачиваем последнюю версию postfixadmin:

* если система вернет ошибку, установите wget — yum install wget.

Распаковываем скачанный архив в директорию с порталом:

* где /var/www/html — каталог по умолчанию для хранения сайтов в Apache.

Переименовываем распакованную папку (убираем указание на версию), чтобы было удобнее вводить URL-адрес:

mv /var/www/html/postfixadmin-3.0.2 /var/www/html/postfixadmin

Задаем права на каталог:

* в данном примере, в качестве веб-сервера используется Apache, который по умолчанию запускается от пользователя apache, поэтому мы и задаем его в качестве владельца.

Создаем базу данных postfix и учетную запись в mariadb:

CREATE DATABASE postfix DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

* где postfix — имя базы.

GRANT ALL ON postfix.* TO ‘postfix’@’localhost’ IDENTIFIED BY ‘postfix123’;

* где postfix — имя учетной записи; postfix123 — пароль; localhost разрешает подключение только с локального сервера.

Выходим из командной оболочки MariaDB:

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

И редактируем следующее:

$CONF[‘configured’] = true;
$CONF[‘default_language’] = ‘ru’;
$CONF[‘database_password’] = ‘postfix123’;
$CONF[’emailcheck_resolve_domain’]=’NO’;

Запускаем браузер и вводим адрес http:// /postfixadmin/setup.php

Начнется процесс проверки конфигурации и установки портала PostfixAdmin. После ее окончания вводим дважды пароль и генерируем хэш:

config local php postfixadmin

После перезагрузки страницы копируем хэш:

config local php postfixadmin

Открываем конфигурационный файл и редактируем следующее:

$CONF[‘setup_password’] = ‘7a8e14. c26’;

После, на той же странице, где показан хэш, добавляем суперпользователя PostfixAdmin:

config local php postfixadmin

В итоге мы увидим следующее:

config local php postfixadmin

И переходим в браузере на страницу http:// /postfixadmin/

Вводим логин и пароль для созданного пользователя.

Источник

Установка и настройка почтового сервера postfix с хранением почтовых паролей в БД

Мы уже рассказывали о том, как провести подготовительные работы и настроить почтовый сервер с хранением данных пользователей в файле. Теперь рассмотрим второй вариант и разберёмся, как настраивать почтовый сервер с виртуальными пользователями и хранением информации в базе данных.

Установка веб-сервера и сервера БД

Для Centos:

Запускаем веб-сервер и включаем автозагрузку:

Запускаем сервер БД и включаем автозагрузку:

Для Debian/Ubuntu:

Для Debian 8:

При установке в Debian 8 и Ubuntu 16.04 нужно будет также придумать и указать, какой пароль root будет у БД:

config local php postfixadmin config local php postfixadmin

В Ubuntu 18.04 и Debian 9 пароль пользователя root указывается пустой при установке.

Запускаем веб-сервер и включаем автозагрузку:

Запускаем сервер БД и включаем автозагрузку:

Устанавливаем и настраиваем postfixadmin

Postfixadmin — это веб-интерфейс управления почтовым сервером. В нём можно создать почтовые домены и почтовые ящики.

Создаём БД:

В консоли mysql вводим следующие команды:

config local php postfixadmin

Centos:

Debian/Ubuntu:

Символическая ссылка должна вести в директорию сайта (укажите путь до своего сайта), если на сервере нет сайтов, то нужно оставить текущую команду:

Создаем локальный файл конфигурации:

И вставляем в него следующий код, предварительно заменив пароль от БД и почтовый домен на свои:

Далее переходим по адресу: http://ВАШ_ПОЧТОВЫЙ_ДОМЕН/postfixadmin/setup.php

После чего откроется страница с проверкой настроек — все параметры должны быть OK.

config local php postfixadmin

Если по итогам проверки есть замечания, их нужно устранить. Если замечаний нет, придумайте и введите пароль установки в форме внизу страницы (пароль должен содержать обязательно 2 цифры и быть длиннее 5 символов), нажмите кнопку — « Generate password hash ». Страница обновится и появится хеш, который выделен красным:

config local php postfixadmin

Перезагружаем страницу и теперь можем создать учётную запись администратора:

config local php postfixadmin

Пишем в первой строке пароль от установки, который вводили ранее, и указываем почтовый ящик root@ВАШ_ПОЧТОВЫЙ_ДОМЕН и пароль к нему, если все сделано правильно, то пользователь будет добавлен:

config local php postfixadmin

config local php postfixadmin

Создаём почтовый ящик: Обзор — Создать ящик :

config local php postfixadmin

Устанавливаем и настраиваем postfix

Устанавливаем postfix на сервер:

Для Centos (обычно в Centos 7 он уже установлен):

Для Debian/Ubuntu:

Далее отобразится окно, где нужно выбрать Internet Site:

config local php postfixadmin

И в следующем окне указать ваш домен, с которого будет отправляться почта:

config local php postfixadmin

Запускаем и добавляем в автозагрузку службу postfix:

В конец файла /etc/postfix/master.cf добавляем следующие строки:

Для Centos в конец этого же файла нужно добавить:

Для Debian/Ubuntu в конец этого же файла нужно добавить:

Создадим директорию для хранения файлов подключения к mysql :

Создадим файлы конфигурации mysql:

В созданный файл добавляем:

В созданный файл добавляем:

В созданный файл добавляем:

В созданный файл добавляем:

В созданный файл добавляем:

Теперь сгенерируем самоподписанный сертификат, чтобы данные не передавались в открытом виде. При генерации сертификата будут заданы несколько вопросов, на них можно ответить все что угодно, особой роли это не играет.

Вот пример выполнения команды:

config local php postfixadmin

Если у вас есть платный сертификат на домен с не истекшим сроком действия, используйте его. Файлы сертификата нужно разместить в директории /etc/postfix/certs/ и заменить имена файлов на свои в конфигурационном файле postfix /etc/postfix/main.cf в следующих строках:

Проверить корректность настроек postfix можно через команду:

Перезапустим службу, чтобы применились настройки:

Устанавливаем и настраиваем dovecot

Centos:

Debian/Ubuntu:

Активируем службу и добавляем в автозапуск:

Создаём локальный файл настроек:

Открываем файл текстовым редактором и указываем в нём следующие настройки:

И внесём в него следующие настройки:

Сертификат используется тот, что генерировали при настройке postfix, если используете свой сертификат, то нужно указать путь до него в следующих строках конфигурационного файла dovecot /etc/dovecot/local.conf :

Перезапускаем службу, чтобы применились настройки:

Источник

Установка и настройка почтового сервер с PostfixAdmin

Set up a mail server with PostfixAdmin

Это первая публикация. которая описывает создание необходимых записей DNS и объясняет, как установить и настроить Postfix Admin, Nginx с бесплатным сертификатом Let’s Encrypt, PHP и MySQL.

Прежде чем приступить

В качестве предварительных условий, чтобы следовать этой серии, вам потребуется:

Настройки DNS

Для работы вашей почтовой системы необходимо настроить следующие записи DNS:

Обратный DNS (PTR)

Большинство почтовых серверов выполняют обратный поиск DNS по IP-адресу, который пытается подключиться к ним, и могут не принимать электронные письма от сервера, если не установлена ​​запись PTR.

В большинстве случаев записи PTR можно установить через веб-интерфейс вашего хостинг-провайдера или связавшись со службой поддержки и попросив их настроить правильную запись PTR для вас.

Вы можете использовать команду dig, чтобы узнать обратный DNS данного IP-адреса.

Создать системного пользователя

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

Следующая команда создаст новую группу и имя пользователя vmail и установит для домашнего каталога пользователя значение /var/mail/vmail :

Все виртуальные почтовые ящики будут храниться в /var/mail/vmail каталоге.

Установите Nginx PHP и MySQL

Выполните следующую команду, чтобы установить Nginx, PHP и все необходимые модули PHP:

Вам будет предложено создать корневой пароль MySQL во время установки.

Скачать и настроить Postfix Admin

На момент написания статьи, 3.1 это последняя стабильная версия Postfix Admin.

Загрузите архив Postfix Admin с помощью следующей команды wget :

После завершения загрузки распакуйте архив :

Переместите исходные файлы администратора Postfix в /var/www каталог и создайте templates_c каталог (кэш smarty):

И Nginx, и PHP-FPM работают под пользователем, www-data поэтому нам нужно сменить владельца /var/www/postfixadmin этого пользователя:

Postfix Admin будет использовать базу данных MySQL для хранения информации о пользователях, доменах и конфигурации приложения.

Авторизуйтесь на сервере БД MySQL :

Создайте нового пользователя и базу данных MySQL используя следующие команды:

Вместо того, чтобы редактировать конфигурацию Postfix Admin по умолчанию, мы создадим новый файл с именем, config.local.php который перезапишет настройки приложения по умолчанию:

Откройте файл с вашим текстовым файлом:

Вставьте следующий код php:

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

Затем выполните следующую команду, чтобы создать схему для базы данных Postfix Admin:

После того, как база данных заполнена, мы можем продолжить и создать нашего первого пользователя PostfixAdmin superadmin, используя postfixadmin-cli инструмент.

Этот пользователь будет иметь права администратора для изменения любого домена или настройки приложения.

Вывод должен выглядеть примерно так:

Не забудьте изменить пароль ( P4ssvv0rD ) для учетной записи superadmin на более безопасный.

Установите бесплатный SSL-сертификат Let’s Encrypt

Мы собираемся использовать сертификат SSL для доступа к нашей установке Postfix Admin и включить шифрование Dovecot и Postfix SSL / TLS.

После того, как вы сгенерировали сертификат SSL, следуя приведенному выше учебнику, отредактируйте свой блок сервера Nginx следующим образом:

Перезагрузите службу Nginx, чтобы изменения вступили в силу:

Вывод

В этом руководстве вы установили Postfix Admin.

Источник

Почтовый сервер Postfix на CentOS 7 с виртуальными доменами, системой управления, веб-доступом и многим другим

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

Содержание

1. Преднастройка системы

Напоминаю, данная инструкция написана под систему Linux CentOS версии 7.

Общие настройки

Задаем правильное имя серверу — это важный шаг, так как большинство антиспам систем выполняют проверки, обращаясь к серверу по имени в ожидании ответа.

hostnamectl set-hostname relay.dmosk.ru

* необходимо указать FQDN-имя, которое будет доступно из глобальной сети. В данном примере указано relay.dmosk.ru.

Устанавливаем служебные пакеты (они понадобятся в процессе настройки сервера):

yum install chrony wget

* chrony для возможности синхронизировать время на сервере; wget — клиент для загрузки файлов.

Задаем временную зону (в данном примере московское время):

timedatectl set-timezone Europe/Moscow

Разрешаем сервис для синхронизации времени и запускаем его:

Настройка безопасности

Заранее открываем порты на брандмауэре с помощью firewalld:

* где мы откроем следующие порты:

В CentOS также может использоваться утилита iptables — в таком случае команды будут следующие:

Отключение SELinux

Для отключения дополнительного компонента безопасности вводим 2 команды:

* первая команда отключит SELinux для текущей загрузки. Вторая оставит его отключенным на постоянной основе.

2. Настройка веб-сервера: NGINX + PHP + MariaDB

Система управления PostfixAdmin работает как веб-приложение, разработанное на PHP, а информацию хранит в базе данных. В нашем примере будет использоваться веб-сервер на NGINX, а база данных — MariaDB.

Установка NGINX

Устанавливаем репозиторий EPEL:

yum install epel-release

Разрешаем автозапуск сервиса и запускаем его:

systemctl enable nginx

systemctl start nginx

Проверяем работоспособность веб-сервера, обратившись к нему в браузере по IP-адресу. Если видим заголовок «Welcome to nginx!», NGINX настроен верно.

config local php postfixadmin

PHP + PHP-FPM + NGINX

Устанавливаем php и php-fpm:

yum install php php-fpm

* где /usr/share/nginx/html — каталог для размещения портала управления Postfix.

* здесь мы поменяли строку 127.0.0.1:9000.

systemctl enable php-fpm

systemctl start php-fpm

systemctl restart nginx

* если в процессе перезапуска nginx выскочит ошибка nginx: [emerg] a duplicate default server, необходимо найти настройку виртуального домена, в которой также указана опция default_server — опцию нужно убрать. Или можно самостоятельно настроить другой виртуальный домен.

Для проверки, создаем индексный файл в директории сайта со следующим содержимым:

Открываем сайт в браузере по его IP-адресу. На открывшейся странице мы должны увидеть подробную информацию по php:

config local php postfixadmin

MariaDB

Устанавливаем сервер баз данных следующей командой:

yum install mariadb-server

Включаем автозапуск сервиса и запускаем его:

systemctl enable mariadb

systemctl start mariadb

Задаем пароль для пользователя sql root:

3. Установка и настройка PostfixAdmin

Устанавливаем дополнительные компоненты для PHP:

yum install php-mysql php-mbstring php-imap

Для применения установленных пакетов, перезапускаем обработчик скриптов:

systemctl restart php-fpm

В директории сайтов nginx создаем каталог для postfixadmin и распаковываем в него архив:

Создаем каталог templates_c внутри папки портала (без него не запустится установка):

Задаем права на каталог:

* несмотря на то, что мы используем веб-сервер nginx, php-fpm по умолчанию, запускается от пользователя apache.

Создаем базу данных postfix и учетную запись в mariadb:

> CREATE DATABASE postfix DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

* где postfix — имя базы.

> GRANT ALL ON postfix.* TO ‘postfix’@’localhost’ IDENTIFIED BY ‘postfix123’;

* где postfix — имя учетной записи; postfix123 — пароль; localhost разрешает подключение только с локального сервера.

Выходим из командной оболочки MariaDB:

Создаем конфигурационный файл postfixadmin:

* в предыдущих версиях использовался файл config.inc.php. В новых версиях его не рекомендуется править, а использовать config.local.php, который переопределяет настройки.

И добавим следующее:

* где configured говорит приложению, что администратор закончил его конфигурирование; default_language — используемый язык по умолчанию; database_password — пароль для базы данных, который мы задали на предыдущем шаге; emailcheck_resolve_domain — задает необходимость проверки домена при создании ящиков и псевдонимов.

Запускаем браузер и вводим адрес http:// /postfixadmin/public/setup.php

Задаем дважды пароль установки и генерируем хэш, кликнув по Generate setup_password hash:

config local php postfixadmin

После перезагрузки страницы копируем хэш:

config local php postfixadmin

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

И добавляем строчку:

.
$CONF[‘setup_password’] = ‘$2y$10. BMK’;

* где ‘$2y$10. BMK’ — скопированный хэш.

Загружаем по новой страницу http:// /postfixadmin/public/setup.php — теперь у нас появится форма для ввода нашего пароля, созданного на предыдущем этапе. Вводим его и кликаем по Login with setup_password:

config local php postfixadmin

* где Setup password — пароль, который мы ввели на предыдущей странице; Пароль — новый пароль для создаваемой учетной записи.

Будет выполнена установка PostfixAdmin.

Если в процессе установки система выведет ошибки, необходимо самостоятельно с ними разобраться. Как правило, они могут сводиться к отсутствию необходимых пакетов, которых может не оказаться в системе по умолчанию.

После установки в нижней части страницы должна быть форма добавления суперпользователя — вводим данные:

config local php postfixadmin

И переходим в браузере на страницу http:// /postfixadmin/public/

Вводим логин и пароль для созданного пользователя.

Однако, конкретно, в моем случае, пользователь не создавался при установке системы и необходимо было создать администратора вручную. Если это потребуется, в консоли сервера подключаемся к СУБД:

Переходим к использованию базы postfix:

Добавляем администратора запросом:

> INSERT INTO admin (`username`, `password`, `superadmin`, `active`) VALUES (‘root@dmosk.ru’, ‘$1$1b7ff416$/KKYqdyAd3viA3.PNu5hh/’, ‘1’, ‘1’);

Выходим из sql-оболочки:

Теперь переходим на страницу http:// /postfixadmin/public/login.php вводим логин root@dmosk.ru и пароль qwe12345 — мы должны оказаться в системе управления почтой.

4. Настройка Postfix

По умолчанию, Postfix уже установлен в CentOS 7. Но если встретится сервер без него, выполним установку простой командой:

yum install postfix

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

* сначала мы создаем группу vmail и guid 1024, после — пользователя vmail с uid 1024 и домашней директорией /home/mail. Обратите внимание, что в некоторых системах идентификатор группы и пользователя 1024 может быть занят. В таком случае необходимо создать другой, а в данной инструкции ниже заменить все 1024 на альтернативный.

Теперь открываем на редактирование конфигурационный файл почтового сервера:

И редактируем следующие строки:

* данная настройка указывает, какой домен подставлять отправителю, если он не указан в заголовке FROM.

mydestination = localhost.$mydomain, localhost, localhost.localdomain

* указываем, для каких доменов принимаем входящую почту.

* указываем, откуда брать список локальных пользователей.

* разрешаем отправлять сообщения локальному серверу.

* необходимо убедиться, что postfix будет слушать на всех необходимых интерфейсах, в данном случае, на всех (all). Также можно задать варианты loopback-only (127.0.0.1) или конкретный IP-адрес интерфейса.

* данный параметр задаст протокол для работы postfix. В данном примере на всех (all). Также можно задать значения ipv4 или ipv6.

Если имя сервера отличается от имени, по которому сервер будет зарегистрирован в DNS, задаем опцию:

Теперь в конец конфигурационного файла допишем следующее:

virtual_mailbox_base = /home/mail
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_minimum_uid = 1024
virtual_uid_maps = static:1024
virtual_gid_maps = static:1024
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1

smtpd_tls_cert_file = /etc/ssl/mail/public.pem
smtpd_tls_key_file = /etc/ssl/mail/private.key
smtpd_use_tls = yes
smtpd_tls_auth_only = yes
smtpd_helo_required = yes

Создаем файл с настройками обращения к базе с алиасами:

user = postfix
password = postfix123
hosts = localhost
dbname = postfix
query = SELECT goto FROM alias WHERE address=’%s’ AND active = ‘1’

* где user и password — логин и пароль для подключения к MySQL; hosts — имя сервера баз данных (в нашем случае, локальный сервер); dbname — имя базы данных; query — шаблон запроса к данным.

Создаем файл с инструкцией получения данных по виртуальным доменам:

user = postfix
password = postfix123
hosts = localhost
dbname = postfix
query = SELECT domain FROM domain WHERE domain=’%u’

И файл с почтовыми ящиками:

user = postfix
password = postfix123
hosts = localhost
dbname = postfix
query = SELECT CONCAT(domain,’/’,maildir) FROM mailbox WHERE username=’%s’ AND active = ‘1’

Открываем файл master.cf и дописываем в самый конец:

* после команды идут аргументы ее запуска. Они могут переопределять параметры, заданные в main.cf. Каждый аргумент записывается с новой строки и начинается с двух пробелов. В данном примере мы используем слудующие аргументы:

systemctl restart postfix

5. Настройка Dovecot

Устанавливаем Dovecot с компонентом для работы с СУБД:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *