以下の内容は古く、2018年10月にリリースされた OpenSMTPD 6.4.0 以降では smtpd.conf の文法が大幅に変更されたので、詳細は smtpd.conf(5) をご参照ください。また、本記事で紹介している方法との差分だけを紹介した記事もご参照ください。
OpenBSD project による SMTP サーバの実装である
OpenSMTPD が
OpenBSD の標準 MTA になって2年以上経ちましたので、改めて OpenSMTPD の設定についてまとめてみました。
内容は
2年以上前に書いた記事とほぼ同じですが、OpenBSD 6.0 に標準で搭載されている
バージョン 6.0.0 を前提とし、シンプルに書き直しています。
(0) smtpd を停止します
(OpenBSDでは標準でローカル→ローカルおよびローカル→外部配送用に smtpd が起動しています)。
# /etc/rc.d/smtpd stop
(1) メールサーバとして実際のホスト名とは異なるドメインを扱う場合は、
/etc/mail/mailname を新規に作成し、そこにメールサーバ名(or ドメイン名、DNSで名前解決できるもの)を記述します。
# echo メールサーバ名 > /etc/mail/mailname
このファイルに記述する文字列は Postfix で言うところの
myhostname や
mydomain で設定する文字列に相当します。
(2) メールの外部への配送は、認証のある外部SMTPサーバにリレーさせるので、その認証情報を設定します。
# touch /etc/mail/secrets
# chmod 640 /etc/mail/secrets
# chown root:_smtpd /etc/mail/secrets
# echo "ラベル ユーザ名:パスワード" > /etc/mail/secrets
セキュリティを真面目に考えるなら
echo ではなくて、
vi などのエディタを使うべきでしょう。
(3) 設定ファイル
/etc/mail/smtpd.conf を以下のような内容で作成します。
relayhost = "tls+auth://ラベル@リレーサーバ名:587"
table aliases file:/etc/mail/aliases
table secrets file:/etc/mail/secrets
listen on all
accept from any for local alias <aliases> deliver to mbox
accept for any relay via $relayhost auth <secrets>
上記の設定内容は「見たまま」なので説明は不要でしょう。ただし「
from ほげほげ」を省略すると「
from local」を意味します。因みに、特定のアドレスブロック(例えば、
192.168.0.0/24)から無条件でリレーを許可する場合は以下のように設定します。
relayhost = "tls+auth://ラベル@リレーサーバ名:587"
mynetwork = "192.168.0.0/24"
table aliases file:/etc/mail/aliases
table secrets file:/etc/mail/secrets
listen on all
accept from any for local alias <aliases> deliver to mbox
accept from source $mynetwork for any relay via $relayhost auth <secrets>
accept for any relay via $relayhost auth <secrets>
(4) 文法に間違いがないか確認します。
# /usr/sbin/smtpd -n
configuration OK
(5) smtpd を起動します。
# /etc/rc.d/smtpd start
これで
/etc/mail/mailname に設定したドメイン宛のメールを受け取れること、またローカルから外部への(リレーサーバ経由での)配送もできることを確認しました。
参考文献
posted by yamaga at 09:18|
Comment(0)
|
TrackBack(0)
|
OpenBSD
|

|