postfix + dovecot + mysql على فري

مقدمة


كنت أرغب في دراسة خادم البريد لفترة طويلة ، لكن يدي وصلت الآن فقط ، ولم أتمكن من العثور على الكثير من المعلومات الصحيحة ، لذلك قررت أن أكتب منشورًا مفصلاً قدر الإمكان. سوف يناقش هذا المنشور ليس فقط 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 

بعد هذه الإجراءات ، سيتم عرض الأحرف الروسية بشكل صحيح.

Source: https://habr.com/ru/post/ar476148/


All Articles