タイトルからだと何のことかわかりにくいですが、後輩がメールサーバをリプレースするにあたってハマった内容の備忘録。色々と躓いていたけど、件名のエラーを中心に公開。
リプレース内容
環境変更箇所
- 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
コメント