كيفية إنشاء خادم بريد على أوبونتو

نشر خادم بريد كامل الميزات على أوبونتو 20.04 باستخدام Postfix وDovecot وMySQL وOpenDMARC.

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

سيقوم هذا الدليل الشامل بإرشادك خطوة بخطوة لإنشاء خادم بريد كامل الوظائف على أوبونتو 20.04/22.04 من البداية إلى النهاية.

المتطلبات الأساسية

قبل البدء، ستحتاج إلى ما يلي:

  • خادم أوبونتو 20.04/22.04 مع عنوان IP عام ثابت. يوصى باستخدام VPS.
  • اسم نطاق مسجل. سيتم استخدام هذا لإرسال واستقبال البريد الإلكتروني من خادم البريد الخاص بك.
  • حق الوصول الإداري إلى خادم أوبونتو الخاص بك.
  • معرفة أساسية بسطر الأوامر لنظام لينكس.

سنستخدم Postfix لخادم SMTP ، وDovecot لـ IMAP/POP3 ، وOpenDMARC لمصادقة البريد الإلكتروني. كما سيتم تكوين قاعدة بيانات MySQL لتخزين معلومات مثل النطاقات الافتراضية والمستخدمين.

دعنا نبدأ بتحديث مستودع الحزم وتثبيت بعض الاعتمادات على خادم أوبونتو الخاص بنا:

$ sudo apt update  
$ sudo apt install postfix postfix-mysql dovecot-imapd dovecot-pop3d mariadb-server openssl openssl-blacklist

بعد ذلك، سنمر خلال الخطوات لتكوين كل مكون.

تكوين Postfix

يتعامل Postfix مع خدمة SMTP لإرسال واستقبال البريد الإلكتروني. نحن بحاجة إلى تحديث بعض الإعدادات في ملف التكوين الرئيسي Postfix.

افتح الملف باستخدام:

$ sudo nano /etc/postfix/main.cf

ابحث عن المعلمة myhostname واضبطها على اسم النطاق المسجل الخاص بك:

myhostname = mail.example.com

بعد ذلك، ابحث عن المعلمة mydomain واضبطها على النطاق الخاص بك:

mydomain = example.com

اضبط المعلمة myorigin على $mydomain:

myorigin = $mydomain 

تحت قسم INTERNET_PROTOCOLS ، تأكد من تمكين ipv4:

inet_interfaces = all
inet_protocols = all

هذا يسمح لـ Postfix بالاستماع على جميع واجهات الشبكة IPv4 المتاحة.

الآن ابحث عن المعلمة mydestination واضبطها على ما يلي:

mydestination = $myhostname, localhost.$mydomain, $mydomain

هذا يحدد النطاقات التي سيقوم Postfix بتسليم البريد إليها محليًا.

احفظ الملف وأغلقه بعد الانتهاء من التعديل.

بعد ذلك، نحن بحاجة إلى إعداد مصادقة SMTP. أنشئ ملف كلمة مرور لـ Postfix باستخدام الأمر postmap:

$ sudo postmap /etc/postfix/sasl_passwd

أنشئ ملف المستخدم وكلمة المرور:

$ sudo nano /etc/postfix/sasl_passwd 

أضف بريدك الإلكتروني وكلمة المرور على سطرين منفصلين:

mail.example.com [email protected]
mail.example.com password123

احفظ الملف وأغلقه.

الآن حرر تكوين SASL Postfix:

$ sudo nano /etc/postfix/sasl/smtpd.conf

تأكد من وجود ما يلي:

pwcheck_method: saslauthd
mech_list: plain login

هذا يضبط Postfix لاستخدام خدمة saslauthd للمصادقة.

أعد تشغيل Postfix لتحميل التكوين الجديد:

$ sudo systemctl restart postfix

تم الآن تكوين Postfix وجاهز لإرسال واستقبال البريد الإلكتروني.

تكوين Dovecot

سيتم استخدام Dovecot للتعامل مع بروتوكولات IMAP و POP3 للوصول إلى البريد الإلكتروني من عملاء البريد الإلكتروني مثل Outlook أو Thunderbird.

افتح ملف تكوين Dovecot:

$ sudo nano /etc/dovecot/dovecot.conf

ابحث عن قسم البروتوكولات وقم بتمكين imap و pop3:

protocols = imap pop3

قم بتمكين مصادقة SMTP:

disable_plaintext_auth = yes 

اضبط موقع البريد الإلكتروني:

mail_location = maildir:/var/mail/%d/%n

الآن افتح ملف تكوين مصادقة SMTP:

$ sudo nano /etc/dovecot/conf.d/10-auth.conf

ابحث عن المعلمة auth_mechanisms واضبطها على:

auth_mechanisms = plain login

هذا يسمح بالمصادقة النص العادي وتسجيل الدخول مثل Postfix.

أخيرًا، افتح ملف أذونات:

$ sudo nano /etc/dovecot/conf.d/10-mail.conf

واضبط:

mail_access_groups = mail 

هذا يسمح لأعضاء مجموعة mail بالوصول إلى صناديق البريد.

احفظ وأعد تشغيل Dovecot:

$ sudo systemctl restart dovecot

Dovecot مستعد الآن للتعامل مع الوصول إلى البريد عبر IMAP و POP3.

إعداد قاعدة بيانات MySQL

بعد ذلك، سنقوم بإعداد قاعدة بيانات MySQL لتخزين النطاقات الافتراضية والمستخدمين لخادم بريدنا.

قم بتسجيل الدخول إلى shell MySQL:

$ sudo mysql

أنشئ قاعدة بيانات تسمى mailserver:

CREATE DATABASE mailserver; 

أنشئ مستخدمًا جديدًا ومنح أذونات على قاعدة البيانات:

GRANT SELECT,INSERT,UPDATE,DELETE ON mailserver.* TO 'mailuser'@'127.0.0.1' IDENTIFIED BY 'password123';

اخرج من MySQL:

quit

الآن يمكننا استيراد ملف SQL تكوين Postfix لإنشاء الجداول الضرورية:

$ sudo mysql mailserver < /etc/postfix/mysql/postfix_db.sql

قاعدة بيانات MySQL جاهزة الآن لتخزين معلومات النطاق والمستخدم لخادم بريدنا.

النطاقات الافتراضية والمستخدمون

مع تكوين قاعدة البيانات، يمكننا إنشاء نطاقات افتراضية ومستخدمين.

يسمح لك النطاق الافتراضي باستضافة نطاقات متعددة من خادم بريد واحد.

أولاً، افتح ملف تكوين النطاق الافتراضي Postfix:

$ sudo nano /etc/postfix/mysql-virtual_domains.cf  

ألغي تعليق معلمة config_directory واضبطها إلى تكوين MySQL الخاص بنا:

config_directory = /etc/postfix/mysql

الآن دعنا ننشئ إدخال نطاق افتراضي في قاعدة البيانات. قم بتسجيل الدخول إلى MySQL:

$ sudo mysql mailserver -p

أدخل صفًا للنطاق:

INSERT INTO `virtual_domains` (`id` ,`name`) VALUES ('1', 'example.com');

اخرج من MySQL.

بعد ذلك، افتح ملف المستخدمين الافتراضيين:

$ sudo nano /etc/postfix/mysql-virtual_mailboxes.cf

اضبط config_directory مثلما سبق:

config_directory = /etc/postfix/mysql

هذا يسمح لـ Postfix بالبحث عن المستخدمين في MySQL.

أدخل MySQL مرة أخرى:

$ sudo mysql mailserver -p

أنشئ مستخدمًا نموذجيًا:

INSERT INTO `virtual_users` (`id`, `domain_id`, `password` , `email`) VALUES ('1', '1', ENCRYPT('password123', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), '[email protected]');

هذا ينشئ مستخدمًا “[email protected]” مع كلمة مرور مشفرة.

الآن نحتاج إلى السماح للمستخدم بالوصول إلى صناديق البريد الإلكتروني. أدخل صفًا في virtual_aliases:

INSERT INTO `virtual_aliases` (`id`, `domain_id`, `source`, `destination`) VALUES ('1', '1', '[email protected]', '[email protected]');

اخرج من MySQL وأعد تشغيل Postfix لتفعيل التغييرات:

$ sudo systemctl restart postfix

يمكننا إنشاء المزيد من النطاقات والمستخدمين بنفس الطريقة.

OpenDMARC

ينفذ OpenDMARC معيار مصادقة البريد الإلكتروني DMARC. هذا يساعد على تحسين الأمان ومنع الرسائل غير المرغوب فيها والتصيد الاحتيالي.

أولاً، قم بتثبيت OpenDMARC:

$ sudo apt install opendmarc opendmarc-tools

افتح الملف الرئيسي للتكوين:

$ sudo nano /etc/opendmarc.conf

اضبط نطاقك:

AuthservID mail.example.com

قم بتمكين التسجيل والإبلاغ:

Socket inet:8893@localhost
LogLevel debug
Syslog true
RejectFailures false 
ReportFailures true
HistoryFile /var/lib/opendmarc/opendmarc.dat
StatsSocket /var/run/opendmarc/opendmarc.sock
MinServers 3
ServerInterval 60

هذا يسجل النشاط إلى syslog ويتيح تقارير البريد الإلكتروني اليومية.

أضف نطاقك كعنوان From:

/etc/opendmarc/ignore.hosts
mail.example.com

الآن قم بتمكين OpenDMARC:

$ sudo systemctl enable opendmarc
$ sudo systemctl start opendmarc

أخيرًا، أنشئ سجل TXT DMARC لنطاقك:

$ sudo opendmarc-gen-policy --domain example.com --policy none --report email:[email protected]

خذ هذا السجل TXT وأضفه إلى تكوين DNS الخاص بنطاقك.

OpenDMARC نشط الآن وسيقوم بالتحقق من صحة رسائل البريد الإلكتروني الواردة.

اختبار خادم البريد

يجب الآن أن يكون خادم بريد أوبونتو مكون بشكل صحيح. دعنا نقوم ببعض الاختبارات للتحقق من أنه يعمل.

أولاً، أرسل رسالة اختبار من الخادم نفسه باستخدام:

$ echo "This is a test" | mail -s Testing [email protected]

تحقق مما إذا تم تسليم البريد:

$ sudo ls -l /var/mail

يجب أن ترى ملفًا سمي باسم المستخدم الذي أرسلت إليه إذا كان التسليم ناجحًا.

بعد ذلك، قم بتكوين عميل بريد إلكتروني مثل Thunderbird للاتصال بخادم البريد. أضف حسابًا جديدًا باستخدام بيانات اعتماد IMAP و SMTP التي قمت بتكوينها.

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

يمكنك أيضًا استخدام Telnet للاتصال يدويًا بـ SMTP Postfix وإرسال رسالة:

$ telnet mail.example.com 25

اكتب EHLO ، ثم MAIL FROM: ، RCPT TO: وأخيرًا بيانات الرسالة الاختبارية. هذا يتحقق من أن إرسال وتسليم SMTP يعملان بشكل صحيح.

تحقق من /var/log/mail.log و /var/log/syslog للعثور على أي أخطاء مع Postfix أو Dovecot أو MySQL أو OpenDMARC أثناء الاختبار. قم بتصحيح وحل أي مشاكل تظهر.

عندما يعمل كل شيء كما هو متوقع ، يكون خادم بريد أوبونتو جاهزًا للاستخدام!

تأمين خادم البريد

الآن بعد أن لدينا خادم بريد يعمل، دعنا نتحدث عن بعض أفضل الممارسات لتأمينه:

  • استخدم HTTPS/SSL للخدمات متى أمكن ذلك لتشفير الحركة. احصل على شهادات SSL لنطاقك.
  • قم بتقييد الوصول إلى خدمات البريد حسب عنوان IP باستخدام mynetworks Postfix أو لوائح السماح TCP Wrappers.
  • قم بتمكين قواعد الجدار الناري التي تسمح بالحركة فقط على المنفذ 25 (SMTP) و 143 (IMAP) و 993 (IMAP + TLS) و 110 (POP3).
  • قم بتعطيل مصادقة كلمة المرور في SSH واستخدم تسجيل الدخول القائم على المفتاح فقط.
  • تأكد من أن حزم النظام لديك محدثة دائمًا عن طريق تمكين التحديثات الأمنية التلقائية.
  • راقب سجلات الخادم بانتظام بحثًا عن علامات الهجمات أو محاولات الوصول غير المصرح بها.
  • قم بإعداد logrotate لأرشفة وضغط السجلات.
  • قم بتعطيل أي خدمات غير ضرورية لا يتم استخدامها.
  • أنشئ مستخدمي نظام ذوي امتيازات منخفضة لخدمات مثل Dovecot و Postfix.
  • استخدم كلمات مرور قوية وقم بتمكين المصادقة الثنائية حيثما أمكن ذلك.
  • قم بالنسخ الاحتياطي لبيانات البريد الإلكتروني وقواعد بيانات MySQL بانتظام.

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

خلاصة

هذا يختتم دليل خطوة بخطوة حول نشر خادم بريد على أوبونتو 20.04/22.04. قمنا بتثبيت وتكوين Postfix وDovecot وMySQL وOpenDMARC. كما غطينا تدابير الأمان المهمة لحماية خادم البريد.

مع خادم بريد أوبونتو الخاص بك، يمكنك التحكم الكامل في بريدك الإلكتروني مع تحسين الخصوصية والأمان وإمكانية التسليم. يمكن للمستخدمين الوصول إلى البريد عبر IMAP و SMTP باستخدام أي عميل بريد إلكتروني قياسي.

يتطلب تشغيل خادم بريد المزيد من الصيانة اليدوية مقارنةً باستخدام مزود بريد إلكتروني مستضاف. ولكن غالبًا ما تفوق فوائد امتلاك خادم خاص الجهد الإضافي.

أخبرني إذا كان لديك أي أسئلة أخرى! أنا سعيد لتقديم المزيد من التفاصيل حول أي جزء من عملية إعداد خادم البريد.

LEAVE A COMMENT