٪80 تخفیف

دانلود کتاب آموزشی پیشرفته نصب و پیکربندی سرویس ایمیل Exim و Roundcube جلد اول

دسته‌بندی: برچسب: تاریخ به روز رسانی: 6 دی 1404 تعداد بازدید: 434 بازدید
ویژگی های محصول: پشتیبانی واتساپ

قیمت اصلی: ۲,۰۰۰,۰۰۰ تومان بود.قیمت فعلی: ۴۰۰,۰۰۰ تومان.

torobpay
هر قسط با ترب‌پی: ۱۰۰,۰۰۰ تومان
۴ قسط ماهانه. بدون سود، چک و ضامن.

دوره آموزشی پیشرفته Exim و Roundcube به شما کمک می‌کند تا این دو سرویس ایمیل را به‌طور کامل نصب، پیکربندی و مدیریت کنید. Exim یک سرویس انتقال ایمیل (MTA) بسیار قابل تنظیم است و Roundcube یک وب‌میل کاربردی برای دسترسی به ایمیل‌ها از طریق مرورگر است. در این دوره، نحوه نصب و پیکربندی این دو سرویس را به‌طور کامل خواهید آموخت تا سیستم ایمیل خود را به‌صورت مؤثر و ایمن مدیریت کنید.


1. معرفی سرویس Exim

  • آشنایی با Exim:
    • Exim به‌عنوان یک سرویس انتقال ایمیل (MTA) و ویژگی‌های آن
    • تفاوت‌های Exim با سایر MTA‌ها مانند Postfix و Sendmail
    • نحوه کارکرد Exim و پروتکل‌های استفاده‌شده (SMTP)
    • معماری Exim و پیکربندی آن
  • مزایای استفاده از Exim:
    • انعطاف‌پذیری و قابلیت‌های پیکربندی بالا
    • عملکرد بالا و مقیاس‌پذیری
    • امنیت و قابلیت‌های مختلف برای مدیریت و فیلتر کردن ایمیل‌ها

2. نصب و پیکربندی Exim

  • آماده‌سازی محیط برای نصب Exim:
    • پیش‌نیازهای سیستم برای نصب Exim
    • نصب Exim بر روی سیستم‌های مبتنی بر Ubuntu/Debian و CentOS/RedHat
    • نصب و پیکربندی Exim از کد منبع
  • پیکربندی اولیه Exim:
    • فایل‌های پیکربندی اصلی Exim (مانند exim.conf)
    • پیکربندی دامنه‌ها، آدرس‌های ایمیل و تنظیمات عمومی
    • پیکربندی روش‌های ارسال و دریافت ایمیل‌ها
    • پیکربندی امنیتی در Exim (از جمله SSL/TLS برای ارتباطات ایمن)

3. پیکربندی امنیتی Exim

  • پیکربندی احراز هویت و امنیت:
    • پیکربندی SMTP Authentication (AUTH) برای احراز هویت ایمیل‌ها
    • فعال‌سازی SSL/TLS encryption برای ایمن‌سازی ارتباطات
    • تنظیم SPF، DKIM و DMARC برای جلوگیری از اسپم و جعل ایمیل
    • جلوگیری از حملات Brute Force و Relay Attacks
  • فیلتر کردن ایمیل‌ها با استفاده از Exim:
    • استفاده از Access Control Lists (ACLs) برای فیلتر کردن ایمیل‌ها
    • پیکربندی SpamAssassin و ClamAV برای مقابله با اسپم و ویروس‌ها
    • محدود کردن ارسال ایمیل‌ها و جلوگیری از ارسال ایمیل‌های ناخواسته

4. نصب و پیکربندی Roundcube

  • آشنایی با Roundcube:
    • Roundcube به‌عنوان یک نرم‌افزار وب‌میل برای دسترسی به ایمیل‌ها
    • ویژگی‌های Roundcube و رابط کاربری آن
    • تفاوت Roundcube با سایر نرم‌افزارهای وب‌میل
  • نصب Roundcube:
    • پیش‌نیازهای نصب Roundcube (وب‌سرور، پایگاه داده، PHP)
    • نصب Roundcube از طریق مخازن یا کد منبع
    • نصب و پیکربندی Roundcube بر روی سرورهای Apache و Nginx
    • پیکربندی اتصال Roundcube به Exim به‌عنوان سرویس ایمیل
  • پیکربندی Roundcube برای ارسال و دریافت ایمیل‌ها:
    • تنظیمات اتصال به SMTP و IMAP سرور
    • پیکربندی تنظیمات امنیتی Roundcube (SSL/TLS)
    • مدیریت صندوق‌های ورودی و ارسال ایمیل‌ها از طریق Roundcube
    • پیکربندی ویژگی‌هایی مانند Filter Rules و Vacation Messages

5. ادغام Exim با Roundcube

  • پیکربندی Exim برای کار با Roundcube:
    • تنظیمات Exim برای ارسال و دریافت ایمیل‌ها از طریق Roundcube
    • پیکربندی Roundcube برای استفاده از پروتکل IMAP و SMTP
    • تنظیمات Mail Delivery Agent (MDA) در Exim برای ذخیره‌سازی ایمیل‌ها
    • تنظیمات Postmaster برای مدیریت ایمیل‌ها و کاربران
  • مدیریت کاربران و صندوق‌های ایمیل:
    • ایجاد و مدیریت حساب‌های ایمیل در Exim
    • اتصال Roundcube به پایگاه داده برای ذخیره و بازیابی اطلاعات کاربران
    • پیکربندی Roundcube برای پشتیبانی از Multiple Folders و Shared Mailboxes

6. پیکربندی مدیریت ایمیل‌های ورودی و ارسال

  • پیکربندی فیلتر ایمیل‌ها:
    • استفاده از فیلترهای ایمیل برای مدیریت ایمیل‌های ورودی و خروجی
    • پیکربندی قوانین SpamAssassin برای جلوگیری از اسپم
    • مدیریت Mail Quotas برای کاربران و صندوق‌های ایمیل
  • پیکربندی ایمیل‌های جمعی و آدرس‌های مشترک:
    • پیکربندی Mailing Lists و ارسال ایمیل‌های جمعی از طریق Exim
    • تنظیم آدرس‌های Forwarders و Aliases در Exim
    • پیکربندی Catch-all Email Addresses برای دامنه‌ها

7. نظارت، مدیریت و عیب‌یابی

  • نظارت بر عملکرد Exim:
    • استفاده از ابزارهای نظارتی برای بررسی وضعیت سرویس Exim
    • بررسی و تحلیل لاگ‌های Exim برای شناسایی مشکلات
    • نظارت بر صف‌های ایمیل و مدیریت صف‌های ارسال
  • عیب‌یابی مشکلات ارسال و دریافت ایمیل‌ها:
    • حل مشکلات رایج مانند عدم ارسال ایمیل، تأخیر در ارسال، مشکلات اتصال
    • بررسی مشکلات در اتصال Roundcube به Exim
    • راه‌اندازی و پیکربندی مجدد سرویس‌ها در صورت بروز مشکل
  • بهینه‌سازی Exim و Roundcube:
    • بهینه‌سازی عملکرد Exim برای ارسال و دریافت ایمیل‌ها
    • بهینه‌سازی Roundcube برای سرعت بالاتر و بار کمتر

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

  • آشنایی با مفاهیم ایمیل و نحوه عملکرد سرویس‌های ایمیل
  • آشنایی با سیستم‌عامل‌های لینوکس و نحوه مدیریت سرویس‌ها
  • آشنایی با پروتکل‌های ایمیل (SMTP, IMAP, POP3)

این دوره آموزشی به شما کمک می‌کند تا به‌طور کامل Exim و Roundcube را نصب، پیکربندی و مدیریت کنید و یک سیستم ایمیل کارآمد، امن و مقیاس‌پذیر ایجاد کنید.

[cdb_course_lessons title=”1. معرفی سرویس Exim”][cdb_course_lesson title=”آشنایی با Exim:”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”Exim به‌عنوان یک سرویس انتقال ایمیل (MTA) و ویژگی‌های آن” subtitle=”توضیحات کامل”]معرفی Exim

Exim (Extended Internet Mailer) یک سرویس انتقال ایمیل یا Mail Transfer Agent (MTA) است که برای ارسال، دریافت و انتقال ایمیل‌ها از یک سیستم به سیستم دیگر طراحی شده است. Exim از پروتکل‌های SMTP، ESMTP و دیگر پروتکل‌های مربوط به انتقال ایمیل استفاده می‌کند و یکی از محبوب‌ترین MTA‌ها در سیستم‌های لینوکسی است.

تفاوت‌های Exim با سایر MTA‌ها مانند Postfix و Sendmail

  • Postfix: Postfix یکی دیگر از MTA‌های پرکاربرد است که تمرکز بیشتری بر روی امنیت، سادگی و عملکرد بهینه دارد. در حالی که Exim به‌دلیل قابلیت‌های تنظیمی پیشرفته‌اش شناخته می‌شود، Postfix بیشتر به‌عنوان یک MTA سبک و کم‌بار در محیط‌های بزرگ استفاده می‌شود.
  • Sendmail: Sendmail قدیمی‌ترین و یکی از پرکاربردترین MTA‌های جهان است که در ابتدا طراحی شده بود، اما به دلیل پیچیدگی و تنظیمات دشوار، کمتر در سیستم‌های جدید استفاده می‌شود. Exim نسبت به Sendmail تنظیمات ساده‌تری دارد و قابلیت‌های انعطاف‌پذیرتری ارائه می‌دهد.

نحوه کارکرد Exim و پروتکل‌های استفاده‌شده (SMTP)

Exim از پروتکل SMTP (Simple Mail Transfer Protocol) و ESMTP (Extended SMTP) برای انتقال ایمیل‌ها استفاده می‌کند. این پروتکل‌ها به Exim این امکان را می‌دهند که ایمیل‌ها را از یک سرور به سرور دیگر منتقل کند.

  • SMTP: برای ارسال ایمیل‌ها از کلاینت به سرور استفاده می‌شود.
  • ESMTP: نسخه پیشرفته‌تر SMTP که از قابلیت‌های امنیتی مثل TLS و احراز هویت SMTP (SMTP AUTH) پشتیبانی می‌کند.

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

معماری Exim و پیکربندی آن

Exim بر پایه یک معماری کاملاً ماژولار ساخته شده است که امکان سفارشی‌سازی گسترده‌ای را فراهم می‌کند. معماری آن شامل اجزای مختلفی مانند Queue Manager، Router، Transport و Filterها است که به Exim اجازه می‌دهند تا ایمیل‌ها را به صورت موثر و قابل تنظیم منتقل کند.

  • Queue Manager: وظیفه مدیریت صف ایمیل‌ها و نظارت بر فرآیند ارسال آن‌ها را بر عهده دارد.
  • Router: مشخص می‌کند که ایمیل‌ها چگونه و به کدام مقصد ارسال شوند.
  • Transport: روش ارسال ایمیل‌ها را تعیین می‌کند (مانند SMTP، LMTP و غیره).
  • Filters: قابلیت‌های فیلترینگ و نظارت بر ایمیل‌ها برای امنیت و مدیریت بهتر.

مزایای استفاده از Exim

  • انعطاف‌پذیری و قابلیت‌های پیکربندی بالا: Exim به دلیل معماری ماژولار و انعطاف‌پذیری که دارد، امکان تنظیمات گسترده و سفارشی‌سازی متناسب با نیازهای سازمان را فراهم می‌کند.
  • عملکرد بالا و مقیاس‌پذیری: Exim برای محیط‌های بزرگ و سازمان‌هایی که به مدیریت حجم بالای ایمیل‌ها نیاز دارند، مناسب است.
  • امنیت و قابلیت‌های مختلف برای مدیریت و فیلتر کردن ایمیل‌ها: Exim امکانات امنیتی مانند SSL/TLS، SPF، DKIM و DMARC را برای جلوگیری از اسپم و جعل ایمیل‌ها پشتیبانی می‌کند.

جمع‌بندی

Exim به‌عنوان یک سرویس انتقال ایمیل قدرتمند، با قابلیت‌های متنوعی برای تنظیمات امنیتی و مدیریت ایمیل‌ها شناخته می‌شود. این ویژگی‌ها آن را به گزینه‌ای مناسب برای سازمان‌هایی که نیاز به کنترل دقیق و انعطاف‌پذیری دارند، تبدیل کرده است.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”تفاوت‌های Exim با سایر MTA‌ها مانند Postfix و Sendmail” subtitle=”توضیحات کامل”]

1. Postfix vs. Exim

  • ساختار و طراحی:
    • Postfix: طراحی Postfix بر اساس سادگی، امنیت و کارایی است. این MTA با تمرکز بر استفاده راحت و تنظیمات ساده‌تر، به عنوان گزینه‌ای سبک‌تر و کم‌بار‌تر شناخته می‌شود.
    • Exim: طراحی Exim پیچیده‌تر و انعطاف‌پذیرتر است. Exim دارای معماری ماژولار قوی است که امکان تنظیمات گسترده و سفارشی‌سازی عمیق را فراهم می‌کند.
  • امنیت:
    • Postfix: Postfix دارای قابلیت‌های امنیتی داخلی از جمله SMTP-AUTH، SPF، و ابزارهای ضد اسپم مانند Postscreen است که باعث کاهش حملات می‌شوند.
    • Exim: Exim نیز از این قابلیت‌ها پشتیبانی می‌کند، اما در عین حال تنظیمات امنیتی بیشتری را در اختیار مدیر قرار می‌دهد و دارای یک سیستم ACL (Access Control Lists) قوی برای فیلتر کردن ایمیل‌ها است.
  • عملکرد و مقیاس‌پذیری:
    • Postfix: Postfix به دلیل طراحی ساده‌تر، به طور کلی عملکرد بهتری در محیط‌های با بار کاری متوسط ارائه می‌دهد.
    • Exim: Exim به دلیل معماری پیچیده‌تر، در محیط‌های با حجم بالای ایمیل‌ها بهتر عمل می‌کند و قابلیت‌های بیشتری در پیکربندی و مدیریت دارد.

2. Sendmail vs. Exim

  • ساختار و طراحی:
    • Sendmail: Sendmail یکی از قدیمی‌ترین MTA‌ها است و طراحی آن بسیار پیچیده بوده و به تنظیمات سخت و حجیم شهرت دارد.
    • Exim: Exim به دلیل معماری ماژولار و تنظیمات انعطاف‌پذیر، پیچیدگی کمتری در پیکربندی دارد و استفاده از آن ساده‌تر است.
  • امنیت:
    • Sendmail: Sendmail در مقایسه با Exim و Postfix، دارای قابلیت‌های امنیتی کمتری است و تنظیمات آن پیچیده‌تر است.
    • Exim: Exim از امکانات امنیتی پیشرفته مانند SPF، DKIM، و DMARC پشتیبانی می‌کند و استفاده از آنها راحت‌تر است.
  • عملکرد و مقیاس‌پذیری:
    • Sendmail: Sendmail به‌دلیل معماری پیچیده و قدیمی، عملکرد چندان بهینه‌ای ندارد و به خوبی در محیط‌های پرحجم ایمیل‌های مدرن عمل نمی‌کند.
    • Exim: Exim به دلیل طراحی ماژولار و تنظیمات پیشرفته، قابلیت مقیاس‌پذیری بهتری دارد و می‌تواند با بار کاری سنگین به خوبی کنار بیاید.

جمع‌بندی تفاوت‌ها

  • Postfix: ساده، سریع و امن‌تر برای کاربردهای روزمره و تنظیمات استاندارد.
  • Exim: انعطاف‌پذیرتر، قوی‌تر در مدیریت تنظیمات پیچیده و قابلیت‌های امنیتی بیشتر.
  • Sendmail: قدیمی، پیچیده و کمتر کارآمد در محیط‌های مدرن.

هرکدام از این MTA‌ها بر اساس نیازها و اهداف مختلف سازمانی مناسب هستند، اما Exim به دلیل تنظیمات انعطاف‌پذیر و قدرت مدیریت بالا، در محیط‌های پیچیده و سازمان‌های بزرگ کاربرد گسترده‌ای دارد.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”نحوه کارکرد Exim و پروتکل‌های استفاده‌شده (SMTP)” subtitle=”توضیحات کامل”]

1. نحوه کارکرد Exim:

Exim به‌عنوان یک Mail Transfer Agent (MTA) مسئول ارسال و دریافت ایمیل‌ها از طریق شبکه است. عملکرد Exim به‌صورت زیر تقسیم می‌شود:

  • انتقال ایمیل‌ها:
    • Exim ایمیل‌ها را از ارسال‌کننده دریافت کرده و آنها را برای مقصد مناسب ارسال می‌کند.
    • ابتدا درخواست SMTP از مبدأ به سرور مقصد ارسال می‌شود. اگر سرور مقصد در دسترس باشد، Exim ایمیل را تحویل می‌دهد. در غیر این صورت، Exim صف‌های ارسال را مدیریت می‌کند تا ایمیل‌ها را دوباره ارسال کند.
  • پروتکل‌های استفاده‌شده:
    Exim عمدتاً از پروتکل SMTP (Simple Mail Transfer Protocol) برای ارسال ایمیل‌ها استفاده می‌کند.

    • SMTP (پروتکل انتقال ساده ایمیل):
      Exim از SMTP برای ارتباط با سایر سرورهای ایمیل و ارسال پیام‌ها استفاده می‌کند. این پروتکل به Exim امکان می‌دهد که ایمیل‌ها را به سرور مقصد ارسال کند و وضعیت آنها را بررسی کند.
  • پروتکل‌های دیگر:
    Exim از پروتکل‌های دیگری مانند IMAP و POP3 نیز برای مدیریت دریافت ایمیل‌ها از سرورهای پست الکترونیک استفاده می‌کند. این پروتکل‌ها به کاربران اجازه می‌دهند تا ایمیل‌ها را از سرور بخوانند و مدیریت کنند.

2. فرآیند ارسال ایمیل‌ها با Exim:

  • دریافت ایمیل از کاربر:
    زمانی که کاربر ایمیلی را ارسال می‌کند، Exim ابتدا اعتبارسنجی‌های SMTP را انجام می‌دهد و سپس ایمیل را به سرور مقصد ارسال می‌کند.
  • ارتباط با سرور مقصد:
    Exim با استفاده از SMTP به سرور مقصد متصل می‌شود. این اتصال شامل تعاملات زیر است:

    • مرحله HELO/HELO: Exim سرور مقصد را معرفی می‌کند.
    • مرحله MAIL FROM: فرستنده ایمیل را مشخص می‌کند.
    • مرحله RCPT TO: مقصد ایمیل مشخص می‌شود.
    • مرحله DATA: Exim محتوای ایمیل را ارسال می‌کند.
  • تحویل ایمیل‌ها:
    پس از ارسال ایمیل‌ها، سرور مقصد ایمیل را قبول یا رد می‌کند. اگر ایمیل پذیرفته شود، Exim ایمیل را ذخیره کرده و وضعیت ارسال را در صف‌های Exim مدیریت می‌کند.

3. مدیریت صف‌ها و Retryها:

Exim ایمیل‌های معلق و تأخیر خورده را در صف‌ها ذخیره می‌کند و آنها را به‌صورت دوره‌ای تلاش می‌کند تا به سرور مقصد ارسال شود. این فرآیند به Exim امکان می‌دهد تا در صورت خرابی موقت شبکه یا مشکلات اتصال، ایمیل‌ها را مجدداً ارسال کند.

جمع‌بندی:

  • Exim عمدتاً از SMTP برای ارسال ایمیل‌ها استفاده می‌کند.
  • از پروتکل‌های IMAP و POP3 برای دریافت ایمیل‌ها استفاده می‌شود.
  • فرآیند ارسال ایمیل با Exim شامل تعاملات مختلف SMTP برای اطمینان از ارسال صحیح ایمیل‌ها است.

[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”معماری Exim و پیکربندی آن” subtitle=”توضیحات کامل”]

1. معماری Exim:

Exim به‌عنوان یک Mail Transfer Agent (MTA) طراحی شده است و دارای معماری ماژولار و قابل انعطاف است. معماری Exim امکان پیکربندی دقیق و سفارشی‌سازی عمیق را فراهم می‌کند.

  • اجزا اصلی معماری Exim:
    1. Daemon (Daemons):
      Exim شامل سرویس‌هایی است که به‌صورت مداوم در پس‌زمینه اجرا می‌شوند و وظیفه دریافت، ارسال، و مدیریت ایمیل‌ها را دارند.
    2. Queue Manager:
      مدیریت صف‌های ارسال ایمیل که ایمیل‌هایی که ارسال نشده‌اند، به آنجا منتقل می‌شوند و Exim تلاش می‌کند تا دوباره آنها را ارسال کند.
    3. Message Router:
      مسئول هدایت ایمیل‌ها به مقصد مناسب است. این ماژول مسیر ایمیل‌ها را بررسی کرده و تعیین می‌کند که ایمیل به کدام سرور ارسال شود.
    4. Transport Layer:
      به Exim امکان می‌دهد تا ایمیل‌ها را با استفاده از پروتکل‌های مختلف (مانند SMTP، IMAP و غیره) ارسال کند.
    5. Access Control:
      کنترل دسترسی‌ها از طریق ACLها (Access Control Lists) که به Exim امکان می‌دهد سیاست‌های امنیتی و فیلترهای مختلف را اعمال کند.
    6. Filters:
      Exim دارای فیلترهایی است که به مدیر اجازه می‌دهد ایمیل‌ها را برای اسپم، ویروس‌ها یا سایر مسائل مدیریت کند.

2. پیکربندی Exim:

پیکربندی Exim معمولاً در فایل اصلی پیکربندی به نام /etc/exim/exim.conf یا /etc/exim4/exim4.conf در سیستم‌های مختلف ذخیره می‌شود.

2.1 ساختار فایل exim.conf:

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

  1. Global Settings:
    تنظیمات کلی که شامل مشخصات عمومی Exim، مانند مسیرها و منابع است.

    daemon_smtp_ports = 25
    logfile_path = /var/log/exim/mainlog
    pid_file = /var/run/exim.pid
  2. ACLs (Access Control Lists):
    از این بخش برای اعمال قوانین امنیتی و فیلترهای مختلف استفاده می‌شود. این قوانین می‌توانند دسترسی به سرور Exim را کنترل کنند.

    acl_smtp_rcpt:
      deny
        condition = ${if eq {${acl_mua}{$true}}{true}{false}}
        log_message = Rejecting due to MUA ACL
  3. Routing Rules:
    Exim برای ارسال ایمیل‌ها به مقصد مناسب از این بخش استفاده می‌کند.

    routers:
      domain_route:
        driver = domainlist
        allow_defer
        domainlist = @example.com : example.com
        transport = localuser
  4. Transports:
    این بخش روش‌های ارسال ایمیل‌ها را تعریف می‌کند.

    transport_lmtp:
      driver = lmtp
      pipe_transport = lmtp
  5. Conditions:
    این‌ها برای بررسی شرایط مختلف استفاده می‌شوند، مانند بررسی آدرس‌های فرستنده یا دامنه‌ها.

    conditions:
      check_recipient:
        condition = ${if !eq {$sender_host_address}{$receiver_host_address}{yes}{no}}
  6. Logging and Error Handling:
    تنظیمات لاگینگ برای ثبت خطاها و گزارشات استفاده می‌شود.

    log_selector = +all
    log_file_path = /var/log/exim/mainlog

2.2 مثال پیکربندی اساسی Exim:

در اینجا یک نمونه ساده از تنظیمات Exim برای ارسال ایمیل از طریق SMTP آورده شده است:

# Main configuration block
dc_eximconfig_configtype = local
dc_other_hostnames = example.com
dc_local_interfaces = 127.0.0.1
dc_readhost = example.com
dc_relay_domains = example.com : localhost
dc_minimaldns = 1
dc_localdelivery = mail_spool
dc_use_split_config = false

# Authenticated sender
dc_auth_username = exim_user
dc_auth_password = secret_password

# Log settings
log_file_path = /var/log/exim/mainlog

3. تست و اعمال پیکربندی Exim:

  • بعد از ویرایش فایل exim.conf، باید Exim را مجدداً بارگذاری کرد تا تغییرات اعمال شوند.
    sudo service exim4 restart
  • برای تست صحت پیکربندی Exim، می‌توان از دستور exim -bP استفاده کرد.

جمع‌بندی:

معماری Exim به‌صورت ماژولار و قابل انعطاف طراحی شده و این ویژگی‌ها به مدیران اجازه می‌دهند تا تنظیمات پیچیده‌ای را بر اساس نیازهای خاص سازمانی انجام دهند. پیکربندی Exim از فایل exim.conf استفاده می‌کند و شامل تنظیمات مربوط به امنیت، فیلترهای ایمیل، مسیرها و پروتکل‌های ارسال است.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”مزایای استفاده از Exim:” subtitle=”توضیحات کامل”]

1. انعطاف‌پذیری و قابلیت‌های پیکربندی بالا:

Exim یکی از MTAهای انعطاف‌پذیر و قدرتمند است که به مدیران سیستم اجازه می‌دهد تنظیمات پیچیده‌ای برای ارسال و دریافت ایمیل‌ها انجام دهند. این قابلیت به‌ویژه در سازمان‌هایی که نیاز به تنظیمات خاص برای دامنه‌ها، فیلترهای ایمیلی، و سیاست‌های امنیتی دارند بسیار حائز اهمیت است. برخی از ویژگی‌های پیکربندی انعطاف‌پذیر Exim عبارتند از:

  • پیکربندی بر اساس دامنه‌ها و آدرس‌ها: Exim امکان پیکربندی دقیق دامنه‌ها و آدرس‌های ایمیلی را برای مدیریت بهتر ایمیل‌ها فراهم می‌کند.
  • پشتیبانی از ماژول‌ها و پلاگین‌ها: Exim به دلیل معماری ماژولار خود به مدیران اجازه می‌دهد که ویژگی‌های خاص مانند فیلترهای اسپم، DNSBLها (Blacklistهای DNS) و تنظیمات DKIM و SPF را به‌راحتی اضافه کنند.
  • خط‌مشی‌های پیشرفته برای کنترل دسترسی و امنیت: Exim با استفاده از Access Control Lists (ACLs)، امکان تعریف قوانین دقیق برای دسترسی به سرویس ایمیل و مدیریت ایمیل‌ها را می‌دهد.

2. عملکرد بالا و مقیاس‌پذیری:

Exim به دلیل طراحی بهینه و استفاده از الگوریتم‌های بهینه‌سازی شده، توانایی مدیریت حجم بالای ایمیل‌ها را به‌طور مؤثر دارد. این ویژگی برای سازمان‌هایی که نیاز به ارسال و دریافت انبوه ایمیل دارند، ضروری است.

  • مدیریت موازی صف‌های ایمیل: Exim از الگوریتم‌های Queue سیستم بهره می‌برد که به ایمیل‌ها اجازه می‌دهد به‌صورت موازی پردازش شوند. این امر باعث افزایش سرعت ارسال و کاهش تأخیرها می‌شود.
  • استفاده بهینه از منابع: Exim از منابع سیستم بهینه‌تر استفاده می‌کند و باعث می‌شود سرورهای ایمیل بتوانند بارهای سنگین را به‌راحتی مدیریت کنند.
  • پشتیبانی از سرورهای چند گره‌ای و سیستم‌های ابری: Exim قابلیت کار در محیط‌های توزیع‌شده و مقیاس‌پذیر را فراهم می‌آورد که نیاز سازمان‌ها به دسترسی بالا و پایداری سرویس را پوشش می‌دهد.

3. امنیت و قابلیت‌های مختلف برای مدیریت و فیلتر کردن ایمیل‌ها:

Exim مجموعه‌ای از ویژگی‌های امنیتی قدرتمند را برای جلوگیری از حملات ایمیلی و افزایش اعتماد به سرورهای ایمیل ارائه می‌دهد.

  • پشتیبانی از SSL/TLS: Exim امکان رمزگذاری ارتباطات را با استفاده از SSL/TLS فراهم می‌کند که ایمنی تبادل ایمیل‌ها را تضمین می‌کند.
  • پشتیبانی از SPF، DKIM و DMARC: Exim قابلیت‌های تأیید هویت ایمیل‌ها را با استفاده از SPF (Sender Policy Framework)، DKIM (DomainKeys Identified Mail) و DMARC (Domain-based Message Authentication, Reporting, and Conformance) فراهم می‌آورد. این قابلیت‌ها به جلوگیری از جعل ایمیل‌ها و اسپم کمک می‌کنند.
  • استفاده از SpamAssassin و ClamAV: Exim می‌تواند با ابزارهای ضد اسپم مانند SpamAssassin و ضد ویروس‌ها مانند ClamAV یکپارچه شود تا اسپم و ایمیل‌های حاوی بدافزارها را شناسایی و مسدود کند.
  • ACLها و فیلترهای دسترسی: Exim قابلیت تنظیم ACLها را برای مسدود کردن آدرس‌های خاص، دامنه‌ها، یا کاربران مزاحم ارائه می‌دهد که امکان مدیریت دقیق و امنیتی ایمیل‌ها را فراهم می‌کند.

4. پشتیبانی از ابزارهای مدیریتی و نظارتی:

Exim دارای ابزارهای مدیریتی و نظارتی قدرتمندی است که به مدیران امکان رصد عملکرد سیستم ایمیل و تشخیص و رفع مشکلات را می‌دهد.

  • نظارت بر صف‌های ایمیل: مدیران می‌توانند با استفاده از ابزارهای نظارت نظیر log files و ابزارهای مدیریت صف Exim، عملکرد ایمیل‌ها و مشکلاتی مانند گیرکردن در صف‌ها را بررسی کنند.
  • عیب‌یابی و رفع مشکلات: Exim ابزارهایی برای عیب‌یابی مشکلات عمومی مانند تأخیرها، عدم ارسال ایمیل‌ها، یا خطاهای DNS دارد که به مدیران کمک می‌کند مشکلات را سریع‌تر حل کنند.

با توجه به این مزایا، Exim به یکی از انتخاب‌های اصلی سازمان‌هایی تبدیل می‌شود که نیاز به قابلیت‌های پیکربندی انعطاف‌پذیر، امنیت بالا، و مقیاس‌پذیری دارند.[/cdb_course_lesson][/cdb_course_lessons]

[cdb_course_lessons title=”2. نصب و پیکربندی Exim”][cdb_course_lesson title=”آماده‌سازی محیط برای نصب Exim:”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”پیش‌نیازهای سیستم برای نصب Exim:” subtitle=”توضیحات کامل”]قبل از نصب Exim به عنوان یک MTA (Mail Transfer Agent)، لازم است برخی پیش‌نیازها را برآورده کنید. این پیش‌نیازها به عوامل مختلفی همچون سیستم عامل، نوع سرور، و نیازهای خاص سازمان بستگی دارند.

1. پیش‌نیازهای سخت‌افزاری:

  • پردازنده (CPU): سرور شما به یک پردازنده با کارایی مناسب نیاز دارد تا بتواند ایمیل‌های انبوه را به‌صورت موازی پردازش کند. تعداد هسته‌های بیشتر، عملکرد بهتری در پردازش ایمیل‌های متعدد فراهم می‌کند.
  • رم (RAM): Exim منابع زیادی مصرف نمی‌کند، اما سرورهای ایمیل معمولاً نیاز به حداقل 1 گیگابایت رم دارند. اگر بار پردازشی سنگین‌تر است (مانند سازمان‌های با تعداد ایمیل بالا)، به 4 گیگابایت یا بیشتر رم نیاز خواهید داشت.
  • فضای دیسک: نصب Exim نیاز به فضای دیسک مناسب برای ذخیره لاگ‌ها، ایمیل‌ها، صف‌ها، و پایگاه داده‌ها دارد. بسته به حجم ایمیل‌ها، به فضای دیسک بیشتری نیاز دارید.

2. پیش‌نیازهای نرم‌افزاری:

  • سیستم عامل: Exim بر روی سیستم‌عامل‌های لینوکسی (مانند Ubuntu، CentOS، RedHat) و دیگر توزیع‌های رایج لینوکس به خوبی کار می‌کند.
  • Web Server: برای استفاده از Roundcube، باید یک وب‌سرور نصب شود. Exim با وب‌سرورهایی مانند Apache یا Nginx هماهنگ است.
  • پایگاه داده (Database): Exim نیازی به پایگاه داده ندارد، اما Roundcube که به Exim متصل می‌شود، به یک پایگاه داده مانند MySQL یا MariaDB نیاز دارد.
  • ابزارهای لینوکسی: مانند apt برای نصب Exim در توزیع‌های مبتنی بر Ubuntu/Debian، یا yum برای توزیع‌های CentOS/RedHat.

3. پیش‌نیازهای شبکه:

  • تنظیمات DNS: Exim به تنظیمات DNS صحیح نیاز دارد. برای پیکربندی صحیح Exim و Roundcube باید DNS مربوط به دامنه تنظیم شده باشد. نیاز به تنظیم SPF، DKIM و DMARC برای تأیید صحت ایمیل‌ها دارید.
  • Port Forwarding & Firewall: Exim به پورت‌های زیر نیاز دارد:
    • پورت 25: برای ارسال ایمیل‌ها به سایر سرورها.
    • پورت 587: برای SMTP Authentication (AUTH).
    • پورت 993: برای IMAP (در صورت استفاده از Roundcube).
    • پورت 80/443: برای Roundcube و وب‌میل.

4. نرم‌افزارهای مورد نیاز:

  • Exim: نصب Exim با ابزارهای مدیریت بسته (مانند apt یا yum) یا از کد منبع.
  • PHP و وب‌سرور: در صورتی که از Roundcube استفاده می‌کنید، به وب‌سرور (Nginx یا Apache) و PHP نیاز دارید.
  • ابزارهای نظارتی و مدیریتی: مانند ابزارهای تحلیل لاگ Exim یا سیستم‌های نظارتی برای بررسی عملکرد سرور ایمیل.

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

  • دسترسی روت (Root Access): برای نصب و پیکربندی Exim نیاز به دسترسی روت دارید.
  • دسترسی شبکه: Exim به تنظیمات صحیح شبکه و امکان اتصال به اینترنت یا سرورهای دیگر برای ارسال و دریافت ایمیل‌ها نیاز دارد.
  • سرور Mail Domain: تنظیم صحیح دامنه ایمیل و A recordهای مربوطه در DNS برای Exim و Roundcube ضروری است.

این پیش‌نیازها برای نصب و پیکربندی Exim و استفاده از Roundcube به‌عنوان یک سرویس ایمیل در نظر گرفته می‌شوند.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”نصب Exim بر روی سیستم‌های مبتنی بر Ubuntu/Debian و CentOS/RedHat” subtitle=”توضیحات کامل”]نصب Exim بر روی سیستم‌های مبتنی بر Ubuntu/Debian:

1. نصب Exim با استفاده از مخازن apt:

اگر از توزیع‌های مبتنی بر Ubuntu یا Debian مانند Ubuntu Server استفاده می‌کنید، Exim به راحتی از مخازن پیش‌فرض سیستم نصب می‌شود.

مراحل نصب:
  1. ابتدا مطمئن شوید که مخازن مورد نیاز فعال هستند:
    sudo apt update
  2. برای نصب Exim، دستور زیر را اجرا کنید:
    sudo apt install exim4 -y
  3. Exim به‌طور پیش‌فرض با پیکربندی استاندارد نصب می‌شود. برای پیکربندی آن، فایل اصلی پیکربندی به نام exim4.conf در مسیر /etc/exim4/exim4.conf قرار دارد.

2. پیکربندی Exim:

بعد از نصب، باید فایل پیکربندی exim4.conf را پیکربندی کنید.

  • فایل پیش‌فرض Exim را با ویرایشگر متنی دلخواه باز کنید:
    sudo nano /etc/exim4/exim4.conf
  • بخش‌های مختلف فایل شامل تنظیمات پایه، دامنه‌ها، آدرس‌های ایمیل و تنظیمات امنیتی وجود دارد که باید آن‌ها را متناسب با نیازهای خود پیکربندی کنید.

3. استارت Exim:

پس از پیکربندی Exim، سرویس را راه‌اندازی یا ری‌استارت کنید:

sudo systemctl start exim4
sudo systemctl enable exim4  # برای اجرای خودکار در بوت سیستم

نصب Exim بر روی سیستم‌های مبتنی بر CentOS/RedHat:

1. نصب Exim با استفاده از مخازن yum:

اگر از توزیع‌های CentOS یا RedHat استفاده می‌کنید، Exim از مخازن رسمی نصب می‌شود.

مراحل نصب:
  1. ابتدا مطمئن شوید که مخازن مربوطه فعال هستند:
    sudo yum update
  2. برای نصب Exim، دستور زیر را اجرا کنید:
    sudo yum install exim -y
  3. Exim با پیکربندی پیش‌فرض نصب می‌شود. فایل پیکربندی اصلی Exim در مسیر /etc/exim/exim.conf قرار دارد.

2. پیکربندی Exim:

بعد از نصب، فایل پیکربندی exim.conf را ویرایش کنید:

  • با ویرایشگر متنی باز کنید:
    sudo nano /etc/exim/exim.conf
  • تنظیمات دامنه، آدرس‌ها و سایر موارد را پیکربندی کنید.

3. استارت Exim:

پس از پیکربندی، سرویس Exim را راه‌اندازی کنید:

sudo systemctl start exim
sudo systemctl enable exim  # برای اجرای خودکار در بوت سیستم

با انجام این مراحل، Exim به‌صورت صحیح بر روی سرورهای مبتنی بر Ubuntu/Debian یا CentOS/RedHat نصب شده و آماده استفاده خواهد بود.

[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”نصب و پیکربندی Exim از کد منبع” subtitle=”توضیحات کامل”]در برخی مواقع ممکن است نیاز داشته باشید که Exim را از کد منبع نصب و پیکربندی کنید. این ممکن است زمانی کاربرد داشته باشد که نیاز به سفارشی‌سازی‌های عمیق‌تر در سیستم عامل خود دارید یا نسخه خاصی از Exim را نیاز دارید که در مخازن موجود نباشد.

مراحل نصب و پیکربندی Exim از کد منبع:

1. Prerequisites (پیش‌نیازها):

قبل از نصب Exim از کد منبع، باید ابزارهای مورد نیاز برای کامپایل و نصب Exim نصب شوند.

  • روی سیستم خود گنو gcc و ابزارهای مورد نیاز برای کامپایل بسته‌ها را نصب کنید:
    sudo apt-get install build-essential
    sudo yum groupinstall "Development Tools" -y
    sudo yum install gcc-c++

2. دانلود آخرین نسخه Exim:

برای دانلود آخرین نسخه Exim از سایت رسمی Exim به آدرس زیر مراجعه کنید:

یا می‌توانید آخرین نسخه را از مخازن GitHub دریافت کنید:

git clone https://github.com/Exim/exim.git
cd exim

3. کامپایل Exim:

بعد از دانلود، Exim را کامپایل و نصب کنید:

sh build.sh

این دستور اسکریپت‌های پیکربندی و ساخت Exim را اجرا خواهد کرد.

4. پیکربندی Exim:

بعد از کامپایل، فایل‌های پیکربندی Exim را در مسیر پیش‌فرض /etc/exim/exim.conf قرار دهید.

  • فایل exim.conf را باز کنید و تنظیمات زیر را مطابق نیاز خود تغییر دهید:
    sudo nano /etc/exim/exim.conf

5. نصب Exim:

پس از پیکربندی، Exim را نصب کنید:

make install

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

6. استارت و فعال‌سازی Exim:

بعد از نصب، سرویس Exim را راه‌اندازی و فعال کنید:

sudo systemctl start exim
sudo systemctl enable exim  # برای اجرای خودکار در بوت سیستم

7. تست Exim:

برای اطمینان از نصب صحیح Exim، می‌توانید وضعیت سرویس را بررسی کنید:

sudo systemctl status exim

با این مراحل، Exim به‌صورت دستی و از کد منبع نصب شده و پیکربندی شده است.[/cdb_course_lesson][cdb_course_lesson title=”پیکربندی اولیه Exim:”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”فایل‌های پیکربندی اصلی Exim (مانند exim.conf)” subtitle=”توضیحات کامل”]Exim از فایل‌های پیکربندی انعطاف‌پذیر و قابل‌تغییری برای مدیریت عملکرد خود استفاده می‌کند. فایل‌های اصلی پیکربندی شامل موارد زیر هستند:


1. مسیر پیش‌فرض فایل‌های پیکربندی Exim

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

  • Ubuntu/Debian:
    /etc/exim4/exim4.conf

    یا:

    /etc/exim4/update-exim4.conf.conf
  • CentOS/RedHat:
    /etc/exim/exim.conf
  • اگر Exim را از کد منبع نصب کرده‌اید:
    /usr/local/exim/configure

2. ساختار فایل پیکربندی اصلی (exim.conf)

فایل exim.conf شامل تنظیمات مختلفی است که عملکرد سرویس Exim را تعیین می‌کند. این فایل به سه بخش کلی تقسیم می‌شود:

2.1. Global Settings (تنظیمات عمومی):

این بخش شامل تنظیمات کلی است که بر کل عملکرد Exim تأثیر می‌گذارد.

نمونه تنظیمات:

primary_hostname = mail.example.com
qualify_domain = example.com
qualify_recipient = example.com
daemon_smtp_ports = 25 : 465 : 587
tls_certificate = /etc/exim/tls/exim.crt
tls_privatekey = /etc/exim/tls/exim.key
  • primary_hostname: نام دامنه اصلی سرور ایمیل.
  • daemon_smtp_ports: پورت‌های استفاده‌شده توسط Exim (مانند پورت‌های 25، 465 و 587).
  • tls_certificate و tls_privatekey: مسیر فایل‌های SSL/TLS برای برقراری ارتباط امن.

2.2. ACLs (Access Control Lists):

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

نمونه تنظیمات:

acl_check_rcpt:
  accept  domains = +local_domains
  deny    message = "Relay not permitted" 
          !verify = recipient
  accept  hosts = +relay_from_hosts
  • acl_check_rcpt: کنترل دسترسی به گیرنده‌ها.
  • deny: عدم اجازه ارسال برای کاربران ناشناس یا غیرمجاز.
  • accept: اجازه ارسال برای دامنه‌ها یا میزبان‌های معتبر.

2.3. Routers and Transports (مسیریابی و انتقال):

این بخش مشخص می‌کند که ایمیل‌ها چگونه پردازش و مسیریابی شوند.

نمونه تنظیمات:

begin routers
local_user:
  driver = accept
  transport = local_delivery
  require_files = /var/mail/$local_part

remote_smtp:
  driver = smtp
  domains = !+local_domains
end routers

begin transports
local_delivery:
  driver = appendfile
  file = /var/mail/$local_part
  delivery_date_add
  envelope_to_add
end transports
  • routers: نحوه مسیریابی ایمیل‌ها.
    • local_user: مسیریابی ایمیل‌های محلی.
    • remote_smtp: مسیریابی ایمیل‌های خارجی.
  • transports: نحوه ارسال ایمیل‌ها به مقصد.

3. فایل‌های جانبی پیکربندی:

بسته به نحوه نصب، Exim ممکن است از فایل‌های جانبی پیکربندی نیز استفاده کند:

  • Debian/Ubuntu: Exim از یک فایل اصلی و چند فایل جداگانه برای پیکربندی استفاده می‌کند:
    /etc/exim4/conf.d/

    این ساختار شامل فایل‌های زیر است:

    • acl/: تنظیمات ACL.
    • main/: تنظیمات عمومی.
    • router/: تنظیمات مسیریابی.
    • transport/: تنظیمات انتقال.
  • CentOS/RedHat:
    تمام تنظیمات در یک فایل واحد exim.conf ذخیره می‌شوند.

4. تست و بارگذاری تنظیمات جدید:

پس از ویرایش فایل‌های پیکربندی، باید صحت آن‌ها را بررسی و سرویس را مجدداً راه‌اندازی کنید:

تست پیکربندی:

exim -bV

ری‌استارت سرویس:

sudo systemctl restart exim

این تنظیمات اولیه به شما امکان می‌دهد Exim را به‌درستی پیکربندی کنید. بسته به نیازهای خاص، می‌توانید فایل پیکربندی را گسترش دهید و سفارشی‌سازی‌های بیشتری انجام دهید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”پیکربندی دامنه‌ها، آدرس‌های ایمیل و تنظیمات عمومی در Exim” subtitle=”توضیحات کامل”]پیکربندی دامنه‌ها، آدرس‌های ایمیل و تنظیمات عمومی از جمله موارد اساسی برای عملکرد صحیح Exim به‌عنوان یک سرویس انتقال ایمیل (MTA) محسوب می‌شود. در این بخش، نحوه تنظیم این موارد در فایل‌های پیکربندی Exim بررسی می‌شود.


1. پیکربندی دامنه‌ها

Exim از دامنه‌های مختلف برای ارسال و دریافت ایمیل پشتیبانی می‌کند. این تنظیمات در بخش تنظیمات عمومی (Global Settings) فایل پیکربندی انجام می‌شود.

تنظیم دامنه اصلی (Primary Domain):

primary_hostname = mail.example.com
  • primary_hostname: نام دامنه اصلی سرور ایمیل. این مقدار باید با رکورد A یا MX دامنه شما تطابق داشته باشد.

تعریف دامنه‌های محلی:

domainlist local_domains = example.com : example.org
  • local_domains: لیست دامنه‌هایی که سرور Exim برای آن‌ها ایمیل دریافت می‌کند.

تعریف دامنه‌های رله (Relay Domains):

domainlist relay_to_domains = partner.com : customer.net
  • relay_to_domains: لیست دامنه‌هایی که سرور برای آن‌ها ایمیل را به مقصد دیگری ارسال می‌کند.

2. پیکربندی آدرس‌های ایمیل

برای مدیریت آدرس‌های ایمیل و مسیریابی پیام‌ها، Exim از چندین بخش استفاده می‌کند:

تنظیمات مربوط به ارسال‌کننده (Sender Address):

qualify_domain = example.com
qualify_recipient = example.com
  • qualify_domain: دامنه‌ای که به آدرس‌های ارسال‌کننده بدون دامنه اضافه می‌شود.
  • qualify_recipient: دامنه‌ای که به گیرندگان ایمیل بدون دامنه اضافه می‌شود.

بازنویسی آدرس‌ها (Address Rewriting):

Exim امکان تغییر یا بازنویسی آدرس‌های ایمیل را فراهم می‌کند:

begin rewrite
*@old-domain.com    $1@new-domain.com    T
  • این دستور همه ایمیل‌های ارسال‌شده از old-domain.com را به new-domain.com تغییر می‌دهد.

3. تنظیمات عمومی سرور

در بخش تنظیمات عمومی، می‌توانید عملکرد کلی سرور ایمیل را کنترل کنید.

تنظیم پورت‌ها:

daemon_smtp_ports = 25 : 465 : 587
  • پورت 25: برای ارتباطات SMTP عمومی.
  • پورت 465: برای SMTP با SSL.
  • پورت 587: برای ارسال ایمیل با تأیید هویت.

تنظیمات مرتبط با TLS/SSL:

tls_certificate = /etc/exim/tls/exim.crt
tls_privatekey = /etc/exim/tls/exim.key
tls_advertise_hosts = *
  • tls_certificate و tls_privatekey: مسیر فایل‌های گواهی SSL و کلید خصوصی.
  • tls_advertise_hosts: میزبان‌هایی که قابلیت TLS برای آن‌ها فعال است.

محدودیت‌های عمومی:

smtp_accept_max = 50
smtp_accept_max_per_host = 10
smtp_connect_backlog = 30
  • smtp_accept_max: حداکثر تعداد اتصالات SMTP که می‌توانند هم‌زمان پردازش شوند.
  • smtp_accept_max_per_host: حداکثر تعداد اتصالات از یک میزبان.
  • smtp_connect_backlog: تعداد درخواست‌های اتصال که در صف نگهداری می‌شوند.

4. پیکربندی گیرندگان و مسیریابی ایمیل‌ها

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

begin routers
local_user:
  driver = accept
  domains = +local_domains
  transport = local_delivery
  • این تنظیم مشخص می‌کند که ایمیل‌هایی که به دامنه‌های محلی ارسال می‌شوند، باید چگونه پردازش شوند.

گیرندگان خارجی:

remote_smtp:
  driver = smtp
  domains = !+local_domains
  • این تنظیم برای مسیریابی ایمیل‌های مربوط به دامنه‌های غیرمحلی استفاده می‌شود.

5. پیکربندی ارسال ایمیل (Smarthost)

برای ارسال ایمیل‌ها از طریق یک سرور خارجی (مانند Gmail یا یک ارائه‌دهنده دیگر):

begin routers
smarthost:
  driver = manualroute
  domains = !+local_domains
  transport = remote_smtp
  route_list = * smtp.provider.com::587 byname
begin transports
remote_smtp:
  driver = smtp
  hosts_require_auth = *

تأیید هویت:

begin authenticators
auth_login:
  driver = plaintext
  public_name = LOGIN
  client_send = : username : password

6. تست و اعمال تنظیمات

پس از ویرایش فایل‌های پیکربندی، برای اطمینان از صحت آن‌ها، از دستورات زیر استفاده کنید:

بررسی صحت پیکربندی:

exim -bV

ری‌استارت سرویس:

sudo systemctl restart exim

جمع‌بندی:

پیکربندی دامنه‌ها، آدرس‌های ایمیل و تنظیمات عمومی در Exim بسیار منعطف و قدرتمند است. با تنظیم فایل‌های پیکربندی مانند exim.conf یا فایل‌های مرتبط در مسیر /etc/exim4/conf.d/، می‌توانید عملکرد و امنیت سرویس ایمیل خود را بهینه کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”پیکربندی روش‌های ارسال و دریافت ایمیل‌ها در Exim” subtitle=”توضیحات کامل”]Exim به عنوان یک سرویس انتقال ایمیل (MTA) از روش‌های مختلفی برای ارسال و دریافت ایمیل‌ها پشتیبانی می‌کند. این روش‌ها شامل تنظیمات پروتکل SMTP، استفاده از Smarthost برای ارسال ایمیل‌ها، و مسیریابی پیام‌ها بر اساس قوانین خاص می‌شود. در ادامه به تفصیل هر یک از این روش‌ها و نحوه پیکربندی آن‌ها می‌پردازیم.


1. ارسال ایمیل‌ها

ارسال مستقیم ایمیل (Direct Delivery)

در روش ارسال مستقیم، Exim ایمیل‌ها را مستقیماً به مقصد ارسال می‌کند. این روش نیازمند تنظیمات DNS صحیح برای دامنه فرستنده است.

تنظیم ارسال مستقیم:
begin routers
remote_smtp:
  driver = smtp
  domains = !+local_domains
  • driver = smtp: مشخص‌کننده استفاده از پروتکل SMTP برای ارسال.
  • domains = !+local_domains: ارسال ایمیل‌ها به دامنه‌هایی غیر از دامنه‌های محلی.

ارسال از طریق Smarthost

در این روش، Exim ایمیل‌ها را به یک سرور واسط (Smarthost) ارسال می‌کند که معمولاً برای محیط‌هایی با محدودیت‌های شبکه‌ای یا نیاز به احراز هویت استفاده می‌شود.

پیکربندی Smarthost:
begin routers
smarthost:
  driver = manualroute
  domains = !+local_domains
  transport = remote_smtp
  route_list = * smtp.example.com::587 byname
  • smtp.example.com::587: آدرس و پورت سرور Smarthost.
  • byname: اطمینان از استفاده از نام میزبان برای مسیریابی.
تنظیم احراز هویت:
begin authenticators
auth_login:
  driver = plaintext
  public_name = LOGIN
  client_send = : username : password
  • username و password: اطلاعات ورود به Smarthost.

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

smtp_accept_max = 50
smtp_accept_max_per_host = 10
queue_only_load = 5
deliver_queue_load_max = 3
  • smtp_accept_max: حداکثر تعداد اتصالات SMTP.
  • queue_only_load: ارسال ایمیل تنها در صورتی که بار سرور کمتر از مقدار مشخص باشد.

2. دریافت ایمیل‌ها

دریافت ایمیل با استفاده از SMTP

Exim به طور پیش‌فرض ایمیل‌ها را از طریق پروتکل SMTP دریافت می‌کند.

تنظیم پورت‌های دریافت SMTP:
daemon_smtp_ports = 25 : 587
  • پورت 25: دریافت ایمیل‌های عمومی.
  • پورت 587: دریافت ایمیل‌های احراز هویت‌شده (Submission).
تنظیم دامنه‌های مجاز برای دریافت:
domainlist local_domains = example.com : example.org
  • ایمیل‌های ارسال‌شده به این دامنه‌ها پردازش می‌شوند.

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

smtp_accept_max = 100
smtp_accept_max_per_host = 5
smtp_connect_backlog = 30
  • smtp_accept_max_per_host: تعداد حداکثر اتصال از یک میزبان.

دریافت ایمیل با استفاده از POP3/IMAP (در صورت استفاده از سرویس جداگانه)

Exim به صورت مستقیم از POP3 یا IMAP پشتیبانی نمی‌کند، اما می‌توان آن را با سرویس‌هایی مانند Dovecot یا Courier برای دسترسی به ایمیل‌های دریافت‌شده ترکیب کرد.

نمونه تنظیم Mail Delivery:
begin routers
local_user:
  driver = accept
  domains = +local_domains
  transport = local_delivery
begin transports
local_delivery:
  driver = appendfile
  file = /var/mail/$local_part
  directory_mode = 770
  maildir_format
  mode = 0600
  • appendfile: ذخیره ایمیل‌ها در قالب Maildir.

3. پیکربندی TLS/SSL برای ارسال و دریافت ایمن

برای ارسال و دریافت ایمیل به صورت ایمن، از TLS/SSL استفاده می‌شود.

فعال‌سازی TLS:

tls_certificate = /etc/exim/tls/exim.crt
tls_privatekey = /etc/exim/tls/exim.key
tls_advertise_hosts = *
  • tls_advertise_hosts: مشخص‌کننده میزبان‌هایی که از TLS پشتیبانی می‌کنند.

تنظیمات اجباری کردن TLS:

tls_on_connect_ports = 465
tls_require_ciphers = HIGH:!aNULL:!MD5
  • tls_on_connect_ports: فعال‌سازی TLS برای پورت 465.
  • tls_require_ciphers: تعریف الگوریتم‌های رمزنگاری مجاز.

4. فیلتر کردن ایمیل‌ها

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

نمونه تنظیم فیلتر:

begin acl
acl_check_rcpt:
  deny message = "Spam emails are not allowed"
  hosts = !+relay_from_hosts
  condition = ${if eq {$sender_host_address}{127.0.0.1}{no}{yes}}
  • این قانون ایمیل‌های غیرمجاز از میزبان‌های غیرمجاز را مسدود می‌کند.

5. تست و اعمال تنظیمات

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

بررسی صحت پیکربندی:

exim -bV

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

برای تست ارسال:

exim -v recipient@example.com

برای ری‌استارت سرویس:

sudo systemctl restart exim

جمع‌بندی:

پیکربندی روش‌های ارسال و دریافت ایمیل‌ها در Exim به شما امکان می‌دهد که ایمیل‌ها را به صورت ایمن، بهینه و بر اساس نیازهای سازمانی مدیریت کنید. تنظیم صحیح فایل‌های مربوطه مانند exim.conf و استفاده از پروتکل‌هایی مانند SMTP و TLS نقش مهمی در امنیت و عملکرد این سرویس دارد.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”پیکربندی امنیتی در Exim (از جمله SSL/TLS برای ارتباطات ایمن)” subtitle=”توضیحات کامل”]امنیت یکی از بخش‌های کلیدی در پیکربندی Exim به عنوان یک سرویس انتقال ایمیل (MTA) است. با توجه به حساسیت ایمیل‌ها، پیاده‌سازی راهکارهای امنیتی مانند استفاده از TLS برای رمزنگاری، مدیریت دسترسی‌ها و فیلتر کردن ایمیل‌های مشکوک اهمیت ویژه‌ای دارد.

در این بخش، روش‌های مختلف پیکربندی امنیتی در Exim شرح داده می‌شود.


1. فعال‌سازی TLS/SSL برای ارتباطات رمزنگاری‌شده

ایجاد یا دریافت گواهینامه SSL/TLS

ابتدا باید گواهینامه SSL/TLS و کلید خصوصی ایجاد شود. می‌توانید از گواهینامه‌های خودامضا (self-signed) یا گواهینامه‌های صادر شده توسط یک CA استفاده کنید.

ایجاد گواهینامه خودامضا:

openssl req -newkey rsa:2048 -nodes -keyout /etc/exim/tls/exim.key -x509 -days 365 -out /etc/exim/tls/exim.crt

تنظیم مسیر گواهینامه در Exim

در فایل پیکربندی اصلی Exim (مانند /etc/exim/exim.conf)، مسیر گواهینامه و کلید خصوصی را مشخص کنید:

tls_certificate = /etc/exim/tls/exim.crt
tls_privatekey = /etc/exim/tls/exim.key

فعال‌سازی TLS در ارتباطات SMTP

برای رمزنگاری ارتباطات SMTP، تنظیمات زیر را در فایل پیکربندی اضافه کنید:

daemon_smtp_ports = 25 : 465 : 587
tls_advertise_hosts = *
tls_on_connect_ports = 465
  • پورت 25: استفاده برای SMTP عمومی.
  • پورت 465: SMTP با TLS اجباری.
  • پورت 587: Submission با TLS.

اجباری کردن TLS

برای الزام استفاده از TLS در ارتباطات:

begin acl
acl_check_rcpt:
  deny
    message = "TLS required"
    condition = ${if !eq{$tls_cipher}{}{no}{yes}}

2. مدیریت دسترسی به سرویس Exim

تعریف دامنه‌های محلی

تنظیم دامنه‌های محلی برای جلوگیری از سوءاستفاده توسط دامنه‌های غیرمجاز:

domainlist local_domains = example.com : example.org
hostlist relay_from_hosts = 127.0.0.1 : ::1

محدودیت ارسال برای میزبان‌های خارجی

begin acl
acl_check_rcpt:
  deny
    message = "Relay not permitted"
    hosts = !+relay_from_hosts
    domains = !+local_domains

3. احراز هویت کاربران SMTP

تنظیم احراز هویت برای ارسال ایمیل

در بخش authenticators تنظیمات زیر را اضافه کنید:

begin authenticators
auth_plain:
  driver = plaintext
  public_name = PLAIN
  server_condition = ${if eq{$auth2}{valid_user}{yes}{no}}
  server_set_id = $auth1

پیکربندی ارسال از طریق Smarthost با احراز هویت

begin authenticators
auth_login:
  driver = plaintext
  public_name = LOGIN
  client_send = : username@example.com : password

4. فیلتر کردن ایمیل‌های مخرب

فیلتر ایمیل‌های اسپم

برای مسدود کردن ایمیل‌هایی که به عنوان اسپم شناسایی می‌شوند:

begin acl
acl_check_message:
  deny
    message = "Spam detected"
    condition = ${if >{$spam_score}{5}{yes}{no}}

مسدود کردن ایمیل‌های با پیوست‌های مشکوک

begin acl
acl_check_mime:
  deny
    message = "Executable files are not allowed"
    condition = ${if match {$mime_filename}{\N\.(exe|bat|cmd|scr)$\N}{yes}{no}}

5. محدودیت‌های امنیتی برای جلوگیری از حملات

محدود کردن تعداد اتصالات

smtp_accept_max = 50
smtp_accept_max_per_host = 5
smtp_connect_backlog = 30

محدودیت بار سرور

queue_only_load = 5
deliver_queue_load_max = 3

تنظیم زمان‌بندی اتصالات

smtp_receive_timeout = 5m
smtp_load_reserve = 5

6. مانیتورینگ و ثبت لاگ‌ها

فعال‌سازی لاگ‌های مرتبط با TLS:

log_selector = +tls_certificate_verified +tls_cipher

مشاهده لاگ‌های Exim:

tail -f /var/log/exim/mainlog

7. بررسی و تست امنیت

بررسی پیکربندی Exim:

exim -bV

تست ارسال ایمیل با TLS:

openssl s_client -starttls smtp -connect smtp.example.com:25

تست ارسال ایمیل از طریق Exim:

exim -v recipient@example.com

جمع‌بندی:

پیاده‌سازی امنیت در Exim شامل فعال‌سازی TLS، مدیریت دسترسی‌ها، فیلتر کردن ایمیل‌های مخرب و اعمال محدودیت‌ها برای جلوگیری از سوءاستفاده است. این تنظیمات می‌توانند به حفظ امنیت ارتباطات و جلوگیری از حملات احتمالی کمک کنند. برای اطمینان از امنیت بیشتر، بررسی مداوم لاگ‌ها و به‌روزرسانی گواهینامه‌ها و نرم‌افزار ضروری است.[/cdb_course_lesson][/cdb_course_lessons]

[cdb_course_lessons title=”3. پیکربندی امنیتی Exim”][cdb_course_lesson title=”پیکربندی احراز هویت و امنیت:”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”پیکربندی SMTP Authentication (AUTH) برای احراز هویت ایمیل‌ها در Exim” subtitle=”توضیحات کامل”]SMTP Authentication (AUTH) به سرورها اجازه می‌دهد تا قبل از اجازه ارسال ایمیل، اعتبار کاربران را بررسی کنند. این ویژگی می‌تواند به جلوگیری از سوءاستفاده از سرور (مانند ارسال اسپم) و بهبود امنیت کمک کند.


1. فعال‌سازی AUTH در فایل پیکربندی Exim

ویرایش فایل پیکربندی

فایل اصلی پیکربندی Exim معمولاً در مسیر /etc/exim/exim.conf یا /etc/exim4/exim4.conf قرار دارد. تنظیمات مربوط به AUTH در این فایل باید اعمال شوند.

پیکربندی بخش authenticators

در فایل پیکربندی، بخش authenticators مسئول تنظیم روش‌های احراز هویت است. یک نمونه ساده برای AUTH PLAIN و LOGIN به صورت زیر است:

begin authenticators

auth_plain:
  driver = plaintext
  public_name = PLAIN
  server_condition = ${if eq{$auth2}{your_password}{yes}{no}}
  server_set_id = $auth1
  server_prompts = :
  .ifndef AUTH_SERVER_ALLOW_ALL_USERS
  server_condition = ${if eq{$auth1}{valid_user}{yes}{no}}
  .endif

auth_login:
  driver = plaintext
  public_name = LOGIN
  server_prompts = Username:: : Password::
  server_condition = ${if and{{eq{$auth1}{valid_user}}{eq{$auth2}{your_password}}}{yes}{no}}
  server_set_id = $auth1
  • $auth1: نام کاربری.
  • $auth2: رمز عبور.
  • مقادیر valid_user و your_password باید جایگزین اطلاعات واقعی کاربران شوند یا از یک مکانیزم پویا مانند فایل یا دیتابیس استفاده شود.

2. پیکربندی فایل اعتبارسنجی (Authentication File)

ایجاد فایل برای ذخیره اعتبار کاربران

به منظور ذخیره اطلاعات کاربری (مانند نام کاربری و رمز عبور)، یک فایل اختصاصی ایجاد کنید.

مثال:

echo 'username:password' > /etc/exim/auth_users
chmod 600 /etc/exim/auth_users

اضافه کردن شرط بررسی فایل به پیکربندی

برای بررسی اعتبار از فایل:

auth_plain:
  driver = plaintext
  public_name = PLAIN
  server_condition = ${if crypteq{$auth2}{${lookup{$auth1}lsearch{/etc/exim/auth_users}}}{yes}{no}}
  server_set_id = $auth1

auth_login:
  driver = plaintext
  public_name = LOGIN
  server_condition = ${if crypteq{$auth2}{${lookup{$auth1}lsearch{/etc/exim/auth_users}}}{yes}{no}}
  server_set_id = $auth1

3. فعال‌سازی AUTH روی پورت SMTP

تعریف پورت‌های احراز هویت

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

daemon_smtp_ports = 25 : 587
tls_advertise_hosts = *
auth_advertise_hosts = *
  • پورت 25: برای ارسال عمومی.
  • پورت 587: برای کاربران احراز هویت‌شده (Submission).

4. اجباری کردن AUTH برای ارسال ایمیل

برای جلوگیری از ارسال ایمیل توسط کاربران ناشناس، باید AUTH اجباری شود. این تنظیم را در بخش ACL اعمال کنید:

begin acl
acl_check_rcpt:
  deny
    message = "Authentication required"
    !authenticated = *
    !hosts = +relay_from_hosts

5. پیکربندی TLS برای امنیت AUTH

رمزنگاری ارتباطات برای احراز هویت بسیار مهم است. مطمئن شوید TLS فعال است:

tls_certificate = /etc/exim/tls/exim.crt
tls_privatekey = /etc/exim/tls/exim.key

تنظیمات دیگر برای TLS:

tls_on_connect_ports = 465
tls_advertise_hosts = *
auth_advertise_hosts = *

6. تست پیکربندی SMTP AUTH

بررسی تنظیمات Exim

برای اطمینان از صحت پیکربندی:

exim -bP

تست AUTH با ابزار openssl

از openssl برای بررسی AUTH استفاده کنید:

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

دستورات زیر را برای ارسال AUTH وارد کنید:

EHLO example.com
AUTH LOGIN
<base64 encoded username>
<base64 encoded password>

ابزار telnet

برای بررسی با Telnet:

telnet mail.example.com 587
EHLO example.com
AUTH LOGIN

نام کاربری و رمز عبور را به فرمت Base64 وارد کنید.


7. لاگ‌ها و خطایابی

فعال کردن لاگ‌های AUTH

برای بررسی لاگ‌های مرتبط با AUTH، تنظیمات زیر را اضافه کنید:

log_selector = +auth

مشاهده لاگ‌ها

لاگ‌های مربوط به Exim را مشاهده کنید:

tail -f /var/log/exim/mainlog

جمع‌بندی:

پیکربندی SMTP AUTH در Exim به کاربران امکان می‌دهد تا پیش از ارسال ایمیل احراز هویت شوند. این روش با ترکیب TLS، کنترل دسترسی و استفاده از فایل‌های اعتبارسنجی یا دیتابیس امنیت ارسال ایمیل را تضمین می‌کند. پس از پیکربندی و تست، می‌توانید این ویژگی را برای جلوگیری از سوءاستفاده از سرور ایمیل به کار بگیرید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”فعال‌سازی SSL/TLS Encryption برای ایمن‌سازی ارتباطات در Exim” subtitle=”توضیحات کامل”]

فعال‌سازی SSL/TLS در Exim به سرور اجازه می‌دهد که ارتباطات ایمیلی را رمزنگاری کند، بنابراین اطلاعاتی مانند محتوا و احراز هویت در طول انتقال محافظت می‌شوند. این فرآیند شامل تنظیم گواهینامه‌ها و پیکربندی Exim برای استفاده از TLS است.


1. تهیه گواهینامه SSL/TLS

گزینه 1: استفاده از گواهینامه‌های خودامضا (Self-signed Certificate)

برای ایجاد گواهینامه خودامضا:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
  -keyout /etc/exim/tls/exim.key \
  -out /etc/exim/tls/exim.crt
  • exim.key: کلید خصوصی.
  • exim.crt: گواهینامه عمومی.

گزینه 2: استفاده از گواهینامه معتبر (Let’s Encrypt)

اگر دامنه دارید، می‌توانید از Let’s Encrypt استفاده کنید:

apt install certbot
certbot certonly --standalone -d example.com

گواهینامه‌ها معمولاً در مسیر /etc/letsencrypt/live/example.com/fullchain.pem و کلید در مسیر /etc/letsencrypt/live/example.com/privkey.pem ذخیره می‌شوند.


2. پیکربندی Exim برای استفاده از SSL/TLS

تنظیم گواهینامه‌ها

در فایل پیکربندی Exim (مانند /etc/exim/exim.conf)، مسیر گواهینامه‌ها و کلید خصوصی را مشخص کنید:

tls_certificate = /etc/exim/tls/exim.crt
tls_privatekey = /etc/exim/tls/exim.key

اگر از Let’s Encrypt استفاده می‌کنید:

tls_certificate = /etc/letsencrypt/live/example.com/fullchain.pem
tls_privatekey = /etc/letsencrypt/live/example.com/privkey.pem

3. فعال‌سازی TLS روی پورت‌ها

تنظیمات پورت‌ها

برای فعال‌سازی TLS روی پورت‌های مرتبط:

daemon_smtp_ports = 25 : 465 : 587
tls_on_connect_ports = 465
tls_advertise_hosts = *
  • پورت 25: SMTP معمولی (با STARTTLS).
  • پورت 465: SMTPS (TLS هنگام اتصال).
  • پورت 587: Submission (برای کاربران احراز هویت‌شده).

4. اجباری کردن TLS برای ارتباطات

برای اطمینان از اینکه TLS در همه ارتباطات استفاده می‌شود، تنظیمات زیر را در بخش ACL اعمال کنید:

اجبار TLS برای ارسال ایمیل

در بخش acl_check_rcpt، خط زیر را اضافه کنید:

deny
  message = "TLS is required for sending emails"
  condition = ${if !eq{$received_protocol}{smtps}{yes}{no}}

اجبار TLS برای دریافت ایمیل

در بخش acl_check_mail، تنظیم زیر را اضافه کنید:

warn
  message = "TLS is required for secure connection"
  condition = ${if eq{$tls_cipher}{}{yes}{no}}

5. پیکربندی STARTTLS

برای پشتیبانی از STARTTLS (ارتقاء ارتباط معمولی به TLS):

tls_advertise_hosts = *

6. تست پیکربندی TLS

تست با openssl

برای بررسی TLS روی پورت 465:

openssl s_client -connect mail.example.com:465

برای بررسی STARTTLS روی پورت 25 یا 587:

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

بررسی اطلاعات گواهینامه

پس از اتصال، اطلاعات گواهینامه و رمزنگاری را بررسی کنید.


7. مشاهده لاگ‌ها برای خطایابی

لاگ‌ها برای بررسی خطاهای TLS و سایر مسائل:

tail -f /var/log/exim/mainlog

8. به‌روزرسانی گواهینامه‌ها (برای Let’s Encrypt)

گواهینامه‌های Let’s Encrypt به صورت دوره‌ای باید تمدید شوند. با افزودن کرون‌جاب، این فرآیند را خودکار کنید:

0 3 * * * certbot renew --quiet && systemctl reload exim

جمع‌بندی:

راه‌اندازی SSL/TLS در Exim یک گام اساسی برای ایمن‌سازی ارتباطات ایمیل است. با پیکربندی صحیح گواهینامه‌ها، فعال‌سازی TLS روی پورت‌های مرتبط و اجبار استفاده از TLS، می‌توانید امنیت ارسال و دریافت ایمیل را تضمین کنید. همچنین، با استفاده از ابزارهایی مانند openssl می‌توانید صحت تنظیمات را بررسی و ارتباطات را تست کنید.

[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”تنظیم SPF، DKIM و DMARC برای جلوگیری از اسپم و جعل ایمیل” subtitle=”توضیحات کامل”]SPF، DKIM و DMARC سه فناوری مهم برای تأیید هویت ایمیل و جلوگیری از اسپم و جعل ایمیل هستند. این تنظیمات باعث می‌شوند ایمیل‌های ارسال‌شده از دامنه شما معتبر شناخته شوند و احتمال ورود آن‌ها به صندوق ورودی گیرنده افزایش یابد.


1. SPF (Sender Policy Framework)

تعریف

SPF مشخص می‌کند کدام سرورها مجاز به ارسال ایمیل از طرف دامنه شما هستند.

مراحل تنظیم SPF

1.1. ایجاد رکورد SPF در DNS

رکورد SPF به صورت رکورد متنی (TXT) در DNS تنظیم می‌شود. برای مثال:

v=spf1 ip4:192.168.1.1 include:_spf.google.com -all
  • v=spf1: نسخه پروتکل SPF.
  • ip4:192.168.1.1: آدرس سرور ایمیل مجاز.
  • include:_spf.google.com: شامل کردن قوانین SPF از یک دامنه دیگر (مثل Gmail).
  • -all: ایمیل‌هایی که از سرورهای غیرمجاز ارسال شوند، رد شوند.

1.2. انتشار رکورد در DNS

رکورد TXT را در پنل مدیریت DNS دامنه خود اضافه کنید.

1.3. بررسی رکورد SPF

برای تست رکورد SPF:

nslookup -type=txt example.com

یا از ابزارهای آنلاین مانند SPF Record Check استفاده کنید.


2. DKIM (DomainKeys Identified Mail)

تعریف

DKIM به ایمیل‌های ارسال‌شده امضای دیجیتال اضافه می‌کند که گیرنده می‌تواند از آن برای تأیید اصالت ایمیل استفاده کند.

مراحل تنظیم DKIM

2.1. ایجاد کلیدهای DKIM

در سرور Exim یا ابزارهای دیگر کلید خصوصی و عمومی تولید کنید:

openssl genrsa -out dkim_private.key 2048
openssl rsa -in dkim_private.key -pubout -out dkim_public.key

2.2. اضافه کردن کلید عمومی به DNS

یک رکورد TXT با کلید عمومی ایجاد کنید:

  • نام رکورد: default._domainkey.example.com
  • مقدار:
v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD...

2.3. پیکربندی Exim برای استفاده از DKIM

در فایل پیکربندی Exim:

dkim_private_key = /etc/exim/dkim_private.key
dkim_selector = default
dkim_domain = ${sender_address_domain}

2.4. بررسی DKIM

برای تست DKIM، از ابزارهایی مانند DKIM Core استفاده کنید.


3. DMARC (Domain-based Message Authentication, Reporting, and Conformance)

تعریف

DMARC از SPF و DKIM پشتیبانی می‌کند و به شما امکان می‌دهد نحوه مدیریت ایمیل‌های نامعتبر را تعریف کنید.

مراحل تنظیم DMARC

3.1. ایجاد رکورد DMARC در DNS

یک رکورد TXT برای دامنه اضافه کنید:

  • نام رکورد: _dmarc.example.com
  • مقدار:
v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@example.com; pct=100
  • v=DMARC1: نسخه پروتکل DMARC.
  • p=quarantine: سیاست موردنظر (none, quarantine, reject).
  • rua=mailto:dmarc-reports@example.com: آدرس ایمیل برای گزارش‌ها.
  • pct=100: درصد ایمیل‌هایی که تحت DMARC قرار می‌گیرند.

3.2. سیاست‌های DMARC

  • none: فقط گزارش می‌گیرد، تغییری در تحویل ایمیل نمی‌دهد.
  • quarantine: ایمیل‌های نامعتبر را به پوشه اسپم منتقل می‌کند.
  • reject: ایمیل‌های نامعتبر را رد می‌کند.

3.3. بررسی DMARC

برای تست DMARC از ابزار DMARC Analyzer استفاده کنید.


جمع‌بندی

1. SPF

مشخص می‌کند کدام سرورها مجاز به ارسال ایمیل هستند.

2. DKIM

با افزودن امضای دیجیتال به ایمیل، اصالت آن را تأیید می‌کند.

3. DMARC

سیاست‌های مدیریت ایمیل‌های نامعتبر را تعیین می‌کند و گزارش‌هایی برای تحلیل ارائه می‌دهد.

مزایا

  • جلوگیری از اسپم و جعل ایمیل.
  • افزایش اعتبار دامنه نزد ارائه‌دهندگان ایمیل.
  • بهبود تحویل ایمیل به Inbox.

با تنظیم صحیح SPF، DKIM و DMARC می‌توانید امنیت ارتباطات ایمیل خود را به‌طور مؤثری ارتقا دهید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”جلوگیری از حملات Brute Force و Relay Attacks در Exim” subtitle=”توضیحات کامل”]

یکی از اصلی‌ترین نگرانی‌ها در مدیریت سرور ایمیل، محافظت از آن در برابر حملاتی نظیر Brute Force و Relay Attacks است. در ادامه، روش‌های پیشگیری از این حملات در Exim ارائه شده است.


1. جلوگیری از حملات Brute Force

حملات Brute Force به معنی تلاش برای دسترسی به سرور از طریق آزمون و خطای مداوم رمز عبور است. برای مقابله با این حملات، روش‌های زیر توصیه می‌شود:

1.1. محدود کردن تلاش‌های ناموفق ورود

با استفاده از قابلیت‌های داخلی Exim یا ابزارهای خارجی مانند Fail2Ban، می‌توانید تعداد تلاش‌های ورود ناموفق را محدود کنید.

پیکربندی Fail2Ban برای Exim:

  1. نصب Fail2Ban: در سیستم‌های مبتنی بر Debian/Ubuntu:
    sudo apt install fail2ban

    در سیستم‌های مبتنی بر CentOS/RedHat:

    sudo yum install fail2ban
  2. ایجاد فایل Jail برای Exim: فایل /etc/fail2ban/jail.local را ویرایش کنید و بخش زیر را اضافه کنید:
    [exim]
    enabled = true
    port = smtp,ssmtp
    filter = exim
    logpath = /var/log/exim4/mainlog
    maxretry = 3
    bantime = 3600
  3. ایجاد فیلتر Exim: فایل /etc/fail2ban/filter.d/exim.conf را ایجاد کرده و محتوای زیر را اضافه کنید:
    [Definition]
    failregex = (?:auth|login): failed .* from <HOST>
    ignoreregex =
  4. فعال‌سازی Fail2Ban:
    sudo systemctl restart fail2ban

نتیجه:

با این تنظیمات، IPهایی که چندین بار تلاش ورود ناموفق داشته باشند، مسدود می‌شوند.


1.2. استفاده از محدودیت در ورود کاربران

Exim اجازه می‌دهد تعداد تلاش‌های مجاز برای احراز هویت را محدود کنید. در فایل پیکربندی exim.conf، مقدار زیر را اضافه کنید:

auth_advertise_hosts = ${if eq{$authentication_attempts} {0} {} {0.0.0.0/0}}

1.3. استفاده از TLS

با فعال کردن TLS، حملات Brute Force پیچیده‌تر می‌شوند، زیرا ارتباط رمزگذاری می‌شود.

پیکربندی TLS:

tls_certificate = /path/to/cert.pem
tls_privatekey = /path/to/key.pem
tls_advertise_hosts = *

2. جلوگیری از Relay Attacks

Relay Attack زمانی اتفاق می‌افتد که یک مهاجم از سرور ایمیل شما برای ارسال ایمیل‌های اسپم یا جعلی استفاده می‌کند.

2.1. محدود کردن دسترسی به SMTP Relay

برای جلوگیری از اینکه سرور شما به یک “Open Relay” تبدیل شود، اطمینان حاصل کنید که تنها کاربران احراز هویت‌شده و IPهای مجاز می‌توانند ایمیل ارسال کنند.

تغییرات در فایل پیکربندی:

hostlist relay_from_hosts = 127.0.0.1 : 192.168.0.0/24
acl_smtp_rcpt = acl_check_rcpt

پیکربندی ACL:

در بخش ACL، محدودیت‌های زیر را اضافه کنید:

acl_check_rcpt:
  deny  message = Relay not permitted
        condition = ${if !eq {$sender_host_address} {127.0.0.1}}
        !authenticated = *

  accept

2.2. تنظیم SMTP Authentication (AUTH)

احراز هویت SMTP به کاربران اجازه می‌دهد تنها در صورتی ایمیل ارسال کنند که احراز هویت شده باشند.

اضافه کردن پیکربندی AUTH:

auth_advertise_hosts = *
plain:
  driver = plaintext
  public_name = PLAIN
  server_condition = ${if eq {$auth1} {username} {yes} {no}}
  server_set_id = $auth1

2.3. استفاده از SPF، DKIM و DMARC

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


2.4. محدود کردن تعداد ایمیل‌های ارسالی

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

smtp_accept_queue_per_connection = 10
smtp_accept_max = 50
smtp_accept_max_per_host = 5

جمع‌بندی

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

  • از Fail2Ban برای مسدود کردن IPهای مخرب استفاده کنید.
  • تعداد تلاش‌های ورود را محدود کنید.
  • از TLS برای رمزنگاری ارتباطات استفاده کنید.

برای جلوگیری از Relay Attacks:

  • دسترسی به Relay را محدود کنید.
  • SMTP Authentication را فعال کنید.
  • از SPF، DKIM و DMARC برای تأیید هویت ایمیل‌ها بهره ببرید.

با این تنظیمات، سرور ایمیل شما در برابر حملات Brute Force و Relay ایمن‌تر خواهد شد و از سوءاستفاده‌های احتمالی جلوگیری می‌شود.

[/cdb_course_lesson][cdb_course_lesson title=”فیلتر کردن ایمیل‌ها با استفاده از Exim:”] [/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”استفاده از Access Control Lists (ACLs) برای فیلتر کردن ایمیل‌ها در Exim” subtitle=”توضیحات کامل”]Access Control Lists (ACLs) در Exim یکی از قدرتمندترین ابزارها برای کنترل و مدیریت جریان ایمیل‌ها هستند. با استفاده از ACLها می‌توان فیلترهایی برای پذیرش، رد یا تغییر مسیر ایمیل‌ها بر اساس شرایط خاص تنظیم کرد. این تنظیمات انعطاف‌پذیری بالایی را در کنترل ترافیک ایمیل فراهم می‌کنند.


1. مقدمه‌ای بر ACLها در Exim

ACLها بخشی از فایل پیکربندی اصلی Exim (exim.conf) هستند و در موقعیت‌های مختلف، مانند زمانی که یک پیام دریافت می‌شود یا هنگام احراز هویت، اجرا می‌شوند. مهم‌ترین ACLها عبارتند از:

  • acl_smtp_connect: اجرا هنگام برقراری اتصال SMTP.
  • acl_smtp_helo: اجرا هنگام دریافت فرمان HELO/EHLO.
  • acl_smtp_mail: اجرا هنگام دریافت فرمان MAIL FROM.
  • acl_smtp_rcpt: اجرا هنگام دریافت فرمان RCPT TO.
  • acl_smtp_data: اجرا هنگام دریافت داده‌های پیام.

2. ساختار ACL در Exim

هر ACL از مجموعه‌ای از دستورات (Rules) تشکیل شده است. هر دستور می‌تواند یکی از کارهای زیر را انجام دهد:

  • accept: پیام را بپذیرد.
  • deny: پیام را رد کند.
  • warn: به پیام اخطار اضافه کند یا اطلاعاتی را ثبت کند.
  • defer: پردازش پیام را به تعویق بیندازد.

3. فیلتر کردن ایمیل‌ها با استفاده از ACLها

3.1. فیلتر کردن بر اساس آدرس IP فرستنده

برای مسدود کردن ایمیل‌هایی که از آدرس‌های IP خاصی ارسال می‌شوند:

acl_smtp_connect:
  deny  message = Connection from $sender_host_address denied
        hosts = 192.168.1.100 : 10.0.0.0/8

3.2. فیلتر کردن بر اساس دامنه فرستنده

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

acl_smtp_mail:
  deny  message = Emails from $sender_address_domain are not allowed
        domains = example.com : spamdomain.com

3.3. محدود کردن تعداد گیرندگان در هر پیام

برای جلوگیری از ارسال ایمیل‌های انبوه:

acl_smtp_rcpt:
  deny  message = Too many recipients
        condition = ${if > {$recipients_count} {10} {yes} {no}}

4. ایمن‌سازی با استفاده از ACLها

4.1. جلوگیری از Open Relay

برای اطمینان از اینکه فقط کاربران احراز هویت‌شده یا IPهای مجاز می‌توانند ایمیل ارسال کنند:

acl_smtp_rcpt:
  deny  message = Relay not permitted
        condition = ${if !eq {$sender_host_address} {127.0.0.1}}
        !authenticated = *
        !hosts = 192.168.1.0/24

4.2. جلوگیری از دریافت ایمیل‌های اسپم

استفاده از لیست‌های سیاه (Blacklist):

acl_smtp_rcpt:
  deny  message = Email rejected due to spam source
        dnslists = zen.spamhaus.org

بررسی محتوای ایمیل:

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

acl_smtp_data:
  deny  message = Email contains prohibited content
        condition = ${if match {$message_body} {.*spamword.*} {yes} {no}}

5. افزودن امضای DKIM با استفاده از ACLها

برای افزودن امضای DKIM به ایمیل‌های خروجی:

acl_smtp_data:
  warn  dkim_domain = $sender_address_domain
        dkim_selector = default
        dkim_private_key = /etc/exim/dkim.private.key

6. تنظیم محدودیت‌های SMTP با ACL

محدود کردن تعداد اتصالات هم‌زمان از یک IP:

acl_smtp_connect:
  deny  message = Too many connections from $sender_host_address
        condition = ${if > {$connection_count} {5} {yes} {no}}

محدود کردن حجم ایمیل:

acl_smtp_data:
  deny  message = Message size exceeds limit
        condition = ${if > {$message_size} {10M} {yes} {no}}

جمع‌بندی

  • ACLها در Exim ابزار قدرتمندی برای مدیریت جریان ایمیل‌ها هستند که امکان کنترل بر اساس شرایط مختلف را فراهم می‌کنند.
  • با استفاده از ACLها می‌توانید ترافیک ایمیل را ایمن‌تر کرده و سرور خود را از حملات و سوءاستفاده‌ها محافظت کنید.
  • روش‌های معمول شامل فیلتر کردن بر اساس آدرس IP، دامنه، تعداد گیرندگان، محتوای ایمیل و استفاده از لیست‌های سیاه می‌شود.

برای مدیریت مؤثر ACLها، تست دقیق تنظیمات ضروری است تا از عدم وجود مشکلات در پذیرش ایمیل‌های معتبر اطمینان حاصل شود.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”پیکربندی SpamAssassin و ClamAV برای مقابله با اسپم و ویروس‌ها در Exim” subtitle=”توضیحات کامل”]SpamAssassin و ClamAV دو ابزار قدرتمند هستند که برای مقابله با اسپم و ویروس‌ها در سرورهای ایمیل استفاده می‌شوند. با ادغام این ابزارها با Exim، می‌توان امنیت و کارایی ایمیل سرور را بهبود بخشید.


1. معرفی SpamAssassin و ClamAV

  • SpamAssassin: یک ابزار پیشرفته برای شناسایی اسپم با استفاده از تکنیک‌هایی مانند آنالیز محتوا، امتیازدهی مبتنی بر قوانین، و یادگیری ماشین.
  • ClamAV: یک آنتی‌ویروس متن‌باز برای اسکن فایل‌ها و پیام‌ها به منظور شناسایی ویروس‌ها، بدافزارها و سایر تهدیدات.

2. پیش‌نیازها

2.1. نصب SpamAssassin و ClamAV

برای نصب این ابزارها بر روی سیستم‌های مبتنی بر Ubuntu/Debian:

sudo apt update
sudo apt install spamassassin clamav clamav-daemon -y

برای CentOS/RHEL:

sudo yum install spamassassin clamav clamav-update -y

2.2. فعال‌سازی سرویس‌ها

برای فعال‌سازی و راه‌اندازی سرویس‌های مربوطه:

# برای SpamAssassin
sudo systemctl enable spamassassin
sudo systemctl start spamassassin

# برای ClamAV
sudo systemctl enable clamav-daemon
sudo systemctl start clamav-daemon

2.3. به‌روزرسانی پایگاه داده ClamAV

sudo freshclam

3. پیکربندی SpamAssassin با Exim

3.1. افزودن SpamAssassin به فایل پیکربندی Exim

به فایل exim.conf خطوط زیر را اضافه کنید:

تعریف اسکن اسپم در ACL:

acl_smtp_data:
  warn  condition = ${if eq{$spam_score_int}{0}{no}{yes}}
        message = This email has been flagged as spam
        spam = nobody:true
  deny  condition = ${if >{$spam_score_int}{5}{yes}{no}}
        message = Message rejected as spam (score: $spam_score)
        spam = nobody:true

تنظیم سطح امتیاز اسپم:

  • $spam_score: سطح امتیاز اسپم بر اساس SpamAssassin.
  • $spam_score_int: امتیاز به صورت عدد صحیح.

3.2. تنظیمات اختیاری

در فایل پیکربندی SpamAssassin (/etc/spamassassin/local.cf):

required_score 5.0
report_safe 0
rewrite_header Subject *****SPAM*****

4. پیکربندی ClamAV با Exim

4.1. افزودن ClamAV به فایل پیکربندی Exim

به فایل exim.conf خطوط زیر را اضافه کنید:

تعریف اسکن ویروس در ACL:

av_scanner = clamd:/var/run/clamav/clamd.ctl

acl_smtp_data:
  warn  malware = *
        message = This email contains a virus and has been flagged
  deny  malware = *
        message = Message contains a virus ($malware_name)

4.2. بررسی وضعیت ClamAV

اطمینان حاصل کنید که سرویس ClamAV در حال اجرا است:

sudo systemctl status clamav-daemon

5. ترکیب SpamAssassin و ClamAV در Exim

5.1. ترکیب اسکن اسپم و ویروس در ACL:

acl_smtp_data:
  warn  condition = ${if eq{$spam_score_int}{0}{no}{yes}}
        message = This email has been flagged as spam
        spam = nobody:true
  deny  condition = ${if >{$spam_score_int}{5}{yes}{no}}
        message = Message rejected as spam (score: $spam_score)
        spam = nobody:true
  warn  malware = *
        message = This email contains a virus and has been flagged
  deny  malware = *
        message = Message contains a virus ($malware_name)

6. تست تنظیمات

برای تست اینکه تنظیمات به درستی اعمال شده‌اند:

  1. یک ایمیل تست اسپم با استفاده از SpamAssassin ارسال کنید:
    sendmail user@example.com < /usr/share/doc/spamassassin/examples/sample-spam.txt
  2. یک ایمیل تست ویروس با استفاده از فایل EICAR ارسال کنید:
    echo "X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*" | sendmail user@example.com

جمع‌بندی

  • SpamAssassin و ClamAV به راحتی با Exim ادغام می‌شوند و به ترتیب برای شناسایی اسپم و ویروس استفاده می‌شوند.
  • با تنظیم مناسب ACLها می‌توانید ایمیل‌های مخرب و ناخواسته را مسدود یا برچسب‌گذاری کنید.
  • به‌روزرسانی مداوم پایگاه داده ClamAV و تنظیمات SpamAssassin برای عملکرد بهینه ضروری است.

[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”محدود کردن ارسال ایمیل‌ها و جلوگیری از ارسال ایمیل‌های ناخواسته (اسپم) در Exim” subtitle=”توضیحات کامل”]برای جلوگیری از ارسال ایمیل‌های ناخواسته و کنترل دسترسی به سرور ایمیل، Exim مجموعه‌ای از ابزارها و تکنیک‌ها را ارائه می‌دهد که می‌توان از آن‌ها برای تنظیم سیاست‌های ارسال ایمیل استفاده کرد.


1. محدود کردن تعداد ایمیل‌های ارسالی توسط یک کاربر

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

در Exim می‌توانید این محدودیت‌ها را با استفاده از Rate Limiting تنظیم کنید.

تنظیم محدودیت در Exim:

به فایل exim.conf اضافه کنید:

# Limit the number of emails per hour per user
authenticated_smtp:
  driver = smtp
  interfaces = 127.0.0.0/8
  hosts_require_auth = *
  condition = ${if >{$message_size}{1048576}{yes}{no}}
  deny
  message = Too large email rejected.
  
rate_limit:
  driver = delay  
  limit = 1/h

recipient_rate_limit:
  driver = accept
  domains = ! +local_domains
  limit = 5/h
  message = Too many messages from this sender, try again later.
  • recipient_rate_limit مشخص می‌کند که حداکثر تعداد ایمیل‌ها از هر فرستنده در هر ساعت چقدر باشد.
  • 1/h به این معنی است که 1 ایمیل در هر ساعت از هر کاربر مجاز است.

2. محدود کردن ارسال ایمیل‌ها از طریق SMTP بدون احراز هویت (Relay attacks)

بیشتر اسپمرها از دسترسی به سرور ایمیل بدون نیاز به احراز هویت استفاده می‌کنند تا ایمیل‌ها را به صورت انبوه ارسال کنند. برای جلوگیری از این مسئله، Exim اجازه ارسال ایمیل‌های بدون احراز هویت را محدود می‌کند.

تنظیمات:

به فایل exim.conf اضافه کنید:

# Block relay from unauthorized senders
acl_smtp_connect:
  deny
    condition = ${if not <${if or{${eq{$sender_host_name}{localhost}}{${lookup{$sender_host_name} dnsdb}{yes}{no}}}{${if eq{$sender_host_name}{${domain}}{no}{yes}}}}}
    message = Relay not permitted

acl_smtp_mail:
  deny
    condition = ${if eq {$authenticated_id}{""}}
    message = Authentication required
  • acl_smtp_connect از ارسال ایمیل‌ها توسط مراجع که احراز هویت نشده‌اند جلوگیری می‌کند.
  • acl_smtp_mail درخواست می‌کند که ارسال ایمیل‌ها تنها با احراز هویت انجام شود.

3. استفاده از SPF (Sender Policy Framework) برای جلوگیری از جعل ایمیل‌ها

SPF یک تکنیک است که به شما امکان می‌دهد از طریق رکورد DNS سیاست‌هایی را تنظیم کنید تا اطمینان حاصل شود که فقط سرورهایی که مجاز هستند ایمیل‌ها را ارسال کنند.

تنظیم SPF در Exim:
  1. ایجاد رکورد SPF در DNS:
    v=spf1 a mx ~all
  2. اضافه کردن SPF به تنظیمات Exim:
warn condition = ${if !eq{$sender_host_name}{localhost}{yes}{no}}
        message = Sender IP not allowed by SPF record
        deny

این تنظیمات به Exim می‌گوید که اگر آدرس فرستنده با SPF تأیید نشده باشد، ایمیل‌ها رد شوند.


4. استفاده از DKIM (DomainKeys Identified Mail) برای تأیید هویت ایمیل‌ها

DKIM از کلیدهای خصوصی عمومی برای امضا کردن پیام‌های ارسالی استفاده می‌کند. گیرندگان می‌توانند این امضا را بررسی کنند تا صحت فرستنده را تأیید کنند.

تنظیم DKIM در Exim:
dkim_selector = mail
dkim_private_key = /etc/exim/keys/mail.private
dkim_domain = example.com
dkim_canonicalization = relaxed/simple
dkim_pass = no
  • dkim_selector باید یک مقدار یونیک باشد.
  • dkim_private_key شامل مسیر کلید خصوصی DKIM است.
  • dkim_canonicalization نوع کنونیکال سازی پیام را مشخص می‌کند.

5. استفاده از DMARC برای محافظت از ایمیل‌ها در برابر جعل

DMARC (Domain-based Message Authentication, Reporting, and Conformance) به گیرندگان ایمیل‌ها می‌گوید چگونه باید ایمیل‌های ناموفق SPF و DKIM را مدیریت کنند.

تنظیم DMARC در Exim:
  1. اضافه کردن رکورد DMARC به DNS:
    _dmarc.example.com. IN TXT "v=DMARC1; p=reject; rua=mailto:dmarc@example.com; ruf=mailto:dmarc@example.com"
  2. اضافه کردن DMARC در Exim:
dmarc_action = drop
dmarc_domain = example.com
dmarc_adsp = quarantine

این تنظیمات به Exim می‌گویند که ایمیل‌های جعلی را مسدود کند و به گزارش‌دهی به آدرس خاصی بپردازد.


جمع‌بندی

با استفاده از تنظیمات فوق می‌توانید ارسال ایمیل‌های ناخواسته و اسپم را در Exim محدود کنید. ابزارهایی مانند SPF، DKIM، و DMARC به افزایش امنیت ایمیل و کاهش جعلی بودن کمک می‌کنند. همچنین با تنظیم Rate Limiting و ACLها، از ارسال بی‌رویه ایمیل‌ها جلوگیری کرده و سرور ایمیل را ایمن‌تر کنید.[/cdb_course_lesson][/cdb_course_lessons]

[cdb_course_lessons title=”4. نصب و پیکربندی Roundcube”][cdb_course_lesson title=”آشنایی با Roundcube:”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”Roundcube به‌عنوان یک نرم‌افزار وب‌میل برای دسترسی به ایمیل‌ها” subtitle=”توضیحات کامل”]

آشنایی با Roundcube

Roundcube یک نرم‌افزار وب‌میل است که به عنوان رابط کاربری برای مدیریت ایمیل‌های سرورهای ایمیل مبتنی بر پروتکل IMAP/SMTP استفاده می‌شود. این نرم‌افزار امکاناتی را برای دسترسی به ایمیل‌ها از طریق مرورگر وب فراهم می‌کند و به کاربران این امکان را می‌دهد که ایمیل‌های خود را ارسال، دریافت و مدیریت کنند.


ویژگی‌های Roundcube:

  1. رابط کاربری وب‌محور:
    • Roundcube دارای یک رابط کاربری گرافیکی (GUI) بسیار دوستانه و ساده است که کاربران بدون نیاز به دسترسی مستقیم به محیط سرور می‌توانند ایمیل‌های خود را مدیریت کنند.
    • این رابط کاربری بر اساس فناوری AJAX طراحی شده است که تجربه کاربری بهتری را ارائه می‌دهد.
  2. پشتیبانی از IMAP و SMTP:
    • Roundcube به عنوان یک کلاینت ایمیل مبتنی بر وب، از پروتکل‌های IMAP و SMTP برای اتصال به سرورهای ایمیل استفاده می‌کند.
    • این امکان را به کاربران می‌دهد که ایمیل‌ها را از سرورهای مختلف مدیریت کرده و پاسخ دهند.
  3. مدیریت ایمیل‌ها:
    • Roundcube امکاناتی مانند ارسال، دریافت، حذف و سازماندهی ایمیل‌ها را فراهم می‌کند.
    • امکان مرتب‌سازی ایمیل‌ها با استفاده از فیلترها، برچسب‌ها و دسته‌بندی‌ها برای مدیریت آسان‌تر ایمیل‌ها.
  4. پشتیبانی از فیلترهای ایمیل:
    • کاربران می‌توانند از فیلترهای اسپم، قوانین ایمیل و فیلترهای سفارشی برای مدیریت و جداسازی ایمیل‌های ناخواسته استفاده کنند.
  5. مدیریت آدرس‌های ایمیل و مخاطبین:
    • Roundcube دارای یک دفترچه آدرس داخلی است که امکان مدیریت مخاطبین را فراهم می‌کند.
    • کاربران می‌توانند مخاطبین خود را وارد و مدیریت کرده و ایمیل‌های جدید را به راحتی برای مخاطبین ذخیره کنند.
  6. پشتیبانی از زبان‌های مختلف و بین‌المللی:
    • این نرم‌افزار از تعداد زیادی زبان مختلف پشتیبانی می‌کند و می‌توان آن را به راحتی برای کاربران مختلف تنظیم کرد.
  7. توسعه‌پذیری و پلاگین‌ها:
    • Roundcube به دلیل طراحی ماژولار خود، دارای تعداد زیادی پلاگین است که قابلیت‌های جدیدی را اضافه می‌کنند.
    • می‌توان قابلیت‌هایی مانند جستجوی پیشرفته، نمایش پیشرفته ایمیل‌ها، یا آنتی اسپم‌های پیشرفته را با نصب پلاگین‌های مربوطه فعال کرد.
  8. واکنش‌پذیری و موبایل‌دوستی:
    • Roundcube به‌صورت واکنش‌پذیر طراحی شده است و با دستگاه‌های موبایل و تبلت به خوبی سازگار است.
    • کاربران می‌توانند از طریق مرورگر موبایل به راحتی ایمیل‌های خود را مدیریت کنند.

نصب Roundcube بر روی سیستم‌های لینوکسی:

1. نصب در سیستم‌های مبتنی بر Debian/Ubuntu:
sudo apt update
sudo apt install roundcube roundcube-mysql
2. نصب در سیستم‌های مبتنی بر CentOS/RedHat:
sudo yum install epel-release
sudo yum install roundcube roundcube-mysql
3. پیکربندی Apache یا Nginx:
  • اطمینان حاصل کنید که سرور وب شما (مانند Apache یا Nginx) پورت 80 یا 443 را برای Roundcube باز کرده است.
4. پیکربندی پایگاه داده (MySQL/MariaDB):
  • Roundcube برای ذخیره اطلاعات خود به پایگاه داده نیاز دارد.
mysql -u root -p
CREATE DATABASE roundcube;
GRANT ALL PRIVILEGES ON roundcube.* TO 'roundcube_user'@'localhost' IDENTIFIED BY 'password';

جمع‌بندی:

Roundcube یک نرم‌افزار وب‌میل قدرتمند است که به کاربران امکان مدیریت ایمیل‌های خود را از طریق مرورگر فراهم می‌کند. با پشتیبانی از پروتکل‌های IMAP/SMTP، فیلترهای ایمیل، قابلیت‌های مدیریت مخاطبین و پلاگین‌های توسعه‌پذیر، Roundcube ابزاری مناسب برای دسترسی به ایمیل‌ها از هر نقطه‌ای از دنیا است. همچنین به دلیل رابط کاربری دوستانه و سازگاری با موبایل، می‌تواند گزینه‌ای ایده‌آل برای کاربران باشد.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”ویژگی‌های Roundcube و رابط کاربری آن” subtitle=”توضیحات کامل”]Roundcube یک نرم‌افزار وب‌میل قدرتمند است که ویژگی‌های متنوعی را برای دسترسی به ایمیل‌ها و مدیریت آن‌ها ارائه می‌دهد. این ویژگی‌ها و رابط کاربری آن برای کاربران وب‌میل بهینه‌سازی شده‌اند تا تجربه‌ای کاربرپسند و کارآمد فراهم کنند.


1. رابط کاربری ساده و کاربرپسند:

  • طراحی مدرن و واکنش‌گرا: رابط کاربری Roundcube بر اساس فناوری AJAX طراحی شده است که تجربه کاربری سریع و بدون نیاز به بارگذاری مجدد صفحات فراهم می‌کند.
  • دسترسی ساده و سریع: طراحی بصری Roundcube به گونه‌ای است که کاربران به سرعت می‌توانند به صندوق‌های ورودی، خروجی، و دیگر قسمت‌های ایمیل خود دسترسی پیدا کنند.
  • ناحیه‌های تقسیم‌شده: فضای کاری Roundcube به بخش‌هایی مانند فهرست ایمیل‌ها، مشاهده ایمیل‌ها و پنل مدیریت پاسخ‌ها تقسیم می‌شود که باعث افزایش کارآیی می‌شود.

2. مدیریت ایمیل‌ها با ابزارهای قدرتمند:

  • نمایش ایمیل‌ها به صورت فهرست‌بندی شده: Roundcube به کاربران امکان می‌دهد ایمیل‌ها را به صورت فهرست‌های مرتب‌شده مشاهده کنند، که به یافتن سریع ایمیل‌ها کمک می‌کند.
  • صفحه‌بندی و فیلترها: امکان نمایش ایمیل‌ها با فیلترهای مختلف مانند مرتب‌سازی بر اساس تاریخ، فرستنده و موضوع فراهم است.
  • پیش‌نمایش ایمیل‌ها: کاربران می‌توانند با پیش‌نمایش ایمیل‌ها، بدون باز کردن کامل هر ایمیل، محتوای اولیه را مشاهده کنند.

3. پشتیبانی از پروتکل‌های IMAP/SMTP:

  • مدیریت ایمیل‌ها از سرورهای IMAP: Roundcube به کاربران اجازه می‌دهد ایمیل‌ها را از سرورهای ایمیل مبتنی بر IMAP مدیریت کنند. این ویژگی به کاربران اجازه می‌دهد تا ایمیل‌های خود را بدون نیاز به دانلود در رایانه، مستقیماً از سرور مشاهده کنند.
  • پشتیبانی از ارسال ایمیل از طریق SMTP: امکان ارسال ایمیل‌ها از طریق سرور SMTP فراهم می‌شود.

4. پشتیبانی از فیلترهای ایمیل و قوانین مدیریتی:

  • فیلترهای اسپم: Roundcube با استفاده از فیلترهای داخلی مانند SpamAssassin و ClamAV، ایمیل‌های ناخواسته را شناسایی و حذف می‌کند.
  • قوانین ایمیل: کاربران می‌توانند قوانین مختلفی برای فیلتر کردن و سازمان‌دهی ایمیل‌ها تنظیم کنند. به عنوان مثال، ایمیل‌هایی که از فرستنده‌ای خاص دریافت می‌شوند، به پوشه‌های خاص منتقل شوند.
  • فیلترهای مبتنی بر برچسب: با استفاده از قابلیت “برچسب‌گذاری”، کاربران می‌توانند ایمیل‌های مهم یا سازمان‌دهی شده را علامت‌گذاری کنند.

5. مدیریت مخاطبین و دفترچه آدرس:

  • دفترچه آدرس داخلی: Roundcube شامل یک دفترچه آدرس داخلی است که به کاربران امکان مدیریت مخاطبین، ایجاد لیست‌های تماس و افزودن مخاطبین جدید را می‌دهد.
  • مخاطبین پویا: کاربران می‌توانند مخاطبین را بر اساس گروه‌های مختلف دسته‌بندی کنند و از ویژگی‌های تماس سریع استفاده کنند.

6. پشتیبانی از چند زبان و بین‌المللی‌سازی:

  • پشتیبانی از زبان‌های مختلف: Roundcube از زبان‌های متعدد پشتیبانی می‌کند که امکان استفاده برای کاربران مختلف با زبان‌های متفاوت را فراهم می‌کند.
  • ترجمه‌های انعطاف‌پذیر: کاربران می‌توانند زبان رابط را بر اساس ترجمه‌های موجود یا ترجمه‌های سفارشی تنظیم کنند.

7. ماژولار بودن و پلاگین‌ها:

  • قابلیت نصب پلاگین‌ها: Roundcube ماژولار بوده و دارای تعداد زیادی پلاگین است که امکان افزودن ویژگی‌های جدید مانند جستجوی پیشرفته، تقویم، و تایید دو مرحله‌ای را فراهم می‌کند.
  • افزایش قابلیت‌ها با پلاگین‌ها: کاربران می‌توانند با نصب پلاگین‌های مختلف، تجربه وب‌میل خود را بهبود بخشند.

8. پشتیبانی از موبایل و تبلت:

  • واکنش‌پذیری: Roundcube به‌خوبی با دستگاه‌های مختلف از جمله گوشی‌های هوشمند و تبلت‌ها سازگار است، و تجربه کاربری یکسان و راحتی را برای کاربران موبایل فراهم می‌کند.

جمع‌بندی:

Roundcube با ارائه رابط کاربری ساده و دوستانه، پشتیبانی از پروتکل‌های ایمیل، فیلترهای پیشرفته، قابلیت‌های مدیریت مخاطبین، و ویژگی‌های ماژولار، ابزاری قدرتمند برای دسترسی به ایمیل‌ها از طریق مرورگر وب است. این ویژگی‌ها به کاربران کمک می‌کنند تا تجربه‌ای کارآمد و ایمن در مدیریت ایمیل‌های خود داشته باشند.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”تفاوت Roundcube با سایر نرم‌افزارهای وب‌میل” subtitle=”توضیحات کامل”]Roundcube یکی از پرکاربردترین نرم‌افزارهای وب‌میل منبع باز است که برای مدیریت ایمیل‌ها از طریق مرورگر طراحی شده است. با این حال، نرم‌افزارهای وب‌میل دیگری نیز وجود دارند که ویژگی‌ها و قابلیت‌های مختلفی ارائه می‌دهند. در اینجا به مقایسه تفاوت‌های Roundcube با سایر نرم‌افزارهای وب‌میل مانند SquirrelMail، Horde، و Zimbra می‌پردازیم.


1. Roundcube vs. SquirrelMail:

  • سادگی و زیبایی: Roundcube دارای طراحی مدرن و واکنش‌گراست که تجربه کاربری بهتری را ارائه می‌دهد، در حالی که SquirrelMail ظاهر ساده و ابتدایی دارد.
  • پشتیبانی از زبان‌های مختلف: Roundcube پشتیبانی گسترده‌تری از زبان‌ها و قابلیت ترجمه دارد.
  • قابلیت‌های مدرن: Roundcube از فناوری‌های مدرن مانند AJAX استفاده می‌کند که باعث بهبود عملکرد و تجربه کاربری می‌شود، در حالی که SquirrelMail فاقد این فناوری‌ها است.
  • قابلیت‌های اضافی: Roundcube با داشتن پلاگین‌های متعدد و ماژولار بودن، امکانات بیشتری برای کاربران فراهم می‌کند، در حالی که SquirrelMail از پلاگین‌های محدودی پشتیبانی می‌کند.

2. Roundcube vs. Horde:

  • انعطاف‌پذیری و ماژولار بودن: Roundcube به دلیل استفاده از پلاگین‌ها و ماژول‌های گسترده‌تر، انعطاف‌پذیری بیشتری دارد. Horde نیز ماژولار است، اما Roundcube گسترده‌تر عمل می‌کند.
  • رابط کاربری: Roundcube با رابط کاربری تمیز و مدرن‌تری ارائه می‌شود، در حالی که Horde کمی پیچیده‌تر و قدیمی‌تر به نظر می‌رسد.
  • پشتیبانی از پروتکل‌ها: هر دو از IMAP و SMTP پشتیبانی می‌کنند، اما Roundcube با داشتن طراحی مدرن‌تر و سازگاری بیشتر با دستگاه‌های موبایل، تجربه بهتری را ارائه می‌دهد.
  • امنیت: Roundcube از پروتکل‌های امنیتی پیشرفته‌تری مانند SSL/TLS و تایید دو مرحله‌ای پشتیبانی می‌کند.

3. Roundcube vs. Zimbra:

  • ویژگی‌ها و عملکرد متفاوت: Zimbra بیشتر به‌عنوان یک پلتفرم مدیریت ایمیل و همکاری گسترده (مانند یک کلاینت ایمیل مبتنی بر سرور) شناخته می‌شود که شامل ویژگی‌های اضافی مانند تقویم، مخاطبین، و سرویس‌های همکاری است. Roundcube بیشتر بر روی وب‌میل ساده و کارآمد تمرکز دارد.
  • ساختار سازمانی: Zimbra به‌عنوان یک پلتفرم کامل‌تر برای سازمان‌ها مناسب است، در حالی که Roundcube بیشتر به‌عنوان یک وب‌میل مستقل شناخته می‌شود.
  • قابلیت‌های همکاری: Zimbra امکانات بیشتری مانند تقویم، دفترچه تلفن، و مدیریت وظایف ارائه می‌دهد که در Roundcube کمتر یافت می‌شود.
  • سازگاری و عملکرد: Roundcube سبک‌تر و سریع‌تر از Zimbra است و به منابع کمتری برای اجرا نیاز دارد.

4. Roundcube vs. Open-Xchange (O-X):

  • هدف استفاده: Open-Xchange به‌عنوان یک پلتفرم همکاری جامع‌تر شامل ایمیل، تقویم، مدیریت پروژه، و غیره است، در حالی که Roundcube بیشتر به‌عنوان یک وب‌میل ساده و سبک برای مدیریت ایمیل تمرکز دارد.
  • قابلیت‌های همکاری و سازمانی: Open-Xchange دارای ویژگی‌های مدیریتی پیشرفته‌تر و ابزارهای سازمانی است، اما Roundcube تمرکز بیشتری بر روی ایمیل دارد.
  • سازگاری: Roundcube سازگار با دستگاه‌های مختلف و طراحی واکنش‌گراست، در حالی که Open-Xchange بیشتر به عنوان یک پلتفرم سازمانی متمرکز است.

جمع‌بندی:

Roundcube به عنوان یک نرم‌افزار وب‌میل شناخته شده، طراحی مدرن، عملکرد سریع، و قابلیت‌های ماژولار را ارائه می‌دهد که آن را از نرم‌افزارهای مشابه مانند SquirrelMail، Horde، Zimbra، و Open-Xchange متمایز می‌کند. هر کدام از این نرم‌افزارها ویژگی‌های خاص خود را دارند و در زمینه‌های مختلفی مانند مدیریت ایمیل، همکاری، یا امنیت عملکرد بهتری ارائه می‌دهند. انتخاب نرم‌افزار مناسب بستگی به نیازها و مقیاس استفاده شما دارد.[/cdb_course_lesson][cdb_course_lesson title=”نصب Roundcube:”] [/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” title=”پیش‌نیازهای نصب Roundcube (وب‌سرور، پایگاه داده، PHP)” subtitle=”توضیحات کامل”]برای نصب و راه‌اندازی Roundcube، به چند پیش‌نیاز اصلی نیاز دارید که شامل وب‌سرور، پایگاه داده و محیط PHP است. این پیش‌نیازها را بررسی می‌کنیم:


1. وب‌سرور (Web Server)

Roundcube به یک وب‌سرور نیاز دارد تا بتواند درخواست‌های کاربران را مدیریت کند. از وب‌سرورهای رایج و مناسب برای نصب Roundcube می‌توان به موارد زیر اشاره کرد:

  • Apache: Apache به عنوان یک وب‌سرور قدرتمند و رایج برای نصب Roundcube استفاده می‌شود.
  • Nginx: یک وب‌سرور سبک و پرکاربرد که عملکرد بهتری در بارگذاری صفحات وب دارد.

برای استفاده از هر یک از این وب‌سرورها، باید بسته‌های مربوط به آن‌ها روی سیستم نصب شود.


2. پایگاه داده (Database Server)

Roundcube برای ذخیره‌سازی اطلاعات نیاز به پایگاه داده دارد. پایگاه داده‌هایی که از آن‌ها پشتیبانی می‌کند عبارتند از:

  • MySQL: پرکاربردترین پایگاه داده برای Roundcube است.
  • MariaDB: به عنوان جایگزین MySQL، برای Roundcube قابل استفاده است.
  • PostgreSQL: اگر از PostgreSQL استفاده می‌کنید، می‌توانید آن را نیز برای Roundcube پیکربندی کنید.

پایگاه داده باید از پروتکل‌های MySQL/MariaDB/PostgreSQL پشتیبانی کند و باید از قبل نصب و پیکربندی شود.


3. PHP (زبان برنامه‌نویسی سرور)

Roundcube به زبان PHP نوشته شده است و برای اجرا به محیط PHP نیاز دارد. ورژن‌های PHP که معمولاً با Roundcube سازگار هستند:

  • PHP 7.4 و 8.0: نسخه‌های پایدار PHP که از جدیدترین ویژگی‌ها و عملکرد بهتری برخوردارند.
  • PDO Extension: Roundcube از پایگاه داده‌ها (MySQL/MariaDB/PostgreSQL) استفاده می‌کند و برای این کار به PDO (PHP Data Objects) نیاز دارد.

برای نصب PHP و ماژول‌های ضروری در سیستم‌های مختلف:

  • Ubuntu/Debian:
    sudo apt update
    sudo apt install php php-mysql libapache2-mod-php
  • CentOS/RedHat:
    sudo yum install php php-mysql php-fpm

سپس مطمئن شوید که Apache یا Nginx به درستی پیکربندی شده و از PHP پشتیبانی می‌کند.


4. پلاگین‌ها و ماژول‌های ضروری PHP برای Roundcube

Roundcube برای عملکرد صحیح به تعدادی از ماژول‌های PHP نیاز دارد. این ماژول‌ها شامل:

  • mysqli: برای اتصال به پایگاه داده MySQL.
  • mbstring: برای کار با رشته‌ها و عملیات زبانی.
  • iconv: برای عملیات تبدیل رشته.
  • intl: برای پشتیبانی از زبان‌های بین‌المللی.
  • zip: برای مدیریت فایل‌های فشرده.

ماژول‌های ذکر شده باید فعال باشند و از طریق تنظیمات PHP یا Apache/Nginx پیکربندی شوند.


جمع‌بندی:

برای نصب و پیکربندی Roundcube، به موارد زیر نیاز دارید:

  • وب‌سرور: Apache یا Nginx.
  • پایگاه داده: MySQL/MariaDB یا PostgreSQL.
  • PHP: نسخه‌های 7.4 یا 8.0 با ماژول‌های mysqli, mbstring, iconv, intl, و zip.

پس از نصب این پیش‌نیازها، می‌توانید Roundcube را به درستی نصب و تنظیم کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”نصب Roundcube از طریق مخازن یا کد منبع” subtitle=”توضیحات کامل”]برای نصب Roundcube، دو روش اصلی وجود دارد: نصب از مخازن و نصب از کد منبع. در اینجا به توضیح هر دو روش پرداخته می‌شود.


1. نصب از طریق مخازن (Package Manager)

این روش سریع‌تر و ساده‌تر است و به صورت خودکار اکثر پیش‌نیازها و وابستگی‌ها را نصب می‌کند.

برای سیستم‌های مبتنی بر Ubuntu/Debian:

sudo apt update
sudo apt install roundcube roundcube-plugins apache2 mysql-server php-mysql libapache2-mod-php
  • roundcube: نصب خود Roundcube.
  • roundcube-plugins: نصب پلاگین‌های اضافی Roundcube.
  • apache2: وب‌سرور Apache.
  • mysql-server: پایگاه داده MySQL.
  • php-mysql: ماژول PHP برای MySQL.

برای سیستم‌های مبتنی بر CentOS/RedHat:

sudo yum install epel-release
sudo yum install roundcubemail roundcubemail-plugins mariadb-server php-mysql php-fpm
  • roundcubemail: نصب خود Roundcube.
  • roundcubemail-plugins: نصب پلاگین‌های اضافی Roundcube.
  • mariadb-server: پایگاه داده MariaDB.
  • php-mysql: ماژول PHP برای MySQL.

بعد از نصب، Roundcube به صورت پیش‌فرض با Apache یا Nginx کار خواهد کرد و تنظیمات ابتدایی برای دسترسی به وب‌میل پیکربندی می‌شود.


2. نصب از کد منبع

اگر بخواهید نسخه خاصی از Roundcube را نصب کنید یا امکانات خاصی را سفارشی‌سازی کنید، می‌توانید از روش نصب از کد منبع استفاده کنید.

مراحل نصب از کد منبع:

  1. بارگیری فایل Roundcube:
wget https://github.com/roundcube/roundcubemail/releases/download/1.6.9/roundcubemail-1.6.9.tar.gz
tar -xvzf roundcubemail-1.6.9.tar.gz
cd roundcubemail-1.6.9
  1. ایجاد پایگاه داده MySQL برای Roundcube:
sudo mysql -u root -p

پس از وارد کردن رمزعبور، دستورات زیر را وارد کنید:

CREATE DATABASE roundcube;
GRANT ALL PRIVILEGES ON roundcube.* TO 'roundcube_user'@'localhost' IDENTIFIED BY 'your_password';
FLUSH PRIVILEGES;
  1. ایجاد و تنظیم پیش‌نیازهای PHP:
sudo apt install php php-mysql php-fpm php-cli php-gd php-curl php-mbstring php-xml php-zip
  1. کپی فایل‌های Roundcube به مسیر وب‌سرور:
sudo cp -r roundcubemail /var/www/html/roundcube
sudo chown -R www-data:www-data /var/www/html/roundcube
  1. تنظیم Apache برای Roundcube:
sudo nano /etc/apache2/sites-available/roundcube.conf

سپس کد زیر را اضافه کنید:

<VirtualHost *:80>
    DocumentRoot /var/www/html/roundcube
    ServerName your_domain_or_IP

    <Directory /var/www/html/roundcube/>
        Options FollowSymlinks
        AllowOverride All
        Require all granted
    </Directory>

    <Files match="^.ht">
        Order allow,deny
        Deny from all
    </Files>
</VirtualHost>

سپس:

sudo a2ensite roundcube
sudo systemctl restart apache2
  1. تنظیم Roundcube: پس از نصب و راه‌اندازی، Roundcube را باز کنید و مراحل پیکربندی ابتدایی را طی کنید.

جمع‌بندی:

  • نصب از مخازن: سریع و ساده برای نصب‌های معمولی.
  • نصب از کد منبع: مناسب برای نصب نسخه‌های خاص یا پیکربندی‌های سفارشی.

هر دو روش کار خواهند کرد، بسته به نیاز شما یکی از آن‌ها را انتخاب کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”نصب و پیکربندی Roundcube بر روی سرورهای Apache و Nginx” subtitle=”توضیحات کامل”]در این راهنما مراحل نصب و پیکربندی Roundcube بر روی سرورهای وب Apache و Nginx به‌طور کامل شرح داده می‌شود.


پیش‌نیازها

  1. سیستم‌عامل: Ubuntu/Debian یا CentOS/RHEL
  2. نرم‌افزارهای موردنیاز:
    • وب‌سرور (Apache یا Nginx)
    • PHP و ماژول‌های مرتبط
    • پایگاه داده (MySQL/MariaDB)
    • OpenSSL (برای پشتیبانی از SSL/TLS)
  3. دسترسی root یا کاربری با مجوز sudo

بخش 1: نصب پیش‌نیازها

برای Ubuntu/Debian:

sudo apt update
sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql php-intl php-mbstring php-xml php-gd php-curl unzip

برای CentOS/RHEL:

sudo yum install epel-release
sudo yum install httpd mariadb-server php php-fpm php-mysqlnd php-intl php-mbstring php-xml php-gd php-curl unzip

بخش 2: نصب Roundcube

1. دانلود Roundcube:

wget https://github.com/roundcube/roundcubemail/releases/download/1.6.9/roundcubemail-1.6.9-complete.tar.gz
tar -xvzf roundcubemail-1.6.9-complete.tar.gz
sudo mv roundcubemail-1.6.9 /var/www/roundcube

2. تنظیم مجوزها:

sudo chown -R www-data:www-data /var/www/roundcube
sudo chmod -R 755 /var/www/roundcube

بخش 3: ایجاد پایگاه داده

  1. وارد MySQL شوید:
sudo mysql -u root -p
  1. ایجاد پایگاه داده و کاربر:
CREATE DATABASE roundcube;
GRANT ALL PRIVILEGES ON roundcube.* TO 'roundcube_user'@'localhost' IDENTIFIED BY 'secure_password';
FLUSH PRIVILEGES;
EXIT;
  1. وارد مسیر Roundcube شوید و اسکریپت پایگاه داده را اجرا کنید:
cd /var/www/roundcube/SQL
mysql -u roundcube_user -p roundcube < mysql.initial.sql

بخش 4: تنظیم وب‌سرور

پیکربندی Apache:

  1. ایجاد فایل کانفیگ Apache:
sudo nano /etc/apache2/sites-available/roundcube.conf
  1. محتویات زیر را وارد کنید:
<VirtualHost *:80>
    ServerName your_domain_or_ip
    DocumentRoot /var/www/roundcube

    <Directory /var/www/roundcube/>
        Options FollowSymlinks
        AllowOverride All
        Require all granted
    </Directory>

    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php
    </FilesMatch>

    ErrorLog ${APACHE_LOG_DIR}/roundcube_error.log
    CustomLog ${APACHE_LOG_DIR}/roundcube_access.log combined
</VirtualHost>
  1. فعال‌سازی سایت و ماژول‌های موردنیاز:
sudo a2ensite roundcube
sudo a2enmod rewrite
sudo systemctl restart apache2

پیکربندی Nginx:

  1. ایجاد فایل کانفیگ Nginx:
sudo nano /etc/nginx/conf.d/roundcube.conf
  1. محتویات زیر را وارد کنید:
server {
    listen 80;
    server_name your_domain_or_ip;
    root /var/www/roundcube;

    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php;
    }

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    location ~ /\.ht {
        deny all;
    }

    error_log /var/log/nginx/roundcube_error.log;
    access_log /var/log/nginx/roundcube_access.log;
}
  1. تست و ری‌استارت Nginx:
sudo nginx -t
sudo systemctl restart nginx

بخش 5: تنظیمات اولیه Roundcube

  1. به آدرس http://your_domain_or_ip/installer بروید.
  2. مراحل زیر را دنبال کنید:
    • اطلاعات پایگاه داده را وارد کنید (نام کاربری، رمزعبور و نام پایگاه داده).
    • تنظیمات IMAP و SMTP را بر اساس سرویس‌دهنده ایمیل خود انجام دهید.
  3. پس از تکمیل تنظیمات، فولدر installer را حذف کنید:
sudo rm -rf /var/www/roundcube/installer

بخش 6: فعال‌سازی SSL/TLS

برای Apache:

  1. نصب Certbot:
sudo apt install certbot python3-certbot-apache
  1. دریافت گواهی SSL:
sudo certbot --apache

برای Nginx:

  1. نصب Certbot:
sudo apt install certbot python3-certbot-nginx
  1. دریافت گواهی SSL:
sudo certbot --nginx

جمع‌بندی

  • Apache برای نصب‌های ساده و سازگار مناسب است.
  • Nginx برای سرورهای پربار بهتر عمل می‌کند.
  • پس از نصب و پیکربندی، Roundcube آماده استفاده به‌عنوان وب‌میل است.

[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”پیکربندی اتصال Roundcube به Exim به‌عنوان سرویس ایمیل” subtitle=”توضیحات کامل”]برای استفاده از Roundcube به‌عنوان یک نرم‌افزار وب‌میل و اتصال آن به Exim به‌عنوان سرویس انتقال ایمیل (MTA)، باید تنظیمات مربوط به IMAP و SMTP را به‌درستی انجام دهید. در این راهنما مراحل گام‌به‌گام این پیکربندی توضیح داده شده است.


پیش‌نیازها

  1. نصب Exim: اطمینان حاصل کنید که Exim به‌درستی نصب و پیکربندی شده است و سرویس‌های IMAP و SMTP برای ارسال و دریافت ایمیل فعال هستند.
  2. پیکربندی IMAP: یک سرویس‌دهنده IMAP (مانند Dovecot) برای مدیریت صندوق ورودی ایمیل‌ها نصب و تنظیم شده باشد.
  3. نصب Roundcube: Roundcube باید روی سرور وب نصب و پیکربندی شده باشد.
  4. دسترسی به کاربر root یا کاربری با مجوز sudo برای انجام تغییرات.

مراحل پیکربندی

1. تنظیمات SMTP در Roundcube

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

  1. فایل پیکربندی Roundcube را باز کنید:
    sudo nano /var/www/roundcube/config/config.inc.php
  2. تنظیمات SMTP را به شکل زیر انجام دهید:
    // تنظیمات SMTP
    $config['smtp_server'] = '127.0.0.1'; // یا آدرس IP یا نام دامنه سرور شما
    $config['smtp_port'] = 587; // پورت پیش‌فرض برای SMTP (TLS)
    $config['smtp_user'] = '%u'; // نام کاربری ایمیل
    $config['smtp_pass'] = '%p'; // رمز عبور ایمیل
    $config['smtp_auth_type'] = 'LOGIN'; // نوع احراز هویت
    $config['smtp_conn_options'] = array(
        'ssl' => array(
            'verify_peer' => false,
            'verify_peer_name' => false,
            'allow_self_signed' => true,
        ),
    );
  3. فایل را ذخیره و خارج شوید.

2. تنظیمات IMAP در Roundcube

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

  1. همچنان در فایل config.inc.php:
    // تنظیمات IMAP
    $config['default_host'] = '127.0.0.1'; // یا آدرس IP یا نام دامنه سرور شما
    $config['default_port'] = 143; // پورت پیش‌فرض IMAP
    $config['imap_auth_type'] = null; // استفاده از احراز هویت پیش‌فرض
    $config['imap_conn_options'] = array(
        'ssl' => array(
            'verify_peer' => false,
            'verify_peer_name' => false,
            'allow_self_signed' => true,
        ),
    );
  2. فایل را ذخیره و خارج شوید.

3. فعال‌سازی TLS/SSL برای امنیت

برای ایمن‌سازی ارتباطات SMTP و IMAP، باید SSL/TLS در Exim و سرویس‌دهنده IMAP (مانند Dovecot) فعال باشد.

تنظیمات SSL/TLS در Exim:
  1. فایل تنظیمات Exim را ویرایش کنید:
    sudo nano /etc/exim4/exim4.conf.template
  2. مطمئن شوید که پیکربندی زیر برای TLS فعال است:
    tls_advertise_hosts = *
    tls_certificate = /etc/ssl/certs/exim.crt
    tls_privatekey = /etc/ssl/private/exim.key
  3. Exim را ری‌استارت کنید:
    sudo systemctl restart exim4
تنظیمات SSL/TLS در Dovecot (برای IMAP):
  1. فایل تنظیمات Dovecot را ویرایش کنید:
    sudo nano /etc/dovecot/conf.d/10-ssl.conf
  2. پیکربندی زیر را اضافه یا تنظیم کنید:
    ssl = required
    ssl_cert = </etc/ssl/certs/dovecot.pem
    ssl_key = </etc/ssl/private/dovecot.key
  3. سرویس Dovecot را ری‌استارت کنید:
    sudo systemctl restart dovecot

4. تست ارتباط Roundcube با Exim

  1. وارد Roundcube شوید:
    به آدرس http://your_domain_or_ip بروید و با یک حساب کاربری ایمیل وارد شوید.
  2. ارسال ایمیل:
    • یک ایمیل آزمایشی ارسال کنید و بررسی کنید که از طریق Exim ارسال شده است.
  3. دریافت ایمیل:
    • دریافت ایمیل را تست کنید تا مطمئن شوید که IMAP به‌درستی کار می‌کند.

جمع‌بندی

با این تنظیمات، Roundcube به Exim متصل شده و امکان ارسال و دریافت ایمیل به‌صورت ایمن فراهم می‌شود.

  • SMTP برای ارسال ایمیل‌ها از Exim استفاده می‌کند.
  • IMAP برای مدیریت و دریافت ایمیل‌ها از سرویس‌دهنده IMAP (مانند Dovecot) استفاده می‌شود.
    با پیکربندی صحیح SSL/TLS، امنیت ارتباطات تضمین شده و کاربران به یک محیط امن دسترسی خواهند داشت.

[/cdb_course_lesson][cdb_course_lesson title=”پیکربندی Roundcube برای ارسال و دریافت ایمیل‌ها:”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”تنظیمات اتصال به SMTP و IMAP سرور” subtitle=”توضیحات کامل”]اتصال به سرورهای SMTP و IMAP برای ارسال و دریافت ایمیل‌ها، یکی از مراحل کلیدی در پیکربندی سرویس‌دهندگان ایمیل است. در ادامه نحوه تنظیمات این دو پروتکل در نرم‌افزارهایی مانند Roundcube، Outlook یا Thunderbird توضیح داده شده است.


1. پیکربندی SMTP سرور

SMTP (Simple Mail Transfer Protocol) برای ارسال ایمیل استفاده می‌شود. برای اتصال به سرور SMTP، باید اطلاعات زیر تنظیم شود:

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

  • آدرس سرور SMTP: آدرس IP یا نام دامنه سرور SMTP (مثلاً mail.example.com)
  • پورت SMTP:
    • 587: برای ارسال ایمیل با TLS (پیشنهادی)
    • 465: برای ارسال ایمیل با SSL
    • 25: برای ارسال بدون رمزنگاری (اغلب مسدود است)
  • احراز هویت SMTP: فعال (برای ارسال ایمیل از طریق سرور)
  • نام کاربری و رمز عبور: اطلاعات کاربری برای احراز هویت

نمونه تنظیمات SMTP:

SMTP Server: smtp.example.com
SMTP Port: 587
Encryption: STARTTLS
Username: your-email@example.com
Password: your-email-password

2. پیکربندی IMAP سرور

IMAP (Internet Message Access Protocol) برای دریافت و مدیریت ایمیل‌ها از سرور استفاده می‌شود. این پروتکل به کاربران امکان می‌دهد ایمیل‌های خود را مستقیماً از سرور مشاهده و مدیریت کنند.

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

  • آدرس سرور IMAP: آدرس IP یا نام دامنه سرور IMAP (مثلاً imap.example.com)
  • پورت IMAP:
    • 143: برای IMAP با STARTTLS
    • 993: برای IMAP با SSL/TLS (پیشنهادی)
  • نام کاربری و رمز عبور: اطلاعات کاربری برای دسترسی به ایمیل‌ها

نمونه تنظیمات IMAP:

IMAP Server: imap.example.com
IMAP Port: 993
Encryption: SSL/TLS
Username: your-email@example.com
Password: your-email-password

3. پیکربندی نرم‌افزار یا سرویس وب‌میل

در نرم‌افزارهای ایمیل (مانند Outlook یا Thunderbird):

  1. اضافه کردن حساب ایمیل:
    • وارد تنظیمات حساب شوید و گزینه “اضافه کردن حساب” را انتخاب کنید.
  2. وارد کردن اطلاعات سرور:
    • در بخش Incoming Server (IMAP) و Outgoing Server (SMTP) اطلاعات مربوط به سرور، پورت و نوع رمزنگاری را وارد کنید.
  3. ذخیره تنظیمات و آزمایش اتصال:
    • تنظیمات را ذخیره کنید و از عملکرد صحیح ارسال و دریافت ایمیل اطمینان حاصل کنید.

در نرم‌افزار وب‌میل (مانند Roundcube):

  1. فایل تنظیمات config.inc.php را باز کنید:
    sudo nano /var/www/roundcube/config/config.inc.php
  2. تنظیمات IMAP:
    $config['default_host'] = 'imap.example.com';
    $config['default_port'] = 993;
    $config['imap_conn_options'] = array(
        'ssl' => array(
            'verify_peer' => false,
            'verify_peer_name' => false,
            'allow_self_signed' => true,
        ),
    );
  3. تنظیمات SMTP:
    $config['smtp_server'] = 'smtp.example.com';
    $config['smtp_port'] = 587;
    $config['smtp_user'] = '%u';
    $config['smtp_pass'] = '%p';
    $config['smtp_auth_type'] = 'LOGIN';
    $config['smtp_conn_options'] = array(
        'ssl' => array(
            'verify_peer' => false,
            'verify_peer_name' => false,
            'allow_self_signed' => true,
        ),
    );
  4. ذخیره تنظیمات و آزمایش اتصال از طریق Roundcube.

4. مشکلات رایج و راه‌حل‌ها

مشکل 1: ارسال یا دریافت ایمیل انجام نمی‌شود

  • بررسی کنید که پورت‌های مورد استفاده (مانند 587 و 993) در فایروال سرور باز باشند.
  • اطمینان حاصل کنید که تنظیمات رمزنگاری (SSL/TLS) با سرور همخوانی دارد.

مشکل 2: خطای احراز هویت

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

مشکل 3: خطای گواهینامه SSL

  • اگر از گواهینامه خودامضا استفاده می‌کنید، گزینه allow_self_signed را در تنظیمات فعال کنید.

جمع‌بندی

با تنظیم صحیح سرورهای SMTP و IMAP، کاربران می‌توانند به‌راحتی ایمیل‌های خود را ارسال و دریافت کنند. رعایت نکات امنیتی مانند استفاده از رمزنگاری SSL/TLS و فعال‌سازی احراز هویت برای جلوگیری از دسترسی غیرمجاز و حملات ضروری است.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”پیکربندی تنظیمات امنیتی Roundcube (SSL/TLS)” subtitle=”توضیحات کامل”]برای ایمن‌سازی ارتباطات میان کلاینت وب Roundcube و سرورهای ایمیل (SMTP/IMAP)، می‌توان از رمزنگاری SSL/TLS استفاده کرد. این پیکربندی شامل فعال‌سازی ارتباطات امن برای ارسال و دریافت ایمیل‌ها و اطمینان از امنیت اطلاعات تبادل‌شده می‌شود.


1. پیش‌نیازها

پیش از پیکربندی Roundcube برای استفاده از SSL/TLS:

  1. گواهینامه SSL/TLS باید بر روی سرور وب و سرور ایمیل نصب شده باشد.
  2. سرورهای SMTP و IMAP باید برای پشتیبانی از ارتباطات امن تنظیم شده باشند.
  3. فایل تنظیمات Roundcube باید قابل ویرایش باشد.

2. فعال‌سازی SSL/TLS در Roundcube

ویرایش فایل پیکربندی

فایل تنظیمات اصلی Roundcube معمولاً در مسیر زیر قرار دارد:

sudo nano /var/www/roundcube/config/config.inc.php

تنظیمات IMAP با SSL/TLS

برای ایمن‌سازی ارتباطات IMAP:

$config['default_host'] = 'ssl://imap.example.com'; // استفاده از SSL
$config['default_port'] = 993; // پورت IMAP برای SSL/TLS

$config['imap_conn_options'] = array(
    'ssl' => array(
        'verify_peer' => true,          // بررسی گواهینامه
        'verify_peer_name' => true,    // بررسی نام دامنه
        'allow_self_signed' => false,  // جلوگیری از استفاده از گواهینامه خودامضا
    ),
);

تنظیمات SMTP با SSL/TLS

برای ایمن‌سازی ارتباطات SMTP:

$config['smtp_server'] = 'tls://smtp.example.com'; // استفاده از TLS
$config['smtp_port'] = 587; // پورت SMTP برای TLS
$config['smtp_user'] = '%u'; // نام کاربری ایمیل
$config['smtp_pass'] = '%p'; // رمز عبور ایمیل

$config['smtp_conn_options'] = array(
    'ssl' => array(
        'verify_peer' => true,          // بررسی گواهینامه
        'verify_peer_name' => true,    // بررسی نام دامنه
        'allow_self_signed' => false,  // جلوگیری از استفاده از گواهینامه خودامضا
    ),
);

3. فعال‌سازی HTTPS برای دسترسی به Roundcube

برای اطمینان از امنیت ارتباطات بین مرورگر کاربر و Roundcube:

  1. گواهینامه SSL/TLS را روی سرور وب (Apache یا Nginx) نصب کنید.
  2. سرور را طوری پیکربندی کنید که فقط از HTTPS استفاده کند.

نمونه تنظیمات در Apache:

فایل تنظیمات سایت در Apache را ویرایش کنید:

sudo nano /etc/apache2/sites-available/roundcube.conf

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

<VirtualHost *:443>
    ServerName mail.example.com
    DocumentRoot /var/www/roundcube

    SSLEngine On
    SSLCertificateFile /etc/ssl/certs/example.crt
    SSLCertificateKeyFile /etc/ssl/private/example.key
    SSLCertificateChainFile /etc/ssl/certs/example-chain.crt

    <Directory /var/www/roundcube>
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

فعال‌سازی تغییر مسیر از HTTP به HTTPS:

در تنظیمات Apache:

<VirtualHost *:80>
    ServerName mail.example.com
    Redirect permanent / https://mail.example.com/
</VirtualHost>

4. بررسی و آزمایش تنظیمات

  1. مرورگر را باز کنید و به آدرس Roundcube با HTTPS مراجعه کنید (مانند: https://mail.example.com).
  2. وارد حساب کاربری شوید و ارسال/دریافت ایمیل را آزمایش کنید.
  3. از ابزارهای آنلاین یا دستورات زیر برای بررسی گواهینامه SSL/TLS استفاده کنید:
    openssl s_client -connect mail.example.com:993
    openssl s_client -connect mail.example.com:587

5. مشکلات رایج و راه‌حل‌ها

خطای گواهینامه خودامضا:

  • گواهینامه معتبر را از یک مرجع گواهینامه (CA) دریافت کنید یا گزینه allow_self_signed را در تنظیمات موقتاً فعال کنید.

عدم اتصال به سرور SMTP یا IMAP:

  • پورت‌ها و دسترسی‌ها را در فایروال بررسی کنید.
  • اطمینان حاصل کنید که سرویس‌های SMTP و IMAP به درستی پیکربندی شده‌اند.

خطای “Certificate Verification Failed”:

  • گزینه‌های verify_peer و verify_peer_name را بررسی کنید و از همخوانی نام دامنه با گواهینامه مطمئن شوید.

جمع‌بندی

با فعال‌سازی SSL/TLS برای Roundcube، ارتباطات میان کاربران و سرور ایمیل ایمن شده و از خطرات امنیتی نظیر سرقت اطلاعات جلوگیری می‌شود. تنظیم دقیق پیکربندی‌ها و استفاده از گواهینامه‌های معتبر، تضمین‌کننده ارتباطات امن خواهد بود.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”مدیریت صندوق‌های ورودی و ارسال ایمیل‌ها از طریق Roundcube” subtitle=”توضیحات کامل”]Roundcube یک نرم‌افزار وب‌میل قدرتمند است که با رابط کاربری کاربرپسند خود، به کاربران امکان مدیریت ایمیل‌ها را می‌دهد. این نرم‌افزار امکاناتی متنوع برای مدیریت صندوق‌های ورودی و ارسال ایمیل‌ها فراهم می‌کند. در ادامه به نحوه استفاده از این امکانات پرداخته می‌شود:


1. ورود به Roundcube

برای دسترسی به Roundcube:

  1. آدرس وب Roundcube (مانند https://mail.example.com) را در مرورگر باز کنید.
  2. نام کاربری (آدرس ایمیل) و رمز عبور خود را وارد کنید.
  3. وارد داشبورد اصلی شوید.

2. مدیریت صندوق ورودی

مشاهده و مرتب‌سازی ایمیل‌ها:

  • ایمیل‌های جدید به طور پیش‌فرض در صندوق ورودی نمایش داده می‌شوند.
  • برای مرتب‌سازی ایمیل‌ها می‌توانید از فیلترهای بالای جدول استفاده کنید:
    • مرتب‌سازی بر اساس تاریخ، فرستنده، موضوع یا اندازه.
    • جستجوی ایمیل‌ها با استفاده از نوار جستجو.

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

  • ایجاد پوشه‌های جدید:
    1. به تنظیمات بروید.
    2. در بخش Folders یک پوشه جدید ایجاد کنید.
  • جابجایی ایمیل‌ها:
    • ایمیل‌ها را انتخاب کنید و به پوشه موردنظر بکشید و رها کنید.
  • علامت‌گذاری ایمیل‌ها:
    • ایمیل‌ها را به‌عنوان خوانده‌شده/خوانده‌نشده یا مهم علامت‌گذاری کنید.

حذف یا بایگانی ایمیل‌ها:

  • برای حذف یک ایمیل، روی دکمه Delete کلیک کنید یا کلید Del را بزنید.
  • برای بایگانی، ایمیل‌ها را انتخاب کرده و به پوشه بایگانی منتقل کنید.

3. ارسال ایمیل‌ها

ایجاد ایمیل جدید:

  1. روی دکمه Compose کلیک کنید.
  2. فیلدهای زیر را پر کنید:
    • To: آدرس گیرنده یا گیرندگان.
    • Cc/Bcc: آدرس‌های کپی یا کپی مخفی.
    • Subject: عنوان ایمیل.
    • Body: محتوای اصلی ایمیل.
  3. پیوست کردن فایل‌ها:
    • روی دکمه Attach a file کلیک کنید و فایل موردنظر را انتخاب کنید.

قالب‌بندی متن ایمیل:

  • از ابزارهای قالب‌بندی (Bold, Italic, Underline) در ویرایشگر استفاده کنید.
  • لیست‌ها، لینک‌ها، و تصاویر را به ایمیل خود اضافه کنید.

ارسال ایمیل:

  • پس از تکمیل، روی دکمه Send کلیک کنید.

4. مدیریت ارسال‌ها و پیش‌نویس‌ها

  • صندوق ارسال‌شده (Sent):
    • تمام ایمیل‌های ارسال‌شده در این پوشه ذخیره می‌شوند.
  • پیش‌نویس‌ها (Drafts):
    • ایمیل‌های نیمه‌کاره به‌طور خودکار یا دستی در این پوشه ذخیره می‌شوند.

5. جستجو در ایمیل‌ها

Roundcube ابزار جستجوی پیشرفته‌ای دارد:

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

6. مدیریت ایمیل‌های اسپم

  • بررسی پوشه Spam:
    • ایمیل‌هایی که توسط سیستم یا قوانین فیلترینگ مشکوک به اسپم هستند در این پوشه قرار می‌گیرند.
  • گزارش اسپم:
    • ایمیل‌ها را انتخاب کرده و روی گزینه Mark as Spam کلیک کنید.
  • بازگردانی ایمیل‌های اشتباهی:
    • ایمیل‌ها را به پوشه Inbox منتقل کنید.

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

اگر Roundcube به Vacation Message یا Autoresponder متصل باشد:

  1. به تنظیمات بروید.
  2. گزینه Autoresponder را فعال کنید.
  3. پیام پاسخ خودکار را تنظیم کنید.

8. پیکربندی امضا برای ایمیل‌ها

  1. به Settings > Identities بروید.
  2. نام کاربری و امضای دلخواه را وارد کنید.
  3. امضای متنی یا HTML بسازید.

جمع‌بندی

Roundcube ابزارهایی جامع و ساده برای مدیریت ایمیل‌ها ارائه می‌دهد. از مشاهده و مرتب‌سازی صندوق ورودی گرفته تا ارسال و مدیریت ایمیل‌ها، همه امکانات با رابط کاربری مدرن و امن قابل‌دسترس است. با استفاده از این قابلیت‌ها، می‌توانید تجربه‌ای حرفه‌ای از مدیریت ایمیل داشته باشید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”پیکربندی ویژگی‌های Filter Rules و Vacation Messages در Roundcube” subtitle=”توضیحات کامل”]Roundcube امکانات متنوعی مانند ایجاد قوانین فیلتر (Filter Rules) برای مدیریت خودکار ایمیل‌ها و پیام‌های پاسخ خودکار (Vacation Messages) را ارائه می‌دهد. این قابلیت‌ها به کاربران کمک می‌کند ایمیل‌های خود را بهینه‌تر مدیریت کنند و در زمان غیبت به صورت خودکار به ایمیل‌ها پاسخ دهند.


1. پیکربندی Filter Rules

قوانین فیلتر به شما امکان می‌دهند ایمیل‌ها را به صورت خودکار مرتب کنید، به پوشه‌های مشخص منتقل کنید، یا آن‌ها را بر اساس معیارهای خاص حذف کنید.

مراحل تنظیم Filter Rules:

  1. وارد Roundcube شوید.
  2. از منوی بالا به Settings بروید.
  3. در بخش Filters:
    • اگر بخش Filters وجود نداشت، مدیر سرور باید افزونه ManageSieve را فعال کند.
  4. یک Filter Set جدید ایجاد کنید:
    • بر روی دکمه Create کلیک کنید و یک نام برای مجموعه قوانین خود تعیین کنید.
  5. قوانین جدید اضافه کنید:
    • بر روی Add Rule کلیک کنید و معیارهای زیر را تنظیم کنید:
      • Criteria: مانند From, To, Subject, یا Header Fields.
      • Condition: شامل contains, does not contain, equals, یا matches regex.
      • Action: مانند Move to Folder, Delete Message, یا Mark as Read.
  6. قانون را ذخیره کنید:
    • روی Save کلیک کنید تا قانون فعال شود.

مثال‌های کاربردی:

  • انتقال ایمیل‌ها از یک فرستنده خاص به پوشه مشخص:
  • حذف ایمیل‌هایی که در عنوان آن‌ها کلمه “Spam” وجود دارد:
    • Criteria: Subject | contains | Spam
    • Action: Delete Message

2. پیکربندی Vacation Messages (پیام‌های پاسخ خودکار)

Vacation Messages برای ارسال پاسخ خودکار به ایمیل‌ها در زمان عدم حضور یا تعطیلات طراحی شده‌اند. این ویژگی معمولاً از طریق ManageSieve یا یک سرویس‌دهنده پشتیبانی می‌شود.

مراحل تنظیم Vacation Messages:

  1. وارد Roundcube شوید.
  2. به Settings > Filters بروید.
  3. یک Filter Set جدید با نامی مانند “Vacation” ایجاد کنید.
  4. گزینه Add Rule را انتخاب کنید.
  5. تنظیمات پیام پاسخ خودکار را انجام دهید:
    • Criteria: معمولاً All Messages.
    • Action: انتخاب Reply with message.
    • وارد کردن موارد زیر:
      • Subject: موضوع پیام پاسخ خودکار (مانند “من در تعطیلات هستم”).
      • Body: متن پیام پاسخ خودکار.
      • Additional Headers: مانند From یا Reply-To، در صورت نیاز.
  6. ذخیره تغییرات:
    • روی Save کلیک کنید و قوانین را فعال کنید.

نکات مهم:

  • مدیریت تکرار پاسخ: برخی سیستم‌ها امکان تنظیم زمان ارسال پاسخ خودکار برای هر فرستنده (مانند یک بار در روز) را ارائه می‌دهند.
  • فعال‌سازی و غیرفعال‌سازی: پیام‌های پاسخ خودکار را تنها در زمان نیاز فعال کنید تا از ارسال غیرضروری جلوگیری شود.

3. فعال‌سازی ManageSieve برای Roundcube

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

مراحل برای مدیر سرور:

  1. نصب ManageSieve:
    • بر روی سرور ایمیل (مانند Dovecot)، اطمینان حاصل کنید که افزونه ManageSieve نصب شده است.
    • در Dovecot:
      apt install dovecot-managesieved
  2. پیکربندی Dovecot برای Sieve:
    • فایل پیکربندی Dovecot را باز کنید:
      nano /etc/dovecot/conf.d/90-sieve.conf
    • موارد زیر را اضافه کنید:
      plugin {
          sieve = ~/.dovecot.sieve
          sieve_dir = ~/sieve
      }
    • سرویس را راه‌اندازی مجدد کنید:
      systemctl restart dovecot
  3. فعال‌سازی در Roundcube:
    • به فایل پیکربندی Roundcube (معمولاً /etc/roundcube/config.inc.php) بروید.
    • افزونه managesieve را فعال کنید:
      $config['plugins'] = array('managesieve');
    • URL مربوط به ManageSieve را مشخص کنید:
      $config['managesieve_host'] = 'localhost';

جمع‌بندی

Filter Rules و Vacation Messages از قابلیت‌های قدرتمند Roundcube برای مدیریت خودکار ایمیل‌ها هستند. این ابزارها می‌توانند ایمیل‌های ورودی را بر اساس نیازهای خاص کاربر مرتب کرده و در مواقع غیبت، پاسخ‌های خودکار ارسال کنند. با پیکربندی صحیح این ویژگی‌ها و استفاده از ManageSieve، می‌توانید کنترل کاملی بر ایمیل‌های خود داشته باشید و تجربه بهتری از استفاده از Roundcube کسب کنید.[/cdb_course_lesson][/cdb_course_lessons]

[cdb_course_lessons title=”5. ادغام Exim با Roundcube”][cdb_course_lesson title=”پیکربندی Exim برای کار با Roundcube:”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”تنظیمات Exim برای ارسال و دریافت ایمیل‌ها از طریق Roundcube” subtitle=”توضیحات کامل”]

برای تنظیم Exim به‌عنوان سرویس ایمیل برای ارسال و دریافت ایمیل‌ها از طریق Roundcube، نیاز است که ارتباط صحیح بین Exim و Roundcube از طریق پروتکل‌های SMTP و IMAP برقرار شود. در این راهنما مراحل تنظیمات توضیح داده شده است.


1. پیش‌نیازها

قبل از شروع تنظیمات:

  • Exim به‌عنوان سرویس MTA باید روی سرور نصب و پیکربندی شده باشد.
  • Roundcube باید روی وب‌سرور (Apache یا Nginx) با اتصال صحیح به پایگاه داده نصب شده باشد.
  • سرویس IMAP (مانند Dovecot) برای دریافت ایمیل‌ها باید فعال و پیکربندی شده باشد.
  • سرویس‌های SSL/TLS برای ایمن‌سازی ارتباطات تنظیم شده باشند.

2. پیکربندی SMTP برای ارسال ایمیل‌ها

Roundcube از SMTP برای ارسال ایمیل‌ها استفاده می‌کند. باید Exim را برای پذیرش و پردازش درخواست‌های SMTP تنظیم کنید.

تنظیم Exim برای SMTP:

  1. فایل پیکربندی Exim را باز کنید:
    nano /etc/exim4/exim4.conf.template
  2. بخش مربوط به پذیرش اتصالات SMTP را پیدا کرده و مطمئن شوید که Exim برای ارتباط از آدرس‌های لوکال (localhost) پیکربندی شده است:
    hostlist relay_from_hosts = 127.0.0.1 : ::1
  3. پشتیبانی از TLS را فعال کنید:
    • مسیر گواهی SSL/TLS را مشخص کنید:
      tls_certificate = /etc/ssl/certs/exim.crt
      tls_privatekey = /etc/ssl/private/exim.key
    • سرویس را مجدداً راه‌اندازی کنید:
      systemctl restart exim4

تنظیم Roundcube برای SMTP:

  1. فایل تنظیمات Roundcube را باز کنید:
    nano /etc/roundcube/config.inc.php
  2. بخش مربوط به SMTP را به‌روزرسانی کنید:
    $config['smtp_server'] = 'tls://127.0.0.1'; // یا 'ssl://127.0.0.1' برای SSL
    $config['smtp_port'] = 587; // پورت استاندارد برای TLS
    $config['smtp_user'] = '%u'; // استفاده از نام کاربری ایمیل
    $config['smtp_pass'] = '%p'; // استفاده از رمز عبور ایمیل
    $config['smtp_auth_type'] = 'LOGIN'; // یا 'PLAIN' یا 'CRAM-MD5' در صورت نیاز
  3. تغییرات را ذخیره کنید و سرویس وب‌سرور را مجدداً راه‌اندازی کنید:
    systemctl restart apache2  # یا nginx

3. پیکربندی IMAP برای دریافت ایمیل‌ها

Roundcube برای دریافت ایمیل‌ها از IMAP استفاده می‌کند. مطمئن شوید که سرویس IMAP (مانند Dovecot) به‌درستی پیکربندی شده و با Exim هماهنگ است.

تنظیم IMAP در Dovecot:

  1. فایل پیکربندی Dovecot را باز کنید:
    nano /etc/dovecot/dovecot.conf
  2. اطمینان حاصل کنید که IMAP فعال است:
    protocols = imap
  3. مسیر صندوق‌های پستی را مشخص کنید:
    mail_location = maildir:/var/mail/%u
  4. پشتیبانی از SSL/TLS را اضافه کنید:
    ssl_cert = </etc/ssl/certs/dovecot.crt
    ssl_key = </etc/ssl/private/dovecot.key
  5. سرویس Dovecot را راه‌اندازی مجدد کنید:
    systemctl restart dovecot

تنظیم Roundcube برای IMAP:

  1. در فایل config.inc.php Roundcube، بخش IMAP را به‌روزرسانی کنید:
    $config['default_host'] = 'tls://127.0.0.1'; // یا 'ssl://127.0.0.1' برای SSL
    $config['default_port'] = 993; // پورت استاندارد برای IMAP با TLS
    $config['imap_auth_type'] = 'LOGIN'; // یا روش دیگر
    $config['imap_cache'] = 'db';
  2. تغییرات را ذخیره کنید و سرویس وب‌سرور را راه‌اندازی مجدد کنید.

4. پیکربندی امنیتی

برای جلوگیری از سوءاستفاده از سرور ایمیل:

  • از احراز هویت اجباری (SMTP Authentication) برای ارسال ایمیل‌ها استفاده کنید.
  • پیکربندی Access Control Lists (ACLs) در Exim را بررسی کنید.
  • از فیلترهای امنیتی مانند SpamAssassin و ClamAV برای محافظت در برابر اسپم و بدافزارها استفاده کنید.

5. تست و عیب‌یابی

پس از انجام تنظیمات، ارسال و دریافت ایمیل‌ها را آزمایش کنید:

  1. از طریق Roundcube یک ایمیل ارسال کنید و وضعیت SMTP را بررسی کنید.
  2. با یک کلاینت دیگر (مانند Thunderbird یا Outlook) یک ایمیل به Roundcube ارسال کنید و مطمئن شوید که دریافت می‌شود.
  3. لاگ‌های Exim و Dovecot را بررسی کنید:
    tail -f /var/log/exim4/mainlog
    tail -f /var/log/mail.log

جمع‌بندی

با تنظیم صحیح Exim و Roundcube، کاربران می‌توانند از طریق رابط کاربری Roundcube ایمیل‌های خود را ارسال و دریافت کنند. تنظیمات SMTP و IMAP با استفاده از SSL/TLS امنیت ارتباطات را تضمین می‌کند. همچنین، پیکربندی ویژگی‌های امنیتی مانند احراز هویت و محدودسازی دسترسی، از سوءاستفاده احتمالی جلوگیری خواهد کرد.

[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”پیکربندی Roundcube برای استفاده از پروتکل IMAP و SMTP” subtitle=”توضیحات کامل”]برای پیکربندی Roundcube به‌گونه‌ای که بتواند از پروتکل‌های IMAP برای دریافت و SMTP برای ارسال ایمیل استفاده کند، نیاز به تنظیم دقیق فایل پیکربندی اصلی Roundcube دارید. در این بخش، مراحل کامل پیکربندی توضیح داده شده است.


1. پیش‌نیازها

  • Roundcube باید نصب شده باشد.
  • سرویس IMAP (مانند Dovecot) برای دریافت ایمیل‌ها در حال اجرا باشد.
  • سرویس SMTP (مانند Exim یا Postfix) برای ارسال ایمیل‌ها در حال اجرا باشد.
  • اتصال سرورها به شبکه و تنظیم گواهی‌های SSL/TLS برای ارتباطات ایمن برقرار باشد.

2. ویرایش فایل تنظیمات Roundcube

فایل اصلی تنظیمات Roundcube معمولاً در مسیر زیر قرار دارد:

/etc/roundcube/config.inc.php

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

nano /etc/roundcube/config.inc.php

3. پیکربندی پروتکل IMAP

تنظیمات مربوط به IMAP برای دریافت ایمیل‌ها:

// آدرس و پورت سرور IMAP

$config['default_host'] = 'tls://127.0.0.1'; // یا آدرس سرور
$config['default_port'] = 993; // پورت استاندارد IMAP با TLS

// نوع احراز هویت برای IMAP
$config['imap_auth_type'] = 'LOGIN';

// کش کردن ایمیل‌ها برای بهبود عملکرد
$config['imap_cache'] = 'db';

// زمان انتظار برای پاسخگویی سرور IMAP
$config['imap_timeout'] = 120;

4. پیکربندی پروتکل SMTP

تنظیمات مربوط به SMTP برای ارسال ایمیل‌ها:

// آدرس و پورت سرور SMTP

$config['smtp_server'] = 'tls://127.0.0.1'; // یا آدرس سرور
$config['smtp_port'] = 587; // پورت استاندارد SMTP با TLS

// اطلاعات کاربری برای احراز هویت SMTP
$config['smtp_user'] = '%u'; // استفاده از نام کاربری ایمیل
$config['smtp_pass'] = '%p'; // استفاده از رمز عبور ایمیل

// نوع احراز هویت SMTP
$config['smtp_auth_type'] = 'LOGIN'; // یا 'PLAIN' یا 'CRAM-MD5'

// فعال کردن رمزنگاری TLS
$config['smtp_conn_options'] = array(
  'ssl' => array(
    'verify_peer' => true,
    'verify_peer_name' => true,
    'allow_self_signed' => false,
  ),
);

5. تنظیمات اضافه امنیتی

جلوگیری از مشکلات امنیتی:

  1. مطمئن شوید گواهی‌های SSL/TLS روی سرور SMTP و IMAP تنظیم شده است.
  2. گزینه‌های زیر را اضافه کنید تا ارتباطات ایمن شوند:
    // الزام استفاده از SSL/TLS
    $config['force_https'] = true;
    
    // محدود کردن دامنه‌های مجاز برای ارسال ایمیل
    $config['smtp_domain'] = 'example.com'; // دامنه اصلی ایمیل

6. آزمایش تنظیمات

پس از ذخیره تنظیمات، سرویس وب‌سرور خود را مجدداً راه‌اندازی کنید:

systemctl restart apache2  # یا nginx

آزمایش در Roundcube:

  1. وارد Roundcube شوید.
  2. یک ایمیل ارسال کنید و اطمینان حاصل کنید که ارتباط SMTP برقرار است.
  3. صندوق ورودی خود را بررسی کنید و مطمئن شوید که دریافت ایمیل از طریق IMAP کار می‌کند.

7. بررسی لاگ‌ها

اگر مشکلی در ارسال یا دریافت ایمیل وجود دارد، لاگ‌های مربوط به Roundcube، SMTP و IMAP را بررسی کنید:

# لاگ Roundcube
tail -f /var/log/roundcube/errors.log

# لاگ Exim (SMTP)
tail -f /var/log/exim4/mainlog

# لاگ Dovecot (IMAP)
tail -f /var/log/mail.log

جمع‌بندی

پیکربندی Roundcube برای استفاده از پروتکل‌های IMAP و SMTP به شما امکان می‌دهد تا از طریق این رابط وب، ایمیل‌ها را ارسال و دریافت کنید. با استفاده از گواهی‌های SSL/TLS و روش‌های احراز هویت امن، امنیت ارتباطات تضمین می‌شود. در صورت بروز هرگونه خطا، بررسی دقیق لاگ‌ها به شما در عیب‌یابی کمک خواهد کرد.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”تنظیمات Mail Delivery Agent (MDA) در Exim برای ذخیره‌سازی ایمیل‌ها” subtitle=”توضیحات کامل”]Mail Delivery Agent (MDA) وظیفه دریافت ایمیل‌ها از Mail Transfer Agent (MTA) و ذخیره‌سازی آن‌ها در مقصد نهایی (مانند فایل‌ها، پوشه‌ها یا صندوق‌های ایمیل) را بر عهده دارد. Exim به دلیل انعطاف‌پذیری بالای خود، تنظیمات گسترده‌ای برای MDA ارائه می‌دهد که امکان ذخیره ایمیل‌ها در فرمت‌های مختلف یا ارسال به برنامه‌های دیگر را فراهم می‌کند.


1. آشنایی با معماری MDA در Exim

در Exim، فرآیند ذخیره‌سازی ایمیل‌ها با استفاده از Transportها انجام می‌شود. Transportها تعیین می‌کنند که ایمیل‌های دریافتی چگونه و به کجا منتقل شوند. برای ذخیره‌سازی ایمیل‌ها، معمولاً از دو فرمت Maildir و mbox استفاده می‌شود. همچنین، می‌توانید از برنامه‌های خارجی مانند Dovecot به‌عنوان LDA بهره ببرید.


2. تنظیمات ذخیره‌سازی ایمیل‌ها در فرمت Maildir

Maildir یک فرمت مدرن است که هر ایمیل را به‌صورت یک فایل جداگانه در پوشه‌های خاص ذخیره می‌کند. این فرمت باعث افزایش کارایی در مدیریت ایمیل‌ها می‌شود.

نمونه تنظیم:

maildir_delivery:
  driver = appendfile
  directory = /var/mail/${local_part}/Maildir
  maildir_format = true
  create_directory = true
  directory_mode = 770
  mode = 660
  user = ${local_part}
  group = mail
  • driver = appendfile: مشخص می‌کند که ایمیل‌ها در فایل یا پوشه ذخیره شوند.
  • directory: مسیر ذخیره‌سازی ایمیل‌ها در فرمت Maildir.
  • maildir_format = true: فعال‌سازی فرمت Maildir.
  • create_directory = true: ایجاد پوشه در صورت عدم وجود.
  • directory_mode و mode: تعیین مجوزهای دسترسی به پوشه و فایل.
  • user و group: مشخص کردن مالک فایل‌های ایمیل.

3. تنظیمات ذخیره‌سازی ایمیل‌ها در فرمت mbox

mbox یک فرمت قدیمی‌تر است که تمام ایمیل‌ها را در یک فایل ذخیره می‌کند. این فرمت برای سیستم‌های سنتی مناسب‌تر است.

نمونه تنظیم:

mbox_delivery:
  driver = appendfile
  file = /var/mail/${local_part}
  delivery_date_add = true
  envelope_to_add = true
  return_path_add = true
  mode = 660
  user = ${local_part}
  group = mail
  • file: مسیر فایل ذخیره‌سازی ایمیل‌ها.
  • delivery_date_add: افزودن تاریخ تحویل به پیام‌ها.
  • envelope_to_add: افزودن اطلاعات گیرنده.
  • return_path_add: افزودن اطلاعات مسیر برگشت.

4. استفاده از برنامه‌های خارجی (مانند Dovecot)

برای تحویل ایمیل‌ها به برنامه‌های مدیریت ایمیل مانند Dovecot، می‌توانید از قابلیت pipe در Exim استفاده کنید. Dovecot معمولاً به‌عنوان LDA (Local Delivery Agent) عمل می‌کند.

نمونه تنظیم:

dovecot_delivery:
  driver = pipe
  command = "/usr/lib/dovecot/dovecot-lda -d ${local_part}"
  user = ${local_part}
  group = mail
  return_output = true
  log_output = true
  home_directory = /home/${local_part}
  • driver = pipe: ارسال ایمیل به یک برنامه خارجی.
  • command: اجرای Dovecot LDA.
  • user و group: مالک ایمیل‌ها.
  • home_directory: مسیر دایرکتوری خانگی کاربر.

5. فیلترهای پیشرفته برای تحویل ایمیل‌ها

Exim از فیلترها برای مدیریت بهتر ایمیل‌ها استفاده می‌کند. با فیلترها می‌توانید ایمیل‌ها را بر اساس شرایط خاص به مسیرهای مختلف هدایت کنید.

نمونه فیلتر:

if $header_from: contains "spam@example.com"
then
  deliver to /var/mail/spam/${local_part}
else
  deliver to /var/mail/${local_part}/Maildir
endif

6. بررسی و آزمایش تنظیمات

پس از اعمال تنظیمات:

  1. بررسی صحت تنظیمات:
    exim -bV
  2. ارسال ایمیل تستی:
    echo "Test email" | mail -s "Test Subject" user@example.com
  3. بررسی فایل‌ها و پوشه‌ها: اطمینان حاصل کنید که ایمیل‌ها به درستی در مسیر مشخص‌شده ذخیره می‌شوند.

7. نکات امنیتی

  • اطمینان حاصل کنید که مجوزهای دسترسی به فایل‌ها و پوشه‌های ایمیل مناسب است تا از دسترسی غیرمجاز جلوگیری شود.
  • از پروتکل‌های ایمن مانند SSL/TLS برای ارتباطات استفاده کنید.
  • از ابزارهای ضد اسپم و ویروس مانند SpamAssassin و ClamAV بهره بگیرید.

جمع‌بندی

Exim با انعطاف‌پذیری بالا، امکان تنظیم و پیکربندی MDA را به روش‌های مختلفی مانند استفاده از فرمت‌های Maildir و mbox، ادغام با برنامه‌هایی مانند Dovecot و استفاده از فیلترها فراهم می‌کند. با تنظیم دقیق MDA، می‌توانید ایمیل‌های دریافتی را به بهترین شکل ممکن ذخیره و مدیریت کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”تنظیمات Postmaster برای مدیریت ایمیل‌ها و کاربران در Exim” subtitle=”توضیحات کامل”]Postmaster در سیستم ایمیل وظیفه مدیریت و نظارت بر ایمیل‌های کل سرور و رسیدگی به مشکلاتی مانند ارسال‌های ناموفق یا پیام‌های برگشتی را بر عهده دارد. تنظیمات مناسب برای Postmaster در Exim از اهمیت زیادی برخوردار است، زیرا پیام‌های سیستمی و خطاها معمولاً به آدرس Postmaster ارسال می‌شوند.


1. تنظیمات آدرس Postmaster

Exim نیاز دارد که یک آدرس معتبر برای Postmaster تعریف شود. این آدرس معمولاً در فایل پیکربندی اصلی exim.conf تنظیم می‌شود.

تنظیم آدرس Postmaster:

در فایل exim.conf، بخش زیر را پیدا کرده و مقدار آن را تنظیم کنید:

postmaster:
  driver = redirect
  data = postmaster@example.com
  • data: آدرس ایمیلی که پیام‌های مربوط به Postmaster به آن ارسال می‌شوند.
  • driver = redirect: پیام‌ها را به آدرس مشخص‌شده هدایت می‌کند.

2. ایجاد حساب کاربری Postmaster

برای اطمینان از کارکرد صحیح، باید یک حساب کاربری برای Postmaster در سیستم ایجاد شود.

در سیستم‌های مبتنی بر Linux:

sudo adduser postmaster

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

برای ایجاد آدرس ایمیل postmaster@example.com، باید حساب مربوطه را در سرویس‌دهنده ایمیل خود (مانند Dovecot یا Roundcube) ایجاد کنید.


3. پیکربندی پیش‌فرض‌های Postmaster

Exim به‌طور پیش‌فرض برخی پیام‌های حیاتی سیستم را به Postmaster ارسال می‌کند، مانند:

  • خطاهای انتقال ایمیل
  • پیام‌های برگشتی (Bounce)
  • گزارش‌های ارسال ایمیل (Delivery Reports)

برای فعال کردن این تنظیمات، مطمئن شوید که گزینه‌های زیر در فایل exim.conf پیکربندی شده‌اند:

system_filter = /etc/exim/system_filter
bounce_return_message = true
freeze_tell_postmaster = true
  • system_filter: فایل فیلتر سیستمی که پیام‌های خاص را مدیریت می‌کند.
  • bounce_return_message: ارسال پیام‌های برگشتی به Postmaster.
  • freeze_tell_postmaster: اطلاع‌رسانی در مورد پیام‌های مسدود یا یخ‌زده.

4. ارسال گزارش‌های ایمیل به Postmaster

می‌توانید گزارش‌های ایمیل‌های ورودی و خروجی را به Postmaster ارسال کنید. برای این کار، بخش زیر را در exim.conf اضافه کنید:

log_selector = +all
postmaster_copy = postmaster@example.com
  • log_selector: نوع گزارش‌هایی که باید ثبت شوند (در اینجا تمامی گزارش‌ها).
  • postmaster_copy: ارسال یک کپی از تمام ایمیل‌های سیستمی به Postmaster.

5. مدیریت کاربران و دامنه‌ها توسط Postmaster

Postmaster می‌تواند به‌عنوان مدیر سرور ایمیل، کاربران و دامنه‌ها را مدیریت کند. برای این کار معمولاً ابزارهای زیر مورد استفاده قرار می‌گیرند:

  • مدیریت کاربران:
    • ایجاد کاربران جدید در سیستم
    • تنظیم دسترسی کاربران به ایمیل‌ها
  • مدیریت دامنه‌ها:
    • افزودن دامنه‌های جدید
    • مدیریت ایمیل‌های دامنه‌های خاص

6. تنظیم فیلترها برای Postmaster

با تنظیم فیلترها، Postmaster می‌تواند پیام‌های خاصی را فیلتر کند یا اقدامات خاصی بر اساس محتوای ایمیل انجام دهد.

نمونه فیلتر:

if $header_subject: contains "Bounce"
then
  deliver to /var/mail/postmaster/bounces
endif

این تنظیم پیام‌های مربوط به خطاهای برگشتی را در یک پوشه خاص ذخیره می‌کند.


7. تنظیمات امنیتی برای Postmaster

برای اطمینان از امنیت حساب Postmaster:

  1. از SSL/TLS برای ارتباطات ایمن استفاده کنید.
  2. دسترسی به حساب Postmaster را محدود کنید.
  3. از سیاست‌های SMTP Authentication برای جلوگیری از ارسال غیرمجاز ایمیل استفاده کنید.

8. ایجاد اطلاع‌رسانی‌های خودکار

Postmaster می‌تواند با تنظیم پاسخ‌دهی خودکار، به پیام‌های خاص پاسخ دهد. این قابلیت از طریق فیلترهای Exim قابل تنظیم است.

نمونه تنظیم پاسخ‌دهی خودکار:

auto_reply:
  driver = autoreply
  text = "Your message has been received. We will get back to you shortly."

جمع‌بندی

Postmaster نقش مهمی در مدیریت و نظارت بر پیام‌های سیستمی سرور ایمیل دارد. با تنظیم آدرس مناسب، مدیریت کاربران و دامنه‌ها، و ایجاد فیلترها و گزارش‌های دقیق، می‌توانید سیستم ایمیل خود را بهینه و ایمن نگه دارید. همچنین، با استفاده از ابزارهای امنیتی مانند SSL/TLS و محدودیت‌های دسترسی، می‌توانید از سوءاستفاده از این حساب جلوگیری کنید.[/cdb_course_lesson][cdb_course_lesson title=”مدیریت کاربران و صندوق‌های ایمیل:”] [/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”ایجاد و مدیریت حساب‌های ایمیل در Exim” subtitle=”توضیحات کامل”]در Exim، مدیریت حساب‌های ایمیل به‌طور مستقیم انجام نمی‌شود، زیرا Exim فقط به‌عنوان یک سرویس Mail Transfer Agent (MTA) عمل می‌کند. مدیریت حساب‌ها معمولاً به Mail Delivery Agent (MDA) (مانند Dovecot یا Courier) و یا سیستم مدیریت پایگاه داده کاربران محول می‌شود. با این حال، Exim می‌تواند برای تحویل ایمیل‌ها به کاربران محلی یا مسیرهای خاص تنظیم شود.


1. ایجاد حساب‌های ایمیل

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

الف) ایجاد حساب‌های ایمیل در سیستم محلی (سیستم‌عامل)

اگر ایمیل‌ها به کاربران محلی سرور ارسال می‌شوند، کافی است کاربران را در سیستم‌عامل تعریف کنید:

sudo adduser username
  • هر کاربر محلی می‌تواند یک حساب ایمیل دریافت کند.
  • مسیر پیش‌فرض ذخیره ایمیل‌ها: /var/mail/username

ب) ایجاد حساب‌ها در پایگاه داده خارجی (MySQL/PostgreSQL)

برای سیستم‌های پیشرفته‌تر که از دیتابیس استفاده می‌کنند:

  1. یک پایگاه داده برای کاربران ایمیل ایجاد کنید.
  2. جدول کاربران شامل اطلاعات زیر باشد:
    • نام کاربری (username)
    • دامنه (domain)
    • رمز عبور هش‌شده (hashed password)

مثال ایجاد جدول در MySQL:

CREATE TABLE email_users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    email VARCHAR(255) NOT NULL,
    password VARCHAR(255) NOT NULL,
    mailbox_path VARCHAR(255),
    active TINYINT DEFAULT 1
);

2. پیکربندی Exim برای مدیریت حساب‌ها

الف) تحویل ایمیل به کاربران محلی

اگر ایمیل‌ها برای کاربران محلی در سیستم ارسال می‌شوند، Exim به‌طور پیش‌فرض این را مدیریت می‌کند. تنظیمات زیر را بررسی کنید:

local_delivery:
  driver = appendfile
  directory = /var/mail/${local_part}
  maildir_format
  create_directory
  delivery_date_add
  envelope_to_add
  return_path_add

ب) استفاده از دیتابیس برای تحویل ایمیل

Exim را برای استفاده از پایگاه داده تنظیم کنید:

  1. دسترسی به پایگاه داده را تعریف کنید:
hide mysql_servers = localhost/dbname/dbuser/dbpassword
  1. مسیر تحویل ایمیل را با دیتابیس تطبیق دهید:
virtual_user_delivery:
  driver = appendfile
  directory = /var/vmail/${domain}/${local_part}
  maildir_format
  create_directory
  user = mail
  group = mail
  mode = 0660

3. پیکربندی رمز عبور و احراز هویت

برای مدیریت احراز هویت کاربران ایمیل از SMTP Authentication (AUTH) استفاده کنید. این فرآیند به سرور اجازه می‌دهد تا رمز عبور و نام کاربری کاربران را بررسی کند.

نمونه تنظیم AUTH:

plain:
  driver = plaintext
  public_name = PLAIN
  server_condition = ${lookup mysql{SELECT password FROM email_users WHERE email='${quote_mysql:$1}' AND active=1}{yes}{no}}
  server_set_id = $1

4. ایجاد دامنه‌های ایمیل (Virtual Domains)

برای پشتیبانی از دامنه‌های مختلف در Exim:

  1. فایل پیکربندی دامنه‌ها را ایجاد کنید:
    • فایل: /etc/exim/virtual_domains
    • محتوا:
      example.com
      anotherdomain.com
  2. Exim را برای بررسی دامنه‌ها پیکربندی کنید:
domainlist local_domains = ${lookup{$domain}lsearch{/etc/exim/virtual_domains}{yes}{no}}

5. مدیریت کاربران ایمیل

الف) فعال‌سازی و غیرفعال‌سازی کاربران

با استفاده از فیلد active در پایگاه داده می‌توانید کاربران را فعال یا غیرفعال کنید.

ب) تغییر رمز عبور کاربران

برای تغییر رمز عبور:

  1. رمز جدید را هش کنید:
    openssl passwd -1 'newpassword'
  2. مقدار هش‌شده را در پایگاه داده به‌روزرسانی کنید.

6. ابزارهای مدیریت کاربران و ایمیل‌ها

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

  • از ابزارهای مبتنی بر وب مانند Roundcube یا RainLoop برای کاربران نهایی استفاده کنید.
  • از PostfixAdmin برای مدیریت دامنه‌ها و کاربران استفاده کنید (قابل‌استفاده برای Exim با تنظیمات مشابه).

7. تنظیم مسیر ذخیره‌سازی ایمیل‌ها

مسیر ذخیره‌سازی ایمیل‌ها باید در تنظیمات Mail Delivery Agent (MDA) یا Exim مشخص شود. برای مثال:

virtual_maildir_home:
  driver = appendfile
  directory = /var/vmail/${domain}/${local_part}
  maildir_format
  create_directory

8. ایجاد دسترسی مدیران (Postmaster)

Postmaster معمولاً مسئول مدیریت کلی حساب‌ها و ایمیل‌ها است. تنظیمات زیر را برای ارسال پیام‌های سیستمی به Postmaster انجام دهید:

postmaster:
  driver = redirect
  data = postmaster@example.com

جمع‌بندی

مدیریت حساب‌های ایمیل در Exim نیازمند تعامل با کاربران محلی یا پایگاه داده‌های خارجی است. Exim به‌طور مستقیم حساب‌های ایمیل را مدیریت نمی‌کند، اما با پیکربندی دقیق و ادغام با ابزارهای دیگر مانند Dovecot، MySQL و Roundcube می‌توان این فرآیند را ساده و کارآمد کرد.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”اتصال Roundcube به پایگاه داده برای ذخیره و بازیابی اطلاعات کاربران” subtitle=”توضیحات کامل”]برای مدیریت اطلاعات کاربران و تنظیمات شخصی در Roundcube، نیاز است که این نرم‌افزار به یک پایگاه داده متصل شود. Roundcube از پایگاه داده‌های مختلفی مانند MySQL/MariaDB، PostgreSQL، و SQLite پشتیبانی می‌کند.


مراحل اتصال Roundcube به پایگاه داده

1. ایجاد پایگاه داده برای Roundcube

ابتدا یک پایگاه داده و کاربر اختصاصی برای Roundcube ایجاد کنید:

در MySQL/MariaDB:
  1. وارد محیط MySQL شوید:
    mysql -u root -p
  2. دستورات زیر را اجرا کنید:
    CREATE DATABASE roundcube CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
    CREATE USER 'roundcube_user'@'localhost' IDENTIFIED BY 'secure_password';
    GRANT ALL PRIVILEGES ON roundcube.* TO 'roundcube_user'@'localhost';
    FLUSH PRIVILEGES;
    EXIT;
در PostgreSQL:
  1. وارد محیط PostgreSQL شوید:
    sudo -u postgres psql
  2. دستورات زیر را اجرا کنید:
    CREATE DATABASE roundcube;
    CREATE USER roundcube_user WITH PASSWORD 'secure_password';
    GRANT ALL PRIVILEGES ON DATABASE roundcube TO roundcube_user;
    \q

2. نصب Roundcube و راه‌اندازی پایگاه داده

  1. فایل‌های نصب Roundcube را دانلود کنید:
    wget https://github.com/roundcube/roundcubemail/releases/download/<version>/roundcubemail-<version>-complete.tar.gz
    tar -xvzf roundcubemail-<version>-complete.tar.gz
    mv roundcubemail-<version> /var/www/html/roundcube
  2. وارد پوشه Roundcube شوید و فایل پیکربندی پایگاه داده را تنظیم کنید:
    cd /var/www/html/roundcube
    cp config/config.inc.php.sample config/config.inc.php
  3. در فایل config/config.inc.php، تنظیمات اتصال به پایگاه داده را ویرایش کنید:
    $config['db_dsnw'] = 'mysql://roundcube_user:secure_password@localhost/roundcube';
    • برای PostgreSQL:
      $config['db_dsnw'] = 'sqlite:////path/to/sqlite.db';
    • برای SQLite:
      $config['db_dsnw'] = 'sqlite:////path/to/sqlite.db';
  4. اسکریپت‌های مورد نیاز برای ساخت جداول پایگاه داده را اجرا کنید:
    mysql -u roundcube_user -p roundcube < SQL/mysql.initial.sql

3. تست اتصال به پایگاه داده

  1. اطمینان حاصل کنید که اطلاعات اتصال به درستی تنظیم شده‌اند.
  2. دسترسی به Roundcube را از طریق مرورگر بررسی کنید:
    • آدرس: http://your-domain/roundcube/installer
    • نصب‌کننده Roundcube را دنبال کنید تا مطمئن شوید همه الزامات برآورده شده‌اند و اتصال به پایگاه داده کار می‌کند.

تنظیمات پیشرفته

ذخیره تنظیمات کاربران در پایگاه داده

Roundcube به‌طور پیش‌فرض اطلاعات کاربران مانند تنظیمات ایمیل، قوانین فیلتر، پیام‌های ذخیره‌شده و پیش‌فرض‌ها را در پایگاه داده ذخیره می‌کند. جدول‌های مورد استفاده شامل:

  • users: اطلاعات کاربران
  • identities: اطلاعات پروفایل و آدرس‌های ایمیل کاربران
  • contacts: دفترچه آدرس کاربران
  • session: اطلاعات مربوط به نشست‌های کاربران

تغییر تنظیمات زمان‌بندی پایگاه داده

اگر قصد دارید زمان‌های خاصی برای حذف داده‌های قدیمی از پایگاه داده تنظیم کنید، می‌توانید تنظیمات مربوط به پاکسازی پایگاه داده را در فایل config.inc.php انجام دهید:

$config['session_lifetime'] = 30; // زمان نگهداری نشست‌ها به دقیقه
$config['db_cache_ttl'] = 600;    // زمان نگهداری کش پایگاه داده

جمع‌بندی

اتصال Roundcube به پایگاه داده نقش حیاتی در ذخیره‌سازی و مدیریت اطلاعات کاربران ایفا می‌کند. با پیکربندی صحیح پایگاه داده و ایجاد جداول مرتبط، Roundcube می‌تواند به‌صورت کارآمد داده‌ها را ذخیره و بازیابی کند. این اتصال به Roundcube اجازه می‌دهد تا از قابلیت‌هایی مانند فیلترهای ایمیل، دفترچه آدرس، و تنظیمات پیشرفته برای کاربران استفاده کند.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”پیکربندی Roundcube برای پشتیبانی از Multiple Folders و Shared Mailboxes” subtitle=”توضیحات کامل”]Roundcube قابلیت مدیریت پوشه‌های چندگانه (Multiple Folders) و صندوق‌های مشترک (Shared Mailboxes) را به کمک پروتکل IMAP فراهم می‌کند. این ویژگی‌ها به کاربران اجازه می‌دهند تا پوشه‌های ایمیل خود را سازمان‌دهی کنند و به ایمیل‌های مشترک دسترسی داشته باشند.


1. فعال‌سازی Multiple Folders در Roundcube

پیش‌فرض Roundcube از پوشه‌های چندگانه پشتیبانی می‌کند. برای فعال‌سازی و بهینه‌سازی این قابلیت:

ویرایش فایل پیکربندی

  1. فایل پیکربندی اصلی Roundcube را باز کنید:
    nano /var/www/html/roundcube/config/config.inc.php
  2. تنظیمات زیر را اعمال کنید:
    • فعال‌سازی مدیریت پوشه:
      $config['create_default_folders'] = true;
      $config['default_imap_folders'] = array('INBOX', 'Drafts', 'Sent', 'Junk', 'Trash');
    • اجازه ایجاد، حذف و مدیریت پوشه‌ها:
      $config['imap_folder_structure'] = 'auto'; // یا 'child' برای استفاده از ساختار پوشه‌ای در زیر INBOX
      $config['show_real_foldernames'] = true;
  3. ذخیره و خروج:
    CTRL+O, CTRL+X

2. پشتیبانی از Shared Mailboxes در Roundcube

Shared Mailboxes امکان به اشتراک‌گذاری پوشه‌ها و ایمیل‌ها بین کاربران مختلف را فراهم می‌کند. این قابلیت نیاز به تنظیمات صحیح در سرور IMAP و Roundcube دارد.

پیکربندی سرور IMAP

بسته به نوع سرور IMAP (مانند Dovecot یا Courier)، باید تنظیمات مربوط به Shared Mailboxes را فعال کنید.

مثال برای Dovecot:
  1. فایل پیکربندی Dovecot را ویرایش کنید:
    nano /etc/dovecot/dovecot.conf
  2. بخش مربوط به namespaces را پیدا کنید و تغییرات زیر را اعمال کنید:
    namespace {
        type = shared
        separator = /
        prefix = Shared/
        location = maildir:%%h/Maildir:INDEX=~/Maildir/shared/%%u
    }
  3. ذخیره و خروج، سپس ری‌استارت سرویس:
    systemctl restart dovecot

پیکربندی Roundcube برای Shared Mailboxes

  1. فایل پیکربندی Roundcube را ویرایش کنید:
    nano /var/www/html/roundcube/config/config.inc.php
  2. تنظیمات زیر را اضافه یا تغییر دهید:
    $config['imap_shared_folders'] = true;
    $config['imap_auth_type'] = 'LOGIN';
    $config['imap_ns_personal'] = "INBOX.";
    $config['imap_ns_other'] = "Shared.";
  3. ذخیره و خروج.

3. فعال‌سازی قابلیت اشتراک‌گذاری پوشه‌ها

برای فعال‌سازی قابلیت اشتراک‌گذاری پوشه‌ها:

  1. از کلاینت IMAP (مانند Roundcube یا Thunderbird) استفاده کنید.
  2. در Roundcube:
    • از منوی تنظیمات → Folders پوشه موردنظر برای اشتراک‌گذاری را انتخاب کنید.
    • با استفاده از تنظیمات سرور IMAP (مثلاً ACL در Dovecot)، سطح دسترسی کاربران دیگر را مشخص کنید.

4. نمایش پوشه‌های مشترک در Roundcube

کاربران باید Shared Mailboxes را مشاهده و دسترسی به آن‌ها را داشته باشند:

  1. وارد Roundcube شوید.
  2. به تنظیمات → Folders بروید.
  3. پوشه‌های موجود در بخش Shared را مشاهده و اشتراک‌گذاری‌ها را بررسی کنید.

جمع‌بندی

پشتیبانی از Multiple Folders و Shared Mailboxes در Roundcube امکان سازمان‌دهی بهتر ایمیل‌ها و همکاری تیمی را فراهم می‌کند. این قابلیت‌ها با تنظیم صحیح سرور IMAP و Roundcube به راحتی قابل دستیابی هستند. با انجام تنظیمات مناسب، کاربران می‌توانند پوشه‌های ایمیل خود را مدیریت کنند و به صندوق‌های مشترک با دسترسی‌های مشخص دسترسی داشته باشند.[/cdb_course_lesson][/cdb_course_lessons]

[cdb_course_lessons title=”6. پیکربندی مدیریت ایمیل‌های ورودی و ارسال”][cdb_course_lesson title=”پیکربندی فیلتر ایمیل‌ها:”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”استفاده از فیلترهای ایمیل برای مدیریت ایمیل‌های ورودی و خروجی” subtitle=”توضیحات کامل”]فیلترهای ایمیل ابزاری قدرتمند برای مدیریت ایمیل‌های ورودی و خروجی هستند. این فیلترها امکان دسته‌بندی، مسیریابی، حذف، ارسال خودکار پاسخ‌ها و انجام اقدامات دیگر را بر اساس شرایط خاص فراهم می‌کنند. در Roundcube و Exim، می‌توان فیلترها را برای مدیریت کارآمدتر ایمیل‌ها پیکربندی کرد.


1. فیلترهای ایمیل در Roundcube

Roundcube با استفاده از افزونه Managesieve، فیلترهای سمت سرور را پشتیبانی می‌کند. این فیلترها مستقیماً بر روی سرور IMAP اعمال می‌شوند و حتی زمانی که کلاینت ایمیل بسته است نیز فعال هستند.

فعال‌سازی افزونه Sieve در Roundcube

  1. افزونه managesieve را فعال کنید:
    • فایل پیکربندی Roundcube را باز کنید:
      nano /var/www/html/roundcube/config/config.inc.php
    • تنظیم زیر را اضافه یا تغییر دهید:
      $config['plugins'] = array('managesieve');
  2. تنظیمات مربوط به Sieve:
    $config['managesieve_host'] = 'localhost';
    $config['managesieve_port'] = 4190;
    $config['managesieve_default'] = '/etc/dovecot/sieve/default.sieve';
    $config['managesieve_mbox_encoding'] = 'UTF-8';
  3. سرویس وب‌سرور را ری‌استارت کنید:
    systemctl restart apache2

ایجاد فیلتر ایمیل در Roundcube

  1. وارد Roundcube شوید.
  2. به SettingsFilters بروید.
  3. یک فیلتر جدید ایجاد کنید:
    • شرایط: مانند “Subject contains” یا “From equals”.
    • اقدامات: مانند “Move to folder”, “Forward to”, یا “Mark as read”.

2. فیلترهای ایمیل در Exim

Exim دارای یک سیستم پیشرفته برای تعریف Access Control Lists (ACLs) و قوانین پردازش پیام‌ها است. این فیلترها برای مدیریت ایمیل‌های ورودی و خروجی استفاده می‌شوند.

فایل پیکربندی اصلی فیلترها

  1. فایل exim.conf را باز کنید:
    nano /etc/exim/exim.conf
  2. نمونه‌ای از قانون فیلتر:
    • فیلتر کردن ایمیل‌هایی که حاوی یک عبارت خاص هستند:
      deny
        message = ایمیل شما مسدود شد زیرا شامل محتوای نامناسب است.
        log_message = ایمیل مسدود شده: $message_body
        condition = ${if match {$message_body} {spam keywords} {yes}{no}}
    • مسیریابی ایمیل‌ها بر اساس دامنه فرستنده:
      route_list = example.com smtp.example.com bydns;

استفاده از فایل‌های جداگانه برای فیلترها

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

  1. ایجاد فایل فیلتر:
    nano /etc/exim/filters/spam_filter.conf
  2. نمونه تنظیمات:
    if
      $message_body contains "spam keyword"
    then
      save "/var/mail/spam"
    endif
  3. اضافه کردن مسیر فایل فیلتر به فایل اصلی:
    system_filter = /etc/exim/filters/spam_filter.conf
  4. سرویس Exim را ری‌استارت کنید:
    systemctl restart exim

3. مدیریت فیلترها برای ایمیل‌های خروجی

برای مدیریت ایمیل‌های خروجی:

  1. محدود کردن ارسال به دامنه‌های خاص:
    deny
      domains = ! +allowed_domains
      message = ارسال ایمیل به این دامنه مجاز نیست.
  2. تنظیمات اضافه در router برای مسیریابی ایمیل‌های خروجی:
    send_to_smart_host:
      driver = manualroute
      domains = ! +local_domains
      route_list = * smtp.example.com bydns

4. مزایای استفاده از فیلترهای ایمیل

  • جلوگیری از دریافت اسپم‌ها یا ایمیل‌های ناخواسته.
  • مرتب‌سازی خودکار ایمیل‌ها به پوشه‌های مختلف.
  • محدود کردن ارسال ایمیل‌ها برای جلوگیری از سوءاستفاده.
  • ایجاد پاسخ‌های خودکار برای ایمیل‌های خاص.

جمع‌بندی

فیلترهای ایمیل در Roundcube و Exim امکان مدیریت پیشرفته ایمیل‌ها را فراهم می‌کنند. Roundcube برای مدیریت سمت کاربر و Exim برای تنظیمات سمت سرور ایده‌آل هستند. استفاده از این ابزارها به بهبود امنیت، کاهش اسپم و مدیریت بهتر صندوق‌های ایمیل کمک می‌کند.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”پیکربندی قوانین SpamAssassin برای جلوگیری از اسپم” subtitle=”توضیحات کامل”]SpamAssassin یکی از ابزارهای محبوب برای شناسایی و مسدود کردن ایمیل‌های اسپم است. این ابزار با استفاده از قوانین تعریف‌شده، فیلترهای بایزی و امتیازدهی به ایمیل‌ها، اسپم‌ها را شناسایی و مدیریت می‌کند. در ادامه، مراحل پیکربندی قوانین SpamAssassin برای جلوگیری از اسپم توضیح داده شده است.


1. نصب SpamAssassin

SpamAssassin باید به‌عنوان یک سرویس مستقل یا با یک Mail Transfer Agent (MTA) مانند Exim یا Postfix نصب شود.

نصب در سیستم‌های مبتنی بر Debian/Ubuntu:

sudo apt update
sudo apt install spamassassin spamc

نصب در سیستم‌های مبتنی بر CentOS/RedHat:

sudo yum install spamassassin spamass-milter

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

sudo systemctl enable spamassassin
sudo systemctl start spamassassin

2. فعال‌سازی SpamAssassin در MTA (مانند Exim)

افزودن SpamAssassin به Exim:

  1. فایل پیکربندی Exim را باز کنید:
    sudo nano /etc/exim/exim.conf
  2. بلوک مربوط به SpamAssassin را اضافه کنید:
    spamcheck_director:
      driver = accept
      condition = "${if eq {$spam_score_int}{0}{1}{0}}"
      transport = spamcheck
      no_verify
    
    spamcheck:
      driver = pipe
      command = /usr/bin/spamc -u $local_part
      current_directory = /
      home_directory = /
      message_prefix =
      message_suffix =
      delivery_date_add
      envelope_to_add
      return_path_add
  3. سرویس Exim را ری‌استارت کنید:
    sudo systemctl restart exim

3. پیکربندی SpamAssassin

فایل پیکربندی اصلی:

فایل تنظیمات SpamAssassin معمولاً در مسیر زیر قرار دارد:

/etc/spamassassin/local.cf

نمونه پیکربندی:

# حداقل امتیاز برای شناسایی اسپم
required_score 5.0

# اضافه کردن برچسب به موضوع ایمیل‌های اسپم
rewrite_header Subject ***SPAM***

# ارسال ایمیل‌های اسپم به یک پوشه مشخص
report_safe 1

# فعال کردن فیلترهای DNSBL
use_bayes 1
bayes_auto_learn 1
use_razor2 1
use_pyzor 1

# لیست سیاه برای ایمیل‌ها و دامنه‌ها
blacklist_from spammer@example.com
blacklist_from *@spamdomain.com

# لیست سفید برای ایمیل‌ها و دامنه‌ها
whitelist_from trusted@example.com
whitelist_from *@trusteddomain.com

اعمال تغییرات:

پس از تغییر فایل پیکربندی، سرویس SpamAssassin را ری‌استارت کنید:

sudo systemctl restart spamassassin

4. اضافه کردن قوانین سفارشی

SpamAssassin امکان اضافه کردن قوانین سفارشی برای شناسایی اسپم را فراهم می‌کند.

ایجاد فایل قوانین سفارشی:

sudo nano /etc/spamassassin/custom_rules.cf

نمونه قوانین:

  • شناسایی کلمات خاص:
    body SPAM_WORDS /free money|win big/
    score SPAM_WORDS 3.0
  • شناسایی دامنه‌های خاص:
    header SPAM_DOMAIN From =~ /@spamdomain\.com/
    score SPAM_DOMAIN 2.5
  • شناسایی لینک‌های مشکوک:
    uri SPAM_LINK /clickhere\.com/
    score SPAM_LINK 4.0

فعال‌سازی قوانین سفارشی:

SpamAssassin به طور خودکار فایل‌های با پسوند .cf را در مسیر /etc/spamassassin بارگذاری می‌کند. فقط کافی است سرویس را ری‌استارت کنید:

sudo systemctl restart spamassassin

5. تست SpamAssassin

برای اطمینان از عملکرد SpamAssassin:

  1. یک ایمیل آزمایشی ارسال کنید که محتوای مشکوک دارد.
  2. لاگ‌ها را بررسی کنید:
    sudo tail -f /var/log/mail.log
  3. ابزار خط فرمان را برای آزمایش استفاده کنید:
    echo "Test email" | spamassassin -D -t

6. مدیریت ایمیل‌های اسپم

  • ایمیل‌های شناسایی‌شده به‌عنوان اسپم می‌توانند به پوشه خاصی ارسال شوند یا برچسب‌گذاری شوند.
  • استفاده از فیلترهای Mail Delivery Agent (مانند Dovecot) برای انتقال خودکار ایمیل‌های اسپم به پوشه Junk.

نمونه فیلتر Dovecot:

<code class="!whitespace-pre hljs language-plaintext">

if header :contains "X-Spam-Status" "Yes" {
  fileinto "Junk";
  stop;
}

جمع‌بندی

SpamAssassin ابزاری قدرتمند و انعطاف‌پذیر برای جلوگیری از اسپم است. با پیکربندی مناسب و استفاده از قوانین سفارشی، می‌توانید ایمیل‌های ناخواسته را به طور موثری شناسایی و مدیریت کنید. برای بهبود عملکرد، استفاده از پایگاه داده‌های DNSBL، Razor و Pyzor نیز توصیه می‌شود.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”مدیریت Mail Quotas در Exim و Roundcube” subtitle=”توضیحات کامل”]

مدیریت محدودیت‌های فضای ذخیره‌سازی (Mail Quotas) به شما امکان می‌دهد تا اندازه صندوق‌های ایمیل کاربران را محدود کنید تا از پر شدن سریع فضای سرور جلوگیری شود و در عین حال از بهره‌وری بهتر منابع اطمینان حاصل کنید.


1. ایجاد Quotas در Exim و Dovecot (برای صندوق‌های IMAP)

پیکربندی Quotas با Dovecot:

  1. فایل Dovecot configuration را ویرایش کنید:
    sudo nano /etc/dovecot/conf.d/10-mail.conf
  2. تنظیمات quota را اضافه کنید:
    plugin {
        quota = maildir:size
        quota_rule = *:storage=10M
        quota_grace = 5M
    }
    • quota_rule = *:storage=10M مشخص می‌کند که حداکثر 10 مگابایت فضای ذخیره‌سازی برای هر صندوق ایمیل باشد.
    • quota_grace = 5M میزان فضای ذخیره‌سازی اضافه‌ای است که در صورت نزدیک شدن به محدودیت، به کاربران داده می‌شود.
  3. فایل 10-master.conf را ویرایش کنید:
    sudo nano /etc/dovecot/conf.d/10-master.conf
  4. مطمئن شوید که Dovecot با Exim هماهنگ شده است:
    service imap {
        executable = /usr/lib/dovecot/imap
        user = dovecot
    }
    
    service auth {
        unix_listener /var/spool/postfix/private/auth {
            mode = 0666
            user = postfix
            group = postfix
        }
    }
  5. سرویس Dovecot را ری‌استارت کنید:
    sudo systemctl restart dovecot

2. فعال‌سازی Quotas در Exim

پیکربندی Exim برای نظارت بر Quotas:

  1. فایل پیکربندی Exim را ویرایش کنید:
    sudo nano /etc/exim/exim.conf
  2. یک بخش برای Quotas اضافه کنید:
    maildir_home $home/Maildir
    ignore_bounce_errors_after 5d
    address_pipe_transport = address_pipe
    maildir_default = Maildir
    file_transport = address_pipe
    
    address_pipe:
        driver = pipe
        command = /usr/lib/dovecot/deliver -d ${quote:$local_part@$domain}
        delivery_date_add
        envelope_to_add
        return_path_add
  3. تنظیمات مربوط به Quota را برای Exim اضافه کنید:
    domainlist local_domains = lsearch;/etc/postfix/local_domains
    mailbox_transport = dbox
    virtual_transport = dbox
    dbox_mailbox_command = /usr/lib/dovecot/deliver -d ${quote:$local_part@$domain}
    
    transport:
        dbox:
            driver = pipe
            command = /usr/lib/dovecot/deliver -d ${quote:$local_part@$domain}
  4. سرویس Exim را ری‌استارت کنید:
    sudo systemctl restart exim

3. پیکربندی Quotas در Roundcube برای نمایش فضای مصرف‌شده

  1. Roundcube config.inc.php را ویرایش کنید:
    sudo nano /etc/roundcube/config.inc.php
  2. تنظیمات مربوط به Quotas را اضافه کنید:
    $config['quota_show_over_quota'] = true;    // نمایش کاربران در وضعیت محدودیت
    $config['quota_show_status'] = true;         // نمایش وضعیت Quota در صفحه ایمیل
    $config['quota_roots'] = '/usr';             // مسیر root محلی
    
    // Example:
    $config['quota_display_hard'] = true;       // نمایش محدودیت سخت و نرم
    $config['quota_threshold'] = 95;             // هشدار زمانی که کاربران به 95% نزدیک می‌شوند
  3. ذخیره کنید و سرویس وب سرور (Apache/Nginx) را ری‌استارت کنید.

4. مدیریت Quotas برای صندوق‌های ایمیل

  • با استفاده از دستورات quota می‌توانید فضای مصرفی صندوق‌های ایمیل را بررسی کنید:
    repquota -v /home
  • بررسی فضای مصرفی کاربران:
    dovecot --list-mailbox
  • برای تغییر Quotas یک کاربر خاص:
    doveadm quota set -u username storage=10M

5. جمع‌بندی

با پیاده‌سازی Quotas در Exim و Dovecot، می‌توانید فضای مصرف شده توسط صندوق‌های ایمیل را مدیریت کرده و از پر شدن سریع فضای ذخیره‌سازی جلوگیری کنید. همچنین، پیکربندی مناسب در Roundcube به کاربران کمک می‌کند تا وضعیت مصرف خود را به راحتی مشاهده کنند.

[/cdb_course_lesson][cdb_course_lesson title=”پیکربندی ایمیل‌های جمعی و آدرس‌های مشترک:”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”پیکربندی Mailing Lists و ارسال ایمیل‌های جمعی از طریق Exim” subtitle=”توضیحات کامل”]

برای ارسال ایمیل‌های جمعی (mailing lists) از طریق Exim، نیاز است تنظیمات خاصی انجام دهید تا مطمئن شوید ایمیل‌ها به‌درستی توزیع می‌شوند و به دامنه‌های مختلف اسپم نشوند.


1. ایجاد لیست‌های ایمیل در Exim

  1. ایجاد فایل لیست ایمیل‌ها: فایل موردنظر برای تنظیمات mailing list را ایجاد کنید:
    sudo nano /etc/exim4/aliases
  2. مثال زیر را برای یک لیست ایمیل در aliases اضافه کنید:
    mylist: user1@example.com, user2@example.com, user3@example.com
  3. به‌روزرسانی فایل‌های لیست ایمیل‌ها:
    sudo newaliases
  4. تنظیمات Exim برای استفاده از لیست‌ها: فایل پیکربندی Exim (exim.conf) را باز کنید:
    sudo nano /etc/exim4/exim.conf
  5. اضافه کردن بخش مربوط به ارسال ایمیل‌های گروهی:
    mailman transport:
        driver = appendfile
        file = /var/lib/mailman/lists/${domain}/${local_part}
        create_directory
        delivery_date_add
        return_path_add
        group = mailman
        mode = 0660
    
    mailinglist_users:
        driver = accept
        new_multiple_exim_hosts = true
        transport = mailman
        condition = ${if match {$domain} {^lists\\.example\\.com} {yes}{no}}
    
    router:
        mailinglist_router:
            driver = redirect
            allow_defer
            domains = +local_domains
            local_part_suffix_optional
            local_part_suffix = mailinglist
            condition = ${lookup{$local_part}@lists.example.com} domains = +local_domains
    
    require_files:
        /etc/exim4/mailman_require_files
  6. فایل /etc/exim4/mailman_require_files را ایجاد کنید:
    sudo touch /etc/exim4/mailman_require_files
  7. اعمال تغییرات Exim:
    sudo systemctl restart exim4

2. پیکربندی Mailman برای مدیریت لیست ایمیل‌ها

  1. نصب Mailman: در صورت نصب نبودن Mailman، آن را نصب کنید:
    sudo apt-get install mailman
  2. پیکربندی Mailman:
    sudo dpkg-reconfigure mailman
  3. تنظیمات زیر را برای Mailman انجام دهید:
    • تنظیمات اولیه مانند hostname، URL و پورت را تنظیم کنید.
    • تنظیمات مربوط به دریافت لیست ایمیل‌ها و مدیریت آنها را تکمیل کنید.
  4. ایجاد لیست ایمیل‌ها با Mailman:
    sudo newlist mylist
  5. دسترسی به صفحه مدیریت لیست‌ها از طریق مرورگر: URL: http://example.com/mailman/admin/mylist
  6. تنظیمات مورد نیاز شامل کاربران، مجوزها، فیلترها و پیام‌های خوش‌آمد گویی را انجام دهید.

3. مدیریت دسترسی و امنیت

  1. ایجاد فایل ACL برای امنیت لیست‌ها: فایل ACL را برای تنظیم دسترسی‌ها ایجاد کنید:
    sudo nano /etc/exim4/conf.d/acl/10_mailman_acl
  2. تنظیمات ACL:
    acl_smtp_rcpt:
        deny
        message = 550 Access denied
        domains = !+local_domains
        condition = ${if !eq{$sender_address}{}} {yes}{no}
  3. اعمال تغییرات:
    sudo systemctl restart exim4

4. نحوه ارسال ایمیل‌های گروهی از طریق Roundcube

  1. استفاده از Roundcube برای ارسال ایمیل‌های گروهی:
    • وارد Roundcube شوید.
    • در قسمت ارسال ایمیل، آدرس‌های گروهی را وارد کنید.
    • لیست ایمیل‌ها را به‌عنوان گیرنده اضافه کنید.
  2. پیکربندی Roundcube برای ارسال از طریق Exim:
    sudo nano /etc/roundcube/config.inc.php
  3. تنظیمات smtp برای Exim را اضافه کنید:
    $config['smtp_server'] = 'smtp.example.com';
    $config['smtp_port'] = 587;
    $config['smtp_user'] = 'your-smtp-username';
    $config['smtp_pass'] = 'your-smtp-password';
  4. ذخیره و راه‌اندازی مجدد سرور وب:
    sudo systemctl restart apache2

جمع‌بندی:

با پیکربندی Exim و Mailman، می‌توانید لیست‌های ایمیل ایجاد کرده و ایمیل‌های گروهی را به‌درستی مدیریت کنید. تنظیمات امنیتی و فیلترها به جلوگیری از اسپم و ارسال‌های ناخواسته کمک می‌کنند. همچنین، Roundcube ابزار مناسبی برای ارسال ایمیل‌های گروهی خواهد بود.

[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”تنظیم آدرس‌های Forwarders و Aliases در Exim” subtitle=”توضیحات کامل”]

1. Forwarders:

Forwarders به شما اجازه می‌دهند که ایمیل‌هایی که به یک آدرس خاص ارسال می‌شوند به آدرس‌های دیگری ارسال شوند. برای مثال، می‌توانید ایمیل‌های ورودی به آدرس user@example.com را به admin@example.com فوروارد کنید.

مراحل تنظیم Forwarders در Exim:
  1. ایجاد فایل forwarding یا ویرایش فایل aliases: فایل مربوط به تنظیم Forwarders را در مسیر /etc/exim4/aliases یا /etc/exim4/exim.conf ایجاد یا ویرایش کنید.
    sudo nano /etc/exim4/aliases
  2. تنظیم Forwarders:
    user@example.com: admin@example.com
    user2@example.com: support@example.com
  3. بروزرسانی فایل‌های aliases:
    sudo newaliases
  4. اعمال تغییرات Exim:
    sudo systemctl restart exim4

2. Aliases:

Aliases به شما این امکان را می‌دهند که آدرس‌های مختلف ایمیل را به آدرس واحدی روت کنید. برای مثال، شما می‌توانید ایمیل‌هایی که به sales@example.com ارسال می‌شوند را به info@example.com ارسال کنید.

مراحل تنظیم Aliases در Exim:
  1. ایجاد یا ویرایش فایل aliases:
    sudo nano /etc/exim4/aliases
  2. تنظیم Aliases:
    sales@example.com: info@example.com
    support@example.com: admin@example.com
  3. بروزرسانی فایل‌های aliases:
    sudo newaliases
  4. اعمال تغییرات Exim:
    sudo systemctl restart exim4

3. تنظیم Aliases از طریق exim.conf:

اگر از تنظیمات مستقیم در فایل exim.conf استفاده می‌کنید، می‌توانید موارد زیر را در بخش پیکربندی Exim اضافه کنید:

  1. باز کردن فایل exim.conf:
    sudo nano /etc/exim4/exim.conf
  2. تنظیم Aliases در exim.conf:
    domainlist alias_domains = example.com
    alias_database = dbm:/etc/exim4/aliases
    alias_maps = hash:/etc/exim4/aliases
  3. اعمال تغییرات Exim:
    sudo systemctl restart exim4

4. ایجاد Alias برای تمام دامنه‌ها (Global Aliases)

اگر می‌خواهید Aliases را برای تمام دامنه‌های Exim فعال کنید، می‌توانید در فایل exim.conf بخش زیر را تنظیم کنید:

  1. تنظیمات در exim.conf:
    domainlist alias_domains = example.com anotherdomain.com
    alias_database = dbm:/etc/exim4/aliases
    alias_maps = hash:/etc/exim4/aliases
  2. اعمال تغییرات Exim:
    sudo systemctl restart exim4

جمع‌بندی:

تنظیم آدرس‌های Forwarders و Aliases در Exim به شما این امکان را می‌دهد که ایمیل‌ها را به آدرس‌های خاص فوروارد کنید یا آدرس‌های مختلف را به یک آدرس روت کنید. تنظیم این ویژگی‌ها به‌طور مؤثر در مدیریت ایمیل‌های دامنه بسیار کاربردی است.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”پیکربندی Catch-all Email Addresses در Exim” subtitle=”توضیحات کامل”]

1. Catch-all Email Address چیست؟

یک Catch-all email address به شما این امکان را می‌دهد که همه ایمیل‌هایی که به دامنه‌ای ارسال می‌شوند، به یک آدرس خاص فوروارد شوند. به عنوان مثال، اگر کاربری ایمیلی به آدرس‌های ناموجود ارسال کند (anything@example.com)، آن ایمیل‌ها به آدرس مشخصی مثل admin@example.com ارسال خواهند شد.


2. تنظیم Catch-all Email Address در Exim:

مراحل:
  1. ایجاد یا ویرایش فایل exim.conf: فایل پیکربندی Exim را باز کنید:
    sudo nano /etc/exim4/exim.conf
  2. تنظیم بخش Catch-all: برای تنظیم Catch-all، باید route و accept برای دامنه تنظیم کنید. در زیر نمونه‌ای از تنظیم Catch-all برای دامنه example.com آورده شده است:
    domainlist catch_all_domains = example.com
    catch_all = * : admin@example.com
  3. توضیحات خط بالا:
    • domainlist catch_all_domains = example.com مشخص می‌کند که دامنه example.com شامل Catch-all است.
    • catch_all = * : admin@example.com تمام ایمیل‌هایی که به دامنه example.com ارسال می‌شوند به آدرس admin@example.com فوروارد می‌شود.
  4. اعمال تغییرات Exim:
    sudo systemctl restart exim4

3. تست و بررسی:

برای بررسی اینکه تنظیم Catch-all به درستی کار می‌کند، می‌توانید ایمیلی به آدرس‌های مختلف در دامنه ارسال کنید که یکی از آن‌ها وجود نداشته باشد و بررسی کنید که آیا ایمیل‌ها به آدرس Catch-all ارسال می‌شوند یا خیر.


4. ایجاد چند Catch-all برای دامنه‌های مختلف (چند دامنه‌ای):

اگر بخواهید Catch-all را برای چند دامنه تنظیم کنید، می‌توانید چندین domainlist و catch_all تعریف کنید:

domainlist catch_all_domains = example.com anotherdomain.com
catch_all = * : admin@example.com

با این تنظیم، همه ایمیل‌های ارسال شده به هر دو دامنه example.com و anotherdomain.com به آدرس admin@example.com فوروارد خواهند شد.


جمع‌بندی:

تنظیم Catch-all Email Addresses در Exim برای مدیریت ایمیل‌هایی که به آدرس‌های نادرست ارسال می‌شوند بسیار مفید است. این امکان باعث می‌شود که همه ایمیل‌های ورودی به دامنه‌های مختلف به آدرس مشخصی ارسال شوند.[/cdb_course_lesson][/cdb_course_lessons]

[cdb_course_lessons title=”7. نظارت، مدیریت و عیب‌یابی”][cdb_course_lesson title=”نظارت بر عملکرد Exim:”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”ابزارهای نظارتی برای بررسی وضعیت سرویس Exim” subtitle=”توضیحات کامل”]

برای مدیریت و نظارت بر وضعیت سرویس Exim و اطمینان از عملکرد صحیح آن، می‌توان از ابزارها و فرمان‌های مختلفی استفاده کرد. این ابزارها به شما کمک می‌کنند تا اطلاعات مهم مانند وضعیت سرویس، تعداد ایمیل‌های ارسال‌شده/دریافت‌شده، و بررسی مشکلات احتمالی را داشته باشید.


1. نظارت بر وضعیت Exim با دستور systemctl:

با استفاده از systemctl می‌توانید وضعیت سرویس Exim را بررسی کنید و از اجرای صحیح آن مطمئن شوید:

sudo systemctl status exim4

این دستور وضعیت سرویس Exim را به شما نمایش می‌دهد و در صورت بروز مشکل، خطاها و هشدارها را به شما اعلام می‌کند.

2. نمایش آمار و اطلاعات Exim با دستور eximstats:

ابزار eximstats به شما امکان می‌دهد آمار و اطلاعات مربوط به سرویس Exim را مشاهده کنید. این ابزار وضعیت ارسال و دریافت ایمیل‌ها را گزارش می‌دهد.

eximstats -bP | less

این دستور به شما آمار کلی شامل تعداد ایمیل‌های ارسال‌شده، حجم ایمیل‌ها، و وضعیت Queues را نمایش می‌دهد.

3. مشاهده صف ارسال (Queue) با دستور exim -bp:

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

exim -bp

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

4. تایید پیکربندی Exim با دستور exim -bt یا exim -d:

برای بررسی پیکربندی Exim و صحت تنظیمات آن، می‌توانید از دستورات زیر استفاده کنید:

exim -bt user@example.com

یا

exim -d

این دستورات برای تأیید تنظیمات مربوط به ارسال ایمیل و صحت پیکربندی Exim مفید هستند.

5. نظارت بر لاگ‌های Exim با دستور journalctl:

Exim از سیستم لاگ لینوکس استفاده می‌کند، برای بررسی لاگ‌های Exim می‌توانید از دستور journalctl استفاده کنید:

journalctl -u exim4

این دستور لاگ‌های Exim را نمایش می‌دهد و مشکلات مربوط به ارسال و دریافت ایمیل‌ها را به شما نشان می‌دهد.

6. نظارت با ابزارهای مانیتورینگ اختصاصی:

اگر نیاز به مانیتورینگ حرفه‌ای‌تر دارید، می‌توانید از ابزارهایی مانند Zabbix، Nagios یا Prometheus برای نظارت بر Exim استفاده کنید. این ابزارها امکان نمایش وضعیت سرویس، ارسال هشدارهای خطا، و نظارت بر صف‌های ایمیل را فراهم می‌کنند.


جمع‌بندی:

با استفاده از ابزارهای نظارتی مانند systemctl, eximstats, exim -bp, و journalctl می‌توانید وضعیت Exim را بررسی کنید و از عملکرد صحیح آن مطمئن شوید. این ابزارها به شما کمک می‌کنند تا مشکلات احتمالی را شناسایی کرده و برای رفع آنها اقدام کنید.

[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”بررسی و تحلیل لاگ‌های Exim برای شناسایی مشکلات” subtitle=”توضیحات کامل”]لاگ‌های Exim اطلاعات حیاتی را در مورد نحوه عملکرد سرویس ارسال ایمیل و مشکلات احتمالی که ممکن است بروز کرده باشد، ارائه می‌دهند. تحلیل صحیح این لاگ‌ها به شما کمک می‌کند تا به مشکلاتی مانند عدم ارسال ایمیل، خطاهای پیکربندی، یا مشکلات امنیتی پی ببرید.


1. موقعیت لاگ‌های Exim:

لاگ‌های Exim به‌طور پیش‌فرض در مسیرهای زیر ذخیره می‌شوند:

  • در سیستم‌های Debian/Ubuntu:
    /var/log/exim4/mainlog
  • در سیستم‌های CentOS/RedHat:
    /var/log/exim/mainlog

2. بررسی لاگ‌ها با دستور journalctl:

برای مشاهده لاگ‌های Exim و مشکلات مربوط به ارسال ایمیل‌ها، می‌توانید از دستور journalctl استفاده کنید:

journalctl -u exim4 -xe

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

3. تحلیل لاگ‌های اصلی Exim (mainlog):

فایل mainlog شامل اطلاعات دقیق در مورد فعالیت‌های Exim مانند ارسال و دریافت ایمیل، خطاها، و هشدارها است. برای مشاهده محتوای لاگ می‌توانید از دستور زیر استفاده کنید:

cat /var/log/exim4/mainlog

یا

tail -f /var/log/exim4/mainlog

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

4. شناخت خطاهای رایج و تحلیل آنها:

  • خطاهای مربوط به عدم ارسال ایمیل: خطاهای زیر معمولاً به مشکلات مربوط به ارسال ایمیل اشاره دارند:
    451 Temporary lookup failure
    550 Requested action not taken: mailbox unavailable
    550 Authentication Required

    این خطاها می‌توانند نشان‌دهنده مشکلاتی نظیر عدم دسترسی به سرور مقصد، مشکلات DNS، یا اعتبارسنجی نادرست احراز هویت (SMTP AUTH) باشند.

  • خطاهای DNS: خطاهایی که به مشکلات DNS اشاره دارند ممکن است به شکل زیر ظاهر شوند:
    temporary lookup failure for domain

    این خطاها نشان‌دهنده مشکلاتی مانند عدم دسترسی به سرور DNS معتبر برای دامنه‌های مقصد هستند.

  • خطاهای مرتبط با مجوزها: این خطاها به مشکلاتی مربوط می‌شوند که هنگام ارسال ایمیل با مجوزهای خاص مانند احراز هویت یا دسترسی‌های محدود رخ می‌دهند.
    authentication failure
    permission denied

5. تحلیل Queue (صف ایمیل):

صف‌های ایمیل در Exim می‌توانند حاوی ایمیل‌هایی باشند که به دلایل مختلف ارسال نشده‌اند. برای مشاهده صف‌ها و بررسی ایمیل‌های معلق، از دستور زیر استفاده کنید:

exim -bp

این دستور ایمیل‌های معلق در صف را نمایش می‌دهد و به شما کمک می‌کند تا مشکلات ارسال ایمیل را ردیابی کنید.

6. فیلتر کردن لاگ‌ها برای مشکلات خاص:

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

grep "550" /var/log/exim4/mainlog
grep "Temporary lookup failure" /var/log/exim4/mainlog

7. بررسی تنظیمات Exim با لاگ‌ها:

اگر خطاهای مربوط به پیکربندی مشاهده می‌کنید، می‌توانید فایل پیکربندی Exim (exim.conf) را بررسی کنید و تنظیمات مربوط به احراز هویت، DNS یا سایر تنظیمات مرتبط با ایمیل را بررسی کنید.


جمع‌بندی:

تحلیل لاگ‌های Exim یکی از ابزارهای کلیدی برای شناسایی مشکلات ارسال ایمیل‌ها است. با بررسی لاگ‌ها، می‌توانید مشکلات رایج مانند خطاهای DNS، احراز هویت، مجوزها و صف‌های ایمیل معلق را شناسایی و برطرف کنید. استفاده از ابزارهایی مانند journalctl و exim -bp به شما کمک می‌کند تا به مشکلات دسترسی داشته باشید و برای رفع آنها اقدام کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”نظارت بر صف‌های ایمیل و مدیریت صف‌های ارسال در Exim” subtitle=”توضیحات کامل”]

صف ایمیل‌ها در Exim زمانی ایجاد می‌شوند که ارسال ایمیل‌ها به دلایل مختلف به تعویق افتاده باشد. مدیریت صحیح صف‌ها برای اطمینان از ارسال به‌موقع ایمیل‌ها بسیار مهم است.


1. نمایش صف‌های ایمیل (Exim Queue) با دستور exim -bp:

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

exim -bp

این دستور تمام ایمیل‌های در صف معلق را نمایش می‌دهد. خروجی این دستور شامل جزئیات ایمیل‌های معلق مانند فرستنده، گیرنده، زمان ارسال، وضعیت و علت‌های احتمالی معلق بودن ایمیل‌ها است.

2. مشاهده صف‌های ایمیل در سیستم log file (مثال با mainlog):

فایل لاگ Exim (mainlog) نیز حاوی اطلاعات مربوط به ایمیل‌های معلق و وضعیت ارسال آنها است. می‌توانید با دستور زیر جستجوی وضعیت ایمیل‌ها را در فایل لاگ انجام دهید:

tail -f /var/log/exim4/mainlog | grep "queue"

3. ریست کردن صف‌های ایمیل:

گاهی ممکن است لازم باشد صف‌های ایمیل را پاک کنید و یا برخی از ایمیل‌های معلق را مجدداً ارسال کنید. برای ریست کردن صف‌های Exim، از دستور زیر استفاده کنید:

exim -Qf

این دستور صف ایمیل‌ها را خالی کرده و ایمیل‌هایی که معلق شده‌اند، دوباره ارسال می‌کند.

4. پاک کردن ایمیل‌های معلق با دستور exim -Mrm:

اگر ایمیل‌هایی در صف معلق هستند که نمی‌خواهید ارسال شوند، می‌توانید آنها را با دستور exim -Mrm حذف کنید:

exim -Mrm <message-id>

این دستور مشخص شده و ایمیل با message-id معین شده را از صف حذف می‌کند.

5. مشاهده دلایل معلق بودن ایمیل‌ها:

برای بررسی علت‌های معلق بودن ایمیل‌ها، می‌توانید خطاهایی که در لاگ Exim ثبت شده‌اند را بررسی کنید. به‌عنوان مثال، ممکن است خطاهایی مانند مشکلات DNS، عدم دسترسی، یا مشکلات مجوزهای SMTP را مشاهده کنید.

grep "unable to deliver" /var/log/exim4/mainlog

6. نظارت بر استفاده از Exim Queue Manager (Exim -bd):

Exim به‌صورت پیش‌فرض، وظیفه مدیریت صف‌ها را به‌صورت بی‌درنگ (بکگراند) انجام می‌دهد. این سرویس به نام Exim Queue Manager یا exim -bd شناخته می‌شود که مسئول دریافت ایمیل‌های ورودی و ارسال آنها به گیرنده‌های مربوطه است.

برای بررسی وضعیت این سرویس، دستور زیر را اجرا کنید:

ps aux | grep exim

خروجی این دستور وظایف فعال Exim مانند exim -bd را نشان می‌دهد.

7. توقف و راه‌اندازی مجدد Exim Queue Manager:

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

systemctl restart exim4

یا

service exim4 restart

این دستورها Exim Queue Manager را متوقف کرده و مجدداً راه‌اندازی می‌کنند، که به کمک آن ایمیل‌های معلق را بررسی و ارسال کنید.


جمع‌بندی:

نظارت و مدیریت صف‌های ایمیل در Exim برای اطمینان از ارسال صحیح و به‌موقع ایمیل‌ها ضروری است. با استفاده از دستورات exim -bp، exim -Qf، exim -Mrm و تحلیل لاگ‌ها، می‌توانید ایمیل‌های معلق را شناسایی و مشکلات مربوط به ارسال ایمیل‌ها را برطرف کنید. همچنین، مدیریت Exim Queue Manager در پس‌زمینه نیز به فرآیند ارسال ایمیل‌ها کمک می‌کند.

[/cdb_course_lesson][cdb_course_lesson title=”عیب‌یابی مشکلات ارسال و دریافت ایمیل‌ها:”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”حل مشکلات رایج مانند عدم ارسال ایمیل، تأخیر در ارسال، مشکلات اتصال” subtitle=”توضیحات کامل”]در محیط‌هایی که از Exim به‌عنوان Mail Transfer Agent (MTA) استفاده می‌شود، مشکلاتی مانند عدم ارسال ایمیل‌ها، تأخیر در ارسال، و مشکلات اتصال می‌تواند ناشی از عوامل مختلفی باشد. در ادامه، به برخی از مشکلات رایج و راهکارهای رفع آن‌ها پرداخته می‌شود.


1. عدم ارسال ایمیل‌ها:

مشکل:

ایمیل‌ها به‌درستی ارسال نمی‌شوند و خطاهای مختلفی در لاگ Exim ثبت می‌شوند.

راه‌حل‌ها:

  • بررسی لاگ‌های Exim: بررسی لاگ‌های Exim به‌شدت برای عیب‌یابی مشکلات ارسال ایمیل‌ها مفید است. دستور زیر را اجرا کنید:
    tail -f /var/log/exim4/mainlog

    این دستور به شما اجازه می‌دهد تا خطاهای مرتبط با ارسال ایمیل‌ها را بررسی کنید.

  • بررسی DNS و Reverse DNS: مشکلات DNS می‌توانند باعث شوند که Exim نتواند به درستی آدرس‌های گیرنده را حل کند.
    dig example.com

    همچنین، بررسی Reverse DNS (PTR) برای آدرس‌های سرور:

    dig -x IP_ADDRESS
  • بررسی تنظیمات SPF و DKIM: اطمینان حاصل کنید که تنظیمات SPF و DKIM به‌درستی پیکربندی شده‌اند تا امکان اعتبارسنجی ایمیل‌ها وجود داشته باشد.
  • بررسی تنظیمات Exim: فایل پیکربندی Exim (exim.conf) را بررسی کنید و از تنظیمات صحیح استفاده کنید.مثال:
    cat /etc/exim4/exim.conf

2. تأخیر در ارسال ایمیل‌ها:

مشکل:

ایمیل‌ها با تأخیر ارسال می‌شوند و این موضوع می‌تواند ناشی از مسائل مختلفی مانند حجم بالای صف‌های ارسال یا محدودیت‌های سرور باشد.

راه‌حل‌ها:

  • بررسی صف‌های ارسال: استفاده از دستور exim -bp برای نمایش وضعیت صف‌های ایمیل می‌تواند به شناسایی تأخیرها کمک کند.
    exim -bp
  • رفع مسائلی مثل DNS و محدودیت‌های SPF: مشکلات DNS یا تنظیمات SPF نادرست می‌توانند به تأخیر در ارسال ایمیل‌ها منجر شوند.
  • استفاده از exim -Qf: برای خالی‌سازی صف‌ها و ارسال مجدد ایمیل‌های معلق:
    exim -Qf
  • افزایش محدودیت‌های صف (queue size): گاهی محدودیت‌های سرور ایمیل ممکن است باعث تأخیر در ارسال شود. تنظیم پارامترهای MaxQueueLifetime و RetryInterval می‌تواند بهبود دهد:
    max_queue_lifetime = 1d
    retry_interval = 1h

3. مشکلات اتصال (Connection Errors):

مشکل:

ایمیل‌ها به‌درستی ارسال نمی‌شوند و خطاهایی مانند “Connection timed out” یا “Failed to connect to the SMTP server” نمایش داده می‌شوند.

راه‌حل‌ها:

  • بررسی سرور مقصد: مطمئن شوید که سرور مقصد به‌درستی پاسخگو است و تنظیمات صحیحی دارد.
  • بررسی تنظیمات Exim: بررسی تنظیمات مربوط به ارتباطات SMTP مانند:
    smtp_smtp_address = smtp.example.com
  • بررسی پورت‌های باز: مطمئن شوید که پورت‌های مورد نیاز برای SMTP باز هستند.
    netstat -tnlp | grep :25
  • بررسی تنظیمات فایروال: ممکن است فایروال جلوی ارتباطات ایمیل را بگیرد. مطمئن شوید که پورت 25 (SMTP) باز است.
    iptables -L -v
  • مشکلات Reverse DNS: مشکلات Reverse DNS ممکن است باعث ایجاد مشکل در ارتباطات شود.
    dig -x SERVER_IP
  • بررسی گزارش‌های Exim: خطای “Connection timed out” ممکن است به این دلیل باشد که سرور مقصد پاسخ نمی‌دهد. در لاگ‌ها به دنبال این خطاها بگردید:
    tail -f /var/log/exim4/mainlog | grep "timed out"

4. مشکلات اعتبارسنجی و Authentication Errors:

مشکل:

خطاهای مربوط به Authentication مثل “SMTP AUTH failed” یا “Relay denied” به دلیل نادرست بودن تنظیمات احراز هویت رخ می‌دهند.

راه‌حل‌ها:

  • پیکربندی SMTP Authentication (AUTH): مطمئن شوید که تنظیمات احراز هویت SMTP به درستی انجام شده است:
    smtp_sasl_password_maps = hash:/etc/exim4/passwd.client
    smtp_sasl_security_options = noanonymous
    smtp_sasl_mechanism_filter = plaintext
  • ایجاد فایل passwd.client: این فایل برای نگهداری نام کاربری و رمز عبور SMTP AUTH استفاده می‌شود:
    echo "username:password" > /etc/exim4/passwd.client
    chmod 600 /etc/exim4/passwd.client
  • بررسی SELinux یا AppArmor: اگر SELinux یا AppArmor فعال باشد، ممکن است جلوی دسترسی به SMTP AUTH را بگیرد.
    sestatus

جمع‌بندی:

مشکلاتی مانند عدم ارسال ایمیل‌ها، تأخیر در ارسال، یا مشکلات اتصال می‌تواند به دلایل مختلفی مانند تنظیمات نادرست، مشکلات DNS، محدودیت‌های احراز هویت، یا پیکربندی اشتباه Exim رخ دهد. با بررسی لاگ‌های Exim، تنظیمات مربوط به DNS، SPF و DKIM، و نیز تنظیمات SMTP و Queue می‌توانید مشکلات را شناسایی و رفع کنید.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”بررسی مشکلات در اتصال Roundcube به Exim” subtitle=”توضیحات کامل”]اتصال Roundcube به Exim به‌عنوان سرویس ایمیل به‌طور کلی شامل فرآیندهای ارتباطی مبتنی بر IMAP و SMTP است. اگر در این فرآیند با مشکلاتی مانند عدم اتصال، ارسال یا دریافت ایمیل مواجه شدید، ممکن است دلایل مختلفی در پیکربندی Exim یا Roundcube وجود داشته باشد. در این بخش، به بررسی مشکلات رایج و راهکارهای مربوط به اتصال Roundcube به Exim پرداخته می‌شود.


1. عدم اتصال به سرور ایمیل (SMTP/IMAP) از طریق Roundcube:

مشکل:

Roundcube به سرور Exim متصل نمی‌شود و خطاهایی مانند “Connection timed out” یا “Unable to connect to server” نمایش داده می‌شود.

راه‌حل‌ها:

  • بررسی پورت‌های مورد نیاز: مطمئن شوید که پورت‌های مورد نیاز برای IMAP و SMTP باز هستند.
    netstat -tnlp | grep :25
    netstat -tnlp | grep :143
    netstat -tnlp | grep :587
  • تنظیمات سرور Exim: بررسی تنظیمات Exim برای فعال بودن پروتکل‌های IMAP و SMTP:
    cat /etc/exim4/exim.conf | grep -i "smtp listen" | grep -v "#" 
    cat /etc/exim4/exim.conf | grep -i "imap listen" | grep -v "#"
  • بررسی Reverse DNS: مشکلات مربوط به Reverse DNS می‌تواند باعث مشکلات اتصال شود.
    dig -x SERVER_IP
  • خطای “Connection timed out”: اگر خطاهای “Connection timed out” دریافت می‌کنید، ممکن است فایروال یا تنظیمات شبکه باعث این مشکل شوند.
    iptables -L -v

2. عدم ارسال ایمیل از طریق Roundcube:

مشکل:

کاربران نمی‌توانند ایمیل‌های خود را از طریق Roundcube ارسال کنند.

راه‌حل‌ها:

  • بررسی پیکربندی SMTP Exim: بررسی تنظیمات SMTP Exim در /etc/exim4/exim.conf:
    cat /etc/exim4/exim.conf | grep -i "smtp_sasl_authentication" | grep -v "#"
  • بررسی تنظیمات authentication (SMTP AUTH): مطمئن شوید که Roundcube می‌تواند به سرور Exim از طریق SMTP AUTH متصل شود.
    smtp_sasl_password_maps = hash:/etc/exim4/passwd.client
    smtp_sasl_security_options = noanonymous
    smtp_sasl_mechanism_filter = plaintext
  • ایجاد فایل passwd.client: برای تأیید صحت تنظیمات SMTP AUTH فایل /etc/exim4/passwd.client را ایجاد کنید:
    echo "username:password" > /etc/exim4/passwd.client
    chmod 600 /etc/exim4/passwd.client
  • بررسی تنظیمات Roundcube: در فایل پیکربندی Roundcube (config.inc.php):
    $config['smtp_server'] = 'smtp.example.com';
    $config['smtp_port'] = 587;  // یا 465 برای SSL
    $config['smtp_user'] = 'username';
    $config['smtp_pass'] = 'password';
    $config['smtp_auth'] = true;
    $config['smtp_secure'] = 'tls';  // یا 'ssl' برای SSL

3. عدم دریافت ایمیل‌ها از طریق Roundcube:

مشکل:

Roundcube ایمیل‌ها را از سرور Exim دریافت نمی‌کند.

راه‌حل‌ها:

  • تنظیمات IMAP Exim: بررسی تنظیمات IMAP Exim برای پورت‌ها و پروتکل‌های IMAP:
    cat /etc/exim4/exim.conf | grep -i "imap listen" | grep -v "#"
  • بررسی تنظیمات Roundcube: در فایل config.inc.php اطمینان حاصل کنید که تنظیمات IMAP به درستی انجام شده‌اند:
    $config['default_host'] = 'ssl://imap.example.com';
    $config['default_port'] = 993;  // یا 143 برای IMAP معمولی
  • بررسی Authentication IMAP: بررسی کنید که Roundcube به درستی می‌تواند از پروتکل IMAP با تنظیمات صحیح authentication استفاده کند.
    $config['imap_auth_type'] = 'LOGIN';  // یا PLAIN, CRAM-MD5

4. عدم نمایش یا خطای لاگین در Roundcube:

مشکل:

کاربران نمی‌توانند وارد Roundcube شوند و خطاهایی مثل “Incorrect username or password” دریافت می‌کنند.

راه‌حل‌ها:

  • بررسی تنظیمات Roundcube برای احراز هویت صحیح: در فایل config.inc.php بررسی کنید که تنظیمات برای authentication به درستی انجام شده‌اند:
    $config['login_suppress'] = false;
    $config['auth_smtp'] = true;
    $config['smtp_user'] = 'username';
    $config['smtp_pass'] = 'password';
  • پیکربندی Exim برای SMTP AUTH: در فایل /etc/exim4/exim.conf تنظیمات SMTP AUTH به درستی انجام شده باشند:
    smtp_sasl_password_maps = hash:/etc/exim4/passwd.client
    smtp_sasl_security_options = noanonymous
    smtp_sasl_mechanism_filter = plaintext

5. مشکلات مربوط به SSL/TLS در ارتباط با Roundcube:

مشکل:

Roundcube نمی‌تواند به سرور Exim متصل شود و خطاهایی مانند “TLS connection failed” نمایش داده می‌شود.

راه‌حل‌ها:

  • بررسی گواهینامه‌های SSL: بررسی کنید که گواهینامه‌های SSL سرور Exim به‌درستی نصب شده و معتبر هستند:
    openssl s_client -connect smtp.example.com:465
  • تنظیمات SSL/TLS در Exim: بررسی تنظیمات Exim برای پشتیبانی از TLS و استفاده از گزینه‌های زیر:
    tls_certificate = /etc/ssl/certs/exim.pem
    tls_privatekey = /etc/ssl/private/exim.key
    tls_require_tls = yes
    tls_advertise_hosts = *
  • تنظیمات Roundcube برای استفاده از SSL/TLS:
    $config['smtp_conn_options'] = 'ssl://smtp.example.com:465';
    $config['imap_conn_options'] = 'ssl://imap.example.com:993';

جمع‌بندی:

مشکلات اتصال Roundcube به Exim می‌تواند ناشی از پیکربندی‌های نادرست، مشکلات شبکه، یا تنظیمات احراز هویت باشد. با بررسی پیکربندی‌ها و لاگ‌های Exim و Roundcube، می‌توان مشکلات مربوط به عدم اتصال، ارسال یا دریافت ایمیل‌ها را برطرف کرد.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”راه‌اندازی و پیکربندی مجدد سرویس‌ها در صورت بروز مشکل” subtitle=”توضیحات کامل”]زمانی که با مشکلات مختلف در Exim یا Roundcube مواجه می‌شوید، ممکن است نیاز به راه‌اندازی مجدد یا پیکربندی مجدد سرویس‌ها داشته باشید. در این بخش، به روش‌هایی برای راه‌اندازی مجدد سرویس‌ها و رفع مشکلات پرداخته می‌شود.


1. راه‌اندازی مجدد سرویس Exim:

دستور کلی برای راه‌اندازی Exim:

sudo systemctl restart exim4  # برای سیستم‌های Ubuntu/Debian

یا

sudo service exim4 restart  # برای سیستم‌های قدیمی‌تر مانند CentOS/RedHat

بررسی وضعیت Exim بعد از راه‌اندازی:

sudo systemctl status exim4  # برای Ubuntu/Debian

یا

sudo service exim4 status  # برای CentOS/RedHat

ریستارت Exim با Force:

در صورت بروز مشکلات جدی، می‌توانید Exim را با پارامتر --force ریستارت کنید:

sudo systemctl restart exim4 --force

2. راه‌اندازی مجدد سرویس Apache/Nginx:

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

sudo systemctl restart apache2  # برای Ubuntu/Debian

یا

sudo systemctl restart httpd  # برای CentOS/RedHat

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

sudo systemctl restart nginx  # برای Nginx

بررسی وضعیت سرویس:

sudo systemctl status apache2  # برای Apache روی Ubuntu/Debian

یا

sudo systemctl status httpd   # برای Apache روی CentOS/RedHat
sudo systemctl status nginx   # برای Nginx

3. بازخوانی پیکربندی Roundcube:

اگر تغییراتی در فایل پیکربندی Roundcube (config.inc.php) ایجاد کرده‌اید، ممکن است نیاز به بازخوانی پیکربندی داشته باشید.

دستور کلی برای بازخوانی پیکربندی Roundcube:

sudo systemctl restart apache2  # برای Apache

یا

sudo systemctl restart nginx   # برای Nginx

4. ریستارت سرویس‌های مرتبط با IMAP و SMTP (اگر Exim و Roundcube مشکل دارند):

ریستارت سرویس IMAP (دستور عمومی):

sudo systemctl restart dovecot  # برای IMAP (Ubuntu/Debian)

یا

sudo systemctl restart dovecot  # برای IMAP (CentOS/RedHat)

ریستارت سرویس SMTP (Exim):

sudo systemctl restart exim4  # برای Exim

5. احراز خطا در لاگ‌های Exim و Roundcube:

اگر پس از راه‌اندازی مجدد همچنان با مشکلاتی مواجه هستید، باید لاگ‌های Exim و Roundcube را بررسی کنید:

  • بررسی لاگ Exim:
sudo tail -f /var/log/exim4/mainlog

یا

sudo tail -f /var/log/exim/mainlog  # برای CentOS/RedHat
  • بررسی لاگ Roundcube:
sudo tail -f /var/log/apache2/access.log
sudo tail -f /var/log/apache2/error.log

یا

sudo tail -f /var/log/nginx/access.log
sudo tail -f /var/log/nginx/error.log

با بررسی لاگ‌ها می‌توانید اطلاعات بیشتری در مورد خطاها و مشکلات به دست آورید.


جمع‌بندی:

اگر با مشکلاتی مثل عدم ارسال/دریافت ایمیل، عدم اتصال یا خرابی Roundcube و Exim مواجه شدید، با ریستارت سرویس‌ها و بررسی لاگ‌های خطا می‌توان مشکلات را برطرف کرد. همچنین تنظیمات صحیح Exim، Roundcube و سرویس‌های وابسته، نقش کلیدی در رفع مشکلات ایفا می‌کنند.[/cdb_course_lesson][cdb_course_lesson title=”بهینه‌سازی Exim و Roundcube:”][/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”بهینه‌سازی عملکرد Exim برای ارسال و دریافت ایمیل‌ها” subtitle=”توضیحات کامل”]برای بهینه‌سازی عملکرد Exim و بهبود سرعت و کارایی در ارسال و دریافت ایمیل‌ها، می‌توان از چندین تنظیم و بهینه‌سازی استفاده کرد. این بهینه‌سازی‌ها به عملکرد Exim کمک می‌کنند تا در محیط‌های پُر ترافیک، بهینه‌تر عمل کند و مشکلاتی مانند تأخیر یا کاهش کارایی را کاهش دهد.


1. پیکربندی صحیح منابع سیستم:

1.1. افزایش تعداد فرآیندهای Exim (MaxChildren):

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

در فایل پیکربندی Exim (/etc/exim4/exim.conf یا مشابه آن):

daemon_smtp:
  driver = smtp
  interface = 0.0.0.0
  port = 25
  hosts_require_auth = *
  hosts_access = all : ALL : allow
  hosts_try_auth = *
  hosts_allow = 127.0.0.0/8
  hosts_deny = 0.0.0.0/0
  max_conn_per_ip = 10
  smtp_helo_name = yourdomain.com
  require_tls = no
  auth_optional = true
  hosts_require_auth = $authenticated_id
  hosts_try_auth = *
  hosts_deny = 0.0.0.0/0
  hosts_allow = 127.0.0.0/8

# Set MaxChildren to manage number of worker processes
daemon_smtp:
  driver = smtp
  max_children = 50  # تعداد فرآیندهای هم‌زمان را افزایش دهید
  • max_children مشخص می‌کند که چند فرآیند Exim می‌توانند به‌طور هم‌زمان اجرا شوند.

1.2. تنظیمات Connection Limits:

برای کاهش تعداد اتصالات هم‌زمان و جلوگیری از اتصال بیش از حد، تنظیمات محدودیت اتصال را اعمال کنید.

smtp_smtp:
  driver = smtp
  hosts_require_auth = *
  hosts_access = all : ALL : allow
  hosts_try_auth = *
  hosts_allow = 127.0.0.0/8
  hosts_deny = 0.0.0.0/0
  max_connections_per_host = 20  # تنظیم تعداد اتصال هم‌زمان

1.3. تنظیمات Queue-Related Options:

Exim می‌تواند عملیات‌هایی مانند queue batching و concurrency را برای مدیریت صف‌ها بهینه کند.

queue_min_free = 10M
queue_load_max = 20  # تنظیمات بالا رفتن از این مقدار باعث میشود Exim کار بیشتری انجام دهد.

2. تنظیمات DNS و Resolver:

2.1. رفع مشکلات DNS و Resolver:

Exim به طور مداوم به DNS برای رفع آدرس‌های ایمیل متصل می‌شود. کندی یا مشکلات DNS می‌تواند باعث تأخیر در ارسال ایمیل‌ها شود.

تنظیمات DNS Resolver در Exim:

dns_lookup_retry = 3  # تعداد دفعات بازخوانی DNS
dns_timeout = 5       # زمان انتظار برای پاسخ DNS
systemdns = true      # استفاده از DNS سیستم

2.2. Cache DNS Lookups:

Exim می‌تواند نتایج DNS را در حافظه پنهان نگه دارد تا از پرسش‌های مکرر جلوگیری شود.

dns_cache_db = /var/lib/exim4/db/dns-cache
dnsdb_proxy_require_verification = false
dnsdb = ${if and {def:domain} {def:dnslist.$domain}} dnslist.$domain

3. بهینه‌سازی Postscreen و SPF, DKIM, DMARC:

پیکربندی SPF, DKIM و DMARC به Exim کمک می‌کند تا ارسال‌های جعلی را شناسایی و متوقف کند که می‌تواند از پذیرش ایمیل‌های اسپم توسط دیگر سرورها جلوگیری کند.

3.1. تنظیم SPF, DKIM و DMARC:

این تنظیمات در Exim باید برای اعتبارسنجی ایمیل‌ها و جلوگیری از اسپم فعال شوند.

در فایل پیکربندی Exim:

begin authenticators
  auth_internal:
    driver = plaintext
    public_name = PLAIN
    client_send = : :
  
  auth_server:
    driver = plaintext
    public_name = LOGIN
    server_prompts = :Username::Password:
    server_set_id = $auth1
    server_advertise = PLAIN LOGIN
  ...
  • SPF:
acl_smtp_rcpt:
  deny
    message = Sender address rejected due to SPF failure.
    condition = ${if !spf_verify {$sender_address} {yes}{no}}
  • DKIM:
smtpd_dkim_signing = true
smtpd_dkim_domain = yourdomain.com
smtpd_dkim_keyfile = /etc/exim4/dkim.private.key
  • DMARC:
dmarc_adsp_action = accept
dmarc_strict = true
dmarc_reporting_from = postmaster@yourdomain.com
dmarc_max_policys = 5

4. بهینه‌سازی Queue Size و Limits:

4.1. Limit Queue Size:

اگر تعداد زیادی ایمیل در صف قرار بگیرند، Exim ممکن است عملکرد کندی داشته باشد.

queue_run_max = 5    # تعداد فرآیندهای ارسال ایمیل‌ها در صف
queue_load_max = 50  # حداقل استفاده از CPU برای پردازش ایمیل‌ها

4.2. Timeout‌ها را کاهش دهید:

برای کاهش تأخیر در اتصال‌ها، می‌توان زمان‌های تایم‌آوت را کاهش داد.

timeout_frozen_after = 2d  # تنظیم بازه زمانی برای حذف ایمیل‌های یخ‌زده
timeout_message = 30m      # تنظیم حداکثر زمان برای ارسال ایمیل‌ها

5. حفاظت از سرور و کاهش حملات Brute Force و Relay Attacks:

Exim باید تنظیمات امنیتی مناسب داشته باشد تا از حملات Brute Force و Relay جلوگیری کند.

smtp_deny_unauthenticated = false
smtp_auth_require_tls = true
hosts_require_auth = *
host_access = 127.0.0.1 : ALL : deny
hosts_deny = 0.0.0.0/0 : ALL : deny

جمع‌بندی:

برای بهینه‌سازی عملکرد Exim، تنظیمات مانند تعداد فرآیندهای هم‌زمان، DNS Resolver، SPF/DKIM/DMARC، و تنظیمات Queue Size را انجام دهید. این تنظیمات به کاهش تأخیرها، بهبود سرعت ارسال و کاهش حملات کمک می‌کنند. همچنین بررسی لاگ‌ها و تنظیمات امنیتی مهم مانند جلوگیری از Relay و Brute Force، نقش کلیدی در بهبود عملکرد Exim دارند.[/cdb_course_lesson][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”lecture” private_lesson=”true” title=”بهینه‌سازی Roundcube برای سرعت بالاتر و بار کمتر” subtitle=”توضیحات کامل”]برای بهینه‌سازی Roundcube جهت بهبود عملکرد، سرعت بارگذاری صفحات و کاهش بار روی سرور، می‌توان چندین اقدام تنظیمی انجام داد. در اینجا مراحلی برای بهینه‌سازی Roundcube آورده شده است:


1. پیکربندی پایگاه داده:

Roundcube به پایگاه داده برای ذخیره‌سازی تنظیمات کاربران، ایمیل‌ها و متا دیتاها نیاز دارد. بهینه‌سازی پایگاه داده می‌تواند عملکرد Roundcube را بهبود دهد.

1.1. تنظیمات پایگاه داده (MySQL/MariaDB):

در فایل کانفیگ پایگاه داده Roundcube (config/config.inc.php)، تنظیمات بهینه برای پایگاه داده را انجام دهید.

// تنظیمات پایگاه داده MySQL/MariaDB
$rcmail_config = array(
    'db_dsnw' => 'mysql://user:password@localhost/roundcubemail',
    'db_host' => 'localhost',
    'db_name' => 'roundcubemail',
    'db_user' => 'roundcube_user',
    'db_pass' => 'password',
    'db_type' => 'mysql',
    'db_charset' => 'utf8mb4',
    'db_ssl' => true,       // برای اتصال امن SSL
    'db_ssl_key' => '/path/to/client-key.pem',
    'db_ssl_cert' => '/path/to/client-cert.pem',
    'db_ssl_ca' => '/path/to/ca-cert.pem',
    'db_table_type' => 'InnoDB',  // استفاده از InnoDB برای مزایای بهینه‌سازی
);

1.2. بهینه‌سازی جداول در پایگاه داده:

بعد از تنظیم صحیح پایگاه داده، می‌توانید جداول Roundcube را بهینه‌سازی کنید.

mysql -u roundcube_user -p
USE roundcubemail;
OPTIMIZE TABLE cache;
OPTIMIZE TABLE cache_index;
OPTIMIZE TABLE sessions;
OPTIMIZE TABLE messages;
OPTIMIZE TABLE users;

2. بهینه‌سازی تنظیمات PHP:

Roundcube به زبان PHP نوشته شده است و بهینه‌سازی تنظیمات PHP می‌تواند تأثیر مستقیمی در سرعت عملکرد آن داشته باشد.

2.1. تنظیمات PHP در فایل php.ini:

memory_limit = 256M      # افزایش محدودیت حافظه برای PHP
max_execution_time = 300 # افزایش زمان مجاز برای اجرای اسکریپت‌ها
max_input_vars = 5000    # افزایش تعداد متغیرهای ورودی
post_max_size = 128M     # افزایش اندازه پست‌های دریافتی
upload_max_filesize = 64M # افزایش محدودیت بارگذاری فایل‌ها

2.2. بهینه‌سازی Opcode Cache (مانند APCu یا OPCache):

برای کاهش بارگذاری مجدد فایل‌ها و بهبود سرعت بارگذاری صفحات، از یک حافظه پنهان Opcode استفاده کنید.

sudo apt install php-apcu   # نصب APCu
sudo systemctl restart php-fpm  # ری‌استارت PHP-FPM

3. تغییر تنظیمات Caching:

Caching در Roundcube می‌تواند بار سرور را کاهش داده و سرعت بارگذاری صفحات را بهبود بخشد.

3.1. فعال‌سازی Caching در Roundcube:

در فایل config/config.inc.php:

$rcmail_config = array(
    'temp_dir' => '/path/to/temp',       // پوشه موقت برای ذخیره‌سازی داده‌ها
    'db_cache' => true,                   // فعال‌سازی کش پایگاه داده
    'cache_lifetime' => 3600,             // مدت زمان اعتبار کش‌ها (1 ساعت)
    'cache_dir' => '/path/to/cache',     // مسیر ذخیره‌سازی کش‌ها
);

3.2. کش محتوای استاتیک:

Roundcube منابع استاتیک مثل تصاویر و CSS را کش کند تا کاهش بار روی سرور داشته باشد.

$rcmail_config['skin'] = 'larry';   // برای ذخیره‌سازی استاتیک
$rcmail_config['styles'] = true;    // فعال‌سازی کش استایل‌ها

4. پیکربندی سرویس وب‌سرور (Apache یا Nginx):

پیکربندی درست سرویس وب‌سرور می‌تواند تأثیر زیادی در بهینه‌سازی Roundcube داشته باشد.

4.1. پیکربندی Apache:

در فایل apache2.conf یا httpd.conf تنظیمات زیر را اعمال کنید:

<Directory /path/to/roundcube>
    Options FollowSymlinks
    AllowOverride All
    Require all granted
</Directory>

# Cache تنظیمات برای Static File
<FilesMatch "\.(css|js|gif|jpe?g|png|ico|swf)$">
    ExpiresActive On
    ExpiresDefault "access plus 1 year"
    CacheControl "max-age=31536000, public"
    Header set Cache-Control "max-age=31536000, public"
</FilesMatch>

4.2. پیکربندی Nginx:

در فایل nginx.conf یا sites-available/default تنظیمات زیر را اضافه کنید:

location /roundcube {
    alias /path/to/roundcube/;
    expires max;
    access_log off;
    gzip on;
}

5. حذف افزونه‌های اضافی و بهینه‌سازی پلاگین‌ها:

افزونه‌های اضافی ممکن است باعث کاهش سرعت بارگذاری Roundcube شوند. افزونه‌های مورد نیاز را بررسی و نصب کنید.

$rcmail_config['plugins'] = array('archive', 'managesieve', 'zipdownload'); // حذف افزونه‌های اضافی

6. فعال‌سازی Gzip برای بارگذاری صفحات:

فعال‌سازی Gzip در وب‌سرور باعث فشرده‌سازی و بهبود سرعت بارگذاری صفحات می‌شود.

sudo a2enmod deflate
sudo systemctl restart apache2

جمع‌بندی:

بهینه‌سازی Roundcube شامل تنظیمات پایگاه داده، تنظیمات PHP، کشینگ مناسب، پیکربندی وب‌سرور و حذف افزونه‌های اضافی است. با این اقدامات، می‌توان عملکرد Roundcube را بهبود داد و سرعت بارگذاری صفحات و کاهش بار سرور را تجربه کرد.

[/cdb_course_lesson][/cdb_course_lessons]

[cdb_course_lessons title=”پاسخ به سوالات فنی کاربران”][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”free” title=”پشتیبانی دائمی و در لحظه” subtitle=”توضیحات کامل”]ما در این دوره تمام تلاش خود را کرده‌ایم تا محتوایی جامع و کاربردی ارائه دهیم که شما را برای ورود به دنیای حرفه‌ای آماده کند. اما اگر در طول دوره یا پس از آن با سوالات فنی، چالش‌ها یا حتی مشکلاتی در اجرای مطالب آموزشی مواجه شدید، نگران نباشید!

  1. پرسش‌های شما، بخش مهمی از دوره است:
    هر سوال یا مشکلی که مطرح کنید، با دقت بررسی شده و پاسخ کامل و کاربردی برای آن ارائه می‌شود. علاوه بر این، سوالات و پاسخ‌های شما به دوره اضافه خواهند شد تا برای سایر کاربران نیز مفید باشد.
  2. پشتیبانی دائمی و در لحظه:
    تیم ما همواره آماده پاسخگویی به سوالات شماست. هدف ما این است که شما با خیالی آسوده بتوانید مهارت‌های خود را به کار بگیرید و پروژه‌های واقعی را با اعتماد به نفس کامل انجام دهید.
  3. آپدیت دائمی دوره:
    این دوره به طور مداوم به‌روزرسانی می‌شود تا همگام با نیازهای جدید و سوالات کاربران تکمیل‌تر و بهتر گردد. هر نکته جدید یا مشکل رایج، در نسخه‌های بعدی دوره قرار خواهد گرفت.

حرف آخر

با ما همراه باشید تا نه تنها به مشکلات شما پاسخ دهیم، بلکه در مسیر یادگیری و پیشرفت حرفه‌ای، شما را پشتیبانی کنیم. هدف ما این است که شما به یک متخصص حرفه‌ای و قابل‌اعتماد تبدیل شوید و بتوانید با اطمینان پروژه‌های واقعی را بپذیرید و انجام دهید.

📩 اگر سوالی دارید یا به مشکلی برخوردید، همین حالا مطرح کنید!
ما در کوتاه‌ترین زمان ممکن پاسخ شما را ارائه خواهیم داد. 🙌[/cdb_course_lesson][/cdb_course_lessons]

نقد و بررسی ها

نقد و بررسی وجود ندارد.

فقط مشتریانی که وارد سیستم شده اند و این محصول را خریداری کرده اند می توانند نظر بدهند.

سبد خرید

سبد خرید شما خالی است.

ورود به سایت