ایمیل سرور
مدیریت سرور

ایجاد ایمیل در سرورهای لینوکس

  • 1403/09/14

برای راه‌اندازی یک سرور ایمیل در سیستم‌های لینوکس، نیاز به نصب و پیکربندی چندین نرم‌افزار مختلف داریم. در این مقاله نحوه راه‌اندازی یک سرور ایمیل بر پایه سیستم‌عامل Ubuntu با استفاده از Postfix (برای ارسال ایمیل)، Dovecot (برای دریافت ایمیل) و SpamAssassin (برای جلوگیری از اسپم) توضیح داده می‌شود.

مراحل راه‌اندازی ایمیل سرور

مرحله 1: نصب بسته‌های مورد نیاز

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

در این مرحله postfix  و devecot نصب میشوند

sudo apt update
sudo apt install postfix dovecot-core dovecot-imapd dovecot-pop3d spamassassin opendkim

در این مرحله، Postfix برای ارسال ایمیل، Dovecot برای دریافت ایمیل، SpamAssassin برای فیلتر کردن اسپم‌ها و OpenDKIM برای امضای ایمیل‌ها نصب می‌شود.

مرحله 2: پیکربندی Postfix

Postfix به‌عنوان سرویس ارسال ایمیل در سرور شما عمل می‌کند. در زمان نصب، از شما خواسته می‌شود که نوع پیکربندی را انتخاب کنید. معمولاً گزینه "Internet Site" مناسب است. پس از نصب، فایل پیکربندی Postfix را برای ویرایش باز کنید:

فایل تنظیمات Postfix را باز کنید:

sudo nano /etc/postfix/main.cf

خطوط زیر را اضافه یا ویرایش کنید:

#
smtpd_tls_cert_file = /etc/ssl/certs/Your-ssl-cert.pem
smtpd_tls_key_file = /etc/ssl/private/Your-ssl-key.pem
smtpd_use_tls = yes
smtpd_tls_loglevel = 1
--
myhostname = mail.yourdomain.com
mydomain = yourdomain.com
myorigin = $mydomain
inet_interfaces = all
inet_protocols = ipv4
mydestination = localhost, localhost.localdomain, yourdomain.com, mail.yourdomain.com
mynetworks = 127.0.0.0/8
home_mailbox = Maildir/
بخش مرتبط با احراز هویت
#auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_clients = yes
smtpd_tls_auth_only = no
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = mail.yourdomain.com
smtpd_recipient_restrictions = permit_sasl_authenticated, reject_unauth_destination
relay_domains =

سپس تنظیمات را ذخیره کنید و  سرویس را ری استارت کنید.

sudo systemctl restart postfix

مرحله 3: پیکربندی Dovecot

Dovecot برای دریافت ایمیل‌ها از پروتکل‌های IMAP و POP3 استفاده می‌شود. فایل پیکربندی Dovecot را ویرایش کنید:

sudo nano /etc/dovecot/dovecot.conf

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

!include_try local.conf
mail_location = maildir:/home/vmail/%d/%n/Maildir
listen = *
auth_mechanisms = plain login
protocols = imap pop3

فعال کردن احراز هویت: فایل /etc/dovecot/conf.d/10-auth.conf را ویرایش کنید:

sudo nano /etc/dovecot/conf.d/10-auth.conf

خط زیر را پیدا کرده و مطمئن شوید:

disable_plaintext_auth = yes
auth_mechanisms = plain login

ریلود Dovecot:

sudo systemctl restart dovecot

تنظیم رکوردهای DNS

  • رکورد A برای mail.yourdomain.com:
