مقدمة
كنت أرغب في دراسة خادم البريد لفترة طويلة ، لكن يدي وصلت الآن فقط ، ولم أتمكن من العثور على الكثير من المعلومات الصحيحة ، لذلك قررت أن أكتب منشورًا مفصلاً قدر الإمكان. سوف يناقش هذا المنشور ليس فقط postfix ، حمامة ، mysql ، postfixadmin ، ولكن أيضا spamassassin ، clamav-milter (إصدار خاص من clamav لخوادم البريد) ، postgrey ، وكذلك إمكانية نقل البريد العشوائي إلى مجلد Spam (dovecot- برج الحمام).
تدريب
أولاً وقبل كل شيء ، سنقوم بتثبيت الحزم التي تحتاج إلى العمل (يجب تثبيت postfix و dovecot و dovecot-pigeonhole من المنافذ ، ويمكن تثبيت dovecot-sieve من الحزم ، من حيث المبدأ ، هناك إصدارات أحدث في المنافذ ولهذا السبب قد يكون هناك عدم توافق بين dovecot و dovecot- غربال). تثبيت الحزم التالية:
pkg install apache24 php73 mod_php73 php73-extensions php73-mysqli php73-mbstring php73-openssl clamav-milter postgrey spamassassin mysql57-server openssl wget
بعد التثبيت ، سنضع الخدمات اللازمة في التشغيل التلقائي:
#postfix dovecot , sysrc postfix_enable="YES" sysrc dovecot_enable="YES" sysrc mysql_enable="YES" sysrc apache24_enable="YES" sysrc spamd_flags="-u spamd -H /var/spool/spamd" sysrc spamd_enable="YES" sysrc postgrey_enable="YES" sysrc clamav_clamd_enable="YES" sysrc clamav_milter_enable="YES" sysrc clamav_freshclam_enable="YES" #freshclam 12 sysrc clamav_freshclam_flags="--daemon --checks=12"
تشغيل الخدمات:
service apache24 start service mysql-server start # spamassassin sa-update sa-compile service sa-spamd start # clamav freshclam service clamav-clamd start service clamav-freshclam start service clamav-milter start # postgrey (/usr/local/etc/rc.d/postgrey), "" 4- , : ${postgrey_flags:=--inet=10023} : : ${postgrey_flags:=--inet=10023 --auto-whitelist-clients=4} service postgrey start
لا تنس أن تضيف في httpd.conf الأسطر اللازمة لكي يعمل php في apache ولكي يعمل postfixadmin بشكل صحيح:
<FilesMatch "\.php$"> SetHandler application/x-httpd-php </FilesMatch> <FilesMatch "\.phps$"> SetHandler application/x-httpd-php-source </FilesMatch> <IfModule dir_module> DirectoryIndex index.php </IfModule> # postfixadmin DocumentRoot "/usr/local/www/apache24/data/postfixadmin-3.2/public"
بعد ذلك ، انتقل إلى الدليل وقم بتنزيل postfixadmin
cd /usr/local/www/apache24/data
تنزيل postfixadmin (وقت كتابة هذا التقرير ، كان الإصدار الحالي 3.2)
wget --no-check-certificate https://sourceforge.net/projects/postfixadmin/files/postfixadmin/postfixadmin-3.2/postfixadmin-3.2.tar.gz
بعد ذلك ، تحتاج إلى فك ضغط الأرشيف في هذا الدليل وتغيير مالك الدليل:
gzip -d postfixadmin-3.2.tar.gz tar -xvf postfixadmin-3.2.tar chown -R www:www /usr/local/www/apache24/data service apache24 restart
بعد ذلك ، قم بإعداد قاعدة البيانات لـ postfixadmin ، وقم بتشغيل البرنامج النصي للتثبيت من mysql (ستحتاج كلمة المرور التي تنشئها في هذا البرنامج النصي إلى إنشاء في mysql باستخدام الأمر user user) ، للإعداد الأولي لـ mysql ، ثم أدخل mysql ، ثم أنشئ قاعدة البيانات والحقوق بالنسبة لها:
mysql -p -r alter user 'root'@'localhost' identified by 'password123'; create database postfix; grant all privileges on postfix.* to 'postfix'@'localhost' identified by 'password123'; exit
بعد تكوين قاعدة البيانات ، تحتاج إلى تحرير ملف config.inc.php ، في هذا المثال ، يوجد هذا الملف في دليل /usr/local/www/apache24/data/postfixadmin-3.2/ ، في هذا الملف ، تحتاج إلى تحرير عدة أسطر وإحضارها إلى ضع في اعتبارك ، بعد تغيير الإعدادات ، إعادة تشغيل apache ، ستحتاج أيضًا إلى إنشاء الدليل templates_c في دليل /usr/local/www/apache24/data/postfixadmin-3.2 وتعيين مالك www عليه:
mkdir /usr/local/www/apache24/data/postfixadmin-3.2/templates_c chown -R www:www /usr/local/www/apache24/data/postfixadmin-3.2/templates_c $CONF['configured'] = true # postfixadmin . $CONF['setup_password'] = 'dd28fb2139a3bca426f02f60e6877fd5:13d2703c477b0ab85858e3ac5e076a0a7a477315'; $CONF['default_language'] = 'ru' $CONF['database_type'] = 'mysqli'; $CONF['database_host'] = 'localhost'; $CONF['database_user'] = 'postfix'; # $CONF['database_password'] = 'password123'; $CONF['database_name'] = 'postfix'; service apache24 restart
SSL
لإنشاء المفتاح ، سوف نستخدم الطريقة المقترحة على postfix.org ، مع إنشاء المرجع المصدق الخاص بنا ، نحتاج إلى الانتقال إلى دليل / etc / ssl وتنفيذ البرنامج النصي:
cd /etc/ssl /usr/local/openssl/misc/CA.pl -newca
أثناء تنفيذ البرنامج النصي ، سيتم طلب اسم الشهادة ، لا تدخل أي شيء ، اضغط على Enter ، ثم سيطلب منك البرنامج النصي إنشاء كلمة مرور للشهادة ، ثم ستكون هناك أسئلة قياسية لإنشاء الشهادة.
بعد ذلك ، تحتاج إلى إنشاء مفتاح سري (بدون كلمة مرور) وشهادة مفتاح عمومي غير موقعة (يجب أن يكون اسم الوحدة التنظيمية (على سبيل المثال ، القسم) [] مختلفًا عما هو محدد في الشهادة التي تم إنشاؤها أعلاه):
openssl req -new -newkey rsa:4096 -nodes -keyout foo-key.pem -out foo-req.pem
سنقوم بتوقيع شهادة المفتاح العمومي (حدد عدد الأيام التي تحتاجها):
openssl ca -out foo-cert.pem -days 365 -infiles foo-req.pem
اترك الشهادات التي تم إنشاؤها في هذا الدليل ، أو قم بنقلها إلى الدليل الأكثر ملاءمة لك ، وسيتم تكوين البادئة "configs" و dovecote مع مراعاة حقيقة أن الشهادات ستكون في هذا الدليل.
مستخدم Vmail
قبل تثبيت postfix و dovecot و dovecot-pigeonhole ، سنقوم بإنشاء مستخدم ومجموعة (سيتم إنشاء مجموعة تلقائيًا) vmail ، بالإضافة إلى الدليل الذي سيتم وضع البريد عليه.
pw useradd -n vmail -s /usr/sbin/nologin -u 1000 -d /var/vmail
قم بإنشاء دليل للبريد وتعيين مالك مستخدم vmail:
mkdir /var/vmail chown -R vmail:vmail /var/vmail chmod -R 744 /var/vmail
Postfix ، حمامة ، حمامة حمامة
كما كتبت سابقًا ، سنقوم بتجميع بيانات التطبيق من المنافذ ، ونقوم بتشغيل الأمر لتنزيل المنافذ وتفريغها:
portsnap fetch extract
بعد تفريغ المنافذ ، انتقل إلى دليل dovecot ، وقم بتكوين المنفذ (لاحظ دعم mysql) وقم بتشغيل البنية (BATCH = نعم ستخبر جعل عدم طرح الأسئلة أثناء التثبيت):
cd /usr/ports/mail/dovecot make config make BATCH=yes install clean
تفعل الشيء نفسه مع postfix و dovecot-pigeonhole
برج الحمام-برج الحمام:
cd /usr/ports/mail/dovecot-pigeonhole make BATCH=yes install clean
postfix: تحقق أيضًا من دعم mysql في إعدادات المنفذ
cd /usr/ports/mail/postfix-sasl make config make BATCH=yes install clean
قبل بدء dovecot ، انسخ "التكوينات":
cp -R /usr/local/etc/dovecot/example-config/* /usr/local/etc/dovecot
بعد تثبيت postfix و dovecot ، ابدأ الخدمات:
service postfix start service dovecot start
من الضروري أيضًا إنشاء دليل يتم فيه تجميع الوحدة النمطية لإرسال البريد العشوائي إلى مجلد البريد العشوائي ، وفي هذه الحالة يوجد هذا الدليل في المجلد /usr/local/etc/dovecot/conf.d ، واسم الدليل def ، وإنشاء هذا الدليل وملف مع رمز للتجميع وتعيين مالك دليل مستخدم vmail المحدد:
mkdir /usr/local/etc/dovecot/conf.d/def touch /usr/local/etc/dovecot/conf.d/def/default.sieve chown -R vmail:vmail /usr/local/etc/dovecot/conf.d/def chmod -R 744 /usr/local/etc/dovecot/conf.d/def
ضع الأسطر في هذا الملف:
require "fileinto"; if header :contains "X-Spam-Flag" "YES" { fileinto "Junk"; }
"تكوين"
في هذا القسم سأقدم أمثلة على "configs" مع تعليقات فيها ، أشك فقط في "config" من spamassassin ، حيث أنني لم أجد الأوصاف الصحيحة على الشبكة (تركت "config" افتراضيًا) ، يرجى إضافة التعليقات بأفضل طريقة لتهيئة spamassassin.
بوستفيكس
بادئ ذي بدء ، تحتاج إلى إنشاء ملفات لسحب المستخدمين ، المجالات ، الحصص من قاعدة البيانات. قم بإنشاء دليل لتخزين ملفات البيانات والملفات الضرورية:
mkdir /usr/local/etc/postfix/mysql touch /usr/local/etc/postfix/mysql/relay_domains.cf touch /usr/local/etc/postfix/mysql/virtual_alias_maps.cf touch /usr/local/etc/postfix/mysql/virtual_alias_domain_maps.cf touch /usr/local/etc/postfix/mysql/virtual_mailbox_maps.cf
محتويات هذه الملفات ستكون:
relay_domains.cf
hosts = 127.0.0.1 user = postfix password = password123 dbname = postfix query = SELECT domain FROM domain WHERE domain='%s' and backupmx = '1'
virtual_alias_maps.cf
hosts = 127.0.0.1 user = postfix password = password123 dbname = postfix query = SELECT goto FROM alias WHERE address='%s' AND active ='1'
virtual_alias_domain_maps.cf
hosts = 127.0.0.1 user = postfix password = password123 dbname = postfix query = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = CONCAT('%u', '@', alias_domain.target_domain) AND alias.active = '1'
virtual_mailbox_maps.cf
hosts = 127.0.0.1 user = postfix password = password123 dbname = postfix query = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1'
master.cf
# postfix , dovecot dovecot unix - nn - - pipe flags=DRhu user=vmail:vmail argv=/usr/local/libexec/dovecot/deliver -f ${sender} -d ${recipient} # smtpd sasl, , spamassassin smtp inet n - n - - smtpd -o content_filter=spamassassin -o smtpd_sasl_auth_enable=yes # 587 sasl submission inet n - n - - smtpd -o smtpd_sasl_auth_enable=yes # smtp SASL smtps inet n - n - - smtpd -o smtpd_sasl_auth_enable=yes -o smtpd_tls_wrappermode=yes # Spamassassin spamassassin unix - nn - - pipe flags=DROhu user=vmail:vmail argv=/usr/local/bin/spamc -f -e /usr/local/libexec/dovecot/deliver -f ${sender} -d ${user}@${nexthop} #628 inet n - n - - qmqpd pickup unix n - n 60 1 pickup cleanup unix n - n - 0 cleanup qmgr unix n - n 300 1 qmgr #qmgr unix n - n 300 1 oqmgr tlsmgr unix - - n 1000? 1 tlsmgr rewrite unix - - n - - trivial-rewrite bounce unix - - n - 0 bounce defer unix - - n - 0 bounce trace unix - - n - 0 bounce verify unix - - n - 1 verify flush unix n - n 1000? 0 flush proxymap unix - - n - - proxymap proxywrite unix - - n - 1 proxymap smtp unix - - n - - smtp relay unix - - n - - smtp -o syslog_name=postfix/$service_name # -o smtp_helo_timeout=5 -o smtp_connect_timeout=5 showq unix n - n - - showq error unix - - n - - error retry unix - - n - - error discard unix - - n - - discard local unix - nn - - local virtual unix - nn - - virtual lmtp unix - - n - - lmtp anvil unix - - n - 1 anvil scache unix - - n - 1 scache postlog unix-dgram n - n - 1 postlogd
main.cf
# dovecot, local_transport = dovecot # , SMTP- EHLO SMTP smtpd_discard_ehlo_keywords = CONNECT GET POST # smtpd_delay_reject = yes # smtpd_helo_required = yes # , disable_vrfy_command = yes # broken_sasl_auth_clients = yes # smtpd_sasl_security_options = noanonymous noactive nodictionary smtp_sasl_security_options = noanonymous noactive nodictionary # dovecot ( cyrus) smtpd_sasl_type = dovecot smtp_sasl_type = dovecot # smtpd_sasl_path = private/auth # local_recipient_maps = $virtual_mailbox_maps $virtual_alias_maps # , smtpd_reject_unlisted_recipient = yes # message_size_limit = 10485760 # spamassassin spamassassin_destination_recipient_limit = 1 # milter_default_action = accept milter_protocol = 2 # clamav smtpd_milters = unix:/var/run/clamav/clmilter.sock non_smtpd_milters = unix:/var/run/clamav/clmilter.sock #MYSQL relay_domains = mysql:/usr/local/etc/postfix/mysql/relay_domains.cf virtual_alias_maps = mysql:/usr/local/etc/postfix/mysql/virtual_alias_maps.cf, mysql:/usr/local/etc/postfix/mysql/virtual_alias_domain_maps.cf virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysql/virtual_mailbox_maps.cf # HELO smtpd_helo_restrictions = permit_sasl_authenticated, reject_non_fqdn_helo_hostname, reject_invalid_hostname # smtpd_data_restrictions = permit_sasl_authenticated reject_unauth_pipelining, reject_multi_recipient_bounce # smtpd_sender_restrictions = permit_sasl_authenticated reject_sender_login_mismatch,reject_unauthenticated_sender_login_mismatch, reject_non_fqdn_sender, reject_unknown_sender_domain # (check_policy_service inet:127.0.0.1:10023 postgrey - ) smtpd_recipient_restrictions = permit_sasl_authenticated reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_multi_recipient_bounce, reject_unknown_client_hostname, reject_unauth_destination, check_policy_service inet:127.0.0.1:10023 # virtual_mailbox_base = /var/vmail #uid gid vmail virtual_minimum_uid = 1000 virtual_uid_maps = static:1000 virtual_gid_maps = static:1000 # virtual_transport = devecot dovecot_destination_recipient_limit = 1 # smtp_use_tls=yes smtp_tls_note_starttls_offer=yes # smtp_tls_security_level=encrypt ssl, ssl, smtp_tls_security_level=may( ssl, ) smtp_tls_security_level=encrypt smtp_tls_session_cache_database=btree:$data_directory/smtp_tls_session_cache smtp_tls_CAfile=/etc/ssl/demoCA/cacert.pem smtp_tls_key_file=/etc/ssl/foo-key.pem smtp_tls_cert_file=/etc/ssl/foo-cert.pem smtp_tls_session_cache_timeout=3600s smtp_tls_protocols=!TLSv1.2 smtp_tls_loglevel=1 # smtpd_tls_security_level=encrypt ssl, ssl, smtpd_tls_security_level=may( ssl, ) smtpd_tls_security_level=encrypt smtpd_use_tls=yes smtpd_tls_auth_only=yes smtpd_tls_loglevel=1 smtpd_tls_received_header=yes smtpd_tls_session_cache_timeout=3600s smtpd_tls_session_cache_database=btree:$data_directory/smtpd_tls_session_cache smtpd_tls_key_file=/etc/ssl/foo-key.pem smtpd_tls_cert_file=/etc/ssl/foo-cert.pem smtpd_tls_CAfile= /etc/ssl/demoCA/cacert.pem smtpd_tls_protocols=!TLSv1.2 # tls_random_source=dev:/dev/urandom # compatibility_level = 2 # , , , soft_bounce = no # UNIX postfix mail_owner = postfix # postfix( ) myhostname = $mydomain # mydomain = virusslayer.su myorigin = $myhostname # inet_interfaces = all # mydestination = $mydomain, localhost, localhost.$mydomain # 550 unknown_local_recipient_reject_code = 550 # localhost mynetworks_style = host # , - mynetworks = # ip inet_protocols = ipv4 # ( ) alias_maps = hash:/etc/mail/aliases alias_database = dbm:/etc/mail/aliases.db # smtpd_banner = $myhostname ESMTP $mail_name # debug_peer_level = 2 # ( , yandex.ru gmail.ru mail.ru ..) debug_peer_list = 127.0.0.1 # debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5 # sendmail sendmail_path = /usr/local/sbin/sendmail mailq_path = /usr/local/bin/mailq setgid_group = maildrop # html_directory = /usr/local/share/doc/postfix manpage_directory = /usr/local/man sample_directory = /usr/local/etc/postfix readme_directory = /usr/local/share/doc/postfix meta_directory = /usr/local/libexec/postfix shlib_directory = /usr/local/lib/postfix queue_directory = /var/spool/postfix command_directory = /usr/local/sbin daemon_directory = /usr/local/libexec/postfix data_directory = /var/db/postfix
برج الحمام
dovecot.conf
# dovecot protocols = imap pop3 # listen = *, :: # mysql dict { quota = mysql:/usr/local/etc/dovecot/dovecot-dict-sql.conf.ext } # !include conf.d/*.conf !include_try local.conf
برج الحمام-ديكت-sql.conf.ext
connect = host=127.0.0.1 dbname=postfix user=postfix password=password123 map { pattern = priv/quota/storage table = quota2 username_field = username value_field = bytes } map { pattern = priv/quota/messages table = quota2 username_field = username value_field = messages }
برج الحمام-sql.conf.ext
# MYSQL driver = mysql connect = host=127.0.0.1 dbname=postfix user=postfix password=password123 # default_pass_scheme = MD5 # , user_query = SELECT '/var/mail/%d/%n/' AS home, 'maildir:/var/vmail/%d/%n' AS mail, 1000 AS uid, 1000 AS gid, concat('*:bytes=',quota) as quota_rule FROM mailbox \ WHERE username ='%u' AND active = '1' password_query = SELECT username as user, password, '/var/vmail/%d/%n' as userdb_home, 'maildir:/var/vmail/%d/%n' as userdb_mail, 1000 as userdb_uid, \ 1000 as userdb_gid, concat('*:bytes=',quota) AS userdb_quota_rule FROM mailbox WHERE username ='%u' AND active ='1'
10-auth.conf
# SSL disable_plaintext_auth = yes # auth_realms = virusslayer.su auth_default_realm = virusslayer.su # ( , ssl) auth_mechanisms = plain login # , !include auth-sql.conf.ext, mysql #!include auth-deny.conf.ext #!include auth-master.conf.ext #!include auth-system.conf.ext !include auth-sql.conf.ext #!include auth-ldap.conf.ext #!include auth-passwdfile.conf.ext #!include auth-checkpassword.conf.ext #!include auth-vpopmail.conf.ext #!include auth-static.conf.ext
10-mail.conf
# mail_location = maildir:/var/vmail/%d/%n # namespace inbox { inbox = yes } #uid gid vmail mail_uid = 1000 mail_gid = 1000 # , quota mail_plugins = quota
10-master.conf
# ssl service imap-login { inet_listener imap { port = 143 } inet_listener imaps { port = 993 ssl = yes } } service pop3-login { inet_listener pop3 { port = 110 } inet_listener pop3s { port = 995 ssl = yes } } service submission-login { inet_listener submission { port = 587 } } # ( , ) service auth { unix_listener auth-userdb { mode = 0600 user = vmail group = vmail } # Postfix smtp-auth unix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix group = postfix } } # vmail service dict { unix_listener dict { mode = 0660 user = vmail group = vmail } }
10-ssl.conf
# ssl ( sll ) ssl = required # ssl_cert = </etc/ssl/foo-cert.pem ssl_key = </etc/ssl/foo-key.pem ssl_ca = </etc/ssl/demoCA/cacert.pem # ssl_min_protocol = TLSv1.2
15 lda.conf
quota_full_tempfail = no lda_mailbox_autosubscribe = yes protocol lda { # sieve, mail_plugins = $mail_plugins sieve quota }
90 plugin.conf
# "", chown -R vmail:vmail # "" plugin { #setting_name = value sieve = /usr/local/etc/dovecot/conf.d/def/default.sieve }
المصادقة-sql.conf.ext
# MYSQL passdb { driver = sql # Path for SQL configuration file, see example-config/dovecot-sql.conf.ext args = /usr/local/etc/dovecot/dovecot-sql.conf.ext } userdb { driver = sql args = /usr/local/etc/dovecot/dovecot-sql.conf.ext }
سباماساسين
يشبه spamassassin "config" هذا ، ولكن هناك شيء يخبرني أن البيانات ليست كافية ، يرجى المساعدة في البيانات الموجودة في "config":
local.cf
rewrite_header Subject *****SPAM***** report_safe 0 required_score 5.0 use_bayes 1 bayes_auto_learn 1 ifplugin Mail::SpamAssassin::Plugin::Shortcircuit endif # Mail::SpamAssassin::Plugin::Shortcircuit
من الضروري أيضًا إجراء تدريب على الرسائل التي تحتوي على رسائل غير مرغوب فيها وبدونها:
sa-learn --spam /path/spam/folder sa-learn --ham /path/ham/folder
بالإضافة إلى ذلك
في هذا القسم ، سأحدد إعدادات جدار الحماية بناءً على pf ، وأضف pf إلى التشغيل التلقائي وحدد الملف بالقواعد:
sysrc pf_enable="YES" sysrc pf_rules="/etc/0.pf"
قم بإنشاء ملف بالقواعد:
ee /etc/0.pf
وأضف القواعد إليه:
# ( lo0) , set skip on lo0 # deovecot, postfix, root pass in quick proto { tcp, udp } from any to any port {53,25,465,587,110,143,993,995} user {dovecot,postfix,root} flags S/SA modulate state pass out quick proto { tcp, udp } from any to any port {53,25,465,587,110,143,993,995} user {dovecot,postfix,root} # root pass out quick proto {tcp,udp} from any to any user root # pass in quick proto tcp from any to any port 80 flags S/SA modulate state #SSH pass in quick proto tcp from any to any port 22 flags S/SA modulate state # clamav spamd pass out quick proto {tcp,udp} from any to any user {clamav,spamd} #DNS ICMP pass out quick proto {tcp,udp} from any to any port=53 keep state pass out quick proto icmp from any to any block from any to any fragment block from any to any block all
يمكنك تشغيل pf باستخدام الأمر:
service pf start
تجريب
لاختبار جميع الاتصالات الممكنة (STARTTLS ، SLL) ، يمكنك استخدام عميل MyOffice Mail للأجهزة المحمولة (في حالتي لنظام ios) ، يوجد في هذا التطبيق العديد من المعلمات لتكوين الاتصالات بخادم البريد.
لاختبار spaassasin نستخدم توقيع GTUBE ، أضف السطر في الرسالة:
XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X
إذا كان كل شيء صحيحًا ، فسيتم وضع علامة على الرسائل غير المرغوب فيها وسيتم نقل الرسالة وفقًا لذلك إلى مجلد البريد العشوائي.
لاختبار مكافحة الفيروسات ، تحتاج إلى إرسال بريد إلكتروني مع ملف نصي ، في هذا الملف سيكون هناك تسلسل EICAR:
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
تحتاج الرسائل بشكل طبيعي إلى إرسالها من صناديق البريد الخارجية.
لعرض السجلات في الوقت الفعلي ، قم بتشغيل:
tail -f /var/log/maillog
أيضًا ، للاختبار الصحيح لإرسال البريد إلى صناديق البريد الخارجية (على سبيل المثال ، yandex.ru ، mail.ru ، gmail.com ، وما إلى ذلك) ، تحتاج إلى تسجيل منطقة DNS العكسية (سجل PTR) ، يمكنك القيام بذلك عن طريق الاتصال بمزود الخدمة (إذا كان أنت بالتأكيد لا تملك خادم DNS الخاص بك).
استنتاج
قد يبدو بالطبع أن خادم البريد أمر معقد إلى حد ما ، لكن إذا اكتشفت ذلك ، فليس من هذا القبيل على الإطلاق ، فبعد قضاء بعض الوقت في التكوين ، يمكنك الحصول على خادم بريد فعال إلى حد ما ، مع الحماية من البريد العشوائي والفيروسات.
ملاحظة: إذا كنت تخطط لـ "نسخ اللصق" مع التعليقات ، فأنت بحاجة إلى إضافة مستخدم الجذر (وأولئك الذين يحتاجون إليه) إلى سجلات الفصل الروسي:
pw usermod root -L russian
بعد هذه الإجراءات ، سيتم عرض الأحرف الروسية بشكل صحيح.