Próbuję skonfigurować opendkim na odcinku Debian, ale nie mogę zmienić gniazda. Chcę zmienić gniazdo na, /var/spool/postfix/opendkim/opendkim.sock
aby móc używać go z postfiksem.
Dodałem Socket local:/var/spool/postfix/opendkim/opendkim.sock
do/etc/opendkim.conf
i także próbowałem dodać SOCKET="local:/var/spool/postfix/opendkim/opendkim.sock
do /etc/default/opendkim
(który musiałem stworzyć).
Bez względu na to, co zmieniam lub jak często restartuję opendkim, zawsze używa go /var/run/opendkim/opendkim.sock
jako gniazda.
➜ ~ netstat -a | fgrep LISTEN | grep open
unix 2 [ ACC ] STREAM LISTENING 5534128 /var/run/opendkim/opendkim.sock
➜ ~ sudo systemctl status opendkim.service
● opendkim.service - OpenDKIM DomainKeys Identified Mail (DKIM) Milter
Loaded: loaded (/lib/systemd/system/opendkim.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2017-04-30 12:41:54 CEST; 5min ago
Docs: man:opendkim(8)
man:opendkim.conf(5)
man:opendkim-genkey(8)
man:opendkim-genzone(8)
man:opendkim-testadsp(8)
man:opendkim-testkey
http://www.opendkim.org/docs.html
Process: 25246 ExecStart=/usr/sbin/opendkim -P /var/run/opendkim/opendkim.pid -p local:/var/run/opendkim/opendkim.sock (code=exited, status=0/SUCCESS)
Main PID: 25248 (opendkim)
Tasks: 7 (limit: 4915)
CGroup: /system.slice/opendkim.service
├─25248 /usr/sbin/opendkim -P /var/run/opendkim/opendkim.pid -p local:/var/run/opendkim/opendkim.sock
└─25249 /usr/sbin/opendkim -P /var/run/opendkim/opendkim.pid -p local:/var/run/opendkim/opendkim.sock
Apr 30 12:41:54 vServer systemd[1]: Starting OpenDKIM DomainKeys Identified Mail (DKIM) Milter...
Apr 30 12:41:54 vServer systemd[1]: Started OpenDKIM DomainKeys Identified Mail (DKIM) Milter.
Apr 30 12:41:54 vServer opendkim[25249]: OpenDKIM Filter v2.11.0 starting (args: -P /var/run/opendkim/opendkim.pid -p local:/var/run/opendkim/opendkim.sock)
Co ja robię źle? (Myślę, że to mój błąd, ponieważ nie mogę znaleźć nikogo z tym samym problemem)
AKTUALIZACJA:
Zmieniających /etc/default/opendkim
się SOCKET="inet:8891@localhost"
i zmieniających config postfix do wykorzystania tego gniazda wyników winet:localhost:8891: Connection refused
AKTUALIZACJA 2:
Zastąpiłem teraz plikiem zawartym w pakiecie stretch debian:
# Command-line options specified here will override the contents of
# /etc/opendkim.conf. See opendkim(8) for a complete list of options.
#DAEMON_OPTS=""
# Change to /var/spool/postfix/var/run/opendkim to use a Unix socket with
# postfix in a chroot:
RUNDIR=/var/spool/postfix/var/run/opendkim
#RUNDIR=/var/run/opendkim
#
# Uncomment to specify an alternate socket
# Note that setting this will override any Socket value in opendkim.conf
# default:
SOCKET=local:$RUNDIR/opendkim.sock
# listen on all interfaces on port 54321:
#SOCKET=inet:54321
# listen on loopback on port 12345:
#SOCKET=inet:12345@localhost
# listen on 192.0.2.1 on port 12345:
#SOCKET=inet:[email protected]
USER=opendkim
GROUP=opendkim
PIDFILE=$RUNDIR/$NAME.pid
EXTRAAFTER=
Obejmuje następujące wiersze, w których decyduje gniazdo:
if [ -f /etc/opendkim.conf ]; then
CONFIG_SOCKET=`awk '$1 == "Socket" { print $2 }' /etc/opendkim.conf`
fi
# This can be set via Socket option in config file, so it's not required
if [ -n "$SOCKET" -a -z "$CONFIG_SOCKET" ]; then
DAEMON_OPTS="-p $SOCKET $DAEMON_OPTS"
fi
connect to Milter service local:/var/run/opendkim/opendkim.sock: No such file or directory
nawet, że istnieje, ponieważ jest chrootowany/var/spool/postfix/
/var/spool/postfix/var/run...
jakby tak byłoinet
zamiastlocal
. Być może, jeśli nie są debugowanie w dół usługi, starają się realizować: digitalocean.com/community/tutorials/...Odpowiedzi:
W końcu znalazłem rozwiązanie.
/etc/init.d/opendkim
Wydaje się nie robić nic. Zamiast tego/lib/systemd/system/opendkim.service
używany jest plik serwisowy, w którym źle wpisano niewłaściwe gniazdo.Ale pakiet debian również wydaje się zawierać bash, który generuje poprawną usługę systemową.
Więc po uruchomieniu
i restartowanie opendkim plik gniazda pojawia się w oczekiwanym miejscu, co można zweryfikować, wywołując:
Aktualizacja: Wygląda na to, że jest zgłoszenie błędu Debiana dotyczące tego problemu: # 861169
źródło
Nie mam wystarczającej reputacji, aby móc komentować, i chciałem potwierdzić, że po wielu godzinach szukania rozwiązania komunikatu o błędzie „odmowa połączenia” OpenDKim-Postfix
/lib/systemd/system/opendkim.service
edycja udostępniona przez LocutusBE działała z Ubuntu 17.04:Przed przystąpieniem do edycji dodałem użytkownika postfiksa do grupy opendkim i wypróbowałem rozwiązanie
/lib/opendkim/opendkim.service.generate
według Lukasa Winklera . Błąd odmowy połączenia trwał do momentu dodania numeru portu/lib/systemd/system/opendkim.service
.Aby zaktualizować
/lib/systemd/system/opendkim.service
, użyłem portu 8891 dla Ubuntu i skomentowałem oryginalną linię ExecStart do celów testowych, a następnie dodałem nową linię z portem #:Pasujący numer portu został dodatkowo określony w
/etc/opendkim.conf
:I
/etc/postfix/main.cf
:Po zrestartowaniu demona systemctl, opendkim i postfix poczta wychodząca została podpisana bez problemu, a dziennik poczty pokazywał „Dodano pole sygnatury DKIM”.
Ostatnio nie było problemu z połączeniem podczas konfigurowania OpenDkim z Centos7, więc najwyraźniej w tym przypadku było to związane z Ubuntu. Podziękowania dla Lukasa Winklera za opublikowanie pytania i tych, którzy podzielili się swoimi rozwiązaniami.
źródło
Aby użyć
inet
gniazda, musisz określić:SOCKET="inet:12301@localhost"
do/etc/default/opendkim
musisz także zmienić ustawienia Postfix:
w
/etc/postfix/main.cf
dodatku:jeśli nie możesz ustawić
local
żądanej ścieżki, radzę:chwycić dziennika z
mail
,syslog
lubopendkim
w/var/log
i sprawdzićsprawdź
/etc/init.d/opendkim
skrypt i sprawdź, czy plik skarpety ma ustaloną wartośćspróbuj przejść z ustawieniem domyślnym
local:/var/run/opendkim/opendkim.sock
- i określsmtpd_milters = local:/var/run/opendkim/opendkim.sock
oraznon_smtpd_milters = local:/var/run/opendkim/opendkim.sock
w/etc/postfix/main.cf
źródło
warning: connect to Milter service inet:localhost:12301: Connection refused
OpenDKIM Filter v2.11.0 starting (args: -P /var/run/opendkim/opendkim.pid -p local:/var/run/opendkim/opendkim.sock)
SOCKET="inet:12301@localhost
zestawem do opendkim conf?To działało dla mnie:
edytować
/lib/systemd/system/opendkim.service
zmiana:
do:
i
źródło
opendkim.service.generate
.OpenDKIM działał, dopóki nie zaktualizowałem mojego serwera. OpenDKIM nie chciał się uruchomić i nie było uruchomionego gniazda dla Miltera. W
/var/log/syslog
mogłem zobaczyć, że opendkim zawiodły próby utworzenia gniazda do innego miejsca niż przed uaktualnieniem. Próbowałem zmieniać ustawienia gniazda w/etc/opendkim.conf
,/etc/default/opendkim
a/lib/systemd/system/opendkim.service
ale to nie pomogło. Okazuje się, że informacje były cały czas przede mną:Zauważyłem, że ustawienia zostały nadpisane przez plik „override.conf” i poddane edycji, aby były dostosowane do mojego
/etc/postfix/main.cf
(działa jako chroot):Edytować
/etc/systemd/system/opendkim.service.d/override.conf
I wreszcie zrestartowanie demona i opendkim:
źródło
Właśnie zmieniłem nazwę /etc/systemd/system/opendkim.service.d/override.conf na /etc/systemd/system/opendkim.service.d/override.conf.old, aby nie zastępował parametrów ExecStart.
Wszystko działa poprawnie, wybierając konfigurację z /etc/opendkim.conf
źródło
Moja usługa opendkim nie obudziła się na porcie 8100 po instalacji i poprzednie rozwiązania nie pomogły. Więc próbowałem
ze wspomnianym
więc spojrzałem na plik usługi
i znalazłem dziwne ścieżki
i dowodzenie
powiedziany
(spójrz do drugiej linii na poprzednim przydziale), więc poszedłem do
i usunąłem „-” 3 razy Następnie
To pomogło mi :-)
źródło