Type: A
Name: mail.yourdomain.com
Value: [Your Server's IP Address]آدرس IP سرور
  • رکورد MX:
Type: MX
Name: @
Value: mail.yourdomain.com
Priority: 10
  • رکورد SPF
Type: TXT
Name: @
Value: v=spf1 mx ~all
  •  رکورد DMARC Records
Type: TXT
Name: _dmarc.yourdomain.com.
Value: v=DMARC1; p=quarantine; pct=100; rua=mailto:[email protected]; adkim=r; aspf=r

مراحل تنظیم DKIM با OpenDKIM

1. نصب OpenDKIM

ابتدا باید OpenDKIM را روی سرور خود نصب کنید. برای نصب آن روی یک سرور مبتنی بر Ubuntu یا Debian می‌توانید از دستور زیر استفاده کنید:

sudo apt install opendkim opendkim-tools

2. پیکربندی OpenDKIM

بعد از نصب، باید OpenDKIM را پیکربندی کنید.

  1. ایجاد دایرکتوری‌های لازم: OpenDKIM به دایرکتوری‌هایی نیاز دارد تا کلیدهای خصوصی و عمومی خود را ذخیره کند.
sudo mkdir /etc/opendkim
sudo mkdir /etc/opendkim/keys
sudo chown opendkim:opendkim /etc/opendkim /etc/opendkim/keys

ویرایش فایل پیکربندی OpenDKIM: فایل پیکربندی اصلی OpenDKIM را ویرایش کنید.

sudo nano /etc/opendkim.conf

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

Domain                yourdomain.com
KeyFile               /etc/opendkim/keys/yourdomain.com.private
Selector              default
Socket                inet:8891@localhost
  • Domain: دامنه‌ای که می‌خواهید رکورد DKIM برای آن ایجاد کنید.
  • KeyFile: مسیر کلید خصوصی که OpenDKIM استفاده خواهد کرد.
  • Selector: نام سلیکتور که در رکورد DKIM به کار می‌رود (برای مثال default).
  • Socket: پورت اتصال به Postfix.
  • پیکربندی دسترسی به کلیدها: دسترسی‌های لازم برای OpenDKIM را تنظیم کنید تا فقط از دایرکتوری‌های خاصی به کلیدها دسترسی داشته باشد.
sudo nano /etc/opendkim/KeyTable

در این فایل، به OpenDKIM می‌گویید که برای دامنه خاصی از کدام کلید استفاده کند:

default._domainkey.yourdomain.com yourdomain.com:default:/etc/opendkim/keys/yourdomain.com.private

تنظیم فایل SigningTable: در این فایل مشخص می‌کنید که OpenDKIM برای کدام ایمیل‌ها امضا بزند.

sudo nano /etc/opendkim/SigningTable

برای امضای ایمیل‌های دامنه‌ی خاص، این خط را اضافه کنید:

*@yourdomain.com default._domainkey.yourdomain.com

تنظیم فایل TrustedHosts: این فایل به OpenDKIM می‌گوید که کدام سرورها را به عنوان سرورهای معتبر قبول کند.

sudo nano /etc/opendkim/TrustedHosts

برای اجازه دادن به ارسال از سرور خود و شبکه‌های معتبر، موارد زیر را اضافه کنید:

127.0.0.1
localhost
yourdomain.com

3. ایجاد کلید DKIM

برای ایجاد کلیدهای DKIM از ابزار opendkim-genkey استفاده می‌کنیم. این ابزار به طور خودکار کلیدهای خصوصی و عمومی را ایجاد می‌کند.

۱. اول کلید رو بساز، بعد منتقل کن. ترتیب درست دستورات این‌طوریه:

۱.1 ایجاد کلید DKIM (خصوصی و عمومی)

sudo opendkim-genkey -s default -d yourdomain.com

۲. انتقال کلید خصوصی به مسیر مناسب

sudo mv default.private /etc/opendkim/keys/yourdomain.com.private

۳. ساخت کلید عمومی از کلید خصوصی

حالا که کلید رو به مسیر /etc/opendkim/keys/ منتقل کردی، کلید عمومی رو استخراج کن:

openssl rsa -in /etc/opendkim/keys/yourdomain.com.private -pubout -out /etc/opendkim/keys/yourdomain.com.pub

بررسی کلید عمومی

cat /etc/opendkim/keys/yourdomain.com.pub

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

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1MzY... (ادامه کلید)
-----END PUBLIC KEY-----

توجه: شما فقط نیاز دارید که محتوای خطوط بین BEGIN PUBLIC KEY و END PUBLIC KEY را کپی کنید. این بخش، همان کلید عمومی است.

  • ه بخش DNS بروید، جایی که رکوردهای DNS برای دامنه شما نمایش داده می‌شود.
  • اضافه کردن رکورد TXT جدید:
    • یک رکورد TXT جدید اضافه کنید.
    • در بخش نام رکورد، مقدار default._domainkey را وارد کنید (این همان سلیکتور است که در پیکربندی OpenDKIM مشخص کردید).
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1MzY... (ادامه کلید عمومی)

حالا که پیکربندی DKIM آماده است، باید OpenDKIM را به Postfix (یا سرور ایمیل دیگری که استفاده می‌کنید) متصل کنید. این کار را با ویرایش پیکربندی Postfix انجام می‌دهیم:

  1. فایل /etc/postfix/main.cf را ویرایش کنید:
sudo nano /etc/postfix/main.cf

#DKIM

milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:localhost:8891
non_smtpd_milters = $smtpd_milters
virtual_alias_maps = hash:/etc/postfix/virtual

پس از انجام تنظیمات، باید OpenDKIM و Postfix را راه‌اندازی مجدد کنید:

sudo systemctl restart opendkim
sudo systemctl restart postfix

امنیت و محدودیت‌ها

محدود کردن ارسال ایمیل به کاربران احراز هویت شده: فایل /etc/postfix/main.cf را ویرایش کنید:

sudo nano /etc/postfix/main.cf

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

milter_protocol = 6
milter_default_action = accept
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891

نصب Fail2Ban برای جلوگیری از حملات Brute Force:

sudo apt install fail2ban -y

پیکربندی Fail2Ban برای Postfix و Dovecot: فایل /etc/fail2ban/jail.local را ویرایش کنید:

sudo nano /etc/fail2ban/jail.local

سپس مقدار زیر را وارد کنید

[postfix]
enabled = true
[dovecot]
enabled = true

ریلود Fail2Ban:

sudo systemctl restart fail2ban

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

یک کاربر جدید  ایجاد کنید

پس از ایجاد کاربر، یک صندوق پستی (Mailbox) برای آن به‌طور خودکار ایجاد می‌شود.

پیکربندی کاربران مجازی (Virtual Users)

اگر نمی‌خواهید برای هر ایمیل یک کاربر سیستم ایجاد کنید، می‌توانید از کاربران مجازی استفاده کنید.

  1. به Postfix Mail Server بروید.
  2. وارد بخش Virtual Domains شوید.
    • دامنه yourdomain.com را اضافه کنید (اگر قبلاً اضافه نشده است).
  3. کاربر جدیدی اضافه کنید:
    • به فایل /etc/postfix/virtual بروید.
sudo nano /etc/postfix/virtual

کاربر جدید را اضافه کنید:

[email protected]    support

فایل را ذخیره کنید و دستور زیر را اجرا کنید:

sudo postmap /etc/postfix/virtual

ویرایش فایل تنظیمات Postfix

فایل تنظیمات Postfix را باز کنید:

sudo nano /etc/postfix/main.cf

و مطمئن شوید که خطوط زیر اضافه شده‌اند یا موجود هستند:

virtual_alias_maps = hash:/etc/postfix/virtual

سرویس Postfix را ری‌استارت کنید:

sudo systemctl restart postfix

روش دوم

1. ایجاد کاربر جدید در سیستم (برای ایمیل)

در ابتدا باید یک کاربر سیستم جدید ایجاد کنید که بتواند ایمیل‌ها را دریافت کند.

  1. ایجاد کاربر در سیستم: برای ایجاد یک کاربر جدید به نام support، از دستور زیر استفاده کنید:
sudo adduser support

این دستور یک کاربر جدید به نام support ایجاد می‌کند. شما باید یک رمز عبور برای این کاربر وارد کنید.

تنظیمات Postfix برای استفاده از ایمیل‌ها

حالا که کاربر جدید را ایجاد کردید، باید مطمئن شوید که Postfix برای ارسال و دریافت ایمیل از این کاربر پیکربندی شده است.

  1. پیکربندی main.cf برای ارسال ایمیل‌ها: فایل پیکربندی اصلی Postfix را ویرایش کنید:
sudo nano /etc/postfix/main.cf

تنظیمات مهم در main.cf: در فایل پیکربندی، تنظیمات زیر را بررسی و تنظیم کنید:

  • myhostname: به‌طور مثال، mail.yourdomain.com باید به‌عنوان نام سرور شما تنظیم شود.
myhostname = mail.yourdomain.com

mydomain: دامنه شما باید به این صورت تنظیم شود:

mydomain = yourdomain.com

mydestination: دامنه شما به‌طور خودکار اضافه خواهد شد، اما اطمینان حاصل کنید که به‌درستی تنظیم شده باشد:

mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
ریلود پیکربندی Postfix: پس از انجام تغییرات، پیکربندی را با دستور زیر ریلود کنید:

sudo systemctl reload postfix

تنظیمات Dovecot برای دریافت ایمیل‌ها

برای اینکه کاربر support بتواند ایمیل‌ها را دریافت کند، باید Dovecot را پیکربندی کنید.

  1. پیکربندی Dovecot: ابتدا فایل پیکربندی Dovecot را ویرایش کنید:
sudo nano /etc/dovecot/dovecot.conf

اطمینان حاصل کنید که خطوط زیر موجود باشند:

  • mail_location: برای ایمیل‌های محلی
mail_location = maildir:~/Maildir

user: تنظیمات مربوط به دسترسی کاربران:

user = vmail
ریلود Dovecot: پس از انجام تغییرات، Dovecot را ریلود کنید:

sudo systemctl reload dovecot

ایجاد و پیکربندی Maildir برای کاربر support

برای اینکه ایمیل‌های کاربر در دایرکتوری خاصی ذخیره شوند، باید یک دایرکتوری به نام Maildir برای کاربر ایجاد کنید.

  1. ایجاد دایرکتوری Maildir: به‌طور پیش‌فرض، ایمیل‌ها باید در دایرکتوری Maildir ذخیره شوند. برای ایجاد این دایرکتوری برای کاربر support از دستورات زیر استفاده کنید:
sudo mkdir -p /home/support/Maildir
sudo chown -R support:support /home/support/Maildir
sudo chmod -R 700 /home/support/Maildir

5. تنظیم آدرس ایمیل برای کاربر support

اگر می‌خواهید ایمیل‌ها به آدرس [email protected] هدایت شوند، باید تنظیمات Postfix را برای آدرس‌دهی صحیح پیکربندی کنید.

  1. تنظیمات آدرس‌دهی مجازی (Virtual Aliases): اگر از آدرس‌های مجازی استفاده می‌کنید، فایل /etc/postfix/virtual را ویرایش کنید و به این شکل اضافه کنید:
sudo nano /etc/postfix/virtual

خط زیر را اضافه کنید:

[email protected] support
  • این کار باعث می‌شود که ایمیل‌های ارسال‌شده به [email protected] به حساب کاربری support تحویل داده شوند.
  • ساخت پایگاه داده virtual.db: پس از ویرایش فایل virtual، باید آن را به‌صورت پایگاه داده تبدیل کنید:
sudo postmap /etc/postfix/virtual

ریلود پیکربندی Postfix: پس از انجام تغییرات، پیکربندی را ریلود کنید:

sudo systemctl reload postfix

sudo apt install mailutils

آزمایش ایمیل ارسال و دریافت

echo "This is a test email from [email protected]" | mail -s "Test Email" [email protected] -- -r [email protected]

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

sudo cat /home/support/Maildir/new/*

ورت‌های مهم و امن برای ایمیل (SMTP, IMAP, POP3)

۱. SMTP (ارسال ایمیل)

پورتامنیتتوضیحات
25❌ غیراستاندارد برای ارسال خارجیفقط برای ارتباط بین سرورها (MTA-to-MTA). بیشتر ISPها این پورت را مسدود کرده‌اند.
465✅ امن (SSL/TLS)برای ارسال ایمیل با SSL/TLS استفاده می‌شود (deprecated اما هنوز برخی سرویس‌ها پشتیبانی می‌کنند).
587✅ امن (STARTTLS)پورت استاندارد برای ارسال ایمیل با STARTTLS. برای ارسال توسط کلاینت‌ها (مانند Thunderbird, Outlook) توصیه می‌شود.

پیشنهاد: از پورت 587 همراه با STARTTLS استفاده کنید.

۲. IMAP (دریافت ایمیل - دسترسی به ایمیل روی سرور)

پورتامنیتتوضیحات
143🚫 غیراستاندارد بدون رمزگذاریفقط اگر STARTTLS فعال باشد، امن است.
993✅ امن (SSL/TLS)استاندارد برای IMAP امن. همیشه رمزگذاری شده است.

پیشنهاد: از پورت 993 برای دریافت ایمیل از طریق IMAP استفاده کنید.

۳. POP3 (دریافت ایمیل - دانلود ایمیل روی کلاینت)

پورتامنیتتوضیحات
110🚫 غیراستاندارد بدون رمزگذاریاگر STARTTLS فعال نباشد، ناامن است.
995✅ امن (SSL/TLS)استاندارد برای POP3 امن. همیشه رمزگذاری شده است.

پیشنهاد: اگر از POP3 استفاده می‌کنید، از پورت 995 همراه با SSL استفاده کنید.

🔹 برای ارسال ایمیل (SMTP):
587 (STARTTLS) توصیه‌شده
465 (SSL) برای برخی سرویس‌ها

🔹 برای دریافت ایمیل:
IMAP → پورت 993 (SSL/TLS) توصیه‌شده
POP3 → پورت 995 (SSL/TLS) اگر نیاز به دانلود ایمیل‌ها دارید

⚠️ نکته امنیتی: همیشه STARTTLS یا SSL/TLS را برای ارتباط امن فعال کنید.

دیدگاه
نوشتن یک دیدگاه

آدرس ایمیل شما منتشر نخواهد شد، فیلدهای الزامی علامت گذاری شده است*.

عضویت در خبرنامه

رایگان ثبت نام کنید و اولین نفری باشید که از پست های جدید مطلع می شوید.