Memo for FreeBSD 5.2.1


Contents

  1. Mail Serverの導入 on DDNS
  2. Postfixの導入手順
  3. Postfixのインストール
  4. Sendmailの停止
  5. Postfixの設定
  6. Postfixの起動
  7. Postfixの自動起動
  8. qpopperのインストール
  9. qpopperの自動起動設定
  10. ユーザー登録
  11. qpopperのテスト

各種設定

Mail Serverの導入 on DDNS

DDNS環境下でMTA (Message Transfer Agent つまり SMTP サーバのこと)を 導入する手順についてまとめた。POP3設定も同時に行う。

DDNS環境下で、内部と外部のネームサーバーなどの意識はしなくても良い。 DDNSサービスでのドメイン名のみで問題なく稼動できる。
    導入条件・環境など
  1. MTAとして、Postfix を導入  
  2. POP3として、Qpopperを導入(APOPで暗号化)  
  3. DDNS環境で動く設定ができること

PostFixの導入手順

Postfixの導入手順を次に示す。
    Step_01 Postfixのインストール ( /stand/sysinstall でバイナリを利用 )
    Step_02 Sendmailの停止
    Step_03 Postfixの設定
    Step_04 Postfixの起動
    Step_05 Postfixの自動起動
    Step_06 qpopperのインストール ( /stand/sysinstall でバイナリを利用 )
    Step_07 qpopperの自動起動設定
    Step_08 ユーザー登録
    Step_09 qpopperのテスト

Step_01 Postfixのインストール

SMTP導入の初心者にはPortsバイナリからの導入を薦める。Portsからのインストール では、意味不明(初心者にとって???)の設定の問い合わせが続くため不安になる。 これらを避けるためや、コンパイルエラーがでない安心インストールのためにPortsバイナリ の導入を薦める。
    # /stand/sysinstall
    Configure ---> Packges ---> mail --->postfix
    インストール完了
    # rehash

Step_02 Sendmailの停止

sendmailでSMTPを動かしてない場合、このStepは不要。動いていなくても 動いているかどうかが不安な場合には、この処理を行うことを薦める。
    メールキューを空にする
     # sendmail -q

    sendmailを停止
     # killall sendmail

    sendmail関係が動いていないいることを確認
     # ps xa | grep sendmail

Step_03 Postfixの設定

Postfixの設定は、2つの設定に分類される。
  ・Postfixの機能設定、動作設定
  ・Postfixを動かすための環境設定

設定対象ファイルを示す。

    /usr/local/etc/postfix/main.cf
      通常のメールサーバとして運用するための設定をする
    /etc/mail/mailer.conf
      SMTPの環境設定を行う
    /etc/rc.conf
      sendmail から postfix の sedmail に合わせた変更を加える
    /etc/periodic.conf
      cronでエラーが発生しないようにcron の一部の機能を制限する
    /etc/newsyslog.conf
      sendmail のログローテーションを止めるため /etc/newsyslog.conf を変更する
    /etc/aliases
      エラーメールの受信者を決めるため /etc/aliases を編集する


▼通常のメールサーバとして運用するための機能を設定する

    設定条件を次に記す。

    変数名変数ID
    ドメイン名mydomainsample.ddns.jp
    メールサーバー名myhostnameM-Server.sample.ddns.jp
    このサーバーが受け取るアドレスmydestination@sample.ddns.jp
    メールゲートウェイrelayhostなし

    /usr/local/etc/postfix/main.cf

    を修正する。修正ポイントを示す。それ以外は修正しなくも良い。

    myhostname = M-Server.sample.ddns.jp
    mydomain = sample.ddns.jp
    myorigin = $mydomain

    inet_interfaces = all
    mydestination = $myhostname, localhost.$mydomain $mydomain
    mynetworks_style = class
    mail_spool_directory = /var/mail

    詳細はマニュアルを参照すること。

    記述に間違いがないかをチェックする。
    # rehash
    # postfix check
    エラーが出なければ、問題なし。




▼SMTPの環境設定を行う

    SMTPの環境設定を行う。
    ディフォルトではSMTPとしてsendmailが設定されているため、これをpostfixに変更する。
    Postfix は sendmail を交換する形で導入する形を取っているためにこのような形式となる。

    /etc/mail/mailer.conf

    を修正する。

    # $FreeBSD: src/etc/mail/mailer.conf,v 1.3 2002/04/05 04:25:12 gshapiro Exp $
    #
    # Execute the "real" sendmail program, named /usr/libexec/sendmail/sendmail
    #
    #sendmail /usr/libexec/sendmail/sendmail
    #send-mail /usr/libexec/sendmail/sendmail
    #mailq /usr/libexec/sendmail/sendmail
    #newaliases /usr/libexec/sendmail/sendmail
    #hoststat /usr/libexec/sendmail/sendmail
    #purgestat /usr/libexec/sendmail/sendmail

    # for Postfix by Mickey 2004/06/01

    sendmail /usr/local/sbin/sendmail
    send-mail /usr/local/sbin/sendmail
    mailq /usr/local/sbin/sendmail
    newaliases /usr/local/sbin/sendmail
    hoststat /usr/local/sbin/sendmail
    purgestat /usr/local/sbin/sendmail

    奇妙に思えるが、FreeBSD では /usr/sbin/sendmail は次のような動きをしている。
    /usr/sbin/sendmail を呼び出すと、実際には mailwrapper プログラムが動き、mailwrapper プログラムは /etc/mail/mailer.conf を見て、実際に呼び出すプログラムを決定している。


▼sendmail から "postfixのsedmail" に合わせた変更を加える

    sendmail から "postfixのsedmail" に合わせた変更を加える。 環境によっては、全て追記となる場合がある。

    /etc/rc.conf

    を修正する。

    # 2004/05/31 Appendding by Mickey
    sendmail_enable="YES"
    sendmail_flags="-bd"
    sendmail_pidfile="/var/spool/postfix/pid/master.pid"
    sendmail_outbound_enable="NO"
    sendmail_submit_enable="NO"
    sendmail_msp_queue_enable="NO"


▼cronでエラーが発生しないようにcron の一部の機能を制限する

    cron でエラーが発生しないように /etc/periodic.conf を新規に作成し、 cron の一部の機能を制限する。

    /etc/periodic.conf

    を新しく作成する。

    daily_clean_hoststat_enable="NO"
    daily_status_mail_reject_enable="NO"
    daily_status_include_submit_mailq="NO"
    daily_submit_queuerun="NO"


▼sendmail のログローテーションを止めるため /etc/newsyslog.conf を変更する

    /etc/newsyslog.conf

    を修正する。

    次のようにコメントアウトする。
    #/var/log/sendmail.st     640  10  *  168 B


▼エラーメールの受信者を決めるため /etc/aliases を編集する

    Postfixで利用するaliasesの編集をする前に、Postfixで利用するaliasesの設定が必要。

    Postfixで利用する標準aliasesファイルは、/etc/aliasesとなっている。
    そのため、標準のmail-aliasesは、 /etc/mail/aliases となっているため シンボリックリンクを張り、解決させる。

    その後、エラーメールの受信者を決めるため /etc/aliases を編集する。

    シンボリックリンクを作成する。
    # ln -s /etc/mail/aliases /etc/aliases

    /etc/aliases

    を修正する。

    postfix のエラーメールの受信者を決めるため /etc/aliases を編集する。

    MAILER-DAEMON: postmaster
    postmaster: root
    postfix: root

Step_04 Postfixの起動

    起動する前に、mail関連の設定が正しいかをチェックする。

    # /usr/local/sbin/postconf | more

    デフォルトも含めて全て出力されるので、ファイルにリダイレクトしても良い。


    起動する。

    # postfix start

    オプションを指定せずに起動すると、現在利用可能なオプションを示してくれる。

    start 起動
    stop 停止
    reload 定義ファイルの再読み込み
    abort 強制終了
    flush 再送待ちメイルの強制的再処理
    check Postfixシステムの検証

    その後は実際にメールを送って動作を確認する。

▼この時点ではPOP3は設定されておらず、clientでメールを取り出すことができない。

    postfixは起動したが、設定したサーバーからメールを取り出すことができない。 このためPOP3サーバーの導入が必須となる。

Step_05 Postfixの自動起動

    OS のブート時に自動起動するように起動スクリプトを作成する。

    /etc/rc.conf

    で次のように設定した。

    # 2004/05/31 Appendding by Mickey
    sendmail_enable="YES"

    このため、自動起動の設定は不要

    詳細は、前述した ▼SMTPの環境設定を行う を参照

Step_06 qpopperのインストール

    portsバイナリでインストールする。
    バイナリが無い場合はportsから make install でインストール。

    # /stand/sysinstall
    Configure ---> Packges ---> mail --->qpopper
    インストール完了
    # rehash

Step_07 qpopperの自動起動設定

    /etc/inetd.confを修正する。

    次のような手順で修正する。(初心者向け)
    # /stand/sysinstall
    Configure ---> networking ---> inetd --->チェック・オン

    中身の修正をしますかと聞かれるので、Yesと答え、次のようにpop3を 書き換える。

    pop3 stream tcp nowait root /usr/local/libexec/qpopper qpopper -t /var/log/qpopper.log

    設定完了
    # rehash

    有効にするには、

    # kill -HUP `cat /var/run/inetd.pid`

    と打ってinetdを再起動させるかシステムリブートする。

Step_08 ユーザー登録

qpopperにユーザー登録をする

    最初にPOP3ユーザーすべてのログインパスワードを初期化する。 最初1回やれば、今後二度とする必要はない。root権限のみ可能

    # qpopauth -init

    APOPを使うユーザー(たとえばjhon)がいれば、

    # qpopauth -user jhon
    Changing only APOP password for jhon
    New password:
    Retype new password:
    とパスワードを入力し終了
    これ以降、APOP以外のプロトコルではアクセス出来なくなる。解消した場合

    # qpopauth -delete jhon

Step_09 qpopperのテスト

    メールの送受信で動作チェックする。
    メールクライアントソフトは、APOP対応のものが必要となる。

    APOPの設定をしていなければ、IDはユーザー名、パスワードはFreeBSDのログインパスワードとなる。