دانشنامه مارال هاست دانشنامه مارال هاست
  • صفحه اصلی
  • مقالات
    • هاست اشتراکی
    • دامنه
    • سرور مجازی
    • کنترل پنل سی‌پنل
    • کنترل پنل پلسک
    • کنترل پنل دایرکت ادمین
    • ایمیل
    • CloudLinux
    • Cloudflare
  • تماس با ما
دانشنامه مارال هاست دانشنامه مارال هاست
دانشنامه مارال هاست دانشنامه مارال هاست
  • صفحه اصلی
  • مقالات
    • هاست اشتراکی
    • دامنه
    • سرور مجازی
    • کنترل پنل سی‌پنل
    • کنترل پنل پلسک
    • کنترل پنل دایرکت ادمین
    • ایمیل
    • CloudLinux
    • Cloudflare
  • تماس با ما
ایمیل
  • Folder icon closed Folder open iconMail Server چیست و چگونه کار می‌کند؟
  • Folder icon closed Folder open iconخطاهای رایج در ارسال و دریافت ایمیل و راهکارهای آن در سی‌پنل
  • Folder icon closed Folder open iconارسال یک کپی از ایمیل های ارسالی به ایمیل خاص در Mail Enable
  • Folder icon closed Folder open iconآموزش کامل تنظیم رکورد MX دامنه در کنترل‌پنل‌ها
  • Folder icon closed Folder open iconخطاهای رایج در ارسال و دریافت ایمیل و راهکارهای آن در پلسک
  • Folder icon closed Folder open iconOX App Suite
    • آموزش استفاده از OX App Suite و امکانات آن
    • تنظیم رکورد MX برای ایمیل‌های OX App Suite
    • تنظیم SPF Record برای جلوگیری از اسپم در OX App Suite
    • فعال‌سازی و شروع فروش سرویس OX App Suite در WHMCS
    • ایجاد و مدیریت Email Alias در OX App Suite
  • Folder icon closed Folder open iconBcc Forward ایمیل های ارسالی به ایمیل خاص در Mail Enable
  • Folder icon closed Folder open iconخطاهای رایج در ارسال و دریافت ایمیل و راهکارهای آن در کنترل پنل دایرکت ادمین (DirectAdmin)
  • Folder icon closed Folder open iconبررسی خطاها در ارسال و دریافت ایمیل
  • Folder icon closed Folder open iconدریافت ایمیل‌ها در Junk سی‌پنل
  • Folder icon closed Folder open iconDKIM و SPF چیست؟
  • Folder icon closed Folder open iconارسال ایمیل تست به mail-tester.com و رفع خطاهای اسپم
  • Folder icon closed Folder open iconدسترسی به وب‌میل در دایرکت ادمین و رفع خطای 403
  • Folder icon closed Folder open iconدسترسی به وب‌میل درسی پنل
  • Folder icon closed Folder open iconدسترسی به وب‌میل در کنترل پنل Plesk و رفع خطای عدم بارگذاری
  • Folder icon closed Folder open iconپاک کردن صف ایمیل
  • Folder icon closed Folder open iconامن کردن WebMail و رفع خطای Not Secure
  • Folder icon closed Folder open iconتنظیمات ایمیل در دایرکت ادمین
  • Folder icon closed Folder open iconتنظیمات ایمیل در سی پنل (cPanel)
  • Folder icon closed Folder open iconبررسی حجم اکانت ایمیل در دایرکت ادمین
  • Folder icon closed Folder open iconبررسی حجم اکانت ایمیل در سی‌پنل (cPanel)
  • Folder icon closed Folder open iconبررسی حجم اکانت ایمیل در پلسک (Plesk روی ویندوز سرور)
  • Folder icon closed Folder open iconریست سرویس Exim
  • Folder icon closed Folder open iconپورت‌های پرکاربرد سرویس ایمیل
  • Folder icon closed Folder open iconWebmail چیست و چه کاربردی دارد؟
  • Folder icon closed Folder open iconمعرفی پروتکل‌های SMTP، IMAP و POP3 و تفاوت آن ها
  • Folder icon closed Folder open iconEmail Header چیست و چه اطلاعاتی در آن قرار دارد؟
  • Folder icon closed Folder open iconرکورد MX چیست و چگونه کار می‌کند
  • Folder icon closed Folder open iconآیا می‌توان چند رکورد MX برای یک دامنه تعریف کرد؟
  • Folder icon closed Folder open iconرکورد A و نقش آن در راه‌اندازی Mail Server
  • Folder icon closed Folder open iconابزارهای بررسی MX، SPF، DKIM و DNS دامنه
  • Folder icon closed Folder open iconemail چیست و ارسال یک ایمیل چگونه انجام می‌شود؟
  • Folder icon closed Folder open iconآموزش ساخت ایمیل در DirectAdmin
  • Folder icon closed Folder open iconآموزش ساخت ایمیل در cPanel
  • Folder icon closed Folder open iconآموزش ساخت ایمیل در Plesk
  • Folder icon closed Folder open iconآموزش تغییر رمز عبور ایمیل در هاست
  • Folder icon closed Folder open iconEmail Quota چیست و چگونه مدیریت می‌شود؟
  • Folder icon closed Folder open iconآموزش مشاهده میزان مصرف فضای ایمیل
  • Folder icon closed Folder open iconآموزش ایجاد Email Forwarder
  • Folder icon closed Folder open iconتفاوت Email Alias، Forwarder و Mailbox
  • Folder icon closed Folder open iconآموزش ساخت پاسخ خودکار برای ایمیل
  • Folder icon closed Folder open iconآموزش تعریف Email Filter در cPanel
  • Folder icon closed Folder open iconآموزش مسدود کردن یک فرستنده در Webmail
  • Folder icon closed Folder open iconآموزش انتقال خودکار ایمیل‌ها به یک پوشه
  • Folder icon closed Folder open iconDefault Email Account در cPanel چیست؟
  • Folder icon closed Folder open iconآموزش بررسی وضعیت ارسال ایمیل در Track Delivery
  • Folder icon closed Folder open iconاطلاعات موردنیاز برای اتصال ایمیل هاست به نرم‌افزارها
  • Folder icon closed Folder open iconتفاوت تنظیمات Secure SSL و Non-SSL ایمیل
  • Folder icon closed Folder open iconآموزش اتصال ایمیل هاست به Outlook
  • Folder icon closed Folder open iconآموزش اتصال ایمیل هاست به Thunderbird
  • Folder icon closed Folder open iconآموزش اتصال ایمیل هاست به گوشی اندروید
  • Folder icon closed Folder open iconآموزش اتصال ایمیل هاست به آیفون
  • Folder icon closed Folder open iconآموزش نصب mailenable و کانفیگ کامل آن
  • Folder icon closed Folder open iconآموزش کانفیگ صحیح exim
  • Folder icon closed Folder open iconآموزش تنظیم صحیح relay در mailenable
  • Folder icon closed Folder open iconآموزش تنظیم صحیح relay در cpanel
  • Folder icon closed Folder open iconآموزش تنظیم صحیح relay در directadmin
