トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

NetBSDでPostfix

NetBSDでPostfixを使うときのメモ。

NetBSD/i386 6.0_STABLE + pkgsrc/mail/postfix (2.11.0)。NetBSDにはもとからPostfixが入っている(2.8.17)が、使わないことにする。

間違っていたら、おしえてね。

はじめる前に

 pkgsrc/mail/postfixを使うべきか

pkgsrcのPostfixを使わなくても、NetBSDデフォルトので困らない場合は、そのまま使えばよい。

ちなみに、

 # /usr/sbin/postconf -n
 command_directory = /usr/sbin
 config_directory = /etc/postfix
 daemon_directory = /usr/libexec/postfix
 data_directory = /var/db/postfix
 debug_peer_level = 2
 html_directory = /usr/share/doc/html/postfix
 inet_protocols = all
 mail_owner = postfix
 mailq_path = /usr/bin/mailq
 manpage_directory = /usr/share/man
 newaliases_path = /usr/bin/newaliases
 queue_directory = /var/spool/postfix
 readme_directory = /usr/share/examples/postfix
 sample_directory = /usr/share/examples/postfix
 sendmail_path = /usr/sbin/sendmail
 setgid_group = maildrop
 unknown_local_recipient_reject_code = 550
 # /usr/sbin/postconf -m
 btree
 cidr
 environ
 hash
 internal
 ldap
 proxy
 regexp
 sqlite
 static
 tcp
 texthash
 unix

というようなものがデフォルトのPostfix。

 pkgsrcの準備

pkgsrcから全てインストールするので、事前に準備しておく。

まずはインストール。

FreeBSDのportsだと、インストール時に選択できるが、pkgsrcでは、/etc/mk.confに必要なオプションを書いておく。たとえば、

 PKG_OPTIONS.postfix= bdb pcre

などと書いておく。書けるオプションについては、make show-optionsするとわかるように、

 # make show-options
 Any of the following general options may be selected:
         bdb      Enable Berkeley DB support.
         ldap     Enable LDAP support.
         mysql    Enable MySQL support.
         mysql4
         pcre     Enable Perl-compatible regular expressions.
         pgsql    Enable PostgreSQL support.
         sasl     Enable SASL support.
         tls      Enable TLS support.
 <snip>

などがある。ここでは、bdbとPerl拡張正規表現がパターンマッチで使えるとうれしいのでpcreをいれることにする。(tlsは、デフォルトで入る。いらない場合は、-tls というオプションを指定しよう。)

では、インストール。

 # cd /usr/pkgsrc/mail/postfix
 # make install
 # make clean clean-depends

これで、Postfixの他にとdevel/pcreがインストールされる。

設定

 base systemのpostfixを使わないようにする

もともとインストールされているPostfixが起動しないように、インストール時のメッセージのとおり、/etc/rc.conf.d/postfixを作成しておく。

あと、/etc/mailer.confも忘れずに書き換えておく。

インストール時のメッセージを見損ねた人は、pkg_info postfix しよう。

 # pkg_info postfix
 <snip>
 ===========================================================================
 $NetBSD: MESSAGE.NetBSD,v 1.5 2010/03/02 08:07:36 martti Exp $
 
 The existing /etc/rc.d/postfix can be forced to start /usr/pkg/sbin/postfix
 instead of /usr/sbin/postfix, by adding the following lines to
 /etc/rc.conf.d/postfix:
 
         postfix_command='/usr/pkg/sbin/postfix'
         required_files='/usr/pkg/etc/postfix/main.cf'
         start_cmd='/usr/pkg/sbin/postfix start'
         stop_cmd='/usr/pkg/sbin/postfix stop'
         reload_cmd='/usr/pkg/sbin/postfix reload'
         postconf='/usr/pkg/sbin/postconf'
 
 Please note that /etc/rc.conf.d/postfix does not exist by default so
 you need to create that file if you need to override the default settings.
 
 Remember to modify /etc/mailer.conf to use /usr/pkg/sbin/sendmail instead
 of /usr/libexec/postfix/sendmail.
 ===========================================================================

もし、書いてないようなら、/etc/rc.confに起動するように書く。

 postfix=YES

 一般

はじめに

設定ファイルは/usr/pkg/etc/postfixの下にある。Postfixのぺーじ等を見て、設定していけば特に困ることはない。

設定が終わったら、postfix checkしよう。文法に問題なければ、何も出ないはずである。

 /usr/pkg/sbin/postfix check

まずは、main.cfから。

main.cf: myorign

たいていの場合、まずは、myorignをいじる。

 myorigin = $myhostname
 #myorigin = $mydomain

このホストからの発信するメールアドレスの@の後ろのところをどうするか、である。

main.cf: mydestination

次に、mydestinationをいじる。

 mydestination = $myhostname, localhost.$mydomain
 #mydestination = $myhostname, localhost.$mydomain $mydomain
 #mydestination = $myhostname, localhost.$mydomain, $mydomain,
 #       mail.$mydomain, www.$mydomain, ftp.$mydomain

最終目的地とみなすドメインの一覧を指定している。

main.cf: unknown_local_recipient_reject_code

次は、unknown_local_recipient_reject_codeをいじる。

 unknown_local_recipient_reject_code = 550
 #unknown_local_recipient_reject_code = 450

存在しないユーザ宛のメールが来たときの応答をどうするかを決めている。"450"にすると、一時拒否になってしまい、相手が再送してくることになる。原則"550"でよい。

main.cf: mynetworks or mynetworks_style

次は、mynetworksである。メールのリレーを許す範囲を指定する。自分がメールを受け取るだけ、自分から送るだけ、なら、mynetworksをいじらなくても、mynetworks_styleをhostにすればよい。

 mynetworks_style = host

大学の研究室等で、たとえば、NAT下にあったりして、同じサブネット下のマシンからはリレーを許してもいいのなら、

 mynetworks_style = subnet

とすればよい。(が、これはデフォルト値なので、mynetworks_styleもmynetworksも別に書かなくてもよいことになる。)

そうではなくて、細かくネットワークを指定したいときは、やはり、mynetworks_styleではだめで、mynetworksを書かないといけない。

 mynetworks = 10.0.8.0/24, 10.0.14.0/24, 127.0.0.0/8

main.cf: relayhost

あとは、relayhostくらい。

大学内や企業内などの場合、直接インターネットにメールを配送できることはなく、たいてい特定のホスト(ウイルススキャンメールサーバ等)にリレーをしないといけないはずである。そういうホストを指定する。

 relayhost = [gateway.my.domain]

ちなみに、"["と"]"は必要である。

master.cf: smtpd

NetBSDでは、デフォルトでは、ホストの外からのメールをいっさい受信しない設定になっている。受信できるようにする。

 #smtp      inet  n       -       n       -       -       smtpd

の行を

 smtp      inet  n       -       n       -       -       smtpd

とすればよい。

 SMTP Auth

インストールメッセージのとおり、

(かきかけ)

間違いの指摘や、ご意見などは、FrontPageにある連絡先にメールを下さるとうれしいです。

最終更新時間:2014年06月29日 14時19分09秒