recent
أخبار ساخنة

شرح تثبيت خادم بريد إلكتروني باستخدام ISPConfig على Debian 10 .... بالخطوات

الصفحة الرئيسية
شرح تثبيت خادم بريد إلكتروني باستخدام ISPConfig على Debian 10 .... بالخطوات



سنشرح هنا تثبيت ISPConfig 3.1 على Debian 10.0.
الغرض من هذا الشرح هو إظهار الخطوات بعد تثبيت الخادم لإعداد نظام بريد خاص بك اسم النطاق (domain).

المطلوب

استخدام هذا البرنامج بنجاح يحتاج إلى:
مضيف (host) حيث تقوم بتثبيت ISPConfig.
ذاكرة 2 جيجابايت مع 4 جيجابايت swap.
يجب أن يكون لدى الـ host اتصال بالإنترنت مع فتح المنفذ 25 في كلا الاتجاهين.
الـ host لديه عنوان IP ثابت.
يجب أن يمتلك المضيف A record لعنوان IP الخاص به (أو AAAA في حالة استخدام IPv6).
يجب عليك إنشاء MX record لخدمة اسم DNS للـ host.
PTR record  لخدمة اسم DNS العكسي الذي يتطابق مع hosts FQDN.

متطلبات الذاكرة لمرشحات الـ SPAM. 
مكنك الحصول على ذاكرة 1 جيجا بايت حتى مع تشغيل مرشحات  الـ SPAM إذا كان هناك 4 جيجا بايت swap لتجنب حالات نفاد الذاكرة.

فتح الـ ports

يجب أن يحتوي خادم البريد على المنفذ 25 مفتوحًا للبريد الوارد والصادر.
تأكد من أن مضيفك لديه هذا المنفذ مفتوحًا قبل إعداد خادم البريد الإلكتروني على ذلك المضيف.

هناك طرق للحصول على البريد الإلكتروني العمل حتى عندما منفذ 25 ليست مفتوحة لكنها تنطوي على ارسال رسائل البريد الإلكتروني من خلال مضيف آخر لديه منفذ 25 مفتوح.

قد يكون من المنطقي تثبيت خادم البريد الإلكتروني على ذلك المضيف الآخر ونسيان الأول تمامًا فيما يتعلق بالبريد الإلكتروني.



The MX record is created for the e-mail domain. So I create it for taleman.ovh, and it points to posti.taleman.ovh, the e-mail server that receives e-mail for that domain.

إعدادات خدمة الـ DNS

يحتاج خادم البريد إلى FQDN.
في هذا الشرح سنستخدم اسم المجال (domain) هو taleman.ovh.
لتوضيح أن اسم مضيف خادم البريد لا يلزم أن يكون بريدًا  فإننا نستخدم posti كاسم مضيف. لذا فإن FQDN هو posti.taleman.ovh.
تم تثبيت هذا المضيف على نظام مزودي الخدمة (ISP).

وعنوان IP هو 178.33.154.66.


تسجيل نطاق taleman.ovh
إضافة عنوان IP هذا كـ A record في الـ  DNS بالاسم posti.taleman.ovh.

إضافة MX record للمجال taleman.ovh بالقيمة posti.taleman.ovh.

إضافة PTR record للـ  IP  مشيرًا إلى posti.taleman.ovh.

تم إنشاء MX record لمجال (domain) البريد الإلكتروني.
لذلك قمنا بإنشائه لـ taleman.ovh ويشير إلى posti.taleman.ovh ، خادم البريد الإلكتروني الذي يستقبل البريد الإلكتروني لهذا المجال.


خدمة الاسم العكسي (Reverse name)
في هذا المثال يجب أن تقوم خدمة الاسم العكسي بإرجاع posti.taleman.ovh.


اختبار الاعدادات
من الأفضل اختبار خدمة الـ DNS نظرًا لأن إرسال رسائل البريد الإلكتروني واستلامها لن يعمل إذا لم يتم إعداد الـ DNS بشكل صحيح.
 إذا كنت تستخدم Windows للاختبار بدلاً من Linux أو Unix  فاستخدم الأمر nslookup بدلاً من host.

$ host taleman.ovh
 taleman.ovh has address 188.165.143.5
 taleman.ovh mail is handled by 10 posti.taleman.ovh.

هذه النتيجة تبين أن اسم المجال يملك رقم IP مرتبط وهناك سجل MX يشير إلى posti.taleman.ovh.
 يأتي الجزء handled by من سجل MX.
سجل MX هذا ضروري إذا تم استلام البريد الإلكتروني المرسل إلى عناوين taleman.ovh@ على posti.taleman.ovh.


تحقق من  FQDN (في هذه الحالة posti.taleman.fi) هو A record ويشير إلى رقم الـ  IP الصحيح.

