メールサーバーを作る

Kirium Mail Server

★Kirium Mail Serverの主な特徴
  • 設定が日本語環境
  • ブラウザ上で設定するので他のPCからも設定できる
  • 同一アカウントをドメインごとで管理ができる
    ○○○@□□□.comと○○○@△△△.comで○○○を別々に管理
  • Javaの稼働するOSならWindows・Linux・Mac等どれでも可
  • 個人が非商用で使用する場合に限り無償

Kirium Mail Serverの設定

Kirium Mail Server 2007(002)のときの設定
Kirium Mail ServerはJava2 実行環境(JRE1.4以上)を必要とします。
インストールされていない場合Java.comよりダウンロードしてインストール
  1. Download Pageからダウンロードして解凍し保存する場所へフォルダごと移動
  2. Start.batを実行し、そのままでブラウザよりhttp://127.0.0.1:8880/kiriumへアクセスし
    ユーザー・パスワードにadministratorを記入しログイン
  3. 左のリストからNTサービスを選び登録ボタンを押す
  4. メニューから基本設定を選びドメインおよびその他の設定
  5. メニューからアカウントを選びadministratorの編集ボタンを押しパスワードを変更後、適用ボタンを押す
  6. メニューからアカウントを選び登録するアカウント記入後、作成ボタンを押す
  7. その他環境にあわせて設定後ログアウト
  8. 先ほど実行したStart.batを終了(閉じる)させStop.batを実行
  9. スタートメニュー→コントロールパネル→管理ツール→サービスでKirium Mail Serverのスタートアップの種類を手動から自動に変更
  10. OSを再起動してサービスにKirium Mail Serverが登録されていて開始・自動になっているか確認

Radish

★Radishの主な特徴
  • 設定が日本語環境
  • 比較的設定が簡単
  • SMTP(送信)・POP3(受信)・DNSサーバーが使用可能
  • 複数のドメイン管理はできるが同一アカウントでの管理はできない
  • 商用・非商用を問わず、誰でも無償

Radishの設定

Radish 3.0.0-b038のときの設定
  1. Download Pageからダウンロードしてインストール
  2. 解凍後できたフォルダを適当な保存場所に移動させてからフォルダ内のRadish.exeを実行
    (タスクトレイにアイコンがあらわれる)
  3. タスクトレイのRadishを右クリックしリストからRadishを開くを選択
  4. メニューバーの設定→SMTP/POP3サーバを選択
  5. 基本設定タブ内のサーバ名・ドメイン名を入力
  6. SMTPサーバタブ内のバインドアドレスにINADDR_ANYを入力しPop before SMTP 有効時間を30分にする
  7. POP3サーバタブ内のバインドアドレスにINADDR_ANYを入力しOKボタンを押す
  8. メニューバーの設定→ユーザを選択
  9. ユーザ名・パスワードを記入後追加ボタンを押しOKボタンを押す

Postfix & Courier-IMAP

メールサーバーは受信と送信で異なり、それぞれサーバーを構築する必要がある。

Postfixの基本設定

Postfix 2.2.10のときの設定
PostfixはSMTP(送信)サーバーでメール保存形式はMailbox(1アカウントで1ファイル管理)とMaildir(1メールで1ファイル管理) の両方に対応する。Mailbox形式だとファイルが壊れるとすべてのメールが見れなくなるのでMaildir形式に変更する方がいい。 Vine Linux 4.2 では組み込み済みなので設定のみ行う。
  1. /etc/Postfixディレクトリにあるmain.cfファイルの修正(先頭に#がある場合は#を取り除く)
    • default_privs = nobody root権限処理をdefault_privsに指定した権限で実行
    • myhostname = mail.△△△.com ホスト名 + ドメイン名、またはドメイン名のみ
    • mydomain = △△△.com ドメイン名
    • myorigin = $myhostname ローカルからの送信時に付加するホスト名またはドメイン名
    • inet_interfaces = all メールを受信するアドレス範囲
    • mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain メールを最終的に受信するドメイン名
    • mynetworks = 192.168.1.0/28, 127.0.0.0/8 リレーを許可する範囲
    • alias_maps = hash:/etc/postfix/aliases エイリアスデータベースの場所(エイリアスを使用しないなら不要)
    • alias_database = hash:/etc/postfix/aliases エイリアスデータベースの場所(エイリアスを使用しないなら不要)
    • home_mailbox = Maildir/ メール保存形式(MaildirはPOPサーバーも対応している必要がある)
    • mail_spool_directory = /var/spool/mail メールの保存場所
    • smtpd_banner = $myhostname ESMTP サーバーのバージョン非表示
    • sendmail_path = /usr/sbin/sendmail sendmailコマンドのフルパス(sendmailコマンドを使用しないなら不要)
  2. /etc/Postfixディレクトリにあるmain.cfファイルに以下を追記
    • allow_percent_hack = yes 不正中継対策
    • disable_vrfy_command = yes VEFYコマンドを禁止
    • mailbox_size_limit = 10240000 メールボックスの容量制限(例では10MBだが制限しないなら不要)
    • message_size_limit = 1024000 1メールのサイズを制限(例では1MBだが制限しないなら不要)
  3. /etc/init.d/postfix restart(service postfix restartでも可)
  4. 25(SMTP)のポート開放

SMTP-AUTHの設定

SMTP-AUTHとはメール送信時にSMTPサーバーによってユーザーの認証を行う機能のことです。 通常、メール送信にはSMTPというプロトコルを使用しますが、このSMTPにはユーザー認証を行う機能がありません。 そのため誰にでも利用できてしまい不正利用されることがあります。それを未然に防ぐためにSMTP-AUTHを利用してユーザー認証を行い、認証されたもののみ利用できるようにします。 SMTP-AUTHを導入するにはCyrus SASLが必要ですが、Vine Linux 4.2にはすでにcyrus-saslとcyrus-sasl-develはインストールされています。 必要に応じてcyrus-sasl-md5とcyrus-sasl-plainもインストール。
  1. /etc/Postfixディレクトリにあるmain.cfファイルに以下を追記
    • smtpd_sasl_auth_enable = yes SMTP-AUTHを有効
    • smtpd_sasl_local_domain = $myhostname ローカル認証のREALMの指定
    • smtpd_sasl_security_options = noanonymous 匿名での接続を拒否
    • smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination 送信制限
  2. /usr/lib/sasl2ディレクトリにsmtpd.confを作成し以下を記述
    pwcheck_method: auxprop
    auxprop_plugin: sasldb
    mech_list: cram-md5 digest-md5 plain login
  3. SMTP認証用アカウントの作成 Unixユーザーアカウントを使用するなら必要ない
    ユーザー名@△△△.comなら
    /usr/sbin/saslpasswd2 -c -u △△△.com ユーザー名
    削除するときは
    /usr/sbin/saslpasswd2 -d -u △△△.com ユーザー名
    確認するときは
    /usr/sbin/sasldblistusers2
  4. chgrp postfix /etc/sasldb2 Unixユーザーアカウントを使用するなら必要ない
  5. service saslauthd start SMTP認証用アカウントを使用するなら必要ない
  6. chkconfig saslauthd on SMTP認証用アカウントを使用するなら必要ない
  7. service postfix restart
動作確認
telnet localhost 25
ehlo localhostで下記のような行があればOK
250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5
quitで終了

バーチャルメールボックスの設定

通常メールアカウントはアカウントごとにUnixシステムアカウントを使用するので メールアカウントが増えれば増えるほどUnixシステムアカウントも増えてしまって管理も大変で セキュリティ上あまりよろしくないうえにアカウントが重複(aaa@△△△.com aaa@□□□.comなど) したときに別々に管理することが難しいのでUnixシステムアカウントを使用しないバーチャルメールボックスを利用して構築。
  1. /etc/Postfixディレクトリにあるmain.cfファイルの修正
    mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain → mydestination =
  2. /etc/Postfixディレクトリにあるmain.cfファイルに以下を追記
    • virtual_mailbox_domains = $myhostname,localhost,□□□.com
      ※ここに指定したドメインはmydestination、virtual_alias_domainsには指定しない
    • virtual_transport = virtual 配送エージェントの指定
    • virtual_mailbox_base = /var/mail メールの保存先となるルートディレクトリ
    • virtual_mailbox_maps = hash:/etc/postfix/vmailbox メールの振り分け先を定義するmailbox_mapsファイルの指定
    • virtual_minimum_uid = 100 virtual_uid_mapsから受け取るuidの最小値
    • virtual_uid_maps = static:5000 メールの書き込みに使用するユーザーID
    • virtual_gid_maps = static:5000 メールの書き込みに使用するグループID
  3. メール保存先ディレクトリを作成し、そのディレクトリ内にcur・new・tmpのフォルダを作成。
    作成した各フォルダの所有者、グループを5000に変更しパーミッションを700にする。
    mkdir -p /var/mail/user1/cur オプションpでサブディレクトリuser1も作成
    mkdir -p /var/mail/user1/new
    mkdir -p /var/mail/user1/tmp
    chown -R 5000:5000 /var/mail/user1 /var/mail/user1以下のファイル・ディレクトリをすべて所有者、グループ5000に変更
    ※virtual_uid_maps、virtual_gid_mapsで指定したIDにすること。
    chmod -R 700 /var/mail/user1
  4. /etc/postfixディレクトリ内にvmailboxファイルを作成し メールアドレスと受信時の保存先を記述。
    (例)aaa@△△△.com user1/ aaa@△△△.comの受信メールを/var/mail/user1/newに保存
  5. postmap /etc/postfix/vmailbox でvmailboxを更新・反映
  6. /etc/init.d/postfix restart(service postfix restartでも可)

Courier-IMAPの設定

Courier-IMAP 4.0.3のときの設定
Courier-IMAPはPOP・IMAP(受信)サーバーでPAM認証、CRAM-MD5認証、SSLなどが使用でき、 Maildir形式に対応し、Mailbox形式には非対応。POPサーバーとIMAPサーバーの違いはメールの管理方法でIMAPはサーバー上でメールの管理ができ、 POPはクライアント側でメールをダウンロードして管理します。 Courier-IMAPはVine Linux 4.2 には組み込まれていないのでまずインストールから。
  1. apt-get install courier-imap Courier-IMAPのインストール
  2. userdb でアカウント管理データベースを作成(作成したuserdbは/etc/authlibに保存される)
    userdb ユーザーアカウント名 set mail=/home/mail/user1 home=/home/mail uid=5000 gid=5000
  3. userdbpw でパスワード作成
    userdbpw | userdb ユーザーアカウント名 set pop3pw
    CRAM-MD5で認証を行う場合は以下のようにする Outlook系やOutlookExpressはCRAM-MD5非対応
    userdbpw -hmac-md5 | userdb ユーザーアカウント名 set hmac-md5pw
    ※入力後パスワード入力(登録)を2回求められる
  4. makeuserdb でコンバート
  5. service courier-imap start
  6. service courier-authlib start
  7. メールクライアントにて送受信チェック
※25(SMTP)・110(POP3)・993(IMAP4-SSL)・995(POP3-SSL)の使用するポートを開ける
  netstat -lnp | grep 調べるポート番号 で使用状況をチェック
  /var/log/maillogでログチェック

補足

  • PostfixでSMTP-AUTHを利用するとSMTP用パスワードとPOP3のパスワードの2つを管理するようになる。 MySQLを利用すればパスワードをひとつで管理できるようになる。
  • 設定が終わったら念のためメールの不正な第三者中継のチェックをすすめる。

TOPへ
戻る