ユーザ用ツール

サイト用ツール


ubuntu-server-10-04:postfix

Postfix でメールサーバ

メールサーバとして Postfix をインストール。

Postfixのインストール

apt-get でインストール。

$ sudo apt-get install postfix

インストール中にダイアログで Postfic の設定ができる。 最初にサーバの使用目的についての説明がでるので、読んだら OK を押す。

  • General type of mail configuration
    • Internet Site を選択
  • System mail name
    • 使用するメールアドレスの@以下のアドレス部分を入力

設定

インストール中の設定ではほとんど設定できていないので、追加で設定。

設定用のコマンドがあるのでそれを利用する。

$ sudo dpkg-reconfigure postfix

途中まではインストール中に設定した項目なので飛ばす。

  • Root and posmaster mail recipient
    • root 宛のメールを転送するユーザ 都合良いユーザのユーザ名を入力
  • Other destinations to accept mail for (blank for none)
    • 自サーバへのメールと解釈するアドレスをカンマ区切りで入力
      • mail.example.com, localhost.localdomain, localhost
  • Force synchronous updates on mail queue?
    • メールキューの設定のようだが、おそらく大規模なメールサーバでなければどちらでも関係ないと思われ
      • No
  • Local networks
    • ローカルネットワークのアドレスを追加で入力
      • 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.0.0/24
  • Mailbox size limit (byte)
    • mailbox のサイズを設定。後で maildir 形式に変更するので、0を設定
  • Local address extension character
    • 何に使うのかよくわからない。デフォルトのままで
  • Internet protocols to use
    • IPv4 しか使わないので ipv4 を選択

メール保存形式をデフォルトの mbox から maildir に変更。

$ sudo postconf -e 'home_mailbox = Maildir/'

設定内容は /etc/postfix/main.cf に保存されている。

SMTP Authentication

SASLを使って暗号化された回線でSMTP接続できるようにする。

/etc/postfix/main.cf に以下を追加。

smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth-client
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
inet_interfaces = all

サーバの鍵を用意する。自己署名サーバ証明書の作成

サーバの鍵を /etc/ssl/private/server.key に crtファイルを /etc/ssl/certs/server.crt に配置。 server.key はパスワードが解除してあるので、パーミッションとオーナーを変更しておく。

$ sudo chown root:ssl-cert /etc/ssl/private/server.key
$ sudo chmod 640 /etc/ssl/private/server.key

CAの証明書を /etc/ssl/certs/cacert.pem に配置。

/etc/postfix/main.cf に以下を追加。

smtpd_tls_auth_only = no
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/ssl/private/server.key
smtpd_tls_cert_file = /etc/ssl/certs/server.crt
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
myhostname = mail.example.com

smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem
  • mail.example.com はサーバのアドレスに置き換える

最後に Postfix を再起動。

$ sudo /etc/init.d/postfix restart

SASLの設定

AMTP Authentication で使用する SASL を設定する。

必要なパッケージをインストール。

$ sudo apt-get install dovecot-common

/etc/dovecot/dovecot.conf を編集する。socket listen を検索して以下のように変更。

  socket listen {
    #master {
      # Master socket provides access to userdb information. It's typically
      # used to give Dovecot's local delivery agent access to userdb so it
      # can find mailbox locations.
      #path = /var/run/dovecot/auth-master
      #mode = 0600
      # Default user/group is the one who started dovecot-auth (root)
      #user =
      #group =
    #}
    client {
      # The client socket is generally safe to export to everyone. Typical use
      # is to export it to your SMTP server so it can do SMTP AUTH lookups
      # using it.
      #path = /var/run/dovecot/auth-client
      path = /var/spool/postfix/private/auth-client
      mode = 0660
      user = postfix
      group = postfix
    }
  }

Outlook から接続する場合は mechanisms に login を追加。

$   mechanisms = plain login

テスト

設定が終わったら telnet でテストする。

$ telnet mail.example.com 25

telnet から以下のコマンドを実行。

ehlo mail.example.com

以下の出力が含まれていれば OK。“LOGIN” は Outlook のための設定を行った場合に表示される。

250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250 8BITMIME

SSL/TLS接続を有効にする

STARTTLS ではなく直接465ポートにアクセスして暗号化接続を行えるようにする。

$ sudo vi /etc/postfix/master.cf

コメントを3行分はずす。

smtps     inet  n       -       -       -       -       smtpd
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING

その後再起動かリロード。

$ sudo /etc/init.d/postfix restart

スパムの踏み台チェック

外部からの不正リレーをきちんと防げているかをチェックするには、メールサーバから以下のコマンドを実行する。

$ telnet relay-test.mail-abuse.org

root 宛てのメールを転送

root にメールを送信されても受信する機会がないので、root 宛てのメールはシステム管理をするユーザに転送する。

$ sudo vi /etc/aliases

root 宛てのメッセージを他のユーザに転送する。

# See man 5 aliases for format
postmaster:    root

root:   foobar

/etc/aliases を編集した後に以下のコマンドで設定を適用する。

$ sudo newaliases

参考

ubuntu-server-10-04/postfix.txt · 最終更新: 2010/10/30 14:28 by admin