سأتحدث بقدر ماستطيع عن خدمة sendmail ، كما وعدت بعض الاعضاء
هنا ، هذه الخدمة كبيره ومعقده بعض الشئ لكثرة ملفاتها وتشعب
اعداداتها هنا وهناك ، حسب احتياجات المستخدم ، سأكتب ما
تعلمته ومايقدرني الله عليه ، وتذكر يجب عليك قرائة اي مقالات
اخرى متوفرة للتعامل مع الخدمة بشكل افضل
نقوم بتركيب الحزمة ( *sendmail ) كتركيب أي برنامج ولو ماتعرف طريقة التركيب
مافي داعي تقرا الموضوع
ولنتحدث قليلاً عن طريقة الاعداد ، نتعرف على مجلد الاعداد الرئيسي للخدمة هنا
كود
/etc/mail/sendmail.cf
لكن هذا الملف صعب التعامل معه واعداده ، وهو اقرب الى ان يكون كود برمجي بدلا
من ملف config او اعداد للخدمة ، سنتعامل مع ملف الماكرو هذا
كود
/etc/mail/sendmail.mc
ومن ثم نقوم بتحويله للملف الاصلي sendmail.cf بالامر m4 هكذا
كود
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
هذا الامر يجب علينا كتابته في كل مره لتحويل ملف الماكرو هذا الى ملف اعداد
الخدمة.
سأتحدث عن بعض الاعدادات المهمه فقط لان الخدمة متشعبه جدا وهذا الموضوع يعتبر
اجحاف بحقها ، بقدر ماهي معقده ولازلت ارجع لقراءة المانوال لفهم بعض
الاعدادات وعملها ، وقمت بتلخيصها مع اني اواجه صعوبة في توضيح بعض الامور.
نقوم بتحرير ملف الماكرو sendmail.mc ، وننتبه لمسألة التعليقات ، أي سطر يبدأ
بالاحرف ( dnl ) يعتبر سطر غير داخل بالاعداد ، وسيتجاهله الامر m4 عند ترجمة
ملف الماكرو لملف الاعداد الرئيسي sendmail.cf ، المعلومة هذي يجب ان تكون
ثابته عندك.
طبعا الاعدادات في ملف الماكرو كثيرة وصعب اغطيها كلها لاني ماعرف منها الا كم
اعداد تعتبر اعدادات اساسية ، لهذا سأقوم بشرح طريقة اعداد الخدمة لشبكتي
المحلية على شكل خطوات ، باعتبار انني استخدم الدومين example.com
اولا / أضع الدومين المطلوب في ملف local-host-names وسيكون محتواه كما يلي
كود
# local-host-names - include all aliases for your machine here.
example.com
وطبعا لو عندك اكثر من دومين تقدر تضيفهم كل واحد بسطر بهذا الملف
/etc/mail/local-host-names
ثانيا / أحرر ملف الماكرو sendmail.mc وأقوم بتعليق الخيار DAEMON_OPTIONS
كود
dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')
هذا الخيار يقوم بالسماح فقط لسيرفري للاتصال بالخدمة ، نضع علامة التعليق dnl
قبله ليصبح عديم فائدة ويسمح بالاجهزة الاخرى بالاتصال بالخدمة ، او يمكننا
ازالة Addr=127.0.0.1 من قيمته.
ثالثا / اقوم بترجمة ملف الماكرو الى ملف اعداد الخدمة ، بالامر
كود
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
كما ذكرت في البداية
رابعا / نحرر ملف access ونضع فيه مايلي
كود
example.com RELAY
10.0.0 RELAY
192.168.0 RELAY
الخدمة لا تقوم بتحويل او عمل FORWARD للرسائل افتراضيا ، يجب علينا السماح
للشبكة المحلية والنطاق و أن نقوم بتحديد عناوين الشبكة بالخيار RELAY داخل
الملف /etc/mail/access ، ونقدر نعمل حظر لأي IP او دومين معين بالخيار REJECT
خامسا / اقوم باعادة تشغيل الخدمة
كود
service sendmail start
chkconfig sendmail on
الامر الاول يقوم بتشغيل الخدمة الان ، والامر الثاني يجعلها on عند تشغيل
النظام.
لتشغيل الخدمات وايقافها بشكل افضل استخدم الطريقة التالية بدلا من service
كود
/etc/init.d/sendmail start|stop|restart
لان الامر service لا يوجد في كل الانظمة
+++++++++++++++++++++++++++++
لم نتعامل مع الخدمة بعد ، وسأقوم بسرد طلبات لاعدادها وساشرح الطريقة ، هذه
الطلبات مصدرها نسخة من اسأله امتحان ردهات ، النموذج متوفر في المكتبة العامة
بهذا المجتمع
المطلوب :
* اسمح للشبكة 24/192.168.0.0 لتتصل بالخدمة
* أحظر جميع الرسائل القادمة من الدومين cracker.org
* اجعل اليوزر jseven ، يستقبل رسائل اليوزر abdulaziz
الطريقة :
السماح والحظر كما ذكرت سابقا موجودة في ملف access ، أقوم بتحريره ووضع
الاسطر التاليه فيه
كود
192.168.0.0/24 RELAY
@cracker.org REJECT
نقوم باعادة تشغيل الخدمة
كود
service sendmail restart
ثم استخدم الملف /etc/aliases لتحويل رسائل أي يوزر ليوزر اخر على نفس النظام
، نضع فيه
كود
abdulaziz: jseven
هكذا نكون جعلنا رسائل abdulaziz تذهب الى اليوزر jseven
نستخدم الامر newaliases لتنشيط المدخلات الجديدة
كود
[root@example ~]# newaliases
/etc/aliases: 78 aliases, longest 10 bytes, 802 bytes total
[root@example ~]#
++++++++++++++++++++++++++++++
سؤال آخر :
المطلوب :
* أي رسالة تخرج من الشبكة المحلية ، اجعلها تنتهي بالدومين example.com فقط ،
"سأوضح المطلوب".
*أي رسالة تأتي للبريد info_(at)_example.com ، حولها للبريد admin_(at)_example.com
*أجعل جميع الرسائل المرسلة تستخدم سيرفر الارسال هذا smtp.abc.com
الطريقة :
عناوين الايميلات في الشبكة راح تكون تابعه للدومين ، في مثالنا هذا دومين
السيرفر هو example.com ، ماذا عن عنوان الجهاز 10.0.0.2 راح يكون عنوانه
station2.example.com على سبيل المثال .
بالعربي فيه يوزر اسمه abdulaziz على الجهاز station2.example.com راح يكون
عنوان ايميله
كود
abdulaziz_(at)_station2.example.com
هذا طبعا افتراضيا من الخدمة ، المطلوب في السؤال اننا نجعل جميع الايميلات
الصادرة من جميع الاجهزة الاخرى تكون هكذا
كود
abdulaziz_(at)_example.com
نعملها باضافة الخيار MASQUERADE_AS بملف الماكرو ، هكذا
كود
MASQUERADE_AS(`example.com')
وباستخدام الخيار SMART_HOST نستطيع ان نحدد سيرفر اخر لنسخدمة بالارسال هكذا
كود
define('SMART_HOST','smtp.abc.com')
ثم نقوم بترجمة ملف الماكرو الى ملف اعداد الخدمة ، بالامر
كود
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
كما ذكرت في البداية
اما بالنسبة لتحويل ايميل الى ايميل اخر فمن خلال الملف virtusertable ونضع
فيه مايلي
كود
info_(at)_example.com
admin@example.com ثم نحفظ الملف ، وبكذا جميع رسائل info_(at)_example.com ستصل الى
admin_(at)_example.com ، وتستطيع وضع عناوين خارجيه ليتم تحويل الرسائل لها
++++++++++++++++++++++++++++++
سؤال أخير :
المطلوب :
*قم بدعم بروتوكول POP3 و بروتوكول POP3s الامن ، ليعمل بجانب sendmail
هذا يعني تحرير ملف dovecot.conf الموجود في مجلد etc ونضيف فيه البروتوكولات
هكذا
كود
protocols = pop3 pop3s
ثم نقوم بتشغيل الخدمة
كود
service dovecot start
chkconfig dovecot on
ان شاء الله تكون هذه المعلومات مفيدة ومقدمة جيدة للتعامل مع خدمة sendmail
والسلام عليكم