OpenDKIM 退出状态和 mysql 纯文本密码

OpenDKIM 退出状态和 mysql 纯文本密码

在我的 VPS Debian Jessie 上,电子邮件服务器 Postfix + Dovecot 的用户和密码在 MySQL 上,我安装了 OpenDKIM,它也使用 MySQL 作为密钥。如果由于某种原因服务器重新启动,我每次都能找到处于“活动(退出)”状态的 OpenDKIM 服务,并且日志报告:

opendkim: /etc/opendkim.conf: dsn:mysql://NAME-MAILUSER:**PLAINTEXT-PASSWORD**@MYSQL-PORT+127.0.0.1/mailserver/table=virtual_domains?keycol=name?datacol=ID: dkimf_db_open(): Can't connect to MySQL server on '127.0.0.1' (111)

原因似乎是与 MySQL 服务器的连接

如果我重新启动 OpenDKIM,问题就消失,永远如此。

我有两个问题:

  1. 是否可以阻止 systemctl 在日志中显示 MySQL 密码?
  2. 确保 OpenDKIM 发现 MySQL 服务器已启动并正确重启 (OpenDKIM)?设置不同的服务优先级可以解决问题吗?在这种情况下,最佳做法是什么?

非常感谢!

大卫

答案1

回答 2:在 mariadb 或 mysql 之后启动 opendkim:

  mkdir /etc/systemd/system/opendkim.service.d

添加到该目录 /etc/systemd/system/opendkim.service.d/database-dependency.conf:

  [Unit]
  After=mariadb.service

注意:如果这是您系统上的服务名称,则使用mysql.service而不是。mariadb.service

參考文獻:systemd.unit 手册页

问题 1 的答案:

删除错误可能会阻止密码进入日志。据我所知,没有配置选项可以从日志中删除密码。

但是,另一种方法是创建一个不依赖于密码的数据库 opendkim 用户,只需 unix 用户也是 opendkim。这可以通过以下方式完成unix套接字身份验证

   INSTALL PLUGIN unix_socket SONAME 'auth_socket';
   ALTER USER opendkim IDENTIFIED VIA unix_socket;

注意:ALTER USER 仅适用于 mariadb-10.2+。在早期版本中可能需要删除并重新创建用户/授权。

opendkim 使用的 opendbx dsn 将需要连接到 unix 套接字,而不是 TCP 连接。这可能只需要调用主机,但我不能 100% 确定。此外,一些 postfix 进程在 chroot 中运行,因此如果不更改中的列,localhost将无法连接到 unix 套接字。chroot=nmaster.cf

编辑:* 更改为 xxx.conf 文件名约定 * 根据所使用的服务允许使用 mysql 或 mariadb * 编辑 - 一些 postfix 进程是 chrooted。

相关内容