اذهب إلى المحتوى

البحث في الموقع

المحتوى عن 'postfix'.

  • ابحث بالكلمات المفتاحية

    أضف وسومًا وافصل بينها بفواصل ","
  • ابحث باسم الكاتب

نوع المحتوى


التصنيفات

  • الإدارة والقيادة
  • التخطيط وسير العمل
  • التمويل
  • فريق العمل
  • دراسة حالات
  • التعامل مع العملاء
  • التعهيد الخارجي
  • السلوك التنظيمي في المؤسسات
  • عالم الأعمال
  • التجارة والتجارة الإلكترونية
  • نصائح وإرشادات
  • مقالات ريادة أعمال عامة

التصنيفات

  • مقالات برمجة عامة
  • مقالات برمجة متقدمة
  • PHP
    • Laravel
    • ووردبريس
  • جافاسكربت
    • لغة TypeScript
    • Node.js
    • React
    • Vue.js
    • Angular
    • jQuery
    • Cordova
  • HTML
  • CSS
    • Sass
    • إطار عمل Bootstrap
  • SQL
  • لغة C#‎
    • ‎.NET
    • منصة Xamarin
  • لغة C++‎
  • لغة C
  • بايثون
    • Flask
    • Django
  • لغة روبي
    • إطار العمل Ruby on Rails
  • لغة Go
  • لغة جافا
  • لغة Kotlin
  • لغة Rust
  • برمجة أندرويد
  • لغة R
  • الذكاء الاصطناعي
  • صناعة الألعاب
  • سير العمل
    • Git
  • الأنظمة والأنظمة المدمجة

التصنيفات

  • تصميم تجربة المستخدم UX
  • تصميم واجهة المستخدم UI
  • الرسوميات
    • إنكسكيب
    • أدوبي إليستريتور
  • التصميم الجرافيكي
    • أدوبي فوتوشوب
    • أدوبي إن ديزاين
    • جيمب GIMP
    • كريتا Krita
  • التصميم ثلاثي الأبعاد
    • 3Ds Max
    • Blender
  • نصائح وإرشادات
  • مقالات تصميم عامة

التصنيفات

  • مقالات DevOps عامة
  • خوادم
    • الويب HTTP
    • البريد الإلكتروني
    • قواعد البيانات
    • DNS
    • Samba
  • الحوسبة السحابية
    • Docker
  • إدارة الإعدادات والنشر
    • Chef
    • Puppet
    • Ansible
  • لينكس
    • ريدهات (Red Hat)
  • خواديم ويندوز
  • FreeBSD
  • حماية
    • الجدران النارية
    • VPN
    • SSH
  • شبكات
    • سيسكو (Cisco)

التصنيفات

  • التسويق بالأداء
    • أدوات تحليل الزوار
  • تهيئة محركات البحث SEO
  • الشبكات الاجتماعية
  • التسويق بالبريد الالكتروني
  • التسويق الضمني
  • استسراع النمو
  • المبيعات
  • تجارب ونصائح
  • مبادئ علم التسويق

التصنيفات

  • مقالات عمل حر عامة
  • إدارة مالية
  • الإنتاجية
  • تجارب
  • مشاريع جانبية
  • التعامل مع العملاء
  • الحفاظ على الصحة
  • التسويق الذاتي
  • العمل الحر المهني
    • العمل بالترجمة
    • العمل كمساعد افتراضي
    • العمل بكتابة المحتوى

التصنيفات

  • الإنتاجية وسير العمل
    • مايكروسوفت أوفيس
    • ليبر أوفيس
    • جوجل درايف
    • شيربوينت
    • Evernote
    • Trello
  • تطبيقات الويب
    • ووردبريس
    • ماجنتو
    • بريستاشوب
    • أوبن كارت
    • دروبال
  • الترجمة بمساعدة الحاسوب
    • omegaT
    • memoQ
    • Trados
    • Memsource
  • برامج تخطيط موارد المؤسسات ERP
    • تطبيقات أودو odoo
  • أنظمة تشغيل الحواسيب والهواتف
    • ويندوز
    • لينكس
  • مقالات عامة

التصنيفات

  • آخر التحديثات

أسئلة وأجوبة

  • الأقسام
    • أسئلة البرمجة
    • أسئلة ريادة الأعمال
    • أسئلة العمل الحر
    • أسئلة التسويق والمبيعات
    • أسئلة التصميم
    • أسئلة DevOps
    • أسئلة البرامج والتطبيقات

التصنيفات

  • كتب ريادة الأعمال
  • كتب العمل الحر
  • كتب تسويق ومبيعات
  • كتب برمجة
  • كتب تصميم
  • كتب DevOps

ابحث في

ابحث عن


تاريخ الإنشاء

  • بداية

    نهاية


آخر تحديث

  • بداية

    نهاية


رشح النتائج حسب

تاريخ الانضمام

  • بداية

    نهاية


المجموعة


النبذة الشخصية