ایمیل

آموزش کانفیگ صحیح exim

آموزش کانفیگ صحیح exim

مقدمه

Exim یک Mail Transfer Agent یا MTA است که وظیفه دریافت، مسیریابی و ارسال ایمیل از طریق پروتکل SMTP را بر عهده دارد. Exim می‌تواند ایمیل را از Mail Serverهای دیگر دریافت کند، پیام‌های کاربران احراز هویت‌شده را ارسال کند و ایمیل‌های محلی را به Mailbox کاربران تحویل دهد.

Exim به‌تنهایی سرویس IMAP یا POP3 ارائه نمی‌کند. برای اینکه کاربران بتوانند پیام‌های خود را با Outlook، Thunderbird یا Webmail مشاهده کنند، معمولاً Exim در کنار نرم‌افزاری مانند Dovecot استفاده می‌شود.

نسخه Debian و Ubuntu از Exim دارای سیستم تولید تنظیمات اختصاصی است. فایل‌های داخل /etc/exim4 به‌وسیله دستور update-exim4.conf ترکیب شده و فایل نهایی در /var/lib/exim4/config.autogenerated ساخته می‌شود. بنابراین نباید فایل Autogenerated را مستقیماً ویرایش کرد.

در این مقاله موارد زیر را بررسی می‌کنیم:

  • آماده‌سازی Hostname و DNS
  • نصب Exim
  • انتخاب حالت Internet Site
  • تنظیم دامنه‌های محلی
  • فعال‌سازی Maildir
  • بازکردن پورت‌های SMTP
  • فعال‌سازی TLS
  • راه‌اندازی SMTP Authentication
  • جلوگیری از Open Relay
  • تنظیم پورت Submission
  • فعال‌سازی DKIM
  • تنظیم SPF و DMARC
  • مدیریت Queue و Logها
  • تست کامل ارسال و دریافت
  • تفاوت تنظیمات Exim در cPanel و DirectAdmin

معماری Exim

Exim از چند بخش اصلی تشکیل شده است:

بخشوظیفه
Routerتعیین مسیر تحویل پیام
Transportاجرای عملیات تحویل
ACLپذیرش یا رد اتصال و پیام
Authenticatorاحراز هویت SMTP
Retryزمان‌بندی تلاش مجدد
Queueنگهداری پیام‌های در انتظار
Spoolنگهداری اطلاعات پیام‌ها
Logثبت فعالیت‌ها و خطاها

ACLها می‌توانند در مراحل مختلف SMTP مانند اتصال، HELO، فرستنده، گیرنده و دریافت محتوای پیام اجرا شوند. این قابلیت برای جلوگیری از Relay غیرمجاز، Spam و فرستنده‌های نامعتبر استفاده می‌شود.


اطلاعات نمونه این آموزش

در تمام مراحل از اطلاعات زیر استفاده می‌کنیم:

Mail domain: example.com
Mail server hostname: mail.example.com
Public IP address: 203.0.113.10
Local Linux user: mailuser
SMTP username: mailuser
DKIM selector: mail

مقادیر نمونه را با دامنه، IP و نام کاربری واقعی خود جایگزین کنید.


پیش‌نیازهای راه‌اندازی Exim

قبل از نصب، موارد زیر باید آماده باشند:

  • سرور Debian یا Ubuntu
  • دسترسی root یا sudo
  • IP عمومی ثابت
  • Hostname معتبر
  • بازبودن پورت 25 ورودی و خروجی
  • دسترسی به DNS دامنه
  • تنظیم Reverse DNS توسط ارائه‌دهنده سرور
  • گواهی TLS معتبر
  • نبود Mail Server دیگری روی پورت 25

بررسی سیستم‌عامل:

cat /etc/os-release

بررسی IP عمومی سرور:

ip -br address

بررسی سرویس‌های در حال استفاده از پورت 25:

sudo ss -lntp | grep ':25 '

اگر سرویس دیگری مانند Postfix فعال باشد، قبل از نصب Exim باید مشخص کنید فقط یک MTA روی سرور اجرا شود.


مرحله اول: تنظیم Hostname

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

mail.example.com

بررسی Hostname:

hostnamectl

تنظیم Hostname:

sudo hostnamectl set-hostname mail.example.com

بررسی مجدد:

hostname -f

خروجی موردانتظار:

mail.example.com

فایل /etc/hosts را باز کنید:

sudo nano /etc/hosts

نمونه تنظیم:

127.0.0.1 localhost
203.0.113.10 mail.example.com mail

از قرار دادن FQDN اصلی سرور فقط روی 127.0.1.1 در یک Mail Server عمومی خودداری کنید؛ زیرا بعضی برنامه‌ها ممکن است IP اشتباه را برای نام سرور Resolve کنند.

بررسی:

getent hosts mail.example.com

مرحله دوم: تنظیم DNS

پیش از نصب یا بلافاصله پس از آن، رکوردهای DNS زیر را ایجاد کنید:

نوع رکوردناممقدار
Amail203.0.113.10
MX@mail.example.com
PTR203.0.113.10mail.example.com
TXT@SPF Record
TXTmail._domainkeyDKIM Public Key
TXT_dmarcDMARC Policy

MX Record باید به یک Hostname اشاره کند:

example.com MX 10 mail.example.com

Hostname نیز باید دارای A Record باشد:

mail.example.com A 203.0.113.10

Reverse DNS باید توسط دیتاسنتر یا ارائه‌دهنده VPS تنظیم شود:

203.0.113.10 PTR mail.example.com

بررسی A Record:

dig +short A mail.example.com

بررسی MX:

dig +short MX example.com

بررسی PTR:

dig +short -x 203.0.113.10

خروجی‌ها باید با یکدیگر هماهنگ باشند.


مرحله سوم: بررسی پورت 25 خروجی

بعضی ارائه‌دهندگان VPS پورت 25 خروجی را مسدود می‌کنند.

ابتدا MX دامنه Gmail را پیدا کنید:

dig +short MX gmail.com

سپس اتصال را آزمایش کنید:

nc -vz gmail-smtp-in.l.google.com 25

خروجی موفق:

Connection to gmail-smtp-in.l.google.com 25 port [tcp/smtp] succeeded!

در صورت Timeout باید از ارائه‌دهنده سرور درخواست بازشدن پورت 25 کنید یا از یک Smarthost معتبر استفاده شود.


مرحله چهارم: حذف MTA قبلی

بررسی Postfix:

systemctl status postfix --no-pager

در صورت نصب Postfix و تصمیم قطعی برای استفاده از Exim:

sudo systemctl disable --now postfix
sudo apt remove postfix -y

بررسی مجدد پورت 25:

sudo ss -lntp | grep ':25 '

قبل از حذف Mail Server قبلی، از تنظیمات و Queue آن نسخه پشتیبان تهیه کنید.


مرحله پنجم: نصب Exim

فهرست Packageها را به‌روز کنید:

sudo apt update

نصب Exim:

sudo apt install exim4 exim4-daemon-heavy -y

نسخه Heavy امکانات بیشتری مانند Lookupهای پایگاه داده، SASL، SPF و Content Scanning ارائه می‌کند.

بررسی نسخه:

exim4 -bV

بررسی سرویس:

systemctl status exim4 --no-pager

مرحله ششم: اجرای Wizard تنظیمات

دستور زیر را اجرا کنید:

sudo dpkg-reconfigure exim4-config

Ubuntu نیز این دستور را روش استاندارد پیکربندی Exim معرفی می‌کند.

تنظیمات پیشنهادی:

نوع Mail Server

گزینه زیر را انتخاب کنید:

Internet site; mail is sent and received directly using SMTP

این حالت زمانی مناسب است که سرور مستقیماً ایمیل دریافت و ارسال می‌کند.


System Mail Name

مقدار:

example.com

این مقدار دامنه اصلی ایمیل سرور است.


IP Addressهای Listener

برای گوش‌دادن روی تمام Interfaceها:

0.0.0.0 ; ::0

در سرورهایی که فقط IPv4 دارند می‌توان از مقدار زیر استفاده کرد:

0.0.0.0

بعداً با دستور ss بررسی کنید که Exim روی Interface عمومی در حال Listen باشد.


Other Destinations

دامنه‌هایی که باید به‌صورت محلی تحویل داده شوند:

example.com ; mail.example.com ; localhost

دامنه‌ای را فقط زمانی به این بخش اضافه کنید که Mailboxهای آن واقعاً روی همین سرور نگهداری می‌شوند.


Relay Domains

این قسمت را خالی بگذارید:

Leave blank

اضافه‌کردن دامنه‌های غیرضروری ممکن است باعث ایجاد Relay ناخواسته شود.


Relay Networks

این قسمت را نیز خالی بگذارید:

Leave blank

فقط در صورتی شبکه‌ای را اضافه کنید که یک Application Server داخلی و قابل‌اعتماد باید بدون SMTP Authentication از Exim استفاده کند.

نمونه شبکه داخلی:

192.168.10.0/24

هرگز شبکه‌های عمومی یا 0.0.0.0/0 را مجاز نکنید.


Smarthost

برای ارسال مستقیم این قسمت را خالی بگذارید:

Leave blank

در صورت مسدودبودن پورت 25 باید حالت Smarthost انتخاب و اطلاعات Relay Provider تنظیم شود.


DNS Query Minimization

گزینه پیشنهادی:

No

Exim برای ارسال مستقیم به MX دامنه‌های مقصد به DNS نیاز دارد.


Delivery Format

گزینه زیر را انتخاب کنید:

Maildir format in home directory

در این حالت پیام‌های کاربران معمولاً در مسیر زیر ذخیره می‌شوند:

/home/USERNAME/Maildir/

Maildir برای استفاده همراه Dovecot مناسب است.


Split Configuration

گزینه زیر را انتخاب کنید:

Yes

در حالت Split Configuration، تنظیمات در پوشه‌های مجزای زیر نگهداری می‌شوند:

/etc/exim4/conf.d/main
/etc/exim4/conf.d/acl
/etc/exim4/conf.d/router
/etc/exim4/conf.d/transport
/etc/exim4/conf.d/retry
/etc/exim4/conf.d/auth

Ubuntu مستندات SMTP Authentication خود را نیز براساس Split Configuration ارائه می‌کند.


مرحله هفتم: بررسی فایل تنظیمات Debian

فایل اصلی تنظیمات Wizard:

sudo nano /etc/exim4/update-exim4.conf.conf

نمونه تنظیم:

dc_eximconfig_configtype='internet'
dc_other_hostnames='example.com;mail.example.com'
dc_local_interfaces='0.0.0.0 ; ::0'
dc_readhost=''
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost=''
CFILEMODE='644'
dc_use_split_config='true'
dc_hide_mailname=''
dc_mailname_in_oh='true'
dc_localdelivery='maildir_home'

تولید و بررسی تنظیمات:

sudo update-exim4.conf --check

اگر تنظیمات معتبر باشند، دستور بدون خطا پایان می‌یابد. ابزار Debian قبل از جایگزینی فایل اصلی، Syntax فایل تولیدشده را بررسی می‌کند.

سپس:

sudo update-exim4.conf
sudo systemctl restart exim4

مرحله هشتم: بررسی تنظیمات فعال

نمایش فایل تنظیمات فعال:

sudo exim4 -bP

بررسی نام اصلی سرور:

sudo exim4 -bP primary_hostname

بررسی دامنه‌های محلی:

sudo exim4 -bP domainlist local_domains

بررسی Interfaceها:

sudo exim4 -bP local_interfaces

بررسی Routerها:

sudo exim4 -bP routers

بررسی Transportها:

sudo exim4 -bP transports

مرحله نهم: بازکردن پورت‌های فایروال

Exim برای دریافت ایمیل از Mail Serverهای دیگر به پورت 25 نیاز دارد.

برای کاربران Email Client بهتر است پورت 587 فعال شود.

پورتکاربرد
25ارتباط Server-to-Server
587SMTP Submission کاربران
465SMTP روی TLS مستقیم، در صورت نیاز

در UFW:

sudo ufw allow 25/tcp
sudo ufw allow 587/tcp

در صورت استفاده از 465:

sudo ufw allow 465/tcp

بررسی:

sudo ufw status

Exim سرویس IMAP ارائه نمی‌کند. پورت‌های 143 و 993 باید توسط Dovecot یا سرویس مشابه مدیریت شوند.


مرحله دهم: فعال‌سازی پورت 587

یک فایل تنظیمات محلی ایجاد کنید:

sudo nano /etc/exim4/conf.d/main/00_local_settings

محتوا:

daemon_smtp_ports = 25 : 587

برای پشتیبانی از پورت 465 نیز می‌توان نوشت:

daemon_smtp_ports = 25 : 465 : 587
tls_on_connect_ports = 465

برای تنظیم ساده‌تر و سازگارتر، استفاده از پورت 587 همراه STARTTLS پیشنهاد می‌شود.

اعمال تنظیمات:

sudo update-exim4.conf --check
sudo update-exim4.conf
sudo systemctl restart exim4

بررسی Listenerها:

sudo ss -lntp | grep exim

خروجی موردانتظار:

LISTEN 0 20 0.0.0.0:25
LISTEN 0 20 0.0.0.0:587

مرحله یازدهم: فعال‌سازی TLS

SMTP Authentication با مکانیزم‌های PLAIN و LOGIN نباید روی اتصال رمزنگاری‌نشده ارائه شود؛ زیرا Base64 رمزنگاری نیست و Username و Password قابل بازیابی خواهند بود. مستندات رسمی Ubuntu نیز احراز هویت را فقط پس از برقراری TLS تبلیغ می‌کنند.

دریافت Certificate

نصب Certbot:

sudo apt install certbot -y

در صورت آزادبودن موقت پورت 80:

sudo certbot certonly \
--standalone \
-d mail.example.com

فایل‌ها در مسیر زیر ایجاد می‌شوند:

/etc/letsencrypt/live/mail.example.com/fullchain.pem
/etc/letsencrypt/live/mail.example.com/privkey.pem

کپی Certificate برای Exim

Certificate عمومی:

sudo install \
-o root \
-g root \
-m 644 \
/etc/letsencrypt/live/mail.example.com/fullchain.pem \
/etc/exim4/exim.crt

Private Key:

sudo install \
-o root \
-g Debian-exim \
-m 640 \
/etc/letsencrypt/live/mail.example.com/privkey.pem \
/etc/exim4/exim.key

Exim به Certificate و Private Key با فرمت PEM و مسیر کامل نیاز دارد و Private Key نباید دارای Passphrase باشد.


فعال‌کردن TLS

فایل زیر را باز کنید:

sudo nano /etc/exim4/conf.d/main/03_exim4-config_tlsoptions

مقدار زیر را اضافه کنید:

MAIN_TLS_ENABLE = yes

اعمال تنظیمات:

sudo update-exim4.conf --check
sudo update-exim4.conf
sudo systemctl restart exim4

ساخت Deploy Hook برای تمدید Certificate

فایل زیر را ایجاد کنید:

sudo nano /etc/letsencrypt/renewal-hooks/deploy/exim4-cert.sh

محتوا:

#!/bin/bash

set -euo pipefail

DOMAIN="mail.example.com"

install \
-o root \
-g root \
-m 644 \
"/etc/letsencrypt/live/${DOMAIN}/fullchain.pem" \
/etc/exim4/exim.crt

install \
-o root \
-g Debian-exim \
-m 640 \
"/etc/letsencrypt/live/${DOMAIN}/privkey.pem" \
/etc/exim4/exim.key

systemctl restart exim4

Executable کردن فایل:

sudo chmod 750 \
/etc/letsencrypt/renewal-hooks/deploy/exim4-cert.sh

آزمایش Renewal:

sudo certbot renew --dry-run

مرحله دوازدهم: تست TLS

تست پورت 25:

openssl s_client \
-starttls smtp \
-connect mail.example.com:25 \
-servername mail.example.com

تست پورت 587:

openssl s_client \
-starttls smtp \
-connect mail.example.com:587 \
-servername mail.example.com

پس از اتصال، دستور زیر را وارد کنید:

EHLO client.example.net

پاسخ باید شامل گزینه زیر باشد:

250-STARTTLS

پس از شروع TLS و ارسال مجدد EHLO، در صورت فعال‌بودن Authentication باید مشاهده شود:

250-AUTH PLAIN LOGIN

مرحله سیزدهم: فعال‌سازی SMTP Authentication

در این آموزش، حساب‌های SMTP داخل فایل /etc/exim4/passwd نگهداری می‌شوند. Ubuntu این روش را برای کاربرانی که حساب Linux ندارند مستند کرده است.

فایل زیر را باز کنید:

sudo nano /etc/exim4/conf.d/auth/30_exim4-config_examples

بخش‌های plain_server و login_server را فعال کنید:

plain_server:
  driver = plaintext
  public_name = PLAIN
  server_condition = "${if crypteq{$auth3}{${extract{1}{:}{${lookup{$auth2}lsearch{CONFDIR/passwd}{$value}{*:*}}}}}{1}{0}}"
  server_set_id = $auth2
  server_prompts = :
  .ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
  server_advertise_condition = ${if eq{$tls_in_cipher}{}{}{*}}
  .endif

login_server:
  driver = plaintext
  public_name = LOGIN
  server_prompts = "Username:: : Password::"
  server_condition = "${if crypteq{$auth2}{${extract{1}{:}{${lookup{$auth1}lsearch{CONFDIR/passwd}{$value}{*:*}}}}}{1}{0}}"
  server_set_id = $auth1
  .ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
  server_advertise_condition = ${if eq{$tls_in_cipher}{}{}{*}}
  .endif

این تنظیم باعث می‌شود AUTH PLAIN و AUTH LOGIN فقط پس از برقراری TLS در دسترس باشند.


ساخت کاربر SMTP

اجرای ابزار نمونه Exim:

sudo /usr/share/doc/exim4-base/examples/exim-adduser

اطلاعات نمونه:

User: mailuser
Password: Strong SMTP password

سپس Permission فایل را اصلاح کنید:

sudo chown root:Debian-exim /etc/exim4/passwd
sudo chmod 640 /etc/exim4/passwd

فایل Password شامل اطلاعات حساس است و باید فقط برای root و کاربر Exim قابل‌خواندن باشد.

اعمال تنظیمات:

sudo update-exim4.conf --check
sudo update-exim4.conf
sudo systemctl restart exim4

از فعال‌کردن هم‌زمان Authenticatorهای فایل Password و نسخه‌های saslauthd با نام مشابه خودداری کنید.


مرحله چهاردهم: جلوگیری از Open Relay

بررسی کنید شبکه Relay عمومی تعریف نشده باشد:

grep '^dc_relay_nets' \
/etc/exim4/update-exim4.conf.conf

خروجی مناسب:

dc_relay_nets=''

دامنه‌های Relay نیز باید خالی باشند:

grep '^dc_relay_domains' \
/etc/exim4/update-exim4.conf.conf

خروجی:

dc_relay_domains=''

Exim باید فقط در شرایط زیر Relay انجام دهد:

  • کاربر با SMTP Authentication وارد شده باشد.
  • IP مبدأ در شبکه داخلی قابل‌اعتماد باشد.
  • مقصد یک دامنه محلی باشد.
  • Rule مشخص و کنترل‌شده‌ای وجود داشته باشد.

SMTP Authentication روش رایج شناسایی Clientهایی است که اجازه استفاده از Mail Server به‌عنوان Relay را دارند.


تست Relay بدون Authentication

از یک سرور خارجی اجرا کنید:

nc mail.example.com 25

سپس:

EHLO test.example.net
MAIL FROM:<sender@external.example>
RCPT TO:<recipient@gmail.com>

سرور باید درخواست Relay را رد کند:

550 relay not permitted

اگر گیرنده خارجی بدون Authentication پذیرفته شد، Mail Server ممکن است Open Relay باشد.


مرحله پانزدهم: محدودیت‌های پایه SMTP

فایل زیر را باز کنید:

sudo nano /etc/exim4/conf.d/main/00_local_settings

تنظیمات محافظه‌کارانه نمونه:

message_size_limit = 50M
smtp_accept_max = 100
smtp_accept_max_per_host = 10
smtp_accept_queue_per_connection = 20
smtp_receive_timeout = 5m
smtp_return_error_details = false

این تنظیمات باید متناسب با تعداد کاربران و حجم واقعی ایمیل‌ها تغییر کنند.

اعمال:

sudo update-exim4.conf --check
sudo update-exim4.conf
sudo systemctl restart exim4

مرحله شانزدهم: ساخت Mailbox محلی

اگر از Maildir و کاربران Linux استفاده می‌کنید، کاربر را ایجاد کنید:

sudo adduser mailuser

ساخت Maildir:

sudo -u mailuser mkdir -p \
/home/mailuser/Maildir/{cur,new,tmp}

تنظیم مالکیت:

sudo chown -R mailuser:mailuser \
/home/mailuser/Maildir

بررسی:

sudo -u mailuser find \
/home/mailuser/Maildir \
-maxdepth 1 \
-type d \
-printf '%u %g %m %p\n'

برای مشاهده این Mailbox از طریق IMAP باید Dovecot نصب و کانفیگ شود.


مرحله هفدهم: تنظیم Aliasها

فایل Alias:

sudo nano /etc/aliases

نمونه:

postmaster: root
abuse: root
webmaster: mailuser
root: admin@example.net

اعمال Aliasها:

sudo newaliases

بررسی Router:

exim4 -bt postmaster@example.com

خروجی باید مسیر تحویل نهایی را نمایش دهد.

وجود آدرس‌های postmaster و abuse برای مدیریت خطاها و گزارش‌های سرویس ایمیل توصیه می‌شود.


مرحله هجدهم: تنظیم SPF

رکورد TXT زیر را در DNS دامنه ایجاد کنید:

v=spf1 ip4:203.0.113.10 -all

نمونه کامل:

Type: TXT
Name: @
Value: v=spf1 ip4:203.0.113.10 -all

اگر سرویس دیگری نیز برای دامنه ایمیل ارسال می‌کند، باید در همان SPF Record اضافه شود.

برای یک دامنه فقط یک SPF Record ایجاد کنید.

بررسی:

dig +short TXT example.com

مرحله نوزدهم: فعال‌سازی DKIM

Exim امکان امضای DKIM را در SMTP Transport ارائه می‌کند. کلید خصوصی روی سرور نگهداری شده و Public Key در DNS قرار می‌گیرد. مستندات رسمی Exim استفاده از RSA 2048-bit و استخراج Public Key برای TXT Record را توضیح می‌دهند.

ساخت کلید

sudo mkdir -p /etc/exim4/dkim

ساخت Private Key:

sudo openssl genrsa \
-out /etc/exim4/dkim/example.com.key \
2048

استخراج Public Key:

sudo openssl rsa \
-in /etc/exim4/dkim/example.com.key \
-pubout \
-out /etc/exim4/dkim/example.com.pub

Permissionها:

sudo chown root:Debian-exim \
/etc/exim4/dkim/example.com.key

sudo chmod 640 \
/etc/exim4/dkim/example.com.key

sudo chmod 644 \
/etc/exim4/dkim/example.com.pub

مشاهده Public Key

sudo awk '
/BEGIN PUBLIC KEY/ {next}
/END PUBLIC KEY/ {next}
{printf "%s", $0}
END {print ""}
' /etc/exim4/dkim/example.com.pub

خروجی را در رکورد DNS قرار دهید:

Type: TXT
Name: mail._domainkey
Value: v=DKIM1; k=rsa; p=PUBLIC_KEY

تنظیم Transport امضای DKIM

فایل زیر را باز کنید:

sudo nano \
/etc/exim4/conf.d/transport/30_exim4-config_remote_smtp

در بخش remote_smtp مقادیر زیر را اضافه کنید:

  dkim_domain = ${if eq{$sender_address_domain}{example.com}{example.com}{}}
  dkim_selector = mail
  dkim_private_key = ${if eq{$sender_address_domain}{example.com}{/etc/exim4/dkim/example.com.key}{}}
  dkim_canon = relaxed
  dkim_strict = true

اعمال تنظیمات:

sudo update-exim4.conf --check
sudo update-exim4.conf
sudo systemctl restart exim4

بررسی رکورد DNS:

dig +short TXT mail._domainkey.example.com

پس از ارسال ایمیل آزمایشی، Header آن باید شامل مورد زیر باشد:

DKIM-Signature:

مرحله بیستم: تنظیم DMARC

در شروع، DMARC را در حالت Monitoring قرار دهید:

Type: TXT
Name: _dmarc
Value: v=DMARC1; p=none; rua=mailto:dmarc@example.com

پس از بررسی گزارش‌ها و اطمینان از صحیح‌بودن SPF و DKIM:

v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com

در مرحله نهایی:

v=DMARC1; p=reject; rua=mailto:dmarc@example.com

Exim از بررسی DKIM، SPF و DMARC پشتیبانی می‌کند؛ اما فعال‌شدن کامل بررسی ورودی به قابلیت‌های Build و ACLهای تعریف‌شده وابسته است. در Exim، اجرای بررسی DMARC نیازمند فراخوانی شرط‌های مربوط در ACL است.

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


مرحله بیست‌ویکم: تست ارسال ایمیل

ارسال تست از خط فرمان:

printf '%s\n' \
'Subject: Exim test message' \
'From: mailuser@example.com' \
'To: recipient@example.net' \
'' \
'This is a test message from Exim.' \
| /usr/sbin/exim4 -v recipient@example.net

خروجی -v مراحل Route و Delivery را نمایش می‌دهد.

ارسال با Sendmail Interface:

printf '%s\n' \
'Subject: Exim sendmail test' \
'' \
'Test message' \
| sendmail -v recipient@example.net

مرحله بیست‌ودوم: تست Routing

بررسی مسیر یک آدرس محلی:

exim4 -bt mailuser@example.com

بررسی مسیر آدرس خارجی:

exim4 -bt recipient@gmail.com

بررسی فرستنده:

exim4 -bvs sender@example.com

بررسی گیرنده:

exim4 -bvr mailuser@example.com

این دستورها ایمیل ارسال نمی‌کنند و فقط Routing و Verification را آزمایش می‌کنند.


مرحله بیست‌وسوم: تست SMTP Authentication

می‌توان با ابزار swaks تست کامل انجام داد:

sudo apt install swaks -y

تست Submission:

swaks \
--server mail.example.com \
--port 587 \
--tls \
--auth LOGIN \
--auth-user mailuser \
--auth-password 'STRONG_PASSWORD' \
--from mailuser@example.com \
--to recipient@example.net

خروجی موفق شامل موارد زیر است:

235 Authentication succeeded
250 OK

از قرار دادن رمز واقعی در History شل خودداری کنید. بعد از تست می‌توانید History مربوط را حذف کنید یا از Prompt تعاملی استفاده کنید.


مرحله بیست‌وچهارم: مدیریت Queue

نمایش Queue:

sudo exim4 -bp

نمایش خلاصه Queue:

sudo exiqsumm

نمایش تعداد پیام‌ها:

sudo exim4 -bpc

نمایش Header یک پیام:

sudo exim4 -Mvh MESSAGE_ID

نمایش Body:

sudo exim4 -Mvb MESSAGE_ID

نمایش Log پیام:

sudo exim4 -Mvl MESSAGE_ID

تلاش مجدد برای تحویل یک پیام:

sudo exim4 -M MESSAGE_ID

حذف یک پیام:

sudo exim4 -Mrm MESSAGE_ID

اجرای Queue:

sudo exim4 -q

اجرای اجباری تمام Queue:

sudo exim4 -qff

از حذف گروه

هنوز نیاز به کمک دارید؟

آیا سوالی دارید؟

آیا این مقاله برای شما مفید بود؟ بله خیر

نظرات خود را بنویسید... لغو پاسخ

اشتراک گذاری این مقاله

آموزش کانفیگ صحیح exim

کپی کردن لینک

Clipboard Icon

جدیدترین مقالات

آموزش نصب و راه‌اندازی RustDesk Server با Docker
آموزش نصب و راه‌اندازی RustDesk Server با Docker
2 minutes جولای 2, 2026
آموزش نصب و راه‌اندازی Matrix Synapse + Element Web + Coturn با Docker روی ...
4 minutes جولای 2, 2026
CXS چیست و چگونه کار می‌کند
1 minute می 3, 2026
ساخت سرور چت المنت بروی لینوکس
5 minutes آوریل 25, 2026
Geo Routing و Geo DNS
2 minutes آوریل 22, 2026

تقویم

آگوست 2026
شیدسچپج
1234567
891011121314
15161718192021
22232425262728
293031 
« جولای    

عضویت

جدیدترین پست‌ها

آموزش نصب و راه‌اندازی RustDesk Server با Docker
آموزش نصب و راه‌اندازی RustDesk Server با Docker
2 minutes جولای 2, 2026
آموزش نصب و راه‌اندازی Matrix Synapse + Element Web + Coturn با Docker روی Ubuntu 24.04
4 minutes جولای 2, 2026
CXS چیست و چگونه کار می‌کند
1 minute می 3, 2026
ساخت سرور چت المنت بروی لینوکس
5 minutes آوریل 25, 2026
Geo Routing و Geo DNS
2 minutes آوریل 22, 2026

سلام