نصب postfix admin در اوبونتو و نحوه راه اندازی آن

راه اندازی mail server با استفاده از postfix admin

postfix admin یک رابط کاربری تحت وب است که کاربران با استفاده از آن سرویس ایمیل بر پایه postfix خود را مدیریت و کانفیگ کنند. با میل سرور postfix admin شما میتوانید چندین دامنه مجازی، کاربر و نام مستعار بسازید و آنها را مدیریت کنید.

پیش نیاز

  • اوبونتو سرور 16.4. نام سرور باید بصورت FQDN باشد.
  • کاربر root

تنظیمات DNS

ابتدا باید یک DNS برای میل سرور خود ست کنید :

mail.linuxhelp.ir. 3600 IN A   23.45.67.89

FQDN از دو بخش تشکیل میشود : hostname و domain name

توسط MX record، مشخص میکنیم که کدام سرور پست الکترونیکی مسئول دریافت پیام ها از طرف گیرنده است. ما میخواهیم تمامی ایمیل های ارسالی به آدرس linuxhelp.ir@ توسط سرور mail.linuxhelp.ir مورد قبول واقع شوند.

.linuxhelp.ir.      3600 IN MX  0 mail.linuxhelp.ir

SPF record، روشی برای احراز هویت ایمیل است که برای شناسایی جعل آدرس های فرستنده در حین تحویل ایمیل طراحی شده است.

در این مرحله ما دامنه mail server خود را تایید میکنیم که اگر MX و SPF دچار خطا شوند نتیجه به شکست منجرب شود.

"linuxhelp.ir.      3600 IN TXT "v=spf1 mx ~all

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

تبدیل ip به url

(Reverse DNS (PTR

کار rDNS مخالف DNS است یعنی در اینجا IP به دامنه تبدیل میشود.معمولا توسط نرم افزار های تحت شبکه و سرورهای ایمیل برای ردیابی و تایید صحت آدرس IP و DNS استفاده میگیرد.

اکثر سرورهای ایمیل یک عمل rDNS بر روی IP انجام میدهد. در صورت تنظیم نکردن PTR امکان دارد ارسال ایمیل به سرور پذیرفته نشود.

در بیشتر موارد ، ورودی های PTR می توانند از طریق رابط وب ارائه دهنده میزبان شما یا با تماس با تیم پشتیبانی تنظیم شده و از آنها بخواهید که یک PTR را برای شما تنظیم کنند.

با استفاده از دستور dig میتوانید rDNS آی‌پی آدرس خود را پیدا کنید :

<dig -x <ip

ساخت کاربر سیستم

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

ساخت کاربر سیستم برای دسترسی به ایمیل های خود بر روی میل سرور

دستور زیر یک گروه جدید و کاربر جدید با نام 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

نصب Nginx PHP و MySQL

PostfixAdmin یک برنامه مبتنی بر PHP است. که میتوانیم به رابط تحت وب PostfixAdmin دسترسی پیدا کنیم. ما نیاز به نصب یک وب سرور و 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 شروع به دانبود میکنیم :

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

پس از کامل شدن نصب آن را از فایل فشرده خارج نمایید:

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

با استفاده از دستور Move فایل سورس 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 اجرا میشوند و ما نیاز داریم که مالکیت آنها را تغییر دهیم :

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

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

لاگین کردن در MySQL shell

mysql -u root -p

توسط دستور زیر یک یوزر جدید برای پایگاه داده میسازیم :

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

پسورد خود را جایگزین پسورد وارده شده کنید

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

پرونده را با ادیتور متنی خود باز کنید:

sudo nano /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@linuxhelp.ir',
  'hostmaster' => 'hostmaster@linuxhelp.ir',
  'postmaster' => 'postmaster@linuxhelp.ir',
  'webmaster'  => 'webmaster@linuxhelp.ir'
);

$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 ، اولین کاربر سوپرادمین PostfixAdmin خود را ایجاد میکنیم :

این کاربر برای تغییر هر دامنه یا تنظیمات برنامه از امتیازات sudo برخوردار است.

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

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

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

The admin superadmin@linuxhelp.ir has been added!

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

نصب Let’s Encrypt SSL

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

مهمترین نکته در اینجا تولید گواهی SSL برای نام میزبان سرور (FQDN) در پرونده ماست
هنگامی که با پیروی از آموزش مرتبط در بالا ، گواهی SSL را تولید کردید ، بلوک سرور Nginx خود را به شرح زیر ویرایش کنید:

server {
    listen 80;
    server_name mail.linuxhelp.ir;

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

server {
    listen 443 ssl http2;
    server_name mail.linuxhelp.ir;
    root /var/www;

    ssl_certificate /etc/letsencrypt/live/mail.linuxhelp.ir/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/mail.linuxhelp.ir/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/mail.linuxhelp.ir/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;
    }
}

انجین ایکس وب سرور را Reload کنید تا تغییرات اعمال شود :

sudo systemctl reload nginx

آدرسی که شما میتوانید در آن لاگین کنید برای مثال بصورت زیر است :
https://mail.linuxhelp.ir/postfixadmin

نتیجه

در این آموزش شما توانستید Postfix admin را نصب کنید. در قسمت بعدی از این آموزش نحوه نصب و پیکربندی postfix و Dovecot . همراه ما باشید.

درباره AfshinBalakar

افشین بالاکار دانشجوی مهندسی تکنولوژی نرم افزار، مدت 5 سال است با لینوکس رابطه افلاطونی دارم.

پیشنهاده میشه بخونی

دانلود اوبونتو 20.04.1

Ubuntu 20.4.1 LTS منتشر شد، مشاهده تغییرات و لینک دانلود

سلام خدمت همه دوستای لینوکسی خودم خبری خوش با تاخیر اما Ubuntu 20.04.1 منتشر شده …

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *