ایجاد ایمیل در سرورهای لینوکس
- 1403/09/14
برای راهاندازی یک سرور ایمیل در سیستمهای لینوکس، نیاز به نصب و پیکربندی چندین نرمافزار مختلف داریم. در این مقاله نحوه راهاندازی یک سرور ایمیل بر پایه سیستمعامل Ubuntu با استفاده از Postfix (برای ارسال ایمیل)، Dovecot (برای دریافت ایمیل) و SpamAssassin (برای جلوگیری از اسپم) توضیح داده میشود.
ابتدا باید بستههای مورد نیاز برای پیکربندی سرور ایمیل را نصب کنید. با استفاده از دستور زیر میتوانید بستههای لازم را نصب کنید:
در این مرحله postfix و devecot نصب میشوند
sudo apt update
sudo apt install postfix dovecot-core dovecot-imapd dovecot-pop3d spamassassin opendkim
در این مرحله، Postfix برای ارسال ایمیل، Dovecot برای دریافت ایمیل، SpamAssassin برای فیلتر کردن اسپمها و OpenDKIM برای امضای ایمیلها نصب میشود.
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
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
Type: A
Name: mail.yourdomain.com
Value: [Your Server's IP Address]آدرس IP سرور
Type: MX
Name: @
Value: mail.yourdomain.com
Priority: 10
Type: TXT
Name: @
Value: v=spf1 mx ~all
Type: TXT
Name: _dmarc.yourdomain.com.
Value: v=DMARC1; p=quarantine; pct=100; rua=mailto:[email protected]; adkim=r; aspf=r
مراحل تنظیم DKIM با OpenDKIM
ابتدا باید OpenDKIM را روی سرور خود نصب کنید. برای نصب آن روی یک سرور مبتنی بر Ubuntu یا Debian میتوانید از دستور زیر استفاده کنید:
sudo apt install opendkim opendkim-tools
بعد از نصب، باید 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
default
).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
برای ایجاد کلیدهای DKIM از ابزار opendkim-genkey استفاده میکنیم. این ابزار به طور خودکار کلیدهای خصوصی و عمومی را ایجاد میکند.
۱. اول کلید رو بساز، بعد منتقل کن. ترتیب درست دستورات اینطوریه:
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
را کپی کنید. این بخش، همان کلید عمومی است.
default._domainkey
را وارد کنید (این همان سلیکتور است که در پیکربندی OpenDKIM مشخص کردید).v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1MzY... (ادامه کلید عمومی)
حالا که پیکربندی DKIM آماده است، باید OpenDKIM را به Postfix (یا سرور ایمیل دیگری که استفاده میکنید) متصل کنید. این کار را با ویرایش پیکربندی Postfix انجام میدهیم:
/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)
اگر نمیخواهید برای هر ایمیل یک کاربر سیستم ایجاد کنید، میتوانید از کاربران مجازی استفاده کنید.
yourdomain.com
را اضافه کنید (اگر قبلاً اضافه نشده است)./etc/postfix/virtual
بروید.sudo nano /etc/postfix/virtual
کاربر جدید را اضافه کنید:
[email protected] support
فایل را ذخیره کنید و دستور زیر را اجرا کنید:
sudo postmap /etc/postfix/virtual
فایل تنظیمات Postfix را باز کنید:
sudo nano /etc/postfix/main.cf
و مطمئن شوید که خطوط زیر اضافه شدهاند یا موجود هستند:
virtual_alias_maps = hash:/etc/postfix/virtual
سرویس Postfix را ریاستارت کنید:
sudo systemctl restart postfix
روش دوم
در ابتدا باید یک کاربر سیستم جدید ایجاد کنید که بتواند ایمیلها را دریافت کند.
support
، از دستور زیر استفاده کنید:sudo adduser support
این دستور یک کاربر جدید به نام support
ایجاد میکند. شما باید یک رمز عبور برای این کاربر وارد کنید.
حالا که کاربر جدید را ایجاد کردید، باید مطمئن شوید که Postfix برای ارسال و دریافت ایمیل از این کاربر پیکربندی شده است.
main.cf
برای ارسال ایمیلها: فایل پیکربندی اصلی Postfix را ویرایش کنید:sudo nano /etc/postfix/main.cf
تنظیمات مهم در main.cf
: در فایل پیکربندی، تنظیمات زیر را بررسی و تنظیم کنید:
mail.yourdomain.com
باید بهعنوان نام سرور شما تنظیم شود.myhostname = mail.yourdomain.com
mydomain: دامنه شما باید به این صورت تنظیم شود:
mydomain = yourdomain.com
mydestination: دامنه شما بهطور خودکار اضافه خواهد شد، اما اطمینان حاصل کنید که بهدرستی تنظیم شده باشد:
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
ریلود پیکربندی Postfix: پس از انجام تغییرات، پیکربندی را با دستور زیر ریلود کنید:
sudo systemctl reload postfix
برای اینکه کاربر support
بتواند ایمیلها را دریافت کند، باید Dovecot را پیکربندی کنید.
sudo nano /etc/dovecot/dovecot.conf
اطمینان حاصل کنید که خطوط زیر موجود باشند:
mail_location = maildir:~/Maildir
user: تنظیمات مربوط به دسترسی کاربران:
user = vmail
ریلود Dovecot: پس از انجام تغییرات، Dovecot را ریلود کنید:
sudo systemctl reload dovecot
support
برای اینکه ایمیلهای کاربر در دایرکتوری خاصی ذخیره شوند، باید یک دایرکتوری به نام 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 را برای آدرسدهی صحیح پیکربندی کنید.
/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
echo "This is a test email from [email protected]" | mail -s "Test Email" [email protected] -- -r [email protected]
بررسی صندوق ورودی: برای بررسی ایمیلهای دریافتی، میتوانید از دستور زیر استفاده کنید:
sudo cat /home/support/Maildir/new/*
پورت | امنیت | توضیحات |
---|---|---|
25 | ❌ غیراستاندارد برای ارسال خارجی | فقط برای ارتباط بین سرورها (MTA-to-MTA). بیشتر ISPها این پورت را مسدود کردهاند. |
465 | ✅ امن (SSL/TLS) | برای ارسال ایمیل با SSL/TLS استفاده میشود (deprecated اما هنوز برخی سرویسها پشتیبانی میکنند). |
587 | ✅ امن (STARTTLS) | پورت استاندارد برای ارسال ایمیل با STARTTLS. برای ارسال توسط کلاینتها (مانند Thunderbird, Outlook) توصیه میشود. |
✅ پیشنهاد: از پورت 587 همراه با STARTTLS استفاده کنید.
پورت | امنیت | توضیحات |
---|---|---|
143 | 🚫 غیراستاندارد بدون رمزگذاری | فقط اگر STARTTLS فعال باشد، امن است. |
993 | ✅ امن (SSL/TLS) | استاندارد برای IMAP امن. همیشه رمزگذاری شده است. |
✅ پیشنهاد: از پورت 993 برای دریافت ایمیل از طریق IMAP استفاده کنید.
پورت | امنیت | توضیحات |
---|---|---|
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 را برای ارتباط امن فعال کنید.
رایگان ثبت نام کنید و اولین نفری باشید که از پست های جدید مطلع می شوید.