3

I'm trying to setup a server using postfix, dovecot, amavis and opendkim for signing.

OpenDKIM won't start, here is the output of journalctl -xe, after stopping and starting opendkim:

Jul 21 21:54:17 mail systemd[1]: Starting OpenDKIM DomainKeys Identified Mail (DKIM) Milter...
-- Subject: A start job for unit opendkim.service has begun execution
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- A start job for unit opendkim.service has begun execution.
--
-- The job identifier is 54385.
Jul 21 21:54:17 mail opendkim[108677]: opendkim: milter socket must be specified
Jul 21 21:54:17 mail systemd[1]: opendkim.service: Control process exited, code=exited, status=78/CONFIG
-- Subject: Unit process exited
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- An ExecStart= process belonging to unit opendkim.service has exited.
--
-- The process' exit code is 'exited' and its exit status is 78.
Jul 21 21:54:17 mail systemd[1]: opendkim.service: Failed with result 'exit-code'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- The unit opendkim.service has entered the 'failed' state with result 'exit-code'.

My OpenDKIM (/etc/opendkim.conf) config looks like this:

Syslog              yes
LogResults          yes
LogWhy              yes
SyslogSuccess       yes
UMask               002
Canonicalization    relaxed/relaxed

# Only sign, don't verify (Amavis takes care of the verification)
Mode                s

KeyTable            /etc/opendkim/keytable
SigningTable        refile:/etc/opendkim/signingtable

As you could see in the config, I only want OpenDKIM to sign, not verify.

UnlegitApple
  • 33
  • 1
  • 4

1 Answers1

4

As the error says, you should specify the socket. The mandatory configuration parameter can be found on opendkim.conf documentation:

Socket (string)

Specifies the socket that should be established by the filter to receive connections from sendmail(8) in order to provide service. socketspec is in one of two forms: 

  • local:path, which creates a UNIX domain socket at the specified path, or
  • inet:port[@host] or inet6:port[@host] which creates a TCP socket on the specified port and in the specified protocol family.

If the host is not given as either a hostname or an IP address, the socket will be listening on all interfaces. A literal IP address must be enclosed in square brackets. This option is mandatory either in the configuration file or on the command line.

Esa Jokinen
  • 46,944
  • 3
  • 83
  • 129