Главная
Главная Руководства FreeBSD › Установка postfixadmin на FreeBSD



Автор:

Статья опубликована: 2022-07-24 23:12:43
Последние правки: 2022-07-26 00:36:44

FreeBSD. Установим postfixadmin и настроим его работу через nginx. Важное замечание: postfixadmin не обязательно устанавливать на том же сервере, что и postfix. Общей должна быть только база данных.

  • Исходные данные
    # uname -sr
    FreeBSD 12.3-RELEASE-p5
    # pkg info | grep postfixadmin
    postfixadmin-php74-3.4.d.20211018 PHP web-based management tool for Postfix virtual domains and users
    # pkg info | grep nginx
    nginx-1.22.0_6,3               Robust and small WWW server
    # php -v
    PHP 7.4.30 (cli) (built: Jun 27 2022 19:01:17) ( ZTS )
    
    Помните, что нужны php-fpm и php-модули imap, mbstring.


  • Установка
    # cd /usr/ports/mail/postfixadmin
    # make install clean
    
    Конфигурация при установке:
    [ ] ADDONS  Include add-ons and related Perl dependencies
    [ ] DOCS    Build and/or install documentation
    [x] IMAP    Support automated sub-folder creation for new mailboxes
    ───────────────────────────────── DATABASE ───────────────────────────────
    [x] MYSQL   MySQL database support
    [ ] PGSQL   PostgreSQL database support
    [ ] SQLITE  SQLite database support
    

    В результате получим директорию /usr/local/www/postfixadmin с php-файлами внутри.
    !!! Если до этого php-модуль pdo_mysql не был установлен, то нужно перезагрузить php-fpm.


  • Конфигурация для nginx
    server {
        listen              80 default;
        server_name         admin.site.com;
        rewrite ^(.*)$ https://admin.site.com$1 permanent;
    }
    
    server {
        listen              443 default ssl;
        server_name         admin.site.com;
    
        access_log  /var/log/nginx/admin.site.com-access.log combined;
        error_log   /var/log/nginx/admin.site.com-error.log;
    
        root /var/www/admin.site.com/html;
    
        location /postfixadmin {
            index index.php;
            try_files $uri $uri/ /postfixadmin/index.php;
        }
    
    Делаем симлинк:
    # cd /var/www/admin.site.com/html
    # ln -s /usr/local/www/postfixadmin/public postfixadmin
    
    - Пытливые умы уже догадались, что в этот сайт, кроме postfixadmin, можно напихать ещё и phpmyadmin, и mrtg, и всё, что угодно.
    - В конфигурации есть редирект с http на https, но нужных директив в https-конфиге нет, статья о том, как получить бесплатный сертификат от Let's Encrypt и приделать его к nginx, есть на этом сайте
    - Для большей защищенности сайта хорошо б приделать ещё и auth_basic, как минимум поисковики не смогут шариться и индексировать странички


  • БД, конфигурация и суперадмин

    Если, зайдя на https://admin.site.com/postfixadmin/, вы увидите страничку "Welcome to Postfix Admin", то значит, что можно идти дальше - настраивать БД и заводить суперадмина, пользователя, который сможет создавать новые почтовые домены и почтовые ящики.
    Все это описано в файле INSTALL.TXT, но на всякий случай, я продублирую нужные шаги здесь.
    Итак, БД:
    >mysql CREATE TABLE `postfixadmin`
    >mysql GRANT ALL ON `postfix`.* TO 'postfix'@'localhost' identified by 'mypassword';
    >mysql FLUSH PRIVILEGES;
    
    Файл с конфигурацией postfixadmin, /usr/local/www/postfixadmin/config.local.php
    <?php
    $CONF['configured'] = true;
    
    $CONF['database_type'] = 'mysqli';
    $CONF['database_host'] = 'localhost';
    $CONF['database_user'] = 'postfixadmin';
    $CONF['database_password'] = 'mypassword';
    $CONF['database_name'] = 'postfixadmin';
    $CONF['encrypt'] = 'dovecot:SHA512';
    
    $CONF['fetchmail'] = 'NO';
    $CONF['show_footer_text'] = 'NO';
    ?>
    
    - $CONF['encrypt'] = 'dovecot:SHA512'; - если на сервере нет dovecot, то закомментируйте

    - далее, https://admin.site.com/postfixadmin/setup.php, генерируем setup_password и действуем по инструкции (добавляем хеш в config.inc.php)
    - снова https://admin.site.com/postfixadmin/setup.php, появится возможность зайти при помощи setup_password, воспользуемся этой возможностью
    - после входа внизу странички будет "Database Update", "Add Superadmin Account", выполняем, добавляем и уже под суперадмином заходим в админку (https://admin.site.com/postfixadmin/)

    postfixadmin установлен.