$ dig posti.taleman.ovh |grep "ANSWER SECTION" --after-context=3 
;; ANSWER SECTION:
 posti.taleman.ovh. 3600 IN A 178.33.154.66 
;; Query time: 56 msec

أخيرًا تحقق من خدمة الاسم العكسي التي ترجع رقم IP مرة أخرى إلى FQDN لخادم البريد.


$ host 178.33.154.66
 66.154.33.178.in-addr.arpa domain name pointer posti.taleman.ovh.

بدلاً من الأمرين host  و dig  يمكنك استخدام صفحات الويب التي تختبر خدمة الاسم. مثل  inDNS و MXToolbox .

تثبيت نظام التشغيل

سنستخدم Debian الإصدار 10 Buster.
اتبع هذه الخطوات:


استبدل رقم IP واسم المضيف (hostname) واسم domain  بالأرقام الخاصة بك.


root@posti:/tmp# cat /etc/debian_version 10.0
root@posti:~# locale
 LANG=en_GB.UTF-8
 LANGUAGE=en_GB:en
 LC_CTYPE="en_GB.UTF-8"
 LC_NUMERIC="en_GB.UTF-8"
 LC_TIME="en_GB.UTF-8"
 LC_COLLATE="en_GB.UTF-8"
 LC_MONETARY="en_GB.UTF-8"
 LC_MESSAGES="en_GB.UTF-8"
 LC_PAPER="en_GB.UTF-8"
 LC_NAME="en_GB.UTF-8"
 LC_ADDRESS="en_GB.UTF-8"
 LC_TELEPHONE="en_GB.UTF-8"
 LC_MEASUREMENT="en_GB.UTF-8"
 LC_IDENTIFICATION="en_GB.UTF-8"
 LC_ALL=
 root@posti:~# cat /etc/timezone
 Europe/Helsinki

التحقق من إعدادات hostname
إعداد نظام البريد ISPConfig لن يعمل إذا كان hostname  خاطئًا.

root@posti:~# hostname posti
 root@posti:~# hostname -f posti.taleman.ovh
 root@posti:~#


I installed openssh-server on the host and set up root login using ssh key, so I can ssh to the host as root directly. Passwordless logins with OpenSSH or Secure Passwordless Logins with SSH.

تثبيت ISPConfig

سنستخدم Apache كـ web server.

opensh-server  مثبت على الـ host  وتم إعداد تسجيل الدخول إلى root باستخدام ssh.

root@posti:/tmp# free -h





انتبه إلى hostname و FQDN  إذا قمت بخطأ فسوف تكتشف في النهاية أن خادم البريد الإلكتروني الخاص بك لا يعمل.

يمكن إصلاح الخطأ لكن من الأسهل تصحيحه من البداية.

root@posti:/tmp# hostname
 posti
 root@posti:/tmp# hostname -f
 posti.taleman.ovh


لم أقم بتثبيت Mailman  وقد حذفت تثبيت BIND DNS Server و Webalizer و AWStats.

لقد قمت بتثبيت Roundcube Webmail.



استخدام النظام
إنشاء مجال (domain) البريد الإلكتروني وصناديق البريد (mailboxes).
قم  بتسجيل الدخول كـ admin إلى ISPConfig.

إضافة عميل جديد.
أضف مجالًا جديدًا (مجال بريد إلكتروني).
أضف صندوق بريد جديد.






انتظر لمدة دقيقتين أو حتى تختفي الكرة الحمراء ذات الرقم الموجود في الجزء العلوي من لوحة ISPConfig.

كاختبار أول قم بتسجيل الدخول إلى Roundcube Webmail باستخدام صندوق البريد الذي تم إنشاؤه أعلاه وإرسال بريد إلكتروني إلى نفس العنوان.




يرسل ISPConfig رسالة ترحيب إلى كل صندوق بريد تم إنشاؤه ، لذلك يجب أن تكون هناك رسالة واحدة بالفعل.
استخدم زر إنشاء واكتب رسالة اختبار قصيرة.



يجب أن تظهر الرسالة في صندوق البريد.

ثم اختبر إرسال بريد إلكتروني إلى صندوق بريد آخر لديك ويمكنك التحقق مما إذا كان البريد يصل إلى هناك.
الاختبار التالي يمكنك إرساله من مكان آخر إلى صندوق البريد الذي تم إنشاؤه أعلاه.

لاحظ أنه إذا قمت بتمكين Greylisting لصندوق البريد فإن البريد الإلكتروني المرسل من خارج الخادم الخاص بك لا يصل على الفور إلى صندوق البريد.
مع ذلك يجب أن ترى إدخالات سجل البريد لمحاولة التسليم على الفور حتى ترى أن البريد يمكن أن يصل إلى الخادم الخاص بك.
 يبدو إدخال Greylisting في الملف /var/log/mail.log شيئًا كالتالي:

Aug 29 19:08:42 posti postfix/smtpd[16911]: NOQUEUE: reject: 
  RCPT from mta-out1.inet.fi[62.71.2.194]: 450 4.2.0 
  <tapio@taleman.ovh>: Recipient address rejected: Greylisted, 
  see http://postgrey.schweikert.ch/help/taleman.ovh.html; 
  from=<****@*****.***> to=<tapio@taleman.ovh> proto=ESMTP 
  helo=<******.****.***>

يمكنك مراقبة سجل البريد في نافذة طرفية مثل هذه على سبيل المثال:

tail -f /var/log/mail.log

أو باستخدام هذه الأوامرإذا كنت مهتمًا فقط بإدخالات Greylisting:

tail -f /var/log/mail.log | grep Greylisted

أو

grep Greylisted /var/log/mail.log


يؤدي وضع Greylisting إلى تأخير البريد الإلكتروني الأول فقط من المرسل نفسه إلى نفس المستلم.
بمجرد استلام البريد الإلكتروني الأول تصل رسائل البريد الإلكتروني التالية دون تأخير إضافي.


ربط عميل البريد الإلكتروني (e-mail client)

استخدام Thunderbird كمثال لعميل البريد.
تعمل تطبيقات عميل البريد الأخرى بطريقة مماثلة.

 ISPConfig يستخدم اسم الحساب هو نفسه  كعنوان للبريد الإلكتروني.






أمان الاتصال STARTTLS تعني أن الاتصال يبدأ بدون حماية ثم يتحول إلى التشفير إذا كان كلا الطرفين يدعمان التشفير.
SSL / TSL تعني أن الجلسة مشفرة من البداية.
من المحتمل أن يكون SSL / TSL أكثر أمانًا قليلاً  لذا حاول أن يعمل عميلك مع ذلك.



استخدام SPF

في الأصل كان SPF يشير إلى المرسل المسموح به منه  وهو أمر جميل أن نتذكر ما يعنيه.
بعد القراءة عن نظام التعرف على هوية المرسل (SPF) يمكنك إنشاء السجل بنفسك والتحقق مما إذا كان مزود خدمة الاسم الخاص بك يمكنه إنشاء SPF record أو استخدام محركات البحث على الإنترنت مع

SPF wizard


ابحث عن موقع ويب يقوم بإنشاء SPF record لك.
ثم نسخ ولصق السجل الـ DNS الخاص بك.
 أضف TXT record أو ربما أضف SPF record في بعض أنظمة DNS.

تحقق من شكل SPF مثل هذه


$ dig taleman.ovh -t TXT | grep spf
 taleman.ovh. 3000 IN TXT "v=spf1 mx ~all"

أو هكذا

$ dig +short taleman.ovh TXT
 "v=spf1 mx ~all"
 "1|www.taleman.ovh"


استخدام DKIM

ISPConfig ينشأ مفاتيح DKIM لك عند إنشاء مجال بريد إلكتروني (إذا كنت تذكر تحديد مربع DKIM).
انسخ والصق DNS-Record الذي يعد المفتاح العام (public key) كـ TXT record.
 قد يقدم موفر الخدمة الذي أداة لتسهيل إنشاء سجل DKIM.
حافظ على سرية مفتاح DKIM الخاص.

تحقق من شكل DKIM مثل هذا:

$ host -t txt default._domainkey.taleman.ovh.
 default._domainkey.taleman.ovh descriptive text "v=DKIM1;h=sha256;s=*;p=MIIB(I cut long string shorter)0rp" "sTGLXyK(cut shorter)B;t=s;"


إذا كان ISPConfig هو الذي أنشأ مفاتيح DKIM فسيتم نسخ private key إلى المكان الصحيح في إعدادات amavis.

هناك موقع ويب mail-tester.com مفيد للتحقق من عمل نظام التعرف على هوية المرسل (SPF) و DKIM.
انتقل إلى موقع الويب هذا فهو يعطي عنوان بريد إلكتروني وتقوم بإرسال بريد إلكتروني من الخادم الخاص بك. ثم انتظر دقيقة وتحقق من الموقع مرة أخرى.

 إنشاء الـ certificates

يمكن لـ ISPConfig إنشاء self signed certificates يتم إنشاؤها أثناء تثبيت ISPConfig إلا إذا اخترت عدم الإنشاء.
 حتى إذا قمت بإنشاء تلك certificates فمن الأفضل إنشاء certificates مناسبة تثق بها مستعرضات الانترنت وبرامج البريد الإلكتروني وخوادم البريد الإلكتروني الأخرى.


لاحظ أن موقع الويب الذي تم إنشاؤه أظهر صفحة ويب افتراضية لـ Debian حتى أنشأت LE certificate للموقع.
عند إعداد certificates أدخل عنوان https للخادم في المستعرض.
 يؤدي النقر فوق الرمز الموجود على يسار شريط عنوان المتصفح باستخدام زر الماوس الآخر إلى إظهار معلومات حول الشهادة.

انتقل إلى علامة التبويب ISPConfig Panel System وعلامة التبويب Interface Main Config and Mail هناك مجموعة

Use SSL/TLS encrypted connection for SMTP

Further testing of certificate is possible with tools on websites, use Internet Search Engines with
من الممكن إجراء مزيد من الاختبارات للشهادة باستخدام الأدوات الموجودة على مواقع الويب، واستخدام محركات البحث عبر الإنترنت

ssl testing

ككلمات بحث عادةً ما تختبر هذه الأدوات موقع الويب عند اختبار الشهادات التي يمتلكها خادم البريد الإلكتروني ابحث باستخدام:

ssl testing mail server



ISPConfig Roundcube Plugins

هذه المكونات الإضافية مفيدة لمستخدمي بريد الويب.
أنها تسمح بتغيير كلمة مرور البريد الإلكتروني في Roundcube على سبيل المثال.
يمكن أيضًا تعديل بعض الإعدادات الأخرى في Roundcube.
يمكن تعديلها جميعًا في لوحة ISPConfig ولكن قد لا يرغب بعض مستخدمي البريد الإلكتروني في استخدام اللوحة.

استخدامات اخرى

يمكنك الآن إنشاء مجال بريد إلكتروني آخر.
تذكر إنشاء سجل MX لهذا المجال ، وتوجيهه إلى خادم البريد الإلكتروني الخاص بك.
يمكنك استخدام نفس خادم البريد الإلكتروني لجميع مجالات البريد الإلكتروني التي تقوم بإنشائها.
هذه هي الطريقة التي يتم بها ذلك عادةً حيث سيكون إنشاء خادم بريد إلكتروني منفصل لكل مجال بريد إلكتروني مضيعة تمامًا.

استكشاف الأخطاء وإصلاحها

 يعمل خادم البريد الإلكتروني الذي تم إعداده حديثًا.
إذا لم يعمل برنامجك فتحقق من اتباعك لهذا الشرح وعدم تخطي بعض الخطوات.

إذا كنت تشك في وجود مشكلات في خدمة اسم DNS هناك أدوات موقع ويب تتحقق من DNS ، مثل intodns.com و dnschecker.com و mxtoolbox.com.

إذا لم يتم استلام رسائل البريد الإلكتروني أو عدم إرسالها فإن postfix هو الذي يقوم بهذه الوظائف ويتم تسجيلها في /var/log/mail.log.



tail -f /var/log/mail.log | grep postfix to see what happens when mail is being received or sent.

إذا كنت تواجه مشكلات في الاتصال بعميل البريد الإلكتروني (Thunderbird على سبيل المثال) فاستخدم هذا لمعرفة ما سيحدث:

tail -f /var/log/mail.log | grep dovecot

في حالة وجود مشكلة في بريد إلكتروني معين يمكنك العثور على إدخالات سجل البريد باستخدام معرف هذا البريد الإلكتروني. فمثلا:

Sep 23 14:19:34 posti postfix/smtps/smtpd[10260]: A9F2880C76:
client=dsl-tkubng21-58c1ce-191.dhcp.inet.fi[99.99.99.99],
sasl_method=PLAIN, sasl_username=tapio@taleman.ovh

المعرف الخاص (ID) بهذا البريد الإلكتروني هو A9F2880C76.
يمكنك العثور على إدخالات السجل لهذا البريد الإلكتروني باستخدام

# grep A9F2880C76 /var/log/mail.log

Command mailq shows e-mails that are in postfix deferred queue. That is, those e-mails that are not yet delivered. It is normal to have some recent entries there, e-mails can not always be delivered immediately. You can see contents of those emails using the Queue ID, like so:
يُظهر الأمر mailq رسائل البريد الإلكتروني الموجودة في قائمة انتظار مؤجلة postfix.
أي رسائل البريد الإلكتروني التي لم يتم تسليمها بعد.
من الطبيعي أن يكون لديك بعض الإدخالات الحديثة هناك ولا يمكن دائمًا تسليم رسائل البريد الإلكتروني على الفور.
يمكنك رؤية محتويات رسائل البريد الإلكتروني هذه باستخدام معرف قائمة الانتظار، مثل:

# postcat /var/spool/postfix/deferred/A/A9F2880C76
google-playkhamsatmostaqltradent