OpenSMTPDにチャレンジ その1 (FreeBSD 10.3R、2016/09/11) [FreeBSD]
postfixでメールサーバを運用しており、今現在、特に不満はありません。ただ、OpenSMTPDという新しいおもちゃを見つけてしまいました。ハッカーの血がたぎります。幸いなことにportsにも登録されているので、少なくともインストールに躓くことはないでしょう。
現行バージョンは5.9.2p1のようなので、サクッとインストールしてしまいます。
設定サンプル等は、Webから探します。予想通り情報が少ないですね。しかしOpenBSDの成果物の良いところは、公式マニュアルがしっかりメンテナンスされていること。きちんと整備されたマニュアルもセキュリティの向上に欠かせないという思想からですね。だから困ったときは公式マニュアルを読めば良いのです。
とは言っても、設定サンプルがないと設定しにくいもの。数少ない日本語サイトを探します。一つ分かったのは、いろいろと仕様改変が行われていること。代表的なところとしては、mapコマンドがtableコマンドに置換されたことでしょうか。
本格運用はまだですが、とりあえずテストコンフィグで色々と試しています。ISPメールサーバへのSTARTTLSによるSMTPメール転送などもすでに動作確認できています。その中(というより、そもそものところで)で出てきた問題は3つ。
まず、インストール後のディレクトリ等のパーミッションが怪しいです。私が何も考えずに-Rオプションで一括して所有者がパーミッションを変えてしまったような気がしないでもないですが、下記のようなエラーメッセージが出ました。
pkg delete/installをやり直してもダメだったので、pkg intall時に表示される下記コマンド(本来は古いバージョン使用者向けの移行用設定)を適用しましょう。さすがOpenBSD系だけあって、権限にはうるさいです。
次に/etc/mail/mailer.confです。必要な修正を行ってくれません。portsディレクトリにはそれっぽい修正用のスクリプト(/usr/ports/mail/opensmtpd/files/pkg-install.in)が置いてあるのですが、pkgでインストールした時は何も修正されませんでした。そのため、自分で下記内容に修正します。
もしかすると一時期postfix等のインストールでいろいろ弄っていたので、mailer.confが初期状態から改変されており、あえて修正されなかったのかもしれません。(/usr/local/sbin/sendmailって明らかに初期状態ではないですね)
最後にmakemapについて。データベースファイル(テーブルコマンドで読み込むファイル)をmakemapで処理するのですが、私はFreeBSDに標準インストールされている/usr/sbin/makemapを使っていました。どうやらこれではダメで、/usr/local/libexec/opensmtpd/makemapを使う必要がありました。
とりあえずそんなところでしょうか。
現行バージョンは5.9.2p1のようなので、サクッとインストールしてしまいます。
root@mybsd:/usr/local/etc/mail # pkg search opensmtpd opensmtpd-5.9.2p1_1,1 Security- and simplicity-focused SMTP server from OpenBSD opensmtpd-devel-201606220754,1 Security- and simplicity-focused SMTP server from OpenBSD opensmtpd-extras-201606230001 Addons for OpenSMTPD opensmtpd-extras-filter-clamav-201606230001 Check messages with ClamAV in OpenSMTPD opensmtpd-extras-filter-dkim-201606230001 DKIM-signing filter for OpenSMTPD opensmtpd-extras-filter-dnsbl-201606230001 DNSBL-checking filter for OpenSMTPD opensmtpd-extras-filter-lua-201606230001 LUA-script filter support for OpenSMTPD opensmtpd-extras-filter-monkey-201606230001 Arbitrary delay or reject filter for OpenSMTPD opensmtpd-extras-filter-pause-201606230001 Pause incoming OpenSMTPD messages to reduce spam opensmtpd-extras-filter-perl-201606230001 Perl-script filter support for OpenSMTPD opensmtpd-extras-filter-python-201606230001 Python-script filter support for OpenSMTPD opensmtpd-extras-filter-regex-201606230001 Regular expression filter for OpenSMTPD opensmtpd-extras-filter-spamassassin-201606230001 Spamassassin filter addon for OpenSMTPD opensmtpd-extras-queue-python-201606230001 Python queue support for OpenSMTPD opensmtpd-extras-queue-ram-201606230001 RAM queue support for OpenSMTPD opensmtpd-extras-scheduler-python-201606230001 Python scheduler support for OpenSMTPD opensmtpd-extras-scheduler-ram-201606230001 RAM scheduler support for OpenSMTPD opensmtpd-extras-table-ldap-201606230001 LDAP table support for OpenSMTPD opensmtpd-extras-table-mysql-201606230001 MySQL table support for OpenSMTPD opensmtpd-extras-table-passwd-201606230001 passwd(5) table support for OpenSMTPD opensmtpd-extras-table-postgresql-201606230001 PostgreSQL table support for OpenSMTPD opensmtpd-extras-table-python-201606230001 Python table support for OpenSMTPD opensmtpd-extras-table-redis-201606230001 Redis table support for OpenSMTPD opensmtpd-extras-table-socketmap-201606230001 Socketmap table support for OpenSMTPD opensmtpd-extras-table-sqlite-201606230001 SQLite table support for OpenSMTPD opensmtpd-extras-tool-stats-201606230001 Statistics tool for OpenSMTPD
設定サンプル等は、Webから探します。予想通り情報が少ないですね。しかしOpenBSDの成果物の良いところは、公式マニュアルがしっかりメンテナンスされていること。きちんと整備されたマニュアルもセキュリティの向上に欠かせないという思想からですね。だから困ったときは公式マニュアルを読めば良いのです。
とは言っても、設定サンプルがないと設定しにくいもの。数少ない日本語サイトを探します。一つ分かったのは、いろいろと仕様改変が行われていること。代表的なところとしては、mapコマンドがtableコマンドに置換されたことでしょうか。
本格運用はまだですが、とりあえずテストコンフィグで色々と試しています。ISPメールサーバへのSTARTTLSによるSMTPメール転送などもすでに動作確認できています。その中(というより、そもそものところで)で出てきた問題は3つ。
まず、インストール後のディレクトリ等のパーミッションが怪しいです。私が何も考えずに-Rオプションで一括して所有者がパーミッションを変えてしまったような気がしないでもないですが、下記のようなエラーメッセージが出ました。
/var/spool/smtpd is not owned by uid 0 /var/spool/smtpd is not owned by gid 0 /var/spool/smtpd/offline is not owned by gid 258
pkg delete/installをやり直してもダメだったので、pkg intall時に表示される下記コマンド(本来は古いバージョン使用者向けの移行用設定)を適用しましょう。さすがOpenBSD系だけあって、権限にはうるさいです。
2. Update permissions: # chown -R _smtpq:wheel /var/spool/smtpd/corrupt # chown -R root:_smtpq /var/spool/smtpd/offline # chown -R _smtpq:wheel /var/spool/smtpd/purge # chown -R _smtpq:wheel /var/spool/smtpd/queue # chown -R _smtpq:wheel /var/spool/smtpd/temporary # chmod -R 770 /var/spool/smtpd/offline # chmod -R 700 /var/spool/smtpd/purge
次に/etc/mail/mailer.confです。必要な修正を行ってくれません。portsディレクトリにはそれっぽい修正用のスクリプト(/usr/ports/mail/opensmtpd/files/pkg-install.in)が置いてあるのですが、pkgでインストールした時は何も修正されませんでした。そのため、自分で下記内容に修正します。
もしかすると一時期postfix等のインストールでいろいろ弄っていたので、mailer.confが初期状態から改変されており、あえて修正されなかったのかもしれません。(/usr/local/sbin/sendmailって明らかに初期状態ではないですね)
#sendmail /usr/local/sbin/sendmail #send-mail /usr/local/sbin/sendmail #mailq /usr/local/sbin/sendmail #newaliases /usr/local/sbin/sendmail sendmail /usr/local/sbin/smtpctl send-mail /usr/local/sbin/smtpctl mailq /usr/local/sbin/smtpctl makemap /usr/local/libexec/opensmtpd/makemap newaliases /usr/local/libexec/opensmtpd/makemap
最後にmakemapについて。データベースファイル(テーブルコマンドで読み込むファイル)をmakemapで処理するのですが、私はFreeBSDに標準インストールされている/usr/sbin/makemapを使っていました。どうやらこれではダメで、/usr/local/libexec/opensmtpd/makemapを使う必要がありました。
とりあえずそんなところでしょうか。
タグ:OpenSMTPD
2016-09-11 23:33
nice!(0)
コメント(0)
コメント 0