Score:0

วิธีกำหนดค่า EXIM เพื่อตรวจสอบระเบียน SPF สำหรับอีเมลขาเข้า และเพิ่มส่วนหัว 'SPF ที่ได้รับ' ในอีเมลขาเข้า

ธง by

ฉันกำลังเล่นกับ Exim และสร้างเซิร์ฟเวอร์อีเมลที่สามารถรับและส่งอีเมลได้ ตอนนี้ ฉันต้องการเปิดใช้การตรวจสอบ SPF สำหรับอีเมลขาเข้าทุกฉบับ เพื่อให้ก ได้รับค่า SPF เพิ่มส่วนหัวในอีเมลเหล่านี้ แต่ฉันไม่สามารถหาวิธีที่จะทำสิ่งนี้ได้

เอกสารกล่าวว่า การสนับสนุนการตรวจสอบ SPF มีอยู่ใน Exim หากมีการตั้งค่า SUPPORT_SPF=yes ใน Local/Makefile การสนับสนุนใช้ไลบรารี libspf2 https://www.libspf2.org/

แต่ฉันคิดว่าใคร ๆ ก็สามารถตั้งค่าตัวเลือกนี้เป็นใช่ได้หากเขา / เธอกำลังสร้าง Exim จากแหล่งที่มา ฉันติดตั้งโดยตรงจากแพ็คเกจ Ubuntu (ฉันคิดว่า libspf2 ติดตั้งอัตโนมัติแล้ว) และไม่รู้ว่าตำแหน่งของ โลคอล/เมคไฟล์ เป็น. ฉันค่อนข้างแน่ใจว่าสิ่งนี้สามารถทำได้ค่อนข้างง่าย แต่ตอนนี้ฉันไม่มีเงื่อนงำในเรื่องนี้

ฉันยังตรวจสอบไดเร็กทอรีการกำหนดค่า Exim และพบโค้ดที่เกี่ยวข้องต่อไปนี้ 30_exim4-config_check_rcpt ไฟล์.

สิ่งนี้บอกอย่างชัดเจนว่า Exim จะตรวจสอบบันทึก SPF ของผู้ส่งหลังจากคำสั่ง RCPT หากเปิดใช้การตรวจสอบ SPF และ spf-เครื่องมือ-perl มีการติดตั้ง ฉันติดตั้ง spf-เครื่องมือ-perl และยังไม่เห็นมี ได้รับค่า SPF หัวข้อ. ดังนั้นสิ่งนี้ทำให้เกิดคำถามสองข้อ

  1. จะเปิดใช้งานการตรวจสอบ SPF เพื่อเปิดใช้งานการเรียกใช้โค้ดนี้ได้อย่างไร
  2. เหตุใด spf-tools-perl เนื่องจากเอกสารระบุชัดเจนว่า Exim ใช้ libspf ทำไมต้องมีห้องสมุดสองแห่ง
  # ใช้ spfquery เพื่อตรวจสอบค่า SPF หนึ่งคู่
  #
  # นี่เป็นค่าใช้จ่ายที่ค่อนข้างแพงในแง่ของการค้นหา DNS (ประมาณ 6 การค้นหาต่อเมล) อย่า
  # เปิดใช้งานหากเป็นปัญหา โปรดทราบว่าหากคุณเปิดใช้งานสิ่งนี้ คุณต้อง
  # ติดตั้ง "spf-tools-perl" ซึ่งมีคำสั่ง spfquery
  # spf-tools-perl ที่ขาดหายไปจะทำให้เกิด "ข้อผิดพลาดที่ไม่คาดคิดใน
  #ตรวจสอบSPF"คำเตือน
  .ifdef CHECK_RCPT_SPF
  ปฏิเสธ
    ข้อความ = [SPF] $sender_host_address ไม่ได้รับอนุญาตให้ส่งจดหมายจาก \
              ${if def:sender_address_domain {$sender_address_domain}{$sender_helo_name}}
    log_message=การตรวจสอบ SPF ล้มเหลว
    !acl = acl_local_deny_exceptions
    เงื่อนไข = ${run{/usr/bin/spfquery.mail-spf-perl --ip \
                   ${quote:$sender_host_address} --identity \
                   ${ถ้า def:sender_address_domain \
                       {--ขอบเขต mfrom --identity ${quote:$sender_address}}\
                       {--scope helo --identity ${quote:$sender_helo_name}}}}\
                   {ไม่}{${if eq {$runrc}{1}{ใช่}{no}}}}

  ผัดผ่อน
    ข้อความ = ข้อผิดพลาด DNS ชั่วคราวขณะตรวจสอบระเบียน SPF ลองอีกครั้งในภายหลัง
    !acl = acl_local_deny_exceptions
    condition = ${if eq {$runrc}{5}{yes}{no}}

  เตือน
    condition = ${if <={$runrc}{6}{yes}{no}}
    add_header = ได้รับ-SPF: ${if eq {$runrc}{0}{pass}\
                                {${if eq {$runrc}{2}{softfail}\
                                 {${if eq {$runrc}{3}{เป็นกลาง}\
                  {${if eq {$runrc}{4}{permerror}\
                   {${if eq {$runrc}{6}{none}{error}}}}}}}}}\
                } client-ip=$sender_host_address; \
                ${ถ้า def:sender_address_domain \
                   {ซองจาก=${sender_address}; }{}}\
                helo=$sender_helo_name

  เตือน
    log_message = ข้อผิดพลาดที่ไม่คาดคิดในการตรวจสอบ SPF
    condition = ${if >{$runrc}{6}{yes}{no}}
  .endif```  

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา