Dovecot はポートが使用中であると主張しているが、netstat はそれに同意できない

Dovecot はポートが使用中であると主張しているが、netstat はそれに同意できない

dovecot を起動しようとすると、次のメッセージが表示されます:

Apr 28 13:37:00 master: Error: service(pop3-login): listen(*, 110) failed: Address already in use
Apr 28 13:37:00 master: Error: service(pop3-login): listen(*, 995) failed: Address already in use
Apr 28 13:37:00 master: Error: service(imap-login): listen(*, 143) failed: Address already in use
Apr 28 13:37:00 master: Error: service(imap-login): listen(*, 993) failed: Address already in use

そして、「netstat -tulpn」は次のように表示します。

tcp        0      0 0.0.0.0:25                  0.0.0.0:*                   LISTEN      3369/master
tcp        0      0 0.0.0.0:52125               0.0.0.0:*                   LISTEN      2396/rpc.statd
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      3244/mysqld
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      2375/rpcbind
tcp        0      0 :::22                       :::*                        LISTEN      2562/sshd
tcp        0      0 :::25                       :::*                        LISTEN      3369/master
tcp        0      0 :::443                      :::*                        LISTEN      3390/httpd
tcp        0      0 :::39631                    :::*                        LISTEN      2396/rpc.statd
tcp        0      0 :::111                      :::*                        LISTEN      2375/rpcbind
tcp        0      0 :::80                       :::*                        LISTEN      3390/httpd
udp        0      0 0.0.0.0:68                  0.0.0.0:*                               2236/dhclient
udp        0      0 0.0.0.0:111                 0.0.0.0:*                               2375/rpcbind
udp        0      0 10.0.82.190:123             0.0.0.0:*                               2589/ntpd
udp        0      0 127.0.0.1:123               0.0.0.0:*                               2589/ntpd
udp        0      0 0.0.0.0:123                 0.0.0.0:*                               2589/ntpd
udp        0      0 0.0.0.0:43243               0.0.0.0:*                               2396/rpc.statd
udp        0      0 0.0.0.0:854                 0.0.0.0:*                               2375/rpcbind
udp        0      0 127.0.0.1:876               0.0.0.0:*                               2396/rpc.statd
udp        0      0 :::111                      :::*                                    2375/rpcbind
udp        0      0 :::854                      :::*                                    2375/rpcbind
udp        0      0 :::54504                    :::*                                    2396/rpc.statd

ここで何が欠けているか分かりますか?

アップデート:

selinux は無効になっており、ディストリビューションは AWX Linux です。

$ getenforce
Disabled

$ uname -a
Linux ip-10-0-82-190 4.14.268-139.500.amzn1.x86_64 #1 SMP Wed Mar 2 18:48:10 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

答え1

dovecot は portreserve を認識していない (互換性がない) ようです。

/etc/portreserve で必要なポートを予約している設定ファイルを確認し、それらをスコープから削除します (例: ~ で名前を変更します)。または、dovecot の起動直前に portrelease を dovecot init スクリプトに追加して、必要なポートを解放することもできます。

このエラッタは注目に値する(https://access.redhat.com/errata/RHSA-2020:1062) は、このバグレポートにつながります (「Dovecot は、NFSv4 マウントとのポート競合を回避するために portrelease を使用する必要があります」)バグ報告)。これらは、NFSv4 によって競合される portreseve の欠陥に密接に関連しているように見えます。バグ レポートではコンテキストと回避策のみが提供されるため、このエラッタによって実際に問題が修正されるかどうかはわかりません。

これは dovecot 側で修正できるとは思いません。portreserve を修正すれば修正されるはずです。SUNRPC には、rpc ポート 665 ~ 1023 がランダムに割り当てられるという既知の欠点があります (まあ、完全にランダムというわけではありませんが、6XX+pid のようなもので、特定のシステムでは 993/995 ポートで定期的に問題が発生します)。そのため、NFSv4 が実装されていて、静的ポートが割り当てられていない場合、993/995 ポートがランダムに使用される可能性があります。

関連情報