آموزش نصب ایمیل سرور در اوبونتو با iRedMail
راهاندازی یک میل سرور کامل روی اوبونتو یعنی کنار هم نشاندن Postfix برای ارسال، Dovecot برای دریافت، یک پایگاه داده برای حسابها، ضدهرزنامه، ضدویروس، وبمیل و یک پنل مدیریت. انجام دستی این کار ساعتها طول میکشد و یک تنظیم اشتباه کافی است تا ایمیلهایتان یا اصلاً نروند یا مستقیم در پوشه اسپم بنشینند. iRedMail دقیقاً برای همین ساخته شده است: یک اسکریپت متنباز که همه این اجزا را نصب و به هم وصل میکند.
در این آموزش کل مسیر را با iRedMail 1.8.4 (منتشرشده در تیر ۱۴۰۵ / جولای ۲۰۲۶) روی Ubuntu 24.04 LTS میرویم؛ از رکوردهای DNS تا گواهی Let’s Encrypt و رکوردهای SPF و DKIM و DMARC.
iRedMail در عمل چه چیزهایی نصب میکند
خوب است بدانید بعد از اجرای اسکریپت دقیقاً چه چیزی روی سرور نشسته است؛ چون وقتی مشکلی پیش بیاید باید بدانید سراغ کدام سرویس بروید:
آنچه iRedMail نصب میکند مجموعهای از همین سرویسهاست؛ هر لایه کار جدا و پورتهای جدای خودش را دارد و بدون رکوردهای DNS درست، هیچکدام به تنهایی کافی نیست.
- Postfix در نقش MTA، یعنی همان سرویسی که ایمیل را میفرستد و از دنیای بیرون تحویل میگیرد.
- Dovecot در نقش سرور IMAP و POP3 که کاربران از طریق آن به صندوق خود وصل میشوند.
- Nginx یا Apache بهعنوان وبسرور برای وبمیل و پنلها، بههمراه PHP.
- OpenLDAP یا MariaDB یا MySQL یا PostgreSQL برای نگهداری دامنهها، حسابها و رمزها.
- Amavisd-new بههمراه SpamAssassin و ClamAV برای فیلتر هرزنامه و ویروس؛ امضای DKIM هم کار همین Amavis است.
- iRedAPD که سیاستهای Postfix را مدیریت میکند و iRedAdmin که پنل تحت وب مدیریت دامنهها و کاربران است.
- Roundcube بهعنوان وبمیل و بهصورت اختیاری SOGo برای تقویم و دفترچه تماس اشتراکی.
- Fail2ban برای بستن آیپیهایی که مدام رمز اشتباه میزنند، mlmmj برای لیستهای پستی و Logwatch برای گزارشهای دورهای.
قبل از هر چیز: این پیشنیازها قابل مذاکره نیستند
بیشتر نصبهای شکستخورده بهخاطر رد شدن از روی همین فهرست است، نه بهخاطر خود اسکریپت.
- سیستمعامل پشتیبانیشده. نسخه ۱٫۸٫۴ روی اوبونتو فقط
24.04و26.04را قبول میکند و روی هر نسخه دیگری با پیام «unsupported release» متوقف میشود. اگر سراغ توزیع دیگری میروید، Debian نسخههای ۱۲ و ۱۳ و از خانواده RHEL نسخههای ۹ و ۱۰ (AlmaLinux، Rocky Linux، CentOS Stream و RHEL) پشتیبانی میشوند. توصیه خود پروژه برای امروزUbuntu 24.04 LTSاست. - سرور باید تازه و دستنخورده باشد. اگر از قبل وبسرور، پایگاه داده یا هر سرویس ایمیلی روی سرور نصب کردهاید، نصبکننده یا متوقف میشود یا تنظیمات موجود را خراب میکند. روی سیستمعامل تازهنصب شروع کنید.
- حداقل ۴ گیگابایت رم. مستندات رسمی برای یک میل سرور کمترافیک با اسکن هرزنامه و ویروس همین عدد را الزامی میداند. دلیلش هم ClamAV و SpamAssassin هستند که حافظه زیادی میخورند. با رم کمتر نصب ممکن است تمام شود اما سرویسها مدام کشته میشوند.
- پورت ۲۵ خروجی باید باز باشد. این مهمترین نکتهای است که معمولاً دیر فهمیده میشود: بسیاری از ارائهدهندگان ابری این پورت را بهصورت پیشفرض روی سرورها میبندند و بدون آن سرور شما هیچ ایمیلی به بیرون نمیفرستد. پیش از شروع، وضعیت این پورت را از پشتیبانی سرویسدهنده خود بپرسید.
- نام میزبان باید FQDN باشد، یعنی چیزی مثل
mail.example.com؛ نهlocalhostو نه فقطmail. - شناسه کاربری ۲۰۰۰ آزاد باشد. iRedMail کاربر و گروه
vmailرا با UID و GID برابر2000میسازد؛ اگر این شناسه از قبل اشغال شده باشد به مشکل میخورید. - آیپی ثابت و تمیز. اگر آیپی سرور در فهرستهای سیاه باشد، هر کاری هم بکنید ایمیلهایتان تحویل داده نمیشود. پیش از شروع آیپی را در سرویسهایی مثل
mxtoolbox.comبررسی کنید و اگر آلوده بود، آیپی یا سرور دیگری بگیرید.
مرحله اول: رکوردهای DNS را از قبل بسازید
DNS را قبل از نصب تنظیم کنید تا هنگام گرفتن گواهی SSL معطل انتشار رکوردها نشوید. دو رکورد در این مرحله لازم است:
- رکورد A برای
mail.example.comکه به آیپی سرور اشاره کند. اگر سرور IPv6 هم دارد، رکوردAAAAرا هم اضافه کنید. - رکورد MX برای خود دامنه، با مقدار
mail.example.comو اولویت (Priority) مثلاً10.
دو نکته که زیاد اشتباه میشود: مقدار رکورد MX باید یک نام میزبان باشد، نه آدرس IP؛ و آن نام نباید خودش یک CNAME باشد. در عدد اولویت هم هرچه کمتر، ارجحتر.
رکورد PTR یا همان Reverse DNS را نمیتوانید از پنل دامنه بسازید؛ آن را باید سرویسدهنده سرور برایتان روی آیپی ثبت کند. حتماً درخواستش را بدهید، چون بسیاری از سرورهای گیرنده ایمیلی را که PTR سالم ندارد رد میکنند. برای بررسی وضعیت فعلی:
dig -x SERVER_IP +short
مرحله دوم: نام میزبان را تنظیم کنید
ابتدا سیستم را بهروز کنید:
apt update && apt -y upgrade
سپس نام میزبان را به شکل کامل تنظیم کنید:
hostnamectl set-hostname mail.example.com
حالا فایل /etc/hosts را باز کنید و مطمئن شوید خطی مثل زیر دارد که نام کامل پیش از نام کوتاه آمده باشد:
127.0.0.1 mail.example.com mail localhost
ترتیب این خط مهم است؛ اگر نام کوتاه اول بیاید، خروجی دستور بعدی ناقص میشود:
hostname -f
خروجی باید دقیقاً mail.example.com باشد. تا وقتی اینطور نشده، نصب را شروع نکنید.
مرحله سوم: دانلود و اجرای iRedMail
پروژه مدتی است از Bitbucket به GitHub منتقل شده و فایلها هم بهجای tar.bz2 با فرمت tar.gz منتشر میشوند؛ آموزشهای قدیمی هنوز نشانی و نسخههای قدیمی را تکرار میکنند. اول دو بسته لازم را نصب کنید:
apt -y install gzip dialog
بعد آخرین نسخه را بگیرید و باز کنید:
cd /root/
curl -LO https://github.com/iredmail/iRedMail/archive/refs/tags/1.8.4.tar.gz
tar zxf 1.8.4.tar.gz
cd /root/iRedMail-1.8.4/
و اسکریپت را اجرا کنید:
bash iRedMail.sh
نصب طولانی است. اگر ارتباط SSH وسط کار قطع شود اسکریپت هم کشته میشود، پس بهتر است کل کار را داخل یک نشست پایدار اجرا کنید:
screen -S mail
مرحله چهارم: انتخابهایی که نصبکننده از شما میپرسد
iRedMail یک رابط متنی ساده باز میکند و چند سؤال میپرسد. با کلیدهای بالا و پایین جابهجا شوید، با Space انتخاب کنید و با Enter جلو بروید.
- مسیر ذخیره ایمیلها. پیشفرض
/var/vmailاست و برای اغلب موارد مناسب است. اگر دیسک جداگانهای برای ایمیلها دارید، همینجا مسیرش را بدهید. - وبسرور. بین Nginx و Apache یکی را انتخاب کنید.
- محل نگهداری حسابها. گزینهها OpenLDAP، MariaDB، MySQL و PostgreSQL هستند. اگر تجربه خاصی ندارید، MariaDB سادهترین انتخاب است. مهم این است که پایگاه دادهای را بردارید که با آن راحتید، چون بعداً برای بکاپ و عیبیابی با آن سروکار دارید.
- رمز مدیر پایگاه داده و اولین دامنه ایمیل. برای دامنه، نام دامنه اصلی را بنویسید و نه نام میزبان؛ یعنی اگر میخواهید ایمیلها به شکل
info@example.comباشند، اینجاexample.comرا وارد کنید، نهmail.example.com. مراقب باشید فاصله اضافی جلو یا عقب نام دامنه جا نماند. - رمز مدیر دامنه و در آخر انتخاب اجزای اختیاری مثل وبمیل و پنل مدیریت.
در پایان خلاصه تنظیمات را نشان میدهد؛ با Y تأیید کنید تا نصب شروع شود. بعد از اتمام هم یکبار دیگر برای اعمال قواعد فایروال تأیید میخواهد.
تمام اطلاعات مهم — از جمله نشانی پنلها، نام کاربریها و رکورد DKIM — در فایلی به نام iRedMail.tips داخل همان پوشهای که نصب را از آن اجرا کردید ذخیره میشود:
/root/iRedMail-1.8.4/iRedMail.tips
این فایل رمزهای اولیه را هم دارد؛ بعد از اینکه اطلاعاتش را جای امنی منتقل کردید، حذفش کنید.
در آخر سرور را یکبار راهاندازی مجدد کنید:
reboot
مرحله پنجم: اولین ورود
بعد از بالا آمدن سرور، این نشانیها در دسترساند:
- پنل مدیریت iRedAdmin:
https://mail.example.com/iredadmin/ - وبمیل Roundcube:
https://mail.example.com/mail/ - گروهافزار SOGo (اگر نصبش کردید):
https://mail.example.com/SOGo/
برای ورود اول به iRedAdmin از حساب postmaster@example.com و رمزی که هنگام نصب دادید استفاده کنید. در این مرحله مرورگر بابت گواهی خودامضا هشدار میدهد؛ مرحله بعد همین را درست میکند.
مرحله ششم: گواهی معتبر Let’s Encrypt
iRedMail موقع نصب یک گواهی خودامضا میسازد. با آن همه چیز کار میکند اما هم مرورگر و هم کلاینتهای ایمیل به کاربر هشدار میدهند. جایگزینیاش با یک گواهی رایگان Let’s Encrypt چند دقیقه بیشتر طول نمیکشد.
روی اوبونتوی امروزی، certbot در مخزن خود سیستمعامل هست و دیگر لازم نیست PPA اضافه کنید — آن روش قدیمی که در آموزشهای چند سال پیش تکرار میشود عملاً منسوخ شده است:
apt -y install certbot
چون تنظیمات وبسرور را iRedMail مدیریت میکند، گواهی را با روش webroot بگیرید و نه با افزونههای nginx یا apache:
certbot certonly --webroot -w /var/www/html -d mail.example.com --agree-tos -m you@example.com
حالا به سرویسها اجازه خواندن فایلهای گواهی را بدهید:
chmod 0755 /etc/letsencrypt/live /etc/letsencrypt/archive
سپس مسیرها را در تنظیمات هر سرویس عوض کنید. در /etc/postfix/main.cf:
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.example.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.example.com/privkey.pem
در Dovecot دقت کنید که نام دستورها به نسخه بستگی دارد و همینجا اغلب اشتباه میشود. روی اوبونتو ۲۴٫۰۴ که Dovecot نسخه ۲٫۳ نصب میشود، در فایل /etc/dovecot/dovecot.conf این دو خط را با علامت کوچکتر ابتدایشان بنویسید:
ssl_cert = </etc/letsencrypt/live/mail.example.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.example.com/privkey.pem
اما روی اوبونتو ۲۶٫۰۴ و Debian 13 که Dovecot نسخه ۲٫۴ نصب میشود، نام این دستورها عوض شده و علامت کوچکتر هم ندارند:
ssl_server_cert_file = /etc/letsencrypt/live/mail.example.com/fullchain.pem
ssl_server_key_file = /etc/letsencrypt/live/mail.example.com/privkey.pem
نوبت وبسرور است. اگر Nginx را انتخاب کرده بودید، همین دو مسیر را در فایل الگوی زیر جایگزین کنید:
/etc/nginx/templates/ssl.tmpl
و درستی تنظیمات را پیش از بارگذاری مجدد بسنجید:
nginx -t
اگر Apache را انتخاب کرده بودید، بهجای آن فایل میزبان مجازی امن را باز کنید:
/etc/apache2/sites-available/default-ssl.conf
و دو خط گواهی را به این شکل درآورید:
SSLCertificateFile /etc/letsencrypt/live/mail.example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mail.example.com/privkey.pem
و تنظیمات را بررسی کنید:
apache2ctl configtest
در پایان سرویسها را بارگذاری مجدد کنید (نام وبسرور را متناسب با انتخاب خودتان بگذارید):
systemctl reload postfix dovecot nginx
تمدید خودکار گواهی
گواهیهای Let’s Encrypt ۹۰ روز اعتبار دارند. خبر خوب اینکه بسته certbot خودش یک تایمر برای تمدید خودکار نصب میکند و لازم نیست مثل گذشته دستی cron بنویسید. فقط باید بگویید بعد از هر تمدید، سرویسها گواهی تازه را بردارند. برای این کار یک فایل در مسیر hookهای certbot بسازید:
/etc/letsencrypt/renewal-hooks/deploy/reload-mail.sh
با این محتوا:
#!/bin/bash
systemctl reload postfix dovecot nginx
و اجراییاش کنید:
chmod +x /etc/letsencrypt/renewal-hooks/deploy/reload-mail.sh
برای اطمینان از درست بودن کل مسیر، یک تمدید آزمایشی بگیرید:
certbot renew --dry-run
مرحله هفتم: رکوردهای SPF، DKIM و DMARC
تا اینجا سرور کار میکند اما اگر این سه رکورد را نسازید، ایمیلهایتان با احتمال زیاد در پوشه اسپم گیرنده مینشینند.
SPF
SPF مشخص میکند چه سرورهایی حق دارند از طرف دامنه شما ایمیل بفرستند. یک رکورد TXT روی خود دامنه بسازید:
v=spf1 mx ~all
در اینجا mx یعنی هر سروری که در رکورد MX دامنه آمده مجاز است و ~all یعنی بقیه مشکوکاند.
DKIM
iRedMail هنگام نصب کلید DKIM را با Amavis میسازد؛ کاری که شما باید بکنید انتشار بخش عمومی آن در DNS است. کلید را با این دستور ببینید:
amavisd-new showkeys
همین کلید در فایل iRedMail.tips هم هست. یک رکورد TXT بسازید که نامش dkim._domainkey باشد و مقدارش همان چیزی که داخل پرانتز آمده — با حذف همه گیومهها و فاصلهها و شکستگی خطها، تا به یک رشته پیوسته تبدیل شود. بعد از انتشار، صحتش را بررسی کنید:
amavisd-new testkeys
DMARC
DMARC به سرور گیرنده میگوید با ایمیلی که SPF یا DKIM آن رد شد چه کند. یک رکورد TXT با نام _dmarc بسازید:
v=DMARC1; p=none; pct=100; rua=mailto:dmarc@example.com
مقدار p=none یعنی فعلاً فقط گزارش بگیر و چیزی را رد نکن. این حالت را چند هفته نگه دارید، گزارشها را بخوانید و وقتی مطمئن شدید همه ایمیلهای قانونی درست امضا میشوند، سیاست را به quarantine و بعد reject سختتر کنید. سخت کردن زودهنگام این سیاست، ایمیلهای خودتان را از دسترس خارج میکند.
مرحله هشتم: تنظیم کلاینت روی موبایل و کامپیوتر
برای اتصال با نرمافزارهایی مثل Thunderbird یا Outlook یا اپلیکیشن ایمیل موبایل، این مقادیر را بدهید:
- سرور ورودی (IMAP): نام سرور
mail.example.com، پورت993با رمزنگاریSSL/TLS. - سرور خروجی (SMTP): نام سرور
mail.example.com، پورت587با رمزنگاریSTARTTLS. پورت465باSSL/TLSهم کار میکند. - روش احراز هویت: رمز عبور عادی (Normal password) و نام کاربری، نشانی کامل ایمیل است.
مرحله نهم: قبل از اینکه به کسی ایمیل بزنید، تست کنید
به mail-tester.com بروید؛ یک نشانی ایمیل موقت به شما میدهد. از حساب تازهساخته خودتان به آن نشانی ایمیل بفرستید و امتیاز بگیرید. این تست همه چیز را یکجا بررسی میکند: SPF، DKIM، DMARC، PTR، حضور آیپی در فهرستهای سیاه و کیفیت خود پیام. تا وقتی امتیازتان نزدیک ۱۰ نشده، سرویس را برای کار جدی به کسی ندهید.
خطاهایی که واقعاً پیش میآید
- نصب همان اول متوقف میشود و از FQDN گله میکند. یعنی خروجی
hostname -fنام کامل نیست. به فایل/etc/hostsبرگردید و ترتیب نام کامل و نام کوتاه را درست کنید. - ایمیلها ارسال نمیشوند و در صف میمانند. تقریباً همیشه یعنی پورت ۲۵ خروجی بسته است. صف را با
postqueue -pببینید و دلیل دقیق را از/var/log/mail.logبخوانید. - ایمیل میرود ولی مستقیم در اسپم مینشیند. سراغ همان چهار مورد بروید: PTR، SPF، DKIM و DMARC. با
mail-tester.comدقیقاً میفهمید کدامشان ایراد دارد. - کلاینت به سرور وصل نمیشود. اول مطمئن شوید سرویس بالاست:
systemctl status dovecotو بعد اینکه فایروال پورتهای993و587را باز گذاشته باشد. - بعد از تعویض گواهی، کلاینتها هنوز هشدار میدهند. یعنی سرویسها گواهی تازه را نخواندهاند؛ یک
systemctl reload postfix dovecotبزنید و مطمئن شوید مسیرها را در فایل درست و متناسب با نسخه Dovecot نوشتهاید. - ورود به پنل با رمز درست هم رد میشود. ممکن است Fail2ban آیپی شما را بعد از چند تلاش ناموفق بسته باشد. وضعیت را با
fail2ban-client statusببینید.
نکات نگهداری
- بکاپ. دو چیز را باید نگه دارید: پوشه ایمیلها در
/var/vmailو پایگاه داده حسابها. iRedMail خودش اسکریپتهای بکاپ را در مسیر/var/vmail/backupمیگذارد، اما بکاپی که روی همان سرور بماند بکاپ نیست؛ آن را جای دیگری منتقل کنید. - بهروزرسانی. بستههای سیستمعامل را مرتب بهروز کنید. یک میل سرور رهاشده خیلی زود تبدیل به ابزار ارسال هرزنامه میشود و آنوقت آیپیتان در فهرست سیاه مینشیند.
- لاگها. وقتی ایمیلی نمیرود یا نمیآید، اولین جایی که باید نگاه کنید همین است:
tail -f /var/log/mail.log
جمعبندی
راهاندازی میل سرور اختصاصی سخت نیست، اما نگهداشتنش کار میبرد؛ کار اصلی هم نه نصب، که همان بخش تحویلپذیری است: پورت ۲۵ باز، PTR درست، SPF و DKIM و DMARC سالم و آیپی تمیز. اگر این چهار مورد را جدی بگیرید، سرویسی خواهید داشت که هم کامل در اختیار خودتان است و هم ایمیلهایش به صندوق ورودی میرسد.
اگر در هر مرحله به مشکل خوردید یا ترجیح میدهید نصب و کانفیگ را به ما بسپارید، با تیم پشتیبانی آنلاین سرور در تماس باشید.

ارسال نظر