postfix / smtpd: warning: kết nối với dịch vụ Milter unix: /var/run/opendkim/opendkim.sock: Không có tệp hoặc thư mục như vậy


36

Tôi có vấn đề với postfix trên debian sau khi nâng cấp từ bóp đến khò khè. Postfix được cấu hình để ký tin nhắn bằng bộ lọc dkim. Trước khi cập nhật, mọi thứ đều hoạt động hoàn hảo, bây giờ nó không kết nối được với dịch vụ (ổ cắm tcp hoặc unix). Tôi nghĩ rằng có lẽ đó là do debian chuyển sang opendkim, vì vậy tôi đã gỡ bỏ bộ lọc dkim và cài đặt opendkim - vấn đề tương tự. Tôi thậm chí đã thử thiết lập kết nối ổ cắm tập tin thay vì tùy chọn tcp - vấn đề tương tự:

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

hoặc (với tcp / ip):

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

Tôi đã kiểm tra hai lần - tệp socket tồn tại và dịch vụ đang lắng nghe trên cổng 8891.

Tôi có thể làm gì để sữa nó?

Câu trả lời:


58
  1. Kiểm tra nếu opendkim đang chạy. (Tôi giả sử nó giống như bạn đã thấy tệp socket.)
  2. Bạn đã cấu hình opendkim? Các tập tin cấu hình là /etc/opendkim.conf.

    Bạn cần cập nhật tệp để khớp với đường dẫn trang web / tên miền và dkim.key của bạn .

  3. Thêm postfix vào nhóm opendkim

    Nếu quyền opendkim.sock như sau

    $ ls -l / var / run / opendkim
    
    -rw-rw-r-- 1 opendkim opendkim 6 tháng 2 2 14:56 opendkim.pid
    srwxrwxr-x 1 opendkim opendkim 0 ngày 2 tháng 5 14:56 opendkim.sock
    

    Nếu không, đảm bảo UMaskđược đặt thành 0002trong /etc/opendkim.conf.

    Sau đó làm như sau

    sudo adduser postfix opendkim
  4. Postfix chạy trong chroot

    Sửa đổi /etc/default/opendkim, thay đổi tùy chọn SOCKET thành vị trí hậu tố chroot

    SOCKET = "cục bộ: /var/spool/postfix/var/run/opendkim/opendkim.sock"

    Bạn sẽ phải tạo thư mục /var/spool/postfix/var/run/opendkimvà thay đổi sự cho phép của nó

    sudo mkdir -p / var / spool / postfix / var / run / opendkim
    sudo chown opendkim: opendkim / var / spool / postfix / var / run / opendkim
    
  5. Khởi động lại opendkim

    dịch vụ sudo opendkim khởi động lại
    

4
Tôi tìm thấy một vấn đề tương tự gây ra bởi các quyền hạn chế quá mức trên thư mục opendkim.
Darrell Duane

1
Tôi chắc chắn rằng tôi đã có opendkim hoạt động trước đó, nhưng nhận thấy rằng nó không hoạt động sau khi nâng cấp từ Ubuntu 15.04 lên 15.10. Cập nhật đường dẫn ổ cắm vào /etc/default/opendkimcùng một đường dẫn mà tôi đã xác định trong việc /etc/opendkim.confsửa nó. Cảm ơn!
Haprog

vấn đề của tôi là tôi đang chạy postfix trong chroot và tôi đang sử dụng ổ cắm unix. Nếu bạn thấy No such file or directoryrằng postfix có nghĩa là không thể tìm thấy đường dẫn, nhưng nó đã tìm ổ cắm bên trong / var / spool / postfix / var / run / opendkim /, không / var / run / opendkim
HVNSweeting

@HVNSweeting Không phải là trong (4) sao?
John Siu

đó là lý do tại sao tôi bình luận và nâng cao thay vì tạo câu trả lời mới. Câu hỏi chứa rất nhiều vấn đề, bởi vì nếu opendkim được cấu hình đúng, thì socket TCP sẽ hoạt động. Cảm ơn bạn
HVNSweeting

11

Tóm tắt nhanh giúp tôi khắc phục cảnh báo này trên Ubuntu 16.04 LTS: Postfix phiên bản 3.1.0-3ub Ubuntu0.2 Opendkim phiên bản 2.10.3-3build1

  • (Tôi cho rằng Postfix và Opendkim đã được cài đặt, tích hợp với nhau và cảnh báo duy nhất bạn nhận được là 'kết nối với dịch vụ Milter cục bộ: /var/spool/postfix/opendkim/opendkim.sock: Không có tệp hoặc thư mục như vậy')

  • Thêm hậu tố người dùng vào nhóm opendkim (bỏ qua nếu đã hoàn thành)

sudo adduser postfix opendkim

  • Tạo thư mục và đặt chủ sở hữu (bỏ qua nếu đã hoàn thành)

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

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

  • Kiểm tra quyền:

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

srwxrwxr-x 1 opendkim opendkim 0 Nov 12 14:34 opendkim.sock
  • Chỉnh sửa tập tin cấu hình opendkim: /etc/opendkim.conf, thêm dòng

Ổ cắm cục bộ: /var/spool/postfix/var/run/opendkim/opendkim.sock

/ etc / mặc định / opendkim, thêm

SOCKET = "cục bộ: /var/spool/postfix/var/run/opendkim/opendkim.sock"

  • Chỉnh sửa cấu hình 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
  • Khởi động lại dịch vụ (hoặc khởi động lại)

khởi động lại hệ thống opendkim

systemctl khởi động lại postfix

Đó là nó. Tôi không biết tại sao cần phải viết

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

thay vì

smtpd_milters = cục bộ: /var/spool/postfix/var/run/opendkim/opendkim.sock

. Nếu ai đó biết, giải thích được chào đón.


2
Nếu postfix chạy với CHROOT, thì các đường dẫn cấu hình có liên quan đến điều đó. Bạn sẽ kết thúc với postfix cố gắng giải quyết /var/spool/postfix/var/spool/postfix/var/run/opendkim/opendkim.sock
làm tối

5

Tôi đã phải đối mặt với cùng một vấn đề trên Debian, điều này được gây ra bởi một tệp dịch vụ systemd bị hỏng cho opendkim. Xem câu trả lời này để biết giải pháp: https://serverfault.com/a/847442/84962

Khắc phục sự cố này giúp:

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

1
Tôi có hệ thống Ubuntu, nơi chỉ có lời khuyên này giúp được, trong khi mọi thứ khác không hoạt động.
silpol

Tôi chạy 16.04 và /lib/opendkim/opendkim.service.generate không tồn tại
Laurent

Hoạt động tốt trên Ubuntu 18.04. Cảm ơn bạn.
Duque

Điều này đã giải quyết vấn đề của tôi trên 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
Đây sẽ là một câu trả lời tốt hơn nhiều nếu nó bao gồm một số giải thích về Làm thế nàotại sao điều này trả lời câu hỏi.
Stephen Rauch

3
Chào mừng bạn đến với Unix & Linux! Mặc dù đoạn mã này có thể giải quyết câu hỏi, bao gồm một lời giải thích thực sự giúp cải thiện chất lượng bài đăng của bạn. Hãy nhớ rằng bạn đang trả lời câu hỏi cho độc giả trong tương lai, không chỉ người hỏi bây giờ! Vui lòng chỉnh sửa câu trả lời của bạn để thêm giải thích và đưa ra dấu hiệu về những hạn chế và giả định được áp dụng.
Toby Speight

1

Một cách khác là vô hiệu hóa chroot, điều này có ý nghĩa bảo mật:

vi /etc/postfix/master.cf

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

Các cảnh báo cho biết postfix/cleanup, vì vậy bạn có thể hủy kích hoạt chroot cho dịch vụ này.


0

kết nối với dịch vụ Milter unix: /clamav/clamav-milter.ctl: Quyền bị từ chối

ls -l / var / spool / postfix / clamav srw-rw ---- 1 clamav clamav 0 ngày 4 tháng 4 17:59 clamav-milter.ctl

clamav-milter.conf

người dùng clamav MilterSocketgroup postfix MilterSocketMode 660

quyền người dùng cho bộ lọc

hậu tố chown: postfix /var/spool/postfix/clamav/clamav-milter.ctl

Làm việc cho tôi


0

Tôi gặp vấn đề vì OpenDKIM và Postfix hoạt động với quyền của những người dùng khác nhau và viết và đọc từ cùng một ổ cắm.

Tôi đã thêm người dùng postfix vào nhóm opendkim:

sudo usermod -a -G opendkim postfix
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.