تم العثور على 5 نتائج

  1. الآن وبعد أن قررت الانتقال إلى خادوم خاص (أو VPS) وأطلقت تطبيق الويب الذي عملت عليه لأسابيع طويلة، وصلت إلى مرحلة تحتاج فيها إلى استقبال رسائل بريد إلكتروني، لكنك لا ترغب في أن تنشر عنوانك على Gmail أو Yahoo بل تود أن تستخدم عنوان بريد إلكتروني "احترافي" يحتوي اسم النطاق الخاص بك على شاكلة myname@mydomain.com. الحل يكمن في تنصيب خادوم بريد إلكتروني، أو استخدام عميل تمرير البريد الإلكتروني يقوم باستقبال، توصيل وإعادة توجيه رسائل البريد الإلكتروني. تنصيب خادوم بريد إلكتروني كامل باستخدام postfix يتطلب الكثير من الجهد والوقت، وحتى ولو قمت بذلك فإنك لن تحصل على تجربة مُستخدم مُماثلة لتلك التي ألفتها على خدمات البريد الإلكتروني الشهيرة كخدمة Gmail. بإمكانك الجمع ما بين الأمرين (أي استقبال رسائل مُرسلة إليك عبر اسم نطاق موقعك والحصول على تجربة مُستخدم Gmail) عبر استخدام خدمة Google apps مدفوعة الأجر مثلا، لكن بإمكانك أيضا القيام بذلك عبر استقبال الرسائل عبر postfix وتمريرها إلى بريدك الإلكتروني المُفضل. سنقوم في هذا المقال باستعراض الخُطوات اللازمة للقيام بذلك على خواديم Ubuntu / Debian. قم بالتعديل حسبما يُناسبك إن كنت تستخدم توزيعة مُختلفة. تنصيب Postfix تنصيب Postifx سهل وبسيط، حيث يكفي تنفيذ الأمر التالي: $ sudo apt-get install postfix سيتم طرح بعض الأسئلة عليك لدى تنصيب التطبيق، قم بالإجابة عنها وفق ما يتناسب مع مُتطلباتك وبُمجرد أن يتم الفراغ من التنصيب سيتم تشغيل خادوم البريد الإلكتروني بشكل آلي. $ sudo service postfix status * postfix is running بإمكانك التحقق من أن Postix يستمع للمنفذ 25 باستخدام أمر netstat $ sudo netstat -ltnp | grep 25 tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1926/master tcp6 0 0 ::1:25 :::* LISTEN 1926/master العمود الأخير يُظهر pid الخاص بـ postfix تحقق من DNS الخاص باسم النطاق الخاص بك قبل أن نقوم بإعداد Postfix لتمرير الرسائل التي يتم إرسالها إلى اسم النطاق المعني بالأمر يجب أولا أن نتحقق من أن سجلات MX مُوجهة إلى الخادوم المُناسب. بإمكاننا القيام بذلك باستخدام الأمر dig على النحو التالي: $ dig binarytides.com mx ; <<>> DiG 9.9.3-rpz2+rl.13214.22-P2-Ubuntu-1:9.9.3.dfsg.P2-4ubuntu1.1 <<>> binarytides.com mx ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7230 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;binarytides.com. IN MX ;; ANSWER SECTION: binarytides.com. 85100 IN MX 10 mail.binarytides.com. ;; Query time: 74 msec ;; SERVER: 127.0.1.1#53(127.0.1.1) ;; WHEN: Fri Mar 28 08:59:17 IST 2014 ;; MSG SIZE rcvd: 65 مثلما تُلاحظه في قسم 'ANSWER SECTION' فإن mail.binarytides.com هو خادوم البريد الإلكتروني الخاص باسم النطاق binarytides.com. الآن يجب أن نتحقق من سجلات a الخاص بـ mail.binarytides.com والتي يجب أن تُظهر أن عنوان الـ IP صحيح $ dig mail.binarytides.com a ; <<>> DiG 9.9.3-rpz2+rl.13214.22-P2-Ubuntu-1:9.9.3.dfsg.P2-4ubuntu1.1 <<>> mail.binarytides.com a ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43356 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;mail.binarytides.com. IN A ;; ANSWER SECTION: mail.binarytides.com. 85045 IN A 173.255.230.5 ;; Query time: 30 msec ;; SERVER: 127.0.1.1#53(127.0.1.1) ;; WHEN: Fri Mar 28 09:00:19 IST 2014 ;; MSG SIZE rcvd: 65 إعداد Postfix لتحويل رسائل البريد الإلكتروني لتحويل الرسائل التي نستقبلها يجب أولا أن نعرف مسار مُجلد الإعدادات باستخدام الأمر postconf $ postconf | grep config_directory config_directory = /etc/postfix ومن ثم نقوم بتحرير ملف الإعدادات main.cf /etc/postfix/main.cf وإضافة السطرين التاليين: virtual_alias_domains = mydomain.com myanotherdomain.com virtual_alias_maps = hash:/etc/postfix/virtual في السطر الأول نقوم بتحديد كافة النطاقات التي نرغب في أن يقوم postfix باستقبال الرسائل المُرسلة إليها. يجب الفصل ما بين كل اسم نطاق وآخر بمسافة. أما السطر الثاني virtual_alias_mapsفيُبين الملف الذي يحتوي آلية الربط ما بين العناوين المُستقبلة والعناوين المُمرر إليها. الآن يكفي أن تقوم بفتح ملف /etc/postfix/virtual (أو إنشائه إن لم يكن موجودا) وإضافة العناوين التي ترغب فيها على النحو التالي: # تمرير رسائل عنوانين contact@mydomain.com myself@gmail.com sales@mydomain.com myself@gmail.com العنوان الأول في كل سطر هو عنوان الاستقبال والعنوان الثاني هو العنوان الذي سيتم تحويل الرسائل إليه. بإمكان تحويل نفس الرسالة إلى أكثر من عنوان في نفس الوقت على النحو التالي: contact@mydomain.com myself@gmail.com mystaff@gmail.com كما أنه بإمكانك تحويل جميع الرسائل المُرسلة إلى اسم نطاق مُعين: # تحويل جميع الرسائل @mydomain.com myself@gmail.com mystaff@gmail.com بعد الفراغ من إضافة جميع العناوين، احفظ الملف وقم بتنفيذ الأمر التالي لأخذها في الحسبان (تحديث جدول lookup الخاص بـ postfix) $ postmap /etc/postfix/virtual ثم إعادة تحميل إعدادات postfix $ sudo service postfix reload بإمكانك التحقق من أنك قمت بإضافة العناوين بشكل صحيح بتنفيذ الأمر التالي: $ postconf -n | grep virtual virtual_alias_domains = mydomain.com myanotherdomain.com virtual_alias_maps = hash:/etc/postfix/virtual أرسل رسالة تجريبية الآن قم بإرسال رسالة إلى هذه العناوين الجديدة وتحقق من وصولها إلى عناوين التمرير التي اخترتها لا تنس أن تقوم بإعداد Gmail (أو أية خدمة بريد أخرى) لتُرسل الرسائل باستخدام اسم النطاق الخاص بك (ستجد ذلك في إعدادات الخدمة)، وحينها سيكون لديك بريد إلكتروني "احترافي" من دون أن تدفع سنتا إضافيا. ترجمة -وبتصرف- للمقال: Setup mail forwarding in postfix on Ubuntu or Debia
  2. Postfix هو وكيل نقل البريد مفتوح المصدر (MTA) الذي يمكن استخدامه لتوجيه وتسليم البريد الإلكتروني على نظام Linux، وتشير التقديرات إلى أن حوالي 25 ٪ من خوادم البريد العام على الإنترنت تعمل على تشغيل Postfix. في هذا المقال، سنعلمك كيفية تثبيت Postfix وتشغيله بسرعة على خادم يعمل بنظام تشغيل أوبنتو 18.04. المتطلبات الأساسية من أجل تطبيق هذا المقال، يجب أن يكون لديك حق الوصول كمستخدم غير جذري (non-root) يملك صلاحيات sudo، للتعرف على كيفية إعداد ذلك يمكنك اتباع دليل الإعداد الأولي لخادم اوبنتو18.04 لإنشاء المستخدم. لإعداد Postfix بشكل صحيح، ستحتاج إلى اسم نطاق (Domain Name) مؤهل بالكامل يتم توجيهه إلى خادم اوبنتو 18.04، يمكنك العثور على مساعدة في إعداد اسم النطاق (Domain Name) الخاص بك باستخدام DigitalOcean باتباع هذا المقال، إذا كنت تخطط لقبول البريد، فستحتاج إلى التأكد من أن لديك سجل MX يشير إلى خادم البريد الخاص بك. لأغراض هذا المقال التعليمي، سنفترض أنك تقوم بإعداد الحاسوب المضيف له FQDN الخاص بـ mail.example.com. الخطوة الأولى: تثبيت Postfix يوجد Postfix في متجر أوبنتو الافتراضي، لذلك تثبيته بسيط. ابدأ أولًا تحديث ذاكرة التخزين المؤقت لحزمة apt الخاصة بك ثم قم بتثبيت البرنامج، سنقوم بتمرير DEBIAN_PRIORITY=low كمتغير في أمر التثبيت الخاص بنا للرد على بعض المتطلبات الإضافية: $ sudo apt update $ sudo DEBIAN_PRIORITY=low apt install postfix استخدم المعلومات التالية لملء المطلوب بشكل صحيح للبيئة الخاصة بك: النوع العام من إعدادات البريد (General type of mail configuration): سنختار موقع إنترنت لأن هذا يتناسب مع احتياجات البنية الأساسية لدينا. اسم نظام البريد (System mail name): هذا هو المجال الأساسي للمستخدم من أجل إنشاء عنوان بريد إلكتروني صحيح عند تقديم جزء من عنوان الحساب العنوان الحساب فقط على سبيل المثال، اسم hostname هو mail.example.com لكن ربما نرغب في تعيين اسم بريد النظام إلى example.com يتم إعطاؤه اسم المستخدم user1، سيستخدم Postfix العنوان user1@example.com. مستلما البريد root و postmaster‏ (Root and postmaster mail recipient): هما عبارة عن حسابات Linux يقومان بإعادة ارسال عنوان البريد إلى root@ و postmaster@، استخدم حسابك الأساسي لهذا الغرض في مثالنا هو sammy. مستقبلات أخرى لقبول البريد (Other destinations to accept mail for): وهذا يعرف بمستقبلات البريد التي تقبل Postfix instance، إذا كنت بحاجة لإضافة أي نطاقات أخرى سيكون هذا الخادم مسؤولاً عن تلقيها، فأضف تلك النطاقات هنا وإلا سيطبق الإعداد الافتراضي. فرض تحديثات متزامنة على قائمة انتظار البريد؟ (Force synchronous updates on mail queue?‎): نظرًا لأنك تستخدم على الأرجح ملفات النظام ، فقم برد ب "لا" هنا. الشبكات المحلية (Local networks): هذه قائمة من الشبكات التي تم إعدادها بخادم البريد الخاص بك من أجل ترحيل الرسائل، بمعظم الحالات سيعمل الإعداد الافتراضي، ولكن إذا اخترت تعديله ، فتأكد من أن يكون مقيدًا للغاية فيما يتعلق بنطاق الشبكة. تحديد الحد الأعلى لحجم صندوق البريد الوارد (Mailbox size limit): يستخدم هذا الحد للحد من حجم الرسائل الواردة و يتم تعطيل أي قيود على حجم البريد بضبطه على 0. الحرف المضاف للعنوان المحلي (Local address extension character): هذا الحرف يستخدم للفصل بين الجزء العادي من العنوان و الجزء المضاف (يستخدم لإنشاء أسماء مستعارة ديناميكية). برتوكولات الانترنت الواجب استخدامها (Internet protocols to use): اختر اذا ما كنت تريد تقييد اصدار IP الذي سيدعمه Postfix، سنختار كل IP لاغراضنا هنا. هذه هي الإعدادات التي سنستخدمها في هذا الدليل: General type of mail configuration?: Internet Site System mail name: example.com (not mail.example.com) Root and postmaster mail recipient: sammy Other destinations to accept mail for: $myhostname, example.com, mail.example.com, localhost.example.com, localhost Force synchronous updates on mail queue?: No Local networks: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 Mailbox size limit: 0 Local address extension character: + Internet protocols to use: all من أجل اعادة ضبط الاعدادات السابقة بأي وقت يمكنك ذلك بتنفيذ الأمر التالي: $ sudo dpkg-reconfigure postfix سيتم ملء الطلبات السابقة بالردود السابقة بشكل تلقائي. عند الانتهاء ، يمكننا الآن إجراء المزيد من التهيئة لإعداد نظامنا بالطريقة التي نرغب بها. الخطوة الثانية: تحسين إعدادات Postfix بعد ذلك، يمكننا ضبط بعض الإعدادات التي لم تطلبها منا الحزمة. بدايةً، يمكننا ضبط صندوق البريد؛سوف نستخدم تنسيق Maildi الذي يفصل الرسائل إلى ملفات فردية يتم نقلها بين المجلدات بناءً على إجراء المستخدم أما الخيار الآخر فهو تنسيق mbox (الذي لن نغطيه هنا) الذي يخزن جميع الرسائل في ملف واحد. سنقوم بتعيين المتغير home_mailbox إلى القيمة Maildir/‎ أي ننشئ مجلدًا داخل المجلد الرئيسي للمستخدم إن استخدام الامر Postconf سيقوم بضبط الإعدادات اكتب الامر التالي لإعداد home/mailbox: $ sudo postconf -e 'home_mailbox= Maildir/' بعد ذلك، يمكنك تعيين موقع الجدول virtual_alias_maps الذي يحتوي حسابات البريد الإلكتروني المرتبطة بحسابات نظام Linux، سننشئ هذا الجدول في etc/postfix/virtual/ سنستخدم الأمر postconf مرة اخرى: $ sudo postconf -e 'virtual_alias_maps= hash:/etc/postfix/virtual' الخطوة الثالثة: خريطة عناوين البريد لحسابات Linux الآن سنقوم باعادة إعداد ملف جدول الخرائط الإفتراضي، افتح الملف في محرر النصوص الخاص بك: $sudo nano /etc/postfix/virtual يستخدم الاسم المستعار في جدول خريطة الافتراضي تنسيقًا بسيطًا على اليسار إذ يمكنك عرض أي عناوين ترغب في قبول بريدها الإلكتروني افصل بينها وبين اسم مستخدم Linux الذي ترغب في تسليم البريد إليه بمسافة بيضاء ثم أدخل مستخدم Linux. على سبيل المثال إذا كنت ترغب بقبول البريد الإلكتروني contact@example.com والبريد admin@example.com وترغب في تسليم رسائل البريد الإلكتروني هذه إلى المستخدم sammy، فيمكنك إعداد الملف ‎/etc/postfix/virtual كما يلي: contact@example.com sammy admin@example.com sammy بعد تعيين جميع العناوين على حسابات الخادم المناسبة، احفظ وأغلق الملف. يمكننا تطبيق وتفعيل السابق بتنفيذ الأمر: $ sudo postmap /etc/postfix/virtual أعد تشغيل عملية Postfix للتأكد من تطبيق جميع التغييرات: $sudo systemctl restart postfix أصبح خادم Postfix الآن مثبت وجاهز؛ سنقوم بإعداد عميل يمكنه التعامل مع البريد الذي يعالجه Postfix. الخطوة الرابعة: ضبط جدار الحماية إذا كنت تقوم بتشغيل جدار حماية UFW باعدادت الأولية التي تم تهيئة الخادم عليها سوف يتعين علينا السماح باستثناء Postfix. يمكنك السماح بالاتصالات بالخدمة بتنفيذ الأمر التالي: $ sudo ufw allow Postfix الآن خادم Postfix مثبت وجاهز سنقوم بإعداد عميل يمكنه التعامل مع البريد الذي يعالجه Postfix. الخطوة الخامسة: إعداد البيئة لربطها مع موقع البريد قبل أن نثبت العميل يجب أن نتأكد من صحة متغير بيئة MAIL الخاص بنا معدة بشكل صحيح، سيقوم العميل بفحص هذا المتغير لمعرفة مكان الذي أبحث فيه عن بريد المستخدم. من أجل تعيين المتغير بغض النظر عن كيفية وصولك إلى حسابك (من خلال ssh ، su ، su - ، sudo ، إلخ) ، نحتاج إلى تعيين المتغير في عدة مواقع مختلفة؛ سنقوم بإضافته إلى داخل ملفetc/bash.bashrc/و ملفetc/profile.d/للتأكد من أن كل مستخدم لديه هذا الإعداد. من أجل إضافة المتغير إلى هذه الملفات نفذ الأمر التالي: $echo 'export MAIL=~/Maildir' | sudo tee -a /etc/bash.bashrc | sudo tee -a /etc/profile.d/mail.sh لقراءة المتغير في جلستك الحالية يمكنك تنفيذ على الملف etc/profile.d/mail.sh/: $ source /etc/profile.d/mail.sh الخطوة السادسة: تثبيت وإعداد بريد العميل للتفاعل مع البريد الذي يتم تسليمه؛ سنقوم بتثبيت حزمةs-nailوهو البديل عن عميل BSD xmailالغني بالميزات ويمكنه التعامل مع تنسيق Maildir بشكل صحيح، وغالبًا ما يكون متوافقًا مع الإصدارات السابقة، يحتوي إصدار GNU للبريد على بعض القيود مثل حفظ بريد القراءة دائمًا بتنسيق mbox بغض النظر عن التنسيق المصدر. لتنزيل حزمة s-nail نستخدم الأمر: $ sudo apt install s-nail من أجل ضبط بعض الإعدادات افتح الملف etc/s-nail.rc/ باستخدام محرر النصوص الخاص بك: $ sudo nano /etc/s-nail.rc أضف الخيارات التالية في أسفل الملف ‎/etc/s-nail.rc: . . . set emptystart set folder=Maildir set record=+sent سيتيح هذا للعميل فتحه حتى مع البريد الوارد الفارغ؛ سيقوم أيضًا بتعيين المجلد Maildir داخل المجلد الداخلي ثم سيستخدم لإنشاء ملف mbox الذي تم ارساله ويخزن البريد المرسل. احفظ وأغلق الملف عند الانتهاء. الخطوة السابعة: تهيئة Maildir واختبار العميل الآن، يمكننا اختبار العميل من الخارج: تهيئة بنية المجلد أسهل طريقة لإنشاء Maildir في مجلدنا الرئيسي هي إرسال بريد إلكتروني إلى أنفسنا يمكننا القيام بذلك باستخدام الأمر s-nail نظرًا لأن الملف المرسل لن يكون متاحًا إلا بعد إنشاء Maildir، سنقوم بتعطيل الكتابة لهذا البريد الإلكتروني الأولي باستخدام الخيار Snorecord-. أرسل رسالة بريد إلكتروني عن طريق تمرير الجملة String إلى الأمر s-nail وحدد مستخدم Linux المستلم للرسالة: $ echo 'init' | s-nail -s 'init' -Snorecord sammy سيكون الرد ربما كتالي: Can't canonicalize "/home/sammy/Maildir" سيظهره هذا الأمر بشكل طبيعي عند ارسال الرسالة أول مرة و يمكننا التحقق من إنشاء المجلد من خلال البحث عن مجلد Maildir/~: $ ls -R ~/Maildir ستشاهد ما يحتوي عليه المجلد وقد تم إنشاء ملف جديد فيه رسالة جديدة في المجلد Maildir/new/~: /home/sammy/Maildir/: cur new tmp /home/sammy/Maildir/cur: /home/sammy/Maildir/new: 1463177269.Vfd01I40e4dM691221.mail.example.com /home/sammy/Maildir/tmp: يبدو أن البريد تم تسليمه. إدارة البريد مع العميل استخدم العميل من أجل التحقق من بريدك: $ s-nail ستجد الرسالة التالية تنتظرك: s-nail version v14.8.6. Type ? for help. "/home/sammy/Maildir": 1 message 1 new >N 1 sammy@example.com Wed Dec 31 19:00 14/369 init اضغط على زر Enter لعرض رسالتك التالية: [-- Message 1 -- 14 lines, 369 bytes --]: From sammy@example.com Wed Dec 31 19:00:00 1969 Date: Fri, 13 May 2016 18:07:49 -0400 To: sammy@example.com Subject: init Message-Id: \&lt;20160513220749.A278F228D9@mail.example.com\&gt; From: sammy@example.com init يمكنك العودة إلى قائمة الرسائل الخاصة بك بكتابة الرمز h ثم Enter: ? h نظرًا لأن هذه الرسالة ليست مفيدة للغاية يمكننا حذفها باستخدام الرمز d ثم Enter : ? d للعودة إلى شاشة الأوامر استخدم الرمز q ثم ENTER: ? q إرسال البريد مع العميل يمكنك اختيار إرسال رسالة عبر كتابة الرسالة بمحرر النصوص : $ nano ~/test_message داخل الملف ‎~/test_message اكتب النص الذي تود ارساله بالبريد: Hello, This is a test. Please confirm receipt! بإمكاننا باستخدام الأمر cat توجيه الرسالة باستخدام s-nail سيؤدي ذلك إلى إرسال الرسالة كمستخدم Linux الافتراضي، يمكنك ضبط الحقل "From" باستخدام الراية r- إذا كنت تريد تعديل هذه القيمة إلى شيء آخر: $ cat ~/test_message | s-nail -s 'Test email subject line' -r from_field_account user@email.com الخيارات بالأمر السابق تعني: s-: موضوع البريد الإلكتروني r-: حقل اختياري لتغيير الحقل "From" في البريد الإلكتروني بشكل افتراضي هو مستخدم Linux الذي قمت بتسجيل الدخول به سيتم استخدامه لملء هذا الحقل، يسمح لك الخيار r- باعادة تعيينه. user@email.com: الحساب المرسل اليه البريد الإلكتروني قم بتغييره ليكون حسابًا صحيحًا لك حق الوصول إليه. يمكنك عرض رسائلك المرسلة داخل عميل s-nail الخاص بك اعد تشغيل العميل التفاعلي مرة أخرى بكتابة الأمر التالي: $ s-nail بإمكانك عرض الرسائل المرسلة عبر الأمر التالي : ? file +sent يمكنك إدارة البريد المرسل باستخدام نفس الأوامر التي تستخدمها للبريد الوارد. الخلاصة يجب أن يكون لديك الآن القدرة على إعداد Postfix على خادم أوبنتو 18.04 إن إدارة خوادم البريد الإلكتروني مهمة صعبة على مسؤولين النظام ولكن مع هذا الإعداد يجب أن يكون لديك وظيفة البريد الإلكتروني MTA الأساسية لتبدأ. ترجمة -وبتصرف- للمقال How To Install and Configure Postfix on Ubuntu 18.04 لصاحبيه Justin Ellingwood و Hanif Jetha
  3. واحدة من أكبر المشاكل مع البريد الإلكتروني اليوم هي مشكلة البريد غير المرغوب فيه (Unsolicited Bulk Email أو اختصارًا UBE) المعروف أيضًا بالبريد العشوائي (SPAM)؛ قد تحتوي هذه الرسائل أيضًا على فيروسات أو أشكالٍ أخرى من البرمجيات الخبيثة؛ ووفقًا لبعض التقارير، تشغل هذه الرسائل حيزًا كبيرًا من البريد الإلكتروني المُرسَل عبر الإنترنت. سيشرح هذا القسم طريقة دمج Amavisd-new، و Spamassassin، و ClamAV مع عميل نقل البريد Postfix؛ يمكن أيضًا التحقق من البريد عبر تمريره خلال مرشحات خارجية؛ هذه المرشحات يمكنها في بعض الأحيان تحديد إذا ما كانت الرسالةُ عشوائيةً دون الحاجة إلى معالجتها ببرمجيات تستهلك الموارد؛ أشهر هذه المرشحات هي opendkim و python-policyd-spf. Amavisd-new هو برنامج مُغلِّف (wrapper) يستطيع استدعاء أي عدد من برامج ترشيح المحتوى لاستكشاف الرسائل العشوائية، وللتصدي للفيروسات ...إلخ. يستخدم Spamassassin آلياتٍ عدِّة لترشيح البريد اعتمادًا على محتوى الرسالة. ClamAV هو مضاد فيروسات مفتوح المصدر. يوفر opendkim ما يسمىMilter (أي Sendmail Mail Filter) إلى المعيار القياسي DKIM (أي DomainKeys Identified Mail). يُفعِّل python-policyd-spf تحقق SPF (اختصار للعبارة Sender Policy Framework) مع Postfix. هذه هي آلية جمع القطع السابقة: تُقبَل رسالة البريد الإلكتروني من Postfix. تُمرَّر الرسالة إلى أي مرشحات خارجية مثل opendkim و python-policyd-spf في هذه الحالة. ثم يُعالِج Amavisd-new الرسالة. ثم يُستخدَم ClamAV لفحص الرسالة؛ إذا حوت الرسالة على فيروس، فسيرفضها Postfix. ستُحلَّل الرسائل «النظيفة» من Spamassassin للتحقق إذا كانت الرسالة هي رسالة عشوائية؛ ثم يضيف Spamassassin أسطر X-Header ليسمح للبرمجية Amavisd-new بإكمال معالجة الرسالة. على سبيل المثال، إذا كان «رصيد العشوائية» لرسالة ما أكبر من خمسين بالمئة، فيمكن أن تُزال الرسالة تلقائيًا من الطابور (queue) حتى دون إعلام المتلقي؛ طريقة أخرى للتعامل مع هذه الرسائل هي إيصالهم لعميل مستخدم البريد (MUA) والسماح للمستخدم بأن يتعامل مع الرسالة بما يراه مناسبًا. التثبيت راجع درس Postfix لمعلوماتٍ تفصيلية عن تثبيت Postfix. أدخل الأمرين الآتيين في سطر الأوامر لتثبيت بقية البرمجيات: sudo apt-get install amavisd-new spamassassin clamav-daemon sudo apt-get install opendkim postfix-policyd-spf-python هنالك بعض الحزم الأخرى التي يمكن أن تُدمَج مع Spamassassin لاكتشاف أفضل للرسائل العشوائية: sudo apt-get install pyzor razor بالإضافة إلى برمجيات الترشيح الرئيسية، سنحتاج إلى أدوات الضغط لنعالج بعض مرفقات البريد: sudo apt-get install arj cabextract cpio lha nomarch pax rar unrar unzip zip ملاحظة: إذا لم يُعثَر على بعض الحزم السابقة، فتأكد من تفعيل مستودع multiverse في ملف ‎/etc/apt/sources.list. إذا أجريتَ تعديلاتٍ على ذاك الملف، فتأكد من تحديث فهرس الحزم بتنفيذ الأمر sudo apt-get update قبل محاولة التثبيت مرةً أخرى. الضبط علينا الآن ضبط كل شيء مع بعضه بعضًا لترشيح البريد. ClamAV السلوك الافتراضي لبرمجية ClamAV تناسب احتياجاتنا؛ للمزيد من خيارات الضبط الخاصة ببرمجية ClamAV، راجع ملفات الضبط في ‎/etc/clamav. أضف المستخدم clamav إلى المجموعة amavis لكي يملك Amavisd-new الوصول الملائم لتفحص الملفات: sudo adduser clamav amavis sudo adduser amavis clamav Spamassassin يعثر Spamassassin تلقائيًا على المكونات الإضافية ويستخدمها إن توفرت؛ هذا يعني أنه لا حاجة لضبط pyzor و razor. عدِّل ملف الضبط ‎/etc/default/spamassassin لتفعيل عفريت Spamassassin، عدِّل قيمة ENABLED=0 إلى: ENABLED=1 ثم ابدأ تشغيل العفريت: sudo service spamassassin start Amavisd-new أولًا، فعِّل استكشاف الرسائل العشوائية ومضاد الفيروسات في Amavisd-new بتعديل الملف ‎/etc/amavis‎/conf.d/15-content_filter_mode: use strict; # You can modify this file to re-enable SPAM checking through spamassassin # and to re-enable antivirus checking. # # Default antivirus checking mode # Uncomment the two lines below to enable it # @bypass_virus_checks_maps = ( \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re); # # Default SPAM checking mode # Uncomment the two lines below to enable it # @bypass_spam_checks_maps = ( \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re); 1; # insure a defined return قد تكون إعادة معالجة الرسائل العشوائية فكرةً سيئةً لأن العنوان المُعاد مزيفٌ غالبًا؛ ربما ترغب بتعديل الملف ‎/etc/amavis/conf.d/20-debian_defaults لتضبط ‎$final_spam_destiny إلى D_DISCARD بدلًا من D_BOUNCE، كما يلي: $final_spam_destiny = D_DISCARD; وربما ترغب بتعديل قيمة الخيارات الآتية لتعليم (flag) المزيد من الرسائل كرسائل عشوائية: $sa_tag_level_deflt = -999; # add spam info headers if at, or above that level $sa_tag2_level_deflt = 6.0; # add 'spam detected' headers at that level $sa_kill_level_deflt = 21.0; # triggers spam evasive actions $sa_dsn_cutoff_level = 4; # spam level beyond which a DSN is not sent إذا كان اسم المضيف للخادوم (hostname) مختلفًا عن سجل MX للنطاق، فربما تحتاج إلى أن تضبط الخيار ‎$myhostname يدويًا؛ وإذا كان الخادوم يستلم البريد لأكثر من نطاق، فيجب تخصيص الخيار ‎@local_domains_acl أيضًا، وذلك بتعديل الملف ‎/etc/amavis/conf.d/50-user: $myhostname = 'mail.example.com'; @local_domains_acl = ( "example.com", "example.org" ); إذا أردت تغطية أكثر من نطاق، فعليك استخدام ما يلي في ‎/etc/amavis/conf.d/50-user: @local_domains_acl = qw(.); يجب إعادة تشغيل Amavisd-new بعد الضبط: sudo service amavis restart DKIM Whitelist يمكن ضبط Amavisd-new ليضيف عناوين من نطاقات معينة مع مفاتيح نطاق (Domain Keys) صالحة إلى القائمة البيضاء (Whitelist)؛ هنالك بعض النطاقات المضبوطة مسبقًا في ‎/etc/amavis/conf.d/40-policy_banks: هذه بعض الأمثلة لضبط القائمة البيضاء لنطاق: التعليمة ‎'example.com' => 'WHITELIST',‎: ستضيف أي عنوان من النطاق "example.com" إلى القائمة البيضاء. التعليمة ‎'‎.example.com' => 'WHITELIST‎'‎,‎: ستضيف أي عنوان من أي نطاق فرعي للنطاق "example.com" ويملك توقيع صالح (valid signature) إلى القائمة البيضاء. التعليمة ‎'‎.example.com/@example.com' => 'WHITELIST',‎: إضافة أي عنوان من النطاقات الفرعية للنطاق "example.com" الذي يستخدم توقيع النطاق الأب "example.com". التعليمة ‎'‎./@example.com' => 'WHITELIST',‎: يضيف العناوين من توقيع صالح من "example.com" هذا يستخدم عادةً لمجوعات النقاش التي توقَّع رسائلها. يمكن أن يملك نطاقٌ واحد أكثر من ضبط للقائمة البيضاء؛ عليك إعادة تشغيل amavisd-new بعد تعديل الملف: sudo service amavis restart ملاحظة: في هذا السياق؛ عندما يُضاف النطاق إلى القائمة البيضاء، فإن الرسالة لن تحصل على أي فحص من الفيروسات أو الرسائل العشوائية؛ ربما يكون أو لا يكون هذا هو السلوك الذي ترغبه لهذا النطاق. Postfix أدخل ما يلي في مِحَث الطرفية لدمج Postfix: sudo postconf -e 'content_filter = smtp-amavis:[127.0.0.1]:10024' ثم عدِّل الملف ‎/etc/postfix/master.cf وأضف الأسطر الآتية إلى نهاية الملف: smtp-amavis unix - - - - 2 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes -o disable_dns_lookups=yes -o max_use=20 127.0.0.1:10025 inet n - - - - smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_restriction_classes= -o smtpd_delay_reject=no -o smtpd_client_restrictions=permit_mynetworks,reject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=127.0.0.0/8 -o smtpd_error_sleep_time=0 -o smtpd_soft_error_limit=1001 -o smtpd_hard_error_limit=1000 -o smtpd_client_connection_count_limit=0 -o smtpd_client_connection_rate_limit=0 -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_milters أيضًا أضف السطرين الآتيين مباشرةً بعد خدمة النقل «pickup»: -o content_filter= -o receive_override_options=no_header_body_checks هذا سيمنع الرسائل المُولَّدة للتبليغ عن الرسائل العشوائية من تصنيفها كرسائل عشوائية؛ أعد الآن تشغيل Postfix: sudo service postfix restart يجب الآن أن يكون ترشيح المحتوى والعثور على الفيروسات مُفعَّلًا. الاختبار أولًا، اختبر أن Amavisd-new SMTP يستمع: telnet localhost 10024 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 [127.0.0.1] ESMTP amavisd-new service ready ^] وفي ترويسة (header) الرسائل التي تُمرَّر عبر مُرشِّح المحتوى، يجب أن تُشاهِد: X-Spam-Level: X-Virus-Scanned: Debian amavisd-new at example.com X-Spam-Status: No, hits=-2.3 tagged_above=-1000.0 required=5.0 tests=AWL, BAYES_00 X-Spam-Level: ملاحظة: قد تختلف النتائج المعروضة عمَّا سيظهر عندك، لكن من المهم وجود القيدين X-Virus-Scanned و X-Spam-Status. استكشاف الأخطاء أفضل طريقة لمعرفة سبب حدوث مشكلة ما هي مراجعة ملفات السجل. لتعليماتٍ عن التسجيل في Postfix راجع الدرس الخاص به. يستخدم Amavisd-new البرمجية Syslog لإرسال الرسائل إلى ‎/var/log/mail.log؛ يمكن زيادة مقدار التفاصيل بإضافة الخيار ‎$log_level إلى ملف ‎/etc/amavis/conf.d/50-user، وضبط القيمة من 1 إلى 5: $log_level = 2; ملاحظة: عند زيادة درجة الإسهاب لسجل Amavisd-new، فسيزداد ناتج سجل Spamassassin أيضًا. يمكن زيادة مستوى التسجيل لبرمجية ClamAV بتعديل الملف ‎/etc/clamav/clamd.conf وضبط الخيار الآتي: LogVerbose true افتراضيًا، سيُرسِل ClamAV رسائل السجل إلى ‎/var/log/clamav/clamav.log. ملاحظة: بعد تغيير إعدادات التسجيل للبرمجيات، تذكر أن تعيد تشغيل الخدمة لكي تأخذ الإعدادات الجديدة مفعولها؛ أيضًا تذكر أن تعيد القيمة الافتراضية بعد أن تحل المشكلة. مصادر للمزيد من المصادر حول ترشيح البريد، راجع الوصلات الآتية: توثيق Amavisd-new. توثيق ClamAV وويكي ClamAV. ويكي Spamassassin. صفحة Pyzor الرئيسية. صفحة Razor الرئيسية. DKIM.org Postfix Amavis New أيضًا، تستطيع أن تسأل أسئلتك في قناة ‎#ubuntu-sever على خادوم freenode. ترجمة -وبتصرف- للمقال Ubuntu Server Guide: Mail Filtering.
  4. تشترك العديد من الأنظمة في عملية الحصول على بريد إلكتروني من شخصٍ لآخر عبر الشبكة أو الإنترنت التي تعمل مع بعضها بعضًا؛ ويجب أن يُضبَط كل واحد من هذه الأنظمة ضبطًا صحيحًا لكي تتم العملية بنجاح؛ يستخدم المُرسِل «عميل مستخدم البريد» (Mail User Agent اختصارًا MUA) أو عميل بريد إلكتروني، لإرسال رسالة عبر واحد أو أكثر من «عملاء نقل البريد» (Mail Transfer Agents اختصارًا MTA)، سيسلم آخرهم البريد إلى «عميل إيصال البريد» (Mail Delivery Agent اختصارًا MDA) لإيصال البريد إلى صندوق بريد المستلم، الذي بدوره يحصل عليه عميل البريد الإلكتروني للمستلم عادةً باستخدام خادوم POP3 أو IMAP. Postfixإن Postfix هو عميل نقل البريد (MTA) الافتراضي في أوبنتو؛ الذي يُوصَف بأنه سريع وسهل الإدارة، وآمن ومتوافق مع عميل نقل البريد sendmail؛ يشرح هذا القسم طريقة تثبيت وضبط Postfix، ويشرح أيضًا كيفية إعداد خادوم SMTP باستخدام اتصال آمن (لإرسال رسائل البريد الإلكتروني بأمان). ملاحظة: لن نتطرّق إلى «Postfix Virtual Domains» للمزيد من المعلومات حول النطاقات الوهمية وغيرها من إعدادات الضبط المتقدمة، فراجع قسم «مصادر» في نهاية هذا القسم. التثبيتنفِّذ الأمر الآتي في الطرفية لتثبيت postfix: sudo apt-get install postfixستُسأل بعض الأسئلة أثناء عملية التثبيت، وسيُشرَح الضبط بتفاصيل أكبر في المرحلة القادمة. الضبط الأساسينفِّذ الأمر الآتي في الطرفية لضبط postfix: sudo dpkg-reconfigure postfixستظهر واجهة مستخدم، اختر منها القيم الآتية على كل شاشة: Internet Sitemail.example.comstevemail.example.com, localhost.localdomail, localhostNo‎127.0.0.1/8 8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.0.0/24‎0+allملاحظة: استبدل mail.example.com بالنطاق الذي سيقبل استلام البريد عليه، و 192.168.0.0/24 بالشبكة التي عندك ومجالها؛ و steve باسم ملائم للمستخدم. الآن هو وقتٌ ملائمٌ لتحديد صيغة صندوق البريد التي تنوي استخدامها؛ افتراضيًا Postfix يستخدم mbox لصيغة صندوق البريد؛ وبدلًا من تعديل ملف الضبط مباشرةً، يمكنك استخدام الأمر postconf لضبط كل معاملات postfix؛ ستُخزَّن معاملات الضبط في ملف ‎/etc/postfix/main.cf؛ وإذا أردت إعادة ضبط معامل معيَّن، يمكنك إما أن تنفذ الأمر أو تعدل الملف يدويًا؛ فلضبط صيغة صندوق البريد إلى Maildir: sudo postconf -e 'home_mailbox = Maildir/'ملاحظة: هذا سيضع البريد الجديد في مجلد ‎/home/username/Maildir، لذلك تريد ضبط عميل تسليم البريد (MDA) لاستخدام نفس المسار. استيثاق SMTPيسمح SMTP-AUTH للعميل بالتعريف عن نفسه باستخدام آلية استيثاق (SASL)، يجب استخدام أمن طبقة النقل (TLS) لتشفير عملية الاستيثاق؛ سيسمح خادوم SMTP للعميل بأن ينقل البريد بعد الاستيثاق. لضبط Postfix مع SMTP-AUTH باستخدام SASL‏ (Dovecot SASL): sudo postconf -e 'smtpd_sasl_type = dovecot' sudo postconf -e 'smtpd_sasl_path = private/auth-client' sudo postconf -e 'smtpd_sasl_local_domain =' sudo postconf -e 'smtpd_sasl_security_options = noanonymous' sudo postconf -e 'broken_sasl_auth_clients = yes' sudo postconf -e 'smtpd_sasl_auth_enable = yes' sudo postconf -e 'smtpd_recipient_restrictions = \ permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'ملاحظة: الضبط smtpd_sasl_path هو مسار نسبي إلى مجلد طلبيات Postfix. ثم ولِّد أو احصل على شهادة TLS رقمية، راجع درس الشهادات للتفاصيل؛ هذا المثال يستخدم أيضًا سلطة شهادات (Certificate Authority أو CA)، للمزيد من المعلومات حول ذلك، انظر إلى قسم «سلطة الشهادات» في نفس الدرس. ملاحظة: عملاء مستخدمي البريد (MUA) التي تتصل إلى خادوم البريد عبر TLS يجب أن تتعرف على الشهادة المستخدمة في TLS؛ يمكن فعل ذلك إما باستخدام شهادة من سلطة شهادات تجارية، أو استخدام شهادة موقعة ذاتيًا، وعلى المستخدمين أن يُثبِّتوا أو يقبلوا الشهادة يدويًا، شهادات TLS من عميل نقل بريد إلى عميل نقل بريد آخر لا يُتحقَّق منها إلا بعد موافقة مسبقة من المنظمات المتأثرة؛ لا يوجد سبب لعدم استخدام شهادة موقعة ذاتيًا عند استعمال TLS من MTA إلى MTA، ما لم تتطلب السياسات المحلية ذلك؛ راجع قسم «إنشاء شهادة موقعة ذاتيا» لمزيدٍ من المعلومات في درس الشهادات. بعد أن تحصل على الشهادة، اضبط Postfix لتوفير تشفير TLS للبريد المُرسَل والمُستلَم: sudo postconf -e 'smtp_tls_security_level = may' sudo postconf -e 'smtpd_tls_security_level = may' sudo postconf -e 'smtp_tls_note_starttls_offer = yes' sudo postconf -e 'smtpd_tls_key_file = /etc/ssl/private/server.key' sudo postconf -e 'smtpd_tls_cert_file = /etc/ssl/certs/server.crt' sudo postconf -e 'smtpd_tls_loglevel = 1' sudo postconf -e 'smtpd_tls_received_header = yes' sudo postconf -e 'myhostname = mail.example.com'إذا كنت تستخدم سلطة الشهادات الخاصة بك لتوقيع الشهادة، فأدخِل: sudo postconf -e 'smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem'ملاحظة: بعد تنفيذ كل الأوامر السابقة، فيكون Postfix قد ضُبِطَ ليستخدم SMTP-AUTH وشهادة موقعة ذاتيًا أُنشِئت لاتصال TLS مشفر. # See /usr/share/postfix/main.cf.dist for a commented, more complete # version smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) biff = no # appending .domain is the MUA's job. append_dot_mydomain = no # Uncomment the next line to generate "delayed mail" warnings #delay_warning_time = 4h myhostname = server1.example.com alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = /etc/mailname mydestination = server1.example.com, localhost.example.com, localhost relayhost = mynetworks = 127.0.0.0/8 mailbox_command = procmail -a "$EXTENSION" mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all smtpd_sasl_local_domain = smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous broken_sasl_auth_clients = yes smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject _unauth_destination smtpd_tls_auth_only = no smtp_tls_security_level = may smtpd_tls_security_level = may smtp_tls_note_starttls_offer = yes smtpd_tls_key_file = /etc/ssl/private/smtpd.key smtpd_tls_cert_file = /etc/ssl/certs/smtpd.crt smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandomبعد إكمال الضبط الابتدائي لخدمة postfix؛ فنفذ الأمر الآتي لإعادة تشغيل العفريت: sudo service postfix restartيدعم Postfix استخدام SMTP-AUTH كما هو معرَّف في RFC2554؛ الذي هو مبني على SASL؛ لكنه يبقى ضروريًا إعداد استيثاق SASL قبل استخدام SMTP-AUTH. ضبط SASLيدعم Postfix نسختين من SASL هما Cyrus SASL و Dovecot SASL؛ لتفعيل Dovecot SASL، فيجب تثبيت حزمة dovecot-common، وذلك بإدخال الأمر الآتي من الطرفية: sudo apt-get install dovecot-commonيجب عليك تعديل ملف الضبط ‎/etc/dovecot/conf.d/10-master.conf؛ مغيِّرًا ما يلي: service auth { # auth_socket_path points to this userdb socket by default. It's typically # used by dovecot-lda, doveadm, possibly imap process, etc. Its default # permissions make it readable only by root, but you may need to relax these # permissions. Users that have access to this socket are able to get a list # of all usernames and get results of everyone's userdb lookups. unix_listener auth-userdb { #mode = 0600 #user = #group = } # Postfix smtp-auth unix_listener /var/spool/postfix/private/auth { mode = 0660 user = postfix group = postfix }ولكي نسمح لعملاء Outlook باستخدام SMTP-AUTH، فعدِّل السطر الآتي في قسم authentication mechanisms في ملف ‎/etc/dovecot/conf.d/10-auth.conf: auth_mechanisms = plainإلى ما يلي: auth_mechanisms = plain loginبعد أن ضَبَطَتَ Dovecot، فأعد تشغيله بالأمر: sudo service dovecot restartMail-Stack Deliveryخيار آخر لضبط Postfix لاستعمال SMTP-AUTH هو استخدام الحزمة mail-stack-delivery (كانت تُحزَّم مسبقًا باسم dovecot-postfix)؛ هذه الحزمة ستُثبِّت Dovecot وتضبط Postfix ليستخدمها لاستيثاق SASL وعميل تسليم البريد (MDA)؛ تضبط هذه الحزمة Dovecot أيضًا للخدمات IMAP و IMAPS و POP3 و POP3S. ملاحظة: ربما تريد أو لا تريد تشغيل IMAP، أو IMAPS، أو POP3، أو POP3S على خادوم البريد عندك؛ على سبيل المثال، إذا كنت تضبط خادومك ليكون بوابةً للبريد، أو مُرَشِّحًا للرسائل العشوائية (Spam) أو الفيروسات ...إلخ. فإذا كانت هذه هي الحالة عندك، فمن الأسهل استخدام الأوامر السابقة لضبط Postfix لاستخدام SMTP-AUTH. لتثبيت الحزمة، أدخِل ما يلي في الطرفية: sudo apt-get install mail-stack-deliveryيجب أن تحصل الآن على خادوم بريد يعمل تمامًا؛ لكن هنالك بعض الخيارات التي تريد ضبطها لمزيدٍ من التخصيص؛ على سبيل المثال، تستخدم الحزمة السابقة شهادة ومفتاح من حزمة ssl-cert، وفي بيئة إنتاجية يجب أن تستخدم شهادة ومفتاح مولَّد للمضيف. عدِّل الخيارات الآتية في ملف ‎/‎etc/postfix/main.cf بعد أن تخصص الشهادة والمفتاح للمضيف: smtpd_tls_cert_file = /etc/ssl/certs/ssl-mail.pem smtpd_tls_key_file = /etc/ssl/private/ssl-mail.keyثم أعد تشغيل Postfix: sudo service postfix restartالاختباراكتمل الآن ضبط SMTP-AUTH؛ حان الآن الوقت لاختبار الإعدادات. للتأكد إذا كان SMTP-AUTH و TLS يعملان عملًا صحيحًا، فنفِّذ الأمر الآتي: telnet mail.example.com 25بعد أن تُنشِئ اتصالًا لخادوم البريد postfix، اكتب ما يلي: ehlo mail.example.comإذا رأيت الأسطر الآتية بين غيرها، فإن كل شيء يعمل على ما يرام؛ اكتب quit للخروج. 250-STARTTLS 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN 250 8BITMIMEاستكشاف الأخطاء وإصلاحهاسنقدم في هذا القسم بعض الطرق الشائعة لتحديد السبب إذا حدثت مشكلة ما. الخروج من chrootستُثبَّت الحزمة postfix في أوبنتو افتراضيًا في بيئة «chroot» لأسبابٍ أمنية؛ يمكن أن يزيد هذا من تعقيد إصلاح المشاكل. لتعطيل عمل chroot، حدد السطر الآتي في ملف ‎/etc/postfix/master.cf: smtp inet n - - - - smtpdوعدِّله كما يلي: smtp inet n - n - - smtpdتحتاج إلى إعادة تشغيل Postfix لاستخدام الضبط الجديد، وذلك بإدخال الأمر الآتي في الطرفية: sudo service postfix restartSmtpsإذا احتجت إلى smtps، فعدِّل الملف ‎/etc/postfix/master.cf وأزل التعليق عن السطر الآتي: smtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATINGملفات السجليُرسِل Postfix جميع رسائل السجل إلى ملف ‎/var/log/mail.log، لكن يمكن أن تضيع رسائل الخطأ والتحذير في السجل العادي، لذلك فإنها تُسجَّل أيضًا إلى ‎/var/log/mail.err و ‎/var/log/mail.warn على التوالي وبالترتيب. لمراقبة الرسائل الداخلة إلى السجل في الوقت الحقيقي، فاستخدم الأمر tail مع الخيار ‎-f كما يلي: tail -f /var/log/mail.errيمكن زيادة كمية التفاصيل التي ستُسجَّل؛ هذه بعض خيارات الضبط لزيادة مستوى التسجيل لبعض «المناطق» المذكورة أعلاه. لزيادة نشاط تسجيل TLS، فاضبط الخيار smtpd_tls_loglevel إلى قيمة من 1 إلى 4: sudo postconf -e 'smtpd_tls_loglevel = 4'إذا كانت لديك مشكلة في إرسال أو استقبل البريد من نطاق معين، فيمكنك إضافة ذاك النطاق إلى معامل debug_peer_list: sudo postconf -e 'debug_peer_list = problem.domain'يمكنك زيادة درجة الإسهاب لأي عملية تابعة لعفريت Postfix بتعديل الملف ‎/etc/postfix/master.cf وبإضافة الخيار ‎-v بعد القيد، على سبيل المثال، عدِّل القيد smtp كما يلي: smtp unix - - - - - smtp -vملاحظة: من الضروري ملاحظة أنه بعد إنشاء تعديل من تعديلات التسجيل المذكورة آنفًا، فيجب أن يعاد تحميل عملية Postfix لكي تُدرِك الضبط الجديد: sudo service postfix reloadلزيادة مقدار المعلومات المسجلة عند استكشاف مشاكل SASL، يمكنك ضبط الخيارات الآتية في ملف ‎/etc/dovecot/conf.d/10-logging.conf: auth_debug=yes auth_debug_passwords=yesملاحظة: مثل Postfix، إذا عدَّلت ضبط Dovecot فيجب إعادة تحميل العملية: sudo service dovecot reloadملاحظة: يمكن أن تزيد بعض الخيارات من مقدار المعلومات المُرسَلة إلى السجل زيادةً كبيرةً؛ تذكر أن تُعيد مستوى التسجيل إلى الحالة الطبيعية بعد أن تحلّ المشكلة؛ ثم أعد تحميل العفريت الملائم كي يأخذ الضبط الجديد مفعوله. مصادريمكن أن تكون مهمة إدارة خادوم Postfix مهمةً معقدةً جدًا؛ وستحتاج في مرحلةٍ ما إلى الاستعانة بمجتمع أوبنتو للحصول على المساعدة. مكان رائع للسؤال عن مساعدة في Postfix والاشتراك في مجتمع أوبنتو هو قناة ‎#ubuntu-server على خادوم freenode؛ يمكنك أيضًا نشر موضوع في أحد المنتديات.لمعلومات معمقّة عن Postfix، فينصح مطورو أوبنتو بكتاب «The Book of Postfix».موقع Postfix فيه توثيق رائع لمختلف خيارات الضبط المتوفرة.راجع أيضًا صفحة ويكي أوبنتو «Postfix» للمزيد من المعلومات.ترجمة -وبتصرف- للمقال Ubuntu Server Guide: Postfix. حقوق الصورة البارزة: Designed by Freepik.
  5. سنقوم في هذا الدرس بإعداد خادوم بريد باستخدام Postfix، Dovecot، MySQL و SpamAssasin على توزيعة Ubuntu. بعد اتّباع هذا الدرس، ستكون قادرًا على إضافة نطاقات افتراضية (virtual domains)، المستخدمين والاختصارات إلى خادوم بريدك الإلكتروني، وليس هذا فقط، بل سيكون خادومك محميًا من هجمات السبام (Spam). المتطلّباتقبل البدء بإعداد خادوم البريد الخاصّ بك، من المهم أن يمتلك خادومك الافتراضي الخاص الأمور التالية: توجيه النطاق الرئيسي إلى عنوان الآي بي الخاصّ بخادومك.تثبيت وإعداد MySQL على الخادوم.مستخدم بصلاحيات الجذر (root privileges).إعداد وضبط اسم النطاق المؤهّل الكامل (FQDN). (إعداد FQDN).إضافي: شهادة SSL (إعداد شهادة SSL مجانية موقّعة).إضافي: تسجيل الدخول إلى المستخدم الجذر.سيكون من المفيد تثبيت الحزم باستخدام المستخدم الجذر حيث أنّك ستمتلك جميع الصلاحيات: sudo -iقم بكتابة كلمة المرور الخاصّة بالمستخدم. بمجرد نجاح العملية، سترى أنّ رمز $ قد تغيّر إلى #. الخطوة الأولى: تثبيت الحزمapt-get install postfix postfix-mysql dovecot-core dovecot-imapd dovecot-lmtpd dovecot-mysqlعندما يتم سؤالك عن إعدادات Postfix، اختر "Internet Site": سيقوم Postfix بسؤالك عن اسم بريد النظام الإلكتروني - يمكنك استخدام FQDN أو نطاقك الرئيسي إن أردت: الخطوة الثانية: إنشاء قاعدة بيانات MySQL، نطاقات افتراضية، المستخدمين والاختصاراتبعد أن انتهى التثبيت، سنقوم الآن بإنشاء قاعدة بيانات MySQL لإعداد 3 جداول مختلفة: واحدٌ للنطاقات، واحدٌ للمستخدمين والأخير سيكون للاختصارات (aliases). سنقوم بتسمية قاعدة البيانات بـ"servermail"، ولكن يمكنك استخدام أيّ اسمٍ تريده. لإنشاء قاعدة البيانات servermail: mysqladmin -p create servermailلتسجيل الدخول كالمستخدم الجذر في MySQL: mysql -u root -pقم بإدخال كلمة مرور MySQL الخاصّة بالمستخدم الجذر; إذا نجحت العملية فسترى: mysql >يجب علينا أولًا إنشاء مستخدمٍ جديد، حيث يكون مخصصًا لعملية الاستيثاق (authentication) الخاصّة بالبريد الإلكتروني، وسنقوم بإعطائه صلاحية SELECT: mysql > GRANT SELECT ON servermail.* TO 'usermail'@'127.0.0.1' IDENTIFIED BY 'mailpassword';نحتاج بعدها إلى إعادة تحميل صلاحيات MySQL لضمان تطبيقها بشكلٍ صحيح: mysql > FLUSH PRIVILEGES;وأخيرًا، يجب علينا استخدام قاعدة البيانات الجديدة لإنشاء الجداول وحفظ بياناتنا: mysql> USE servermail;سنقوم بإنشاء جدول خاصّ بالنطاقات التي نعرفها على أنّها نطاقات موثوقة: CREATE TABLE `virtual_domains` ( `id` INT NOT NULL AUTO_INCREMENT, `name` VARCHAR(50) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;سنقوم الآن بإنشاء جدول لحفظ المستخدمين فيه. ستقوم هنا بإضافة عناوين البريد الإلكتروني وكلمات المرور. من المهم جدًا أن تقوم بربط كلّ مستخدمٍ متوفّر بنطاقٍ ما: CREATE TABLE `virtual_users` ( `id` INT NOT NULL AUTO_INCREMENT, `domain_id` INT NOT NULL, `password` VARCHAR(106) NOT NULL, `email` VARCHAR(120) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `email` (`email`), FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8;وأخيرًا، سنقوم بإنشاء جدول اختصاراتٍ افتراضي لتحديد جميع عناوين البريد الإلكتروني التي تريد توجيهها إلى عناوين بريدية أخرى: CREATE TABLE `virtual_aliases` ( `id` INT NOT NULL AUTO_INCREMENT, `domain_id` INT NOT NULL, `source` varchar(100) NOT NULL, `destination` varchar(100) NOT NULL, PRIMARY KEY (`id`), FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8;لقد قمنا بإنشاء الجداول الثلاثة بنجاح. الآن سنقوم بإدخال البيانات. النطاقات الافتراضيةسنقوم هنا بإدخال النطاقات الخاصّة بك إلى جدول virtual_domains. يمكنك إضافة جميع النطاقات التي ترغب بها، ولكننا سنقوم في هذا الدليل بإضافة النطاق الرئيسي فقط (example.com) و اسم نطاقك المؤهّل الكامل (FQDN) والذي هو على شاكلة (hostname.example.com). INSERT INTO `servermail`.`virtual_domains` (`id` ,`name`) VALUES ('1', 'example.com'), ('2', 'hostname.example.com');عناوين البريد الإلكتروني الافتراصيةوالآن، سنقوم بإدخال عناوين البريد الإلكتروني وكلمات المرور المرتبطة بها إلى كلّ نطاقٍ على حدا. تأكّد من أنّك غيّرت جميع البيانات والمعلومات الموجودة بالشفرة أدناه لتناسب احتياجاتك قبل تطبيقها: INSERT INTO `servermail`.`virtual_users` (`id`, `domain_id`, `password` , `email`) VALUES ('1', '1', ENCRYPT('firstpassword', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'email1@example.com'), ('2', '1', ENCRYPT('secondpassword', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'email2@example.com');الاختصارات الوهمية:سنُدخِل عنوان البريد الإلكتروني (المصدر) الذي سنقوم بتوجيهه إلى عنوان البريد الإلكتروني الآخر (الوجهة): INSERT INTO `servermail`.`virtual_aliases` (`id`, `domain_id`, `source`, `destination`) VALUES ('1', '1', 'alias@example.com', 'email1@example.com');للخروج من MySQL: mysql > exitالخطوة الثالثة: إعداد Postfixسنقوم بإعداد Postfix ليستلم معالجة اتصالات SMTP وإرسال الرسائل إلى كلّ مستخدمٍ موجود في قاعدة بيانات MySQL. أولًا، يجب علينا إنشاء نسخة من الملفّ الافتراضي، في حال أردنا استرجاع الإعدادات الافتراضي إذا حصلت مشكلةٌ ما: cp /etc/postfix/main.cf /etc/postfix/main.cf.origافتح ملف main.cf لتعديله: nano /etc/postfix/main.cfأولًا سنحتاج إلى القيام بوضع إشارة تعليق (#) على مُعامِلات TLS وإضافة مُعامِلات جديدة من هذا الدرس، سنقوم باستخدام شهادات SSL المجانية والمسارات التي تم اقتراحها في هذا الدليل (رابط)، ولكن يمكنك تعديل الأمور بناءً على احتياجاتك الشخصية: # TLS parameters #smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem #smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key #smtpd_use_tls=yes #smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache #smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtpd_tls_cert_file=/etc/ssl/certs/dovecot.pem smtpd_tls_key_file=/etc/ssl/private/dovecot.pem smtpd_use_tls=yes smtpd_tls_auth_only = yesثم سنقوم بإضافة المُعامِلات التالية إلى أسفل إعدادات TLS التي قمنا بتغييرها بالخطوة السابقة: smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_auth_enable = yes smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destinationنحتاج الآن إلى القيام بوضع إشارة تعليق (#) قبل سطر mydestination واستبداله بـlocalhost. سيسمح هذا التغيير لخادومك الافتراضي الخاصّ باستخدام النطاق الافتراضي الموجود داخل جدول قاعدة MySQL. #mydestination = example.com, hostname.example.com, localhost.example.com, localhost mydestination = localhostتأكّد أنّ مُعامِل myhostname مضبوط على الـFQDN الخاصّ بك: myhostname = hostname.example.comقم بإضافة السطر التالي ليتم إرسال الرسائل إلى جميع النطاقات الافتراضية الموجودة داخل جدول MySQL: virtual_transport = lmtp:unix:private/dovecot-lmtpوأخيرًا، نحتاج إلى إضافة هذه المُعامِلات الثلاثة لنخبر Postfix أن يقوم بإعداد النطاقات الافتراضية، المستخدمين والاختصارات: virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cfملاحظة: قارن هذه التغييرات مع هذا الملف لتتأكد من عدم وجود أخطاء: https://www.dropbox.com/s/x9fpm9v1dr86gkw/etc-postfix-main.cf.txtسنقوم بإنشاء الملفّات الثلاثة الأخيرة التي قمنا بإدراجها في ملف main.cf لنخبر Postfix كيف يتصل بـMySQL. أولًا، نحتاج إلى إنشاء ملف mysql-virtual-mailbox-domains.cf . إنّه ضروري لتغيير قِيَم الإعدادات بناءً على احتياجاتك الخاصّة: nano /etc/postfix/mysql-virtual-mailbox-domains.cf user = usermail password = mailpassword hosts = 127.0.0.1 dbname = servermail query = SELECT 1 FROM virtual_domains WHERE name='%s'ثم نحتاج إلى إعادة تشغيل Postfix: service postfix restartيجب علينا أن نضمن قيام Postfix بإيجاد النطاق الخاصّ بك، لذا نحتاج اختباره باستخدام الأمر التالي، إذا نجح الأمر فسيتم طباعة رقم 1: postmap -q example.com mysql:/etc/postfix/mysql-virtual-mailbox-domains.cfوالآن، يجب علينا إنشاء ملف mysql-virtual-mailbox-maps.cf: nano /etc/postfix/mysql-virtual-mailbox-maps.cf user = usermail password = mailpassword hosts = 127.0.0.1 dbname = servermail query = SELECT 1 FROM virtual_users WHERE email='%s'ثم يجب علينا إعادة تشغيل Postfix مجددًا: service postfix restartفي هذه النقطة، سنتأكّد من أنّ Postfix سيجد عنوان البريد الإلكتروني الأول الخاصّ بك باستخدام الأمر التالي، يجب أن يتم إرجاع الرقم 1 في حال نجحت العملية: postmap -q email1@example.com mysql:/etc/postfix/mysql-virtual-mailbox-maps.cfوأخيرًا، سنقوم بإنشاء آخر ملفّ لإعداد الاتصال بين Postfix و MySQL: nano /etc/postfix/mysql-virtual-alias-maps.cf user = usermail password = mailpassword hosts = 127.0.0.1 dbname = servermail query = SELECT destination FROM virtual_aliases WHERE source='%s'قم بإعادة تشغيل Postfix: service postfix restartيجب أن نضمن أيضًا أنّ Postfix سيعثر على الاختصارات الخاصّة بك. قم بإدخال الأمر التالي ويجب أن يتم طباعة البريد الإلكتروني الذي يتم توجيهه إلى الاختصار: postmap -q alias@example.com mysql:/etc/postfix/mysql-virtual-alias-maps.cfإذا أردت تفعيل المنفذ 587 للاتصال بشكلٍ آمن باستخدام برامج البريد الإلكتروني (email clients)، فمن الضروري أن تقوم بتعديل ملفّ /etc/postfix/master.cf: nano /etc/postfix/master.cfنحتاج إلى إلغاء تعليق السطور التالية وإضافة سطور أخرى: submission inet n - - - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,rejectفي بعض الحالات، نحتاج إلى إعادة تشغيل Postfix لكي يتم فتح المنفذ 587: service postfix restartملاحظة: يمكنك استخدام هذه الأداة لفحص منافذ نطاقك والتأكّد من أنّ المنفذين 25 و 587 مفتوحان (http://mxtoolbox.com/SuperTool.aspx) الخطوة الرابعة: إعداد Dovecotسنقوم بنسخ الـ7 ملفّات التي سنقوم بتعديلها هنا، لكي نكون قادرين على استرجاعها في حال ما إذا حصلت مشكلة. أدخل الأوامر التالية الواحد تلو الآخر: cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.orig cp /etc/dovecot/conf.d/10-mail.conf /etc/dovecot/conf.d/10-mail.conf.orig cp /etc/dovecot/conf.d/10-auth.conf /etc/dovecot/conf.d/10-auth.conf.orig cp /etc/dovecot/dovecot-sql.conf.ext /etc/dovecot/dovecot-sql.conf.ext.orig cp /etc/dovecot/conf.d/10-master.conf /etc/dovecot/conf.d/10-master.conf.orig cp /etc/dovecot/conf.d/10-ssl.conf /etc/dovecot/conf.d/10-ssl.conf.origثمّ لتعديل ملفّ الإعدادات من Dovecot: nano /etc/dovecot/dovecot.confوتأكّد أنّ هذا الخيار ليس مُعلّقًا (لا يوجد إشارة # قبله): chown -R vmail:vmail /var/mailثمّ سنحتاج إلى تعديل ملفّ /etc/dovecot/conf.d/10-auth.conf: nano /etc/dovecot/conf.d/10-auth.confقم بإلغاء تعليق سطر استيثاق النصّ الصرف (plain text authentication) وأضف هذا السطر: disable_plaintext_auth = yesقم بتعديل مُعامِل auth_mechanisms: auth_mechanisms = plain loginوقم بتعليق هذا السطر: auth_mechanisms = plain loginالآن، قم بتفعيل استيثاق MySQL عبر إلغاء تعليق هذا السطر: !include auth-sql.conf.extملاحظة: قارن تغييراتك بهذا الملفّ: https://www.dropbox.com/s/4h472nqrj700pqk/etc.dovecot.conf.d.10-auth.conf.txtنحتاج إنشاء ملفّ /etc/dovecot/dovecot-sql.conf.ext والذي سيحتوي على معلومات الاستيثاق الخاصّة بك: nano /etc/dovecot/conf.d/auth-sql.conf.extقم بإدخال الشفرة التالية في الملفّ: passdb { driver = sql args = /etc/dovecot/dovecot-sql.conf.ext } userdb { driver = static args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n }نحتاج تعديل ملفّ /etc/dovecot/dovecot-sql.conf.ext وإضافة معلومات MySQL الخاصّة بنا: nano /etc/dovecot/dovecot-sql.conf.extقم بإلغاء تعليق مُعامِل driver وقم بتعيين mysql فيه: driver = mysqlقم بإلغاء تعليق مُعامِل connect وأضف البيانات الخاصّة بإعدادات MySQL لديك: connect = host=127.0.0.1 dbname=servermail user=usermail password=mailpasswordقم بإلغاء تعليق سطر defaultpassscheme وغيّره إلى SHA-512: default_pass_scheme = SHA512-CRYPTقم بإلغاء تعليق سطر password_query وأضف هذه المعلومات: password_query = SELECT email as user, password FROM virtual_users WHERE email='%u';ملاحظة: قارن تغييراتك مع هذا الملفّ: https://www.dropbox.com/s/48a5r0mtgdz25cz/etc.dovecot.dovecot-sql.conf.ext.txtالآن، قم بتغيير المالك ومجموعة مجلّد dovecot إلى المستخدم vmail: chown -R vmail:dovecot /etc/dovecot chmod -R o-rwx /etc/dovecotافتح وعدّل ملفّ /etc/dovecot/conf.d/10-master.conf (وكن حذرًا، لأنّه هناك أكثر من مُعامِل يجب تغييره): nano /etc/dovecot/conf.d/10-master.conf ##Uncomment inet_listener_imap and modify to port 0 service imap-login { inet_listener imap { port = 0 } #Create LMTP socket and this configurations service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { mode = 0600 user = postfix group = postfix } #inet_listener lmtp { # Avoid making LMTP visible for the entire internet #address = #port = #} }قم بتعديل مُعامِل unixlistener إلى serviceauth كالتالي: service auth { unix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix group = postfix } unix_listener auth-userdb { mode = 0600 user = vmail #group = } #unix_listener /var/spool/postfix/private/auth { # mode = 0666 #} user = dovecot }عدّل service auth-worker كالتالي: service auth-worker { # Auth worker process is run as root by default, so that it can access # /etc/shadow. If this isn't necessary, the user should be changed to # $default_internal_user. user = vmail }ملاحظة: قارن تغييراتك بهذا الملفّ: https://www.dropbox.com/s/g0vnt233obh6v2h/etc.dovecot.conf.d.10-master.conf.txtوأخيرًا، سنقوم بتعديل ملفّ إعدادات SSL من Dovecot (تخطّى هذه الخطوة في حال كنتَ تريد استخدام الإعدادات الافتراضية): nano /etc/dovecot/conf.d/10-ssl.confغيّر مُعامَل SSL إلى required: ssl = requiredعدّل المسار لـsslcert و sslkey: ssl_cert = </etc/ssl/certs/dovecot.pem ssl_key = </etc/ssl/private/dovecot.pemوقم بإعادة تشغيل Dovecot: service dovecot restartيجب أن تتأكّد أنّ المنفذ 993 يعمل ومفتوح: telnet example.com 993تهانينا!، لقد قمتَ بنجاح بإعداد خادوم بريدك الأول ويمكنك اختبار الإعدادات التالية باستخدام أحد برامج إدارة البريد الإلكتروني: - Username: email1@example.com - Password: email1's password - IMAP: example.com - SMTP: example.comملاحظة: استخدام المنفذ 993 لـIMAP المؤمّن و 587 أو 25 لـSMTP. الخطوة الخامسة: إعداد SpamAssassinنحتاج أولًا إلى تثبيت SpamAssassin: apt-get install spamassassin spamcثمّ يجب علينا إنشاء مستخدمٍ خاص بـSpamAssassin: adduser spamd --disabled-loginلإعداد SpamAssassin بنجاح، من الضروري أن تفتح وتعدّل ملفّ الإعدادات: nano /etc/default/spamassassinيجب علينا تغيير مُعامِل ENABLED لتفعيل SpamAssasin: ENABLED=1كما ونحتاج إلى تغيير مُعامِلات مجلّد المنزل والخيارات: SPAMD_HOME="/home/spamd/" OPTIONS="--create-prefs --max-children 5 --username spamd --helper-home-dir ${SPAMD_HOME} -s ${SPAMD_HOME}spamd.log"ثمّ نحتاج إلى تعديل مُعامِل PID_FILE بالشكل التالي: PIDFILE="${SPAMD_HOME}spamd.pid"وأخيرًا، نحتاج إلى تحديد أنّ قواعد SpamAssasins يجب أن يتم تحديثها تلقائيًا: CRON=1ملاحظة: قارن تغييراتك بهذا الملفّ: PIDFILE="${SPAMD_HOME}spamd.pid"نحتاج الآن إلى فتح /etc/spamassassin/local.cf لإعداد القواعد التي ستحدّ من هجمات السبام (Spam): nano /etc/spamassassin/local.cfسيقوم SpamAssasin بتسجيل كلّ بريدٍ إلكتروني ويفحص ما إذا كان هذا البريد الإلكتروني يمتلك 5 نقط أو أعلى في اختبار فحص السبام، وإن كان كذلك فسيقوم تلقائيًا باعتباره سبام. يمكنك استخدام المُعامِلات التالية لإعداد القواعد المُضادة للسبام: rewrite_header Subject ***** SPAM _SCORE_ ***** report_safe 0 required_score 5.0 use_bayes 1 use_bayes_rules 1 bayes_auto_learn 1 skip_rbl_checks 0 use_razor2 0 use_dcc 0 use_pyzor 0نحتاج إلى تغيير ملفّ /etc/postfix/master.cf لنخبره أنّه سوف يتم التحقق من كلّ بريدٍ إلكترونيٍ وارد بواسطة SpamAssasin: nano /etc/postfix/master.cfثمّ نحتاج إلى العثور على السطر التالي وإضافة مرشّح spamassasin: smtp inet n - - - - smtpd -o content_filter=spamassassinوأخيرًا نحتاج إلى إضافة المُعامِلات التالية: spamassassin unix - n n - - pipe user=spamd argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}يجب الآن إعادة تشغيل كلٍّ من Postfix و SpamAssasin لكي تأخذ التغييرات مكانها: service spamassassin start service postfix restart*تهانينا! لقد قمتَ بنجاح بإعداد خادوم بريدٍ إلكتروني باستخدام Postfix و Dovecot مع استيثاق MySQL وحماية ضدّ هجمات السبام باستخدام SpamAssasin ! حظًا موفقًا يا صاح! ترجمة -وبتصرّف- للمقال: How To Configure a Mail Server Using Postfix, Dovecot, MySQL, and SpamAssasin.
×
×
  • أضف...