・pypolicyd-spf をインストール

[root@alma]# dnf -y install --enablerepo=epel pypolicyd-spf

・pypolicyd-spf に必要な python3 をインストール

[root@alma]# dnf -y install python3

・python3 のバージョン確認

[root@alma]# python --version
Python 3.9.21

※インストールを促すメッセージが出た場合は y を入力して Enter を押下して下さい

・python3 に必要な alternatives のインストール

[root@alma]# dnf -y install alternatives

・python3 の有効化

[root@alma]# /usr/sbin/alternatives --config python

複数の python がインストールされている場合は下記のようになりますので Python 3.9.21 を有効にします

2 プログラムがあり 'python' を提供します。

選択コマンド
----------------------------------------------------------------------------------------------
*+ 1 /usr/libexec/no-python
2 /usr/bin/python3

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します: 2※ 2 を入力して Enter を押下(python3を選択)

・pip を pip3 に変更

[root@alma]# update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1

・Python・pip のバージョン変更確認

[root@alma]# python --version
Python3.9.21※Pythonのバージョンが 3.9 になっている事を確認

[root@alma]# pip --version
pip 21.3.1 from /usr/lib/python3.9/site-packages/pip (python 3.9)※Pythonのバージョンが 3.9 になっている事を確認

※インストールを促すメッセージが出た場合は y を入力して Enter を押下して下さい

・pypolicyd-spfの設定

[root@alma]# vi /etc/python-policyd-spf/policyd-spf.conf
# For a fully commented sample config file see policyd-spf.conf.commented

debugLevel=1
TestOnly =1

HELO_reject=Fail
Mail_From_reject=Fail

PermError_reject = False
※True に書き換え
PermError_reject = True
TempError_Defer = False
※True に書き換え
TempError_Defer = True

skip_addresses = 127.0.0.0/8,::ffff:127.0.0.0/104,::1
※コメント化
#skip_addresses = 127.0.0.0/8,::ffff:127.0.0.0/104,::1

≪ 以下文末に追記 ≫
Whitelist = 192.168.1.0/24
Domain_Whitelist = papa-net.com
Hide_Receiver = No

※参考

debugLevel: 出力ログレベルを設定
・1(最低限)~5(詳細)を設定
HELO_reject: HELO拒否ポリシーを指定
・SPF_Not_Pass : 結果がPass / None / Tempfail
でない場合は拒否(デフォルト)
・Softfail : 結果がSoftfail又はFailの場合に拒否
・Fail : 結果がFailの場合にのみ拒否
・Null : 結果がFailかつ送信者がNullの場合のみ拒否
・False : HELOで拒否/延期しない、ヘッダーのみを追加
・No_Check : HELOをチェックしない
Mail_From_reject : Mail From 拒否ポリシーを指定
・SPF_Not_Pass : 結果がPass / None / Tempfail
でない場合は拒否
・Softfail : 結果がSoftfailで失敗した場合に拒否
・Fail : 失敗したメールを拒否(デフォルト)
・False : Mail Fromを拒否/延期せず、ヘッダーのみを追加
・No_Check : メールの送信元をチェックしない
PermError_reject : DNSサーバーの設定ミスなど、障害が発生した場合のメールの拒否指定
・True : メールを拒否
・False : メールを受信
TempError_Defer: DNS障害で一時的なSPFの認証障害が発生した場合のメールの遅延指定
・True : メールを遅延
・False : メールを遅延しない
Whitelist: SPFをチェックしないネットワークを設定
・自身のプライベートネットワークを設定
Domain_Whitelist : ドメイン名ベースでSPFをチェックしないネットワークを指定
・指定されたドメインのSPFをチェックをしない
Hide_Receiver: DNS障害で一時的なSPFの認証障害が発生した場合のメールの遅延指定
・Yes : 受信者表記を<unknown>に置き換えられる
・No : 受信者表記を<unknown>に置き換えない

・pypolicyd-spfの稼働確認

[root@alma]# /usr/libexec/postfix/policyd-spf

スクリプトを起動して入力待ち状態(コマンドプロンプトに戻ってこない)になっていれば正常です
もし起動してすぐに終了(コマンドプロンプトに戻る)などしたら設定ファイルの読み込みで障害が起こっている可能性があります
終了する場合は[Ctrl] + [c] で終了します