postfix / smtpd: คำเตือน: เชื่อมต่อกับบริการ Milter unix: /var/run/opendkim/opendkim.sock: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว


36

ฉันมีปัญหากับ postfix บน debian หลังจากอัปเกรดจากบีบเป็นเสียงฮืด ๆ Postfix ได้รับการกำหนดค่าให้ลงชื่อข้อความโดยใช้ dkim-filter ก่อนที่จะอัปเดตทุกอย่างทำงานได้อย่างไร้ที่ติตอนนี้มันล้มเหลวในการเชื่อมต่อกับบริการ (tcp หรือซ็อกเก็ตยูนิกซ์) ฉันคิดว่าอาจเป็นเพราะ debian เปลี่ยนเป็น opendkim ดังนั้นฉันจึงลบ dkim-filter และ opendkim ที่ติดตั้ง - ปัญหาเดียวกัน ฉันได้ลองตั้งค่าการเชื่อมต่อซ็อกเก็ตไฟล์ unix แทนตัวเลือก tcp - ปัญหาเดียวกัน:

postfix/smtpd: warning: connect to Milter service unix:/var/run/opendkim/opendkim.sock: No such file or directory

หรือ (ด้วย tcp / ip):

postfix/cleanup: warning: connect to Milter service inet:localhost:8891: Connection refused

ฉันตรวจสอบสองครั้ง - ไฟล์ซ็อกเก็ตมีอยู่และบริการกำลังฟังพอร์ต 8891

ฉันจะแก้ไขสิ่งนี้ได้อย่างไร

คำตอบ:


58
  1. ตรวจสอบว่า opendkim ทำงานอยู่หรือไม่ (ฉันถือว่ามันเป็นอย่างที่คุณเห็นไฟล์ซ็อกเก็ต)
  2. คุณกำหนดค่า opendkim หรือไม่ /etc/opendkim.confแฟ้มการกำหนดค่าที่ได้คือ

    คุณต้องอัปเดตไฟล์เพื่อให้ตรงกับเว็บไซต์ / โดเมนและเส้นทางdkim.key ของคุณ

  3. เพิ่ม postfix ให้กับกลุ่ม opendkim

    หาก opendkim.sock สิทธิ์ดังต่อไปนี้

    $ ls -l / var / run / opendkim
    
    -rw-rw-r-- 1 opendkim opendkim 6 พฤษภาคม 2 14:56 opendkim.pid
    srwxrwxr-x 1 opendkim opendkim 0 พฤษภาคม 2 14:56 opendkim.sock
    

    ถ้าไม่ได้ตรวจสอบให้แน่ใจUMaskมีการตั้งค่าใน0002/etc/opendkim.conf

    จากนั้นทำดังต่อไปนี้

    sudo adduser postfix opendkim
  4. Postfix ทำงานใน chroot

    ปรับเปลี่ยน/etc/default/opendkimให้เปลี่ยนตัวเลือกSOCKETเป็นตำแหน่ง postfix chroot

    SOCKET = "ท้องถิ่น: /var/spool/postfix/var/run/opendkim/opendkim.sock"

    คุณจะต้องสร้างไดเรกทอรี/var/spool/postfix/var/run/opendkimและเปลี่ยนการอนุญาต

    sudo mkdir -p / var / spool / postfix / var / run / opendkim
    sudo chown opendkim: opendkim / var / spool / postfix / var / run / opendkim
    
  5. รีสตาร์ท opendkim

    sudo บริการเริ่มต้นใหม่
    

4
ฉันพบปัญหาที่คล้ายกันที่เกิดจากสิทธิ์ที่ จำกัด มากเกินไปในไดเรกทอรี opendkim
Darrell Duane

1
ฉันแน่ใจว่าฉันเคยทำงานกับ opendkim มาก่อน แต่สังเกตว่ามันไม่ทำงานหลังจากอัปเกรดจาก Ubuntu 15.04 เป็น 15.10 การอัปเดตพา ธ ซ็อกเก็ตให้เป็นเส้นทาง/etc/default/opendkimเดียวกับที่ฉันได้กำหนดไว้แล้วในการ/etc/opendkim.confแก้ไข ขอบคุณ!
Haprog

ปัญหาของฉันคือฉันใช้ postfix ใน chroot และฉันใช้ซ็อกเก็ตยูนิกซ์ หากคุณเห็น No such file or directoryว่าค่าเฉลี่ย postfix ไม่สามารถหาเส้นทางได้ แต่จะค้นหาซ็อกเก็ตภายใน / var / spool / postfix / var / run / opendkim / ไม่ใช่ / var / run / opendkim
HVNSweeting

@HVNS การประชุมไม่ได้ครอบคลุมอยู่ใน (4) ใช่ไหม
John Siu

นั่นคือเหตุผลที่ฉันแสดงความคิดเห็นและ upvoted แทนสร้างคำตอบใหม่ คำถามมีปัญหามากมายเพราะถ้าตั้งค่า opendkim อย่างถูกต้องแล้วซ็อกเก็ต TCP ควรทำงาน ขอบคุณ
HVNSweeting

11

สรุปด่วนที่ช่วยให้ฉันแก้ไขคำเตือนนี้บน Ubuntu 16.04 LTS: Postfix เวอร์ชัน 3.1.0-3ubuntu0.2 Opendkim เวอร์ชั่น 2.10.3-3build1

  • (ฉันสมมติว่า Postfix และ Opendkim ติดตั้งแล้วรวมเข้าด้วยกันและคำเตือนเดียวที่คุณได้รับคือ 'เชื่อมต่อกับ Milter service local: /var/spool/postfix/opendkim/opendkim.sock: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว')

  • เพิ่มผู้ใช้ postfix ให้กับกลุ่ม opendkim (ข้ามถ้าทำไปแล้ว)

sudo adduser postfix opendkim

  • สร้างไดเรกทอรีและตั้งค่าเจ้าของ (ข้ามหากทำไปแล้ว)

sudo mkdir -p / var / spool / postfix / var / run / opendkim

sudo chown opendkim: opendkim / var / spool / postfix / var / run / opendkim

  • ตรวจสอบการอนุญาต:

ls -l / var / spool / postfix / var / run / opendkim

srwxrwxr-x 1 opendkim opendkim 0 Nov 12 14:34 opendkim.sock
  • แก้ไขไฟล์กำหนดค่า opendkim: /etc/opendkim.conf, เพิ่ม line

ซ็อกเก็ตท้องถิ่น: /var/spool/postfix/var/run/opendkim/opendkim.sock

/ etc / ค่าเริ่มต้น / opendkim เพิ่ม

SOCKET = "ท้องถิ่น: /var/spool/postfix/var/run/opendkim/opendkim.sock"

  • แก้ไขการกำหนดค่า postfix: /etc/postfix/main.cf
# Milter configuration
# Postfix ≥ 2.6 milter_protocol = 6, Postfix ≤ 2.5 milter_protocol = 2
milter_protocol = 6
milter_default_action = accept
smtpd_milters = unix:var/run/opendkim/opendkim.sock
non_smtpd_milters = unix:var/run/opendkim/opendkim.sock
  • เริ่มบริการใหม่ (หรือรีบูต)

systemctl รีสตาร์ท opendkim

systemctl รีสตาร์ท postfix

แค่นั้นแหละ. ฉันไม่รู้ว่าทำไมมันจำเป็นต้องเขียน

smtpd_milters = unix: var / run / opendkim / opendkim.sock

แทน

smtpd_milters = local: /var/spool/postfix/var/run/opendkim/opendkim.sock

. ถ้าใครรู้คำอธิบายยินดีต้อนรับ


2
หาก postfix ทำงานด้วย CHROOT แสดงว่าพา ธ การกำหนดค่านั้นสัมพันธ์กับสิ่งนั้น คุณจะจบลงด้วย postfix พยายามแก้ไข /var/spool/postfix/var/spool/postfix/var/run/opendkim/opendkim.sock
มืด

5

ฉันกำลังเผชิญปัญหาเดียวกันกับการยืด Debian ซึ่งกลายเป็นว่าเกิดจากไฟล์บริการ systemd ที่ไม่ทำงานสำหรับ opendkim ดูคำตอบสำหรับวิธีแก้ปัญหานี้: https://serverfault.com/a/847442/84962

การแก้ไขนี้ทำให้เดือดลงไปที่:

/lib/opendkim/opendkim.service.generate
systemctl daemon-reload
service opendkim restart

1
ฉันมีระบบ Ubuntu ที่ซึ่งคำแนะนำนี้ช่วยได้ แต่ทุกอย่างไม่ทำงาน
silpol

ฉันรัน 16.04 และ /lib/opendkim/opendkim.service.generate ไม่มีอยู่จริง
Laurent

ทำงานได้ดีบน Ubuntu 18.04 ขอขอบคุณ.
Duque

วิธีนี้แก้ไขปัญหาของฉันใน Debian 9
jchook

2
smtpd_milters = unix:var/run/opendkim/opendkim.sock, unix:var/run/opendmarc/opendmarc.sock
non_smtpd_milters = unix:var/run/opendkim/opendkim.sock, unix:var/run/opendmarc/opendmarc.sock

usermod -G opendkim,opendmarc

5
นี่จะเป็นคำตอบที่ดีกว่านี้หากรวมคำอธิบายว่าอย่างไรและทำไมจึงตอบคำถาม
Stephen Rauch

3
ยินดีต้อนรับสู่ Unix & Linux! ในขณะที่ข้อมูลโค้ดนี้อาจแก้ไขคำถามรวมถึงคำอธิบายช่วยปรับปรุงคุณภาพของโพสต์ของคุณ จำไว้ว่าคุณกำลังตอบคำถามสำหรับผู้อ่านในอนาคตไม่ใช่เพียงแค่คนที่ถามตอนนี้! โปรดแก้ไขคำตอบของคุณเพื่อเพิ่มคำอธิบายและระบุข้อ จำกัด และสมมติฐานที่ใช้
Toby Speight

1

อีกทางเลือกหนึ่งคือปิดใช้งานสิ่งchrootนี้มีผลกระทบด้านความปลอดภัย:

vi /etc/postfix/master.cf

# service type  private unpriv  chroot  wakeup  maxproc command + args
cleanup   unix  n       -       n       -       0       cleanup

คำเตือนบอกว่าpostfix/cleanupคุณสามารถปิดใช้งาน chroot สำหรับบริการนี้ได้


0

เชื่อมต่อกับบริการ Milter unix: /clamav/clamav-milter.ctl: การอนุญาตถูกปฏิเสธ

ls -l / var / spool / postfix / clamav srw-rw ---- 1 clamav clamav 0 เม.ย. 4 17:59 clamav-milter.ctl

clamav-milter.conf

ผู้ใช้ clamav MilterSocketGroup postfix MilterSocketMode 660

สิทธิ์ของผู้ใช้สำหรับ milter

chown postfix: postfix /var/spool/postfix/clamav/clamav-milter.ctl

ใช้งานได้สำหรับฉัน


0

ฉันมีปัญหาเพราะ OpenDKIM และ Postfix ทำงานกับสิทธิ์ของผู้ใช้ที่แตกต่างกันและเขียนและอ่านจากซ็อกเก็ตเดียวกัน

ฉันเพิ่มผู้ใช้ postfix ในกลุ่ม opendkim:

sudo usermod -a -G opendkim postfix
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.