postfix / smtpd: alert: Milter servisine bağlan unix: /var/run/opendkim/opendkim.sock: Böyle bir dosya veya dizin yok


36

Sıkmaktan wheezy'ye yükselttikten sonra debian'da postfix ile ilgili sorunum var. Postfix, dkim-filter kullanarak mesajları imzalamak için yapılandırıldı. Güncellemeden önce, her şey kusursuz çalışıyordu, şimdi servisle bağlantıda başarısız oluyor (tcp veya unix soketleri). Opendkim'e debian geçişi nedeniyle olabileceğini düşündüm, bu yüzden dkim-filtresini kaldırdım ve opendkim'i taktım - aynı problem. Hatta tcp seçeneği yerine unix dosya soket bağlantısını ayarlamayı da denedim - aynı problem:

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

veya (tcp / ip ile):

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

İki kez kontrol ettim - soket dosyası var ve servis 8891 numaralı bağlantı noktasını dinliyordu.

Bunu düzeltmek için ne yapabilirim?

Yanıtlar:


58
  1. Opendkim'in çalışıp çalışmadığını kontrol edin. (Soket dosyasını gördüğünüz gibi olduğunu farz ediyorum.)
  2. Opendkim'i yapılandırdınız mı? Yapılandırma dosyası /etc/opendkim.conf.

    Sitenizi / etki alanınızı ve dkim.key yolunuzu eşleştirmek için dosyayı güncellemeniz gerekir .

  3. Opendkim grubuna postfix ekle

    Eğer opendkim.sock'un izni aşağıdaki gibidir

    $ ls -l / var / run / opendkim
    
    -rw-rw-r-- 1 opendkim opendkim 6 Mayıs 2 14:56 opendkim.pid
    srwxrwxr-x 1 opendkim opendkim 0 Mayıs 2 14:56 opendkim.sock
    

    Değil ise, emin olun UMaskayarlandığında 0002içinde /etc/opendkim.conf.

    Ardından aşağıdakileri yapın

    sudo adduser postfix opendkim
  4. Chroot içinde çalışan postfix

    Değiştir /etc/default/opendkim, SOCKET seçeneğini postfix chroot konumuna değiştir

    LOKMA "yerel: /var/spool/postfix/var/run/opendkim/opendkim.sock" =

    Dizin oluşturup /var/spool/postfix/var/run/opendkimiznini değiştirmeniz gerekecek

    sudo mkdir -p / var / spool / postfix / var / run / opendkim
    sudo chown opendkim: opendkim / var / spool / postfix / var / run / opendkim
    
  5. Opendkim'i yeniden başlat

    sudo service opendkim yeniden başlat
    

4
Opendkim dizininde aşırı kısıtlayıcı izinlerin neden olduğu benzer bir sorun buldum.
Darrell Duane

1
Daha önce çalışmayı seçtiğimden eminim, ancak Ubuntu 15.04'ten 15.10'a yükselttikten sonra çalışmadığını fark ettim. Soket yolunu /etc/default/opendkimdaha önce tanımladığım aynı yolla güncellemek /etc/opendkim.confonu düzeltti. Teşekkürler!
52'de Haprog

benim sorunum postro chroot kullanıyorum ve unix soket kullanıyorum. Eğer No such file or directoryortalama postfix'in yolu bulamadığını görürseniz , ancak / var / spool / postfix / var / run / opendkim / içindeki soketi aradı, / var / run / opendkim
HVNSweeting

@HVNSweeting Bu (4) kapsamında değil mi?
John Siu

bu yüzden yeni bir cevap oluşturmak yerine yorum yapıyorum ve oyumuzu kırdım. Soru çok fazla sorun içeriyor, çünkü eğer opendkim düzgün bir şekilde yapılandırılmışsa, TCP soketi çalışmalıdır. Teşekkür ederim
HVNSweeting

11

Bu uyarıyı Ubuntu 16.04 LTS'de düzeltmeme yardımcı olan kısa özet: Postfix version 3.1.0-3ubuntu0.2 Opendkim version 2.10.3-3build1

  • (Postfix ve Opendkim'in zaten kurulu, birbiriyle bütünleşik olduğunu ve aldığınız tek uyarının 'Milter hizmetine yerel olarak bağlanın: /var/spool/postfix/opendkim/opendkim.sock: Böyle bir dosya veya dizin yok' olduğunu farz ediyorum)

  • Opendkim grubuna kullanıcı posta eki ekle (daha önce yapıldıysa atla)

sudo adduser postfix opendkim

  • Dizin oluştur ve sahibi ayarla

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

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

  • İzinleri kontrol et:

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

srwxrwxr-x 1 opendkim opendkim 0 Nov 12 14:34 opendkim.sock
  • Opendkim yapılandırma dosyalarını düzenleyin: /etc/opendkim.conf, satır ekle

Soket yerel: /var/spool/postfix/var/run/opendkim/opendkim.sock

/ etc / defaults / opendkim, ekle

LOKMA "yerel: /var/spool/postfix/var/run/opendkim/opendkim.sock" =

  • Sonek yapılandırmasını düzenleyin: /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
  • Hizmetleri yeniden başlatın (veya yeniden başlatın)

systemctl yeniden başlat opendkim

systemctl yeniden başlatma sonrası

Bu kadar. Yazmanın neden gerekli olduğunu bilmiyorum

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

yerine

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

. Biri biliyorsa, açıklamalara açığız.


2
Eğer postfix CHROOT ile çalışıyorsa, config yolları buna göredir. Sen çözmeye çalışırken postfix ile sona erecekti /var/spool/postfix/var/spool/postfix/var/run/opendkim/opendkim.sock
karanlık

5

Opendkim'in bozuk bir systemd servis dosyasından kaynaklandığı ortaya çıkan Debian stretch'de de aynı sorunla karşı karşıyaydım. Bir çözüm için bu cevaba bakınız: https://serverfault.com/a/847442/84962

Bu düzeltme aşağı kaynar:

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

1
Her şey işe yaramadığı halde, sadece bu tavsiyenin yardımcı olduğu Ubuntu sistemim var.
Silpol

16.04'ü çalıştırdım ve /lib/opendkim/opendkim.service.generate bulunmuyor
Laurent

18.04 Ubuntu'da gayet iyi çalışın. Teşekkür ederim.
Duque

Bu Debian 9. benim sorun çözüldü
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
Bu soruyu nasıl ve neden cevapladığına dair bir açıklama içeriyorsa, bu çok daha iyi bir cevap olacaktır .
Stephen Rauch

3
Unix ve Linux'a Hoşgeldiniz! Bu kod parçacığını soruyu çözebilir, ancak açıklama da dahil olmak üzere yazınızın kalitesini yükseltmeye gerçekten yardımcı olur . Gelecekte okurlar için soruyu yanıtladığınızı, sadece şu anda soran kişiye değil, cevap verdiğinizi unutmayın! Lütfen açıklama eklemek için cevabınızı düzenleyin ve hangi sınırlamaların ve varsayımların uygulandığına dair bir gösterge verin.
Toby Speight

1

Bunun bir alternatifi devre dışı bırakmak olabilir chroot, bunun güvenlik etkileri var:

vi /etc/postfix/master.cf

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

Uyarılar postfix/cleanup, bu hizmet için chroot'u devre dışı bırakabileceğinizi söylüyor .


0

Milter servisi unix'e bağlanın: /clamav/clamav-milter.ctl: İzin reddedildi

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

clamav-milter.conf

kullanıcı clamav MilterSocketGroup postfix MilterSocketMode 660

milter için kullanıcı izinleri

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

Benim için çalışıyor


0

Bir problemim vardı çünkü OpenDKIM ve Postfix farklı kullanıcıların haklarıyla çalışıyor ve aynı soketten yazıp okuyorlar.

Postfix kullanıcısını opendkim grubuna ekledim:

sudo usermod -a -G opendkim postfix
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.