LoginSignup
2
4

More than 5 years have passed since last update.

CentOS7でsendmail + SPF

Last updated at Posted at 2016-12-27

sendmailのインストール

訳あってpostfixではなくsendmailでメールを運用しているのでpostfixをアンインストールしてsendmailをインストール。

$ sudo yum remove postfix
$ sudo yum install sendmail

smf-spfのインストール

こちらを参照させてもらいました。
http://server-setting.info/centos/sendmail-smf-spf-install.html

$ sudo wget http://www.city-fan.org/ftp/contrib/yum-repo/city-fan.org-release-1-13.rhel7.noarch.rpm
$ sudo rpm -import http://www.city-fan.org/ftp/contrib/yum-repo/CITY-FAN.ORG-GPG-KEY
$ sudo rpm -Uvh city-fan.org-release-1-13.rhel7.noarch.rpm

参照先ページにも記述されている通り、/etc/yum.repos.d の city-fan.org.repo のenabled=1をenabled=0にしてupdate時にこちらのパッケージがインストールされないようにし、--enablerepoオプションでインストール。

$ sudo yum --enablerepo=city-fan.org install smf-spf

sendmail.cfの作成

/usr/share/doc/smf-spf-2.0.2 のreadmeの記述にしたがって/etc/mail/sendmail.mcに以下のエントリを追加。

define(`confMILTER_MACROS_HELO', confMILTER_MACROS_HELO`, {verify}')dnl
INPUT_MAIL_FILTER(`smf-spf', `S=unix:/run/smfs/smf-spf.sock, T=S:30s;R:1m')dnl

さらにメール中継を有効化。

DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl                        
↓
dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl    

DNS等で自ホストのFQDNを取得出来ない場合、自ホストのFQDNをsendmail.cfに直に設定します。1

define(`confDOMAIN_NAME', `myhost.mydomain.jp')dnl

sendmail.cf作成

# m4 sendmail.mc > sendmail.cf

access.dbやrelay-domainsも適宜設定します。

spf起動

$ sudo systemctl restart sendmail
$ sudo systemctl start smf-spf

selinux対策

ログを見ると/run/smfs/smf-spf.sockファイルへのアクセスに"Permission Denied"が発生するので/var/log/audit.logを適当にgrepしてポリシーを作成。2

# grep smf-spf /var/log/audit/audit.log > audit-smfpsf.txt
# cat audit-smfpsf.txt | audit2allow -M sendmail-smfspf
# semodule -i sendmail-smfspf.pp

上記の処置後もPermission Deniedが発生するので以下を実施

# grep spf.sock /var/log/audit/audit.log > sendmail-spfsock.txt
# cat sendmail-spfsock.txt | audit2allow -M sendmail-spfsock
# semodule -i sendmail-spfsock.pp

今度はPermission Deniedは発生しなくなりました。


  1. 詳細はこちらのドキュメント https://www.jpcert.or.jp/ed/2001/ed010002.txt の「VI. sendmail のテスト」-「(2) ホスト名が正しく取得できていることの確認」をご覧下さい。 

  2. 別のホストでのセットアップ時には発生しませんでした。原因はよく判りません。 

2
4
6

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4