Postfix Admin، یک رابط وب است که به کاربران اجازه می‌دهد، یک سرور ایمیل مبتنی بر Postfix را پیکربندی و مدیریت کنند. با Postfix Admin می‌توانید، چندین دامنه مجازی، کاربر و نام مستعار ایجاد و مدیریت نمایید.

در این مقاله، مطالب اولیه برای راه‌اندازی سرور ایمیل Postfix، شامل ایجاد سوابق DNS و نحوه نصب و پیکربندی Postfix Admin، نصب Nginx با گواهی رایگان Let’s Encrypt، همچنین PHP و MySQL شرح داده شده است.

 

دقت کنید که اگرچه این آموزش برای اوبونتو 16.04 نوشته شده است؛ ولیکن مراحل آن با اعمال تغییرات کوچکی قابل اجرا برروی هر نسخه جدیدتر اوبونتو است.

 

این مطلب نیز ممکن است برای شما مفید باشد: نصب و پیکربندی Postfix و Dovecot

 

به منظور دنبال کردن این مراحل، به موارد زیر احتیاج دارید:

  • سرور اوبونتو 16.04 (دقت کنید که hostname سرور باید FQDN باشد. در این مجموعه از mail.linuxize.com استفاده شده است.)
  • کاربر دارای امتیازات sudo

 

تنظیمات DNS

برای اینکه سیستم ایمیل شما کار کند، باید رکوردهای DNS زیر را تنظیم کنید:

1. یک رکورد، برای نگاشت کردن FQDN (نام میزبان) سیستم به آدرس IPv4 سرور ایمیل شما.

mail.linuxize.com. 3600 IN A   23.45.67.89

همانطور که می‌دانید، FQDN از دو قسمت نام میزبان و نام دامنه تشکیل شده است.

2. یک رکورد MX، برای تعیین اینکه کدام سرور ایمیل مسئول پذیرش پیام‌های ایمیل از طرف دامنه گیرنده است. در اینجا، می‌خواهیم همه ایمیل‌های ارسالی به آدرس‌های ایمیل linuxize.com، توسط سرور ایمیل mail.linuxize.com پذیرفته شوند.

linuxize.com.      3600 IN MX  0 mail.linuxize.com.

3. یک رکورد SPF برای تأیید اینکه کدام سرورهای ایمیل برای ارسال ایمیل از طرف دامنه مشخص تأیید شده‌اند. در مثال زیر، ما سرورهای ایمیل دامنه (mx) را تأیید می‌کنیم و در صورت عدم موفقیت در بررسی SPF، نتیجه یک شکست soft بصورت ~all خواهد بود:

linuxize.com.      3600 IN TXT "v=spf1 mx ~all"

دقت کنید که شما باید نام دامنه و آدرس IP را با نام دامنه واقعی خود و آدرس IP سرور ایمیل خود جایگزین کنید.

 

Reverse DNS (PTR)

Reverse DNS (PTR)، یک آدرس IP برای نگاشت به نام دامنه است، دقیقاً برعکس DNS که نام دامنه‌ها را به آدرس‌های IP نگاشت می‌کند.

اکثر سرورهای ایمیل، یک جستجوی DNS معکوس را در آدرس IPای انجام می‌دهند که سعی در اتصال به آن‌ها دارد و در صورت تنظیم نشدن رکورد PTR ممکن است ایمیل‌ها از طرف سرور پذیرفته نشوند.

در اکثر موارد می‌توان ورودی‌های PTR را از طریق رابط وب‌ هاست خود یا از طریق تماس با تیم پشتیبانی تنظیم کرد تا یک رکورد صحیح PTR برای شما تنظیم گردد.

شما می‌توانید، برای پیدا کردن Reverse DNS آدرس IP داده شده، از دستور dig استفاده کنید.

dig -x 23.45.67.89
Output:
23.45.67.89.in-addr.arpa domain name pointer mail.linuxize.com.

 

ایجاد یک کاربر سیستم

از آنجا که در حال پیکربندی یک سرور ایمیل با کاربران مجازی هستید، به یک کاربر سیستم نیاز دارید که مالک کلیه صندوق‌های ایمیل باشد و توسط کاربران مجازی برای دسترسی به پیام‌های ایمیل‌شان در سرور مورد استفاده قرار گیرد.

دستور زیر، یک گروه و کاربر جدید به نام vmail ایجاد می‌کند و دایرکتوری اصلی کاربر را برروی /var/mail/vmail تنظیم می‌نماید:

sudo groupadd -g 5000 vmail
sudo useradd -u 5000 -g vmail -s /usr/sbin/nologin -d /var/mail/vmail -m vmail

همه صندوق‌های ایمیل مجازی در دایرکتوری /var/mail/vmail ذخیره می‌شوند.

 

نصب Nginx PHP و MySQL

Postfix Admin، یک برنامه مبتنی بر PHP است. به منظور دسترسی به رابط وب PostfixAdmin باید یک وب سرور Nginx و PHP نصب کنید.
به منظور نصب Nginx ،PHP و همه ماژول‌های PHP مورد نیاز، دستور زیر را اجرا نمایید:

sudo apt install nginx mysql-server php7.0-fpm php7.0-cli php7.0-imap php7.0-json php7.0-mysql php7.0-opcache php7.0-mbstring php7.0-readline

در هنگام نصب، از شما خواسته می‌شود یک رمز عبور MySQL ایجاد کنید.

 

بارگیری و پیکربندی Postfix Admin

با استفاده از دستور wget بصورت زیر، فایل فشرده شده Postfix Admin را بارگیری نمایید:

VERSION=3.1
wget -q https://downloads.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-${VERSION}/postfixadmin-${VERSION}.tar.gz

پس از اتمام بارگیری، فایل را استخراج کنید:

tar xzf postfixadmin-${VERSION}.tar.gz

فایل‌های منبع Postfix Admin را به دایرکتوری /var/www منتقل کرده و دایرکتوری templates_c را ایجاد نمایید:

sudo mv postfixadmin-${VERSION}/ /var/www/postfixadmin
rm -f postfixadmin-${VERSION}.tar.gz
mkdir /var/www/postfixadmin/templates_c

Nginx و PHP-FPM تحت www-data کاربر در حال اجرا هستند؛ بنابراین شما باید مالکیت /var/www/postfixadmin را به آن کاربر تغییر دهید:

sudo chown -R www-data: /var/www/postfixadmin

Postfix Admin، از یک پایگاه داده MySQL برای ذخیره اطلاعات در مورد کاربران، دامنه‌ها و پیکربندی برنامه استفاده خواهد کرد.

 

برای پیکربندی، با استفاده از دستور زیر، وارد پوسته MySQL شوید:

mysql -u root -p

با استفاده از دستورات زیر، کاربر و پایگاه داده MySQL جدید ایجاد کنید:

mysql> CREATE DATABASE postfixadmin;
mysql> GRANT ALL ON postfixadmin.* TO 'postfixadmin'@'localhost' IDENTIFIED BY 'P4ssvv0rD';
mysql> FLUSH PRIVILEGES;

فراموش نکنید که رمز عبور (P4ssvv0rD) را به رمز عبور امن‌تر تغییر دهید.

به جای ویرایش پیکربندی پیشفرض Postfix Admin، در اینجا یک فایل جدید به نام config.local.php ایجاد خواهیم کرد که تنظیمات پیش فرض برنامه را بازنویسی می‌کند:

بدین منظور، فایل را با ویرایشگر مورد نظر خود باز نمایید:

sudo nano /var/www/postfixadmin/config.local.php

و کد php زیر را در آن کپی کنید:

                     /var/www/postfixadmin/config.local.php

<?php
$CONF['configured'] = true;

$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfixadmin';
$CONF['database_password'] = 'P4ssvv0rD';
$CONF['database_name'] = 'postfixadmin';

$CONF['default_aliases'] = array (
  'abuse'      => 'abuse@linuxize.com',
  'hostmaster' => 'hostmaster@linuxize.com',
  'postmaster' => 'postmaster@linuxize.com',
  'webmaster'  => 'webmaster@linuxize.com'
);

$CONF['fetchmail'] = 'NO';
$CONF['show_footer_text'] = 'NO';

$CONF['quota'] = 'YES';
$CONF['domain_quota'] = 'YES';
$CONF['quota_multiplier'] = '1024000';
$CONF['used_quotas'] = 'YES';
$CONF['new_quota_table'] = 'YES';

$CONF['aliases'] = '0';
$CONF['mailboxes'] = '0';
$CONF['maxquota'] = '0';
$CONF['domain_quota_default'] = '0';
?>

سپس فایل را ذخیره کرده و آن را ببندید.

 

با پیکربندی فوق، نوع پایگاه داده، گواهی ورود به سیستم و نام‌های مستعار پیش فرض تعیین می‌شود. همچنین fetchmail غیرفعال و quota فعال می‌گردد.

سپس، دستور زیر را به منظور ایجاد طرح برای پایگاه داده Postfix Admin اجرا نمایید:

sudo -u www-data php /var/www/postfixadmin/upgrade.php

پس از اینکه پایگاه داده بطور کامل ایجاد شد، می‌توانید با استفاده از ابزار postfixadmin-cli، اولین کاربر superadmin مربوط به PostfixAdmin را ایجاد کنید.

این کاربر، برای تغییر هر دامنه یا تنظیمات برنامه، دارای امتیازات مدیریتی است.

sudo bash /var/www/postfixadmin/scripts/postfixadmin-cli admin add superadmin@linuxize.com --superadmin 1 --active 1 --password P4ssvv0rD --password2 P4ssvv0rD

خروجی اجرای دستور باید چیزی شبیه به این باشد:

Output:
Welcome to Postfixadmin-CLI v0.2
---------------------------------------------------------------

The admin superadmin@linuxize.com has been added!

---------------------------------------------------------------

فراموش نکنید که رمز عبور (P4ssvv0rD) را برای حساب superadmin به رمز عبور امن‌تر تغییر دهید.

 

نصب گواهی رایگان Let’s Encrypt SSL

در اینجا، به منظور دسترسی به نصب مدیر Postfix و فعال کردن رمزگذاری Dovecot و Postfix SSL/TLS از گواهی SSL استفاده می‌کنیم.

مهم‌ترین نکته در اینجا، تولید یک گواهینامه SSL برای نام میزبان سرور (FQDN) در مورد mail.linuxize.com است.

پس از ایجاد گواهی SSL، سرور Nginx خود را به صورت زیر ویرایش نمایید:

                        /etc/nginx/sites-enabled/mail.linuxize.com.conf

server {
    listen 80;
    server_name mail.linuxize.com;

    include snippets/letsencrypt.conf;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name mail.linuxize.com;
    root /var/www;

    ssl_certificate /etc/letsencrypt/live/mail.linuxize.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/mail.linuxize.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/mail.linuxize.com/chain.pem;
    include snippets/ssl.conf;
    include snippets/letsencrypt.conf;

    location / {
       try_files $uri $uri/ /index.php;
    }

    location /postfixadmin {
       index index.php;
       try_files $uri $uri/ /postfixadmin/index.php;
    }

    location ~* \.php$ {
         fastcgi_split_path_info ^(.+?\.php)(/.*)$;
         if (!-f $document_root$fastcgi_script_name) {return 404;}
         fastcgi_pass  unix:/run/php/php7.0-fpm.sock;
         fastcgi_index index.php;
         include fastcgi_params;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

برای اعمال تغییرات، سرویس Nginx را به صورت زیر مجدداً راه‌اندازی کنید:

sudo systemctl reload nginx

اکنون باید بتوانید با استفاده از کاربر superadmin که قبلاً در این آموزش ایجاد کرده‌اید، به آدرس https://mail.linuxize.com/postfixadmin وارد شوید.

 

 

 

منبع:

linuxize