error: unsupported dictionary type: ldap【postfix】

linux

タイトルからだと何のことかわかりにくいですが、後輩がメールサーバをリプレースするにあたってハマった内容の備忘録。色々と躓いていたけど、件名のエラーを中心に公開。

リプレース内容

環境変更箇所

  • centOS6からRHEL8(Red Hat Enterprise Linux)へ
$ cat /etc/redhat-release
Red Hat Enterprise Linux release 8.3 (Ootpa)
  • postfix2系からpostfix3系へ
$ postconf -v | grep mail_version
mail_version = 3.5.8

その他

  • postfix:マルチインスタンス、587など複数のportを応答
  • 基本的な設定ファイルは現行機からコピーで移植

エラー内容

メールの送信をしようとすると、以下のような感じでfrom入力時にエラー発生。

telnet localhost 25
helo hoge
mail from:hoge@piteki.com
451 4.3.5 <hoge@piteki.com>: Sender address rejected: Server configuration error

postfixのsenderadress関連の設定でエラーになってる模様。該当箇所は下記。

smtpd_sender_restrictions =
  check_sender_access ldap:/etc/postfix/virtualmaps_access.cf
  reject

「check_sender_access」をコメント化すると、「reject」だけが残ってエラーは無くなるが送信NGのまま変わらず。「smtpd_sender_restrictions」を全て無くすと送信可能。

要するにldap情報を読み込む部分でこけている。postfixのバージョンが変わったことで、記述方法が変わったかもしれないが、情報収集しても見つけられず。

postfix起動時には以下がmaillogに吐き出されていた。

Sep  5 20:14:22 mailsv postfix/smtpd[165506]: error: unsupported dictionary type: ldap

結論

モジュールが足りてませんでした。

$ dnf info postfix-ldap
利用可能なパッケージ
名前         : postfix-ldap
エポック     : 2
バージョン   : 3.5.8
リリース     : 4.el8
Arch         : x86_64
サイズ       : 66 k
ソース       : postfix-3.5.8-4.el8.src.rpm
リポジトリー : @System
repo から    : rhel-8-for-x86_64-appstream-rpms
概要         : Postfix LDAP map support
URL          : http://www.postfix.org
ライセンス   : (IBM and GPLv2+) or (EPL-2.0 and GPLv2+)
説明         : This provides support for LDAP maps in Postfix. If you plan to use LDAP
             : maps with Postfix, you need this.

その他のエラー

ファイルはちゃんと作ろう

error: open database /etc/postfix/access.db: No such file or directory
warning: database /etc/postfix/access.db is older than source file /etc/postfix/access
warning: hash:/etc/postfix/sender_access is unavailable. open database /etc/postfix/sender_access.db: No such file or directory

$ postmap /etc/postfix/access
$ postmap /etc/postfix/sender_access

通信はちゃんと許可しよう

$ telnet 192.168.0.1 25
Trying 192.168.0.1...
telnet: connect to address 203.133.232.142: No route to host

$ firewall-cmd --permanent --zone=public --add-service=smtp

コメント