金曜日 9 26, 2008

SJSMS - 最新の Messaging Server 7 をインストール

今年の 8 月にリリースされた Communications Suite 6 に含まれる Messaging Server 7.0 は、64bit 対応となり 42.9億通のメール貯留等が可能となるラージメールボックスがサポート されました。
さらに、Message future Release (RFC 4865) 等の新しい、RFC もサポートされメールの予約送信等も 可能となっております。
また、Communications Suite 6 よりインストールコマンドも新しくなっておりますが、 Directory Server、Access Manager、Application Server 等は、それぞれ別途インストールする 必要があります。
今回は Messaging Server の動作に最低限必要なコンポーネントをインストール・設定してみる事で、 新しくなったインストール手順をまとめてみました。

目次
  1. パッケージのダウンロード
  2. 事前確認
  3. インストール手順
    1. Application Server 9.1 のインストール
    2. Directory Server 6.3 のインストール
    3. Access Manager のインストール
    4. Messaging Server 7.0, DSsetup, Delegated Administrator のインストール
  4. 初期設定
    1. Messaging Server 向けに Directory Server を構成する
    2. Delegated Administrator の初期設定
    3. Messaging Server の初期設定
  5. ユーザの追加
  6. 動作確認
  7. 参考資料
パッケージのダウンロード

Messaging Server 7.0 は、Communications Suite 6 に含まれておりますので、 Sun Download Center より Communications Suite 6 をダウンロードします。

          尚、インストールは面倒だけど、今すぐ試してみたいという方の為に、VMware のイメージも配布されています。
          英語環境のイメージとなってしまいますが、インストールを飛ばしてすぐに Communications Suite 6 をお試しいただけます。

          VMware イメージの説明

Messaging Server の動作に最低限必要なコンポーネントは以下になります。

  • Java Enterprise System
    • Directory Server
  • Communicatoins Suite
    • Messaging Server 7.0 (32bit or 64bit)
    • DSsetup

また、Delegated Administrator というドメイン・ユーザ・グループ管理用の Web 管理ツールを使用するためには、下記のコンポーネントが必要になります。

  • Java Enterprise System
    • Access Manager
      • Web コンテナ (Web Server or Application Server)
  • Communicatoins Suite
    • Delegated Administrator
      • Web コンテナ (Web Server or Application Server)

今回は、後ほど Sun Convergence(新しい WebMail アプリケーション) をインストールする事を考えて、Convergence が唯一サポートしている Application Server 9.1 を Web コンテナに使用しましょう。
したがって、先ほどのサイトより下記をダウンロードしておいてください。

  • SunJava_CommsInstaller_Suite6_solaris-sparc.zip
  • sjsas_ee-9_1_01-solaris-sparc-ml.bin
  • DSEE.6.3.Solaris-Sparc-full.tar.gz
  • java_es-5u1-ga-solaris-sparc.zip

事前確認
  1. 正しく DNS クライアントとして設定されている事を確認してください。
  2. /etc/hosts に FQDN を記載します。また、FQDNが、ホスト名より前に来るようにします。
 # cat /etc/hosts 
 #Internet host table
 127.0.0.1       localhost
 10.14.11.89     sw-89.japan.sun.com     sw-89   loghost
インストール手順
  1. Application Server 9.1 のインストール
 sw-89# pwd
 sw-89# ls
 sw-89# chmod +x sjsas_ee-9_1_01-solaris-sparc-ml.bin
 sw-89# ./sjsas_ee-9_1_01-solaris-sparc-ml.bin -console
          リンク : 詳細ログ

          \* Application Server の起動
 sw-89# /opt/SUNWappserver/bin/asadmin start-domain domain1
          \* Application Server の管理画面の URL
          例) https://sw-89.japan.sun.com:4848/
  1. Directory Server 6.3 のインストール
 sw-89# pwd
 /var/tmp/sjsms/DSEE
 sw-89# ls
 DSEE.6.3.Solaris-Sparc-full.tar.gz
 sw-89# gzcat DSEE.6.3.Solaris-Sparc-full.tar.gz| tar xf -
 sw-89# ls
 DSEE.6.3.Solaris-Sparc-full.tar.gz
 DSEE_Directory_Editor
 DSEE_Identity_Synchronization_for_Windows
 DSEE_ZIP_Distribution
 LICENSE.txt
 Legal
 README.txt
 sw-89# cd DSEE_ZIP_Distribution
 sw-89# ls
 dsee_data    dsee_deploy  idsktune
 sw-89# ./dsee_deploy install -i /opt/SUNWdsee
          リンク : 詳細ログ

          \* Directory Server Instance の作成
 sw-89# mkdir /var/opt/SUNWdsee
 sw-89# cd /opt/SUNWdsee/ds6/bin
 sw-89# ./dsadm create -p 389 -P 636 /var/opt/SUNWdsee/dsins1
 Directory Manager パスワード を選択:
 Directory Manager パスワード を確認:
 インスタンスを起動するには「dsadm start '/var/opt/SUNWdsee/dsins1'」を使用します
          \* Directory Insrance の起動
 sw-89# ./dsadm start /var/opt/SUNWdsee/dsins1
 Directory Server インタンス '/var/opt/SUNWdsee/dsins1' が起動されました: pid=13917
 sw-89# ./dsconf create-suffix -h sw-89 -p 389 o=isp
 サーバーから提示された証明書「CN=sw-89, CN=636, CN=Directory Server, O=Sun Microsystems」は信頼できません。
 受け入れは「Y」、1 回だけ受け入れは「y」、拒否は「n」、詳細を表示は「d」を入力: Y
 「cn=Directory Manager」のパスワードを入力:
 sw-89#
  1. Access Manager のインストール
 sw-89# pwd
 /var/tmp/sjsms/JES5u1
 sw-89# ls
 java_es-5u1-ga-solaris-sparc.zip
 sw-89# unzip -q java_es-5u1-ga-solaris-sparc.zip
 sw-89# ls
 Copyright                         Solaris_sparc

 License                           java_es-5u1-ga-solaris-sparc.zip
 README
 sw-89# cd Solaris_sparc
 sw-89# ls
 Product       installer     release_info
 sw-89# ./installer -nodisplay
          リンク : 詳細ログ

          \* Access Manager の管理画面の URL
          例) http://sw-89.japan.sun.com/amconsole
  1. Messaging Server 7.0, DSsetup, Delegated Administrator のインストール
          \* mailsrv ユーザの作成
 sw-89# grep mail /etc/group
 mail::6:root
 sw-89# useradd -u 7633 -g mail -d /export/home/mailsrv -m mailsrv
 64 ブロック
 sw-89#
          \* sendmail の停止
 sw-89# svcadm disable sendmail
 sw-89# 
          \* Communications Suite パッケージ(MS7,DSsetup, DA) のインストール
 sw-89# pwd
 /var/tmp/sjsms/Comms6
 sw-89# ls
 SunJava_CommsInstaller_Suite6_solaris-sparc.zip
 sw-89# unzip -q SunJava_CommsInstaller_Suite6_solaris-sparc.zip
 sw-89# ls
 Legal_Folder
 README
 SunJava_CommsInstaller_Suite6_solaris-sparc.zip
 SunOS_sparc
 commpkg
 sw-89# ./commpkg install
          リンク : 詳細ログ
初期設定
  1. Messaging Server 向けに Directory Server を構成する
          \* スキーマの選択
          Sun Java System Messaging Server では、ドメイン・ユーザのための LDAP
          スキーマとして、Schema 1, 1.5, 2 が用意されています。
          Schema1 は、Messaging Server 5.2 までに使われていたスキーマ
          Schema2 は、Messaging Server 6.0 から使われているスキーマ
            Access Manager 等のコンポーネントと組み合わせる場合 2 が必須
          Schema 1.5 は、1 から 2 への移行時のための互換スキーマ
          となりますが、今回は、Schema2 を使用しましょう。
 sw-89# pwd
 /opt/sun/comms/dssetup/sbin
 sw-89# ls
 comm_dssetup.pl  schema
 sw-89# /usr/bin/perl comm_dssetup.pl
          リンク : 詳細ログ
  1. Delegated Administrator の初期設定
 sw-89# pwd
 /opt/sun/comms/da/sbin
 sw-89# ls
 config-commda       config-servicetags  getEncode
 sw-89#
          リンク : 詳細ログ

          \* Applicatoin Server の再起動
 sw-89# /opt/SUNWappserver/bin/asadmin stop-domain domain1
 ドメイン domain1 が停止しました。
 sw-89# /opt/SUNWappserver/bin/asadmin start-domain --user admin domain1
 ドメイン domain1 を起動しています。お待ちください。
 ログは /opt/SUNWappserver/domains/domain1/logs/server.log にリダイレクトされます。
 管理パスワードを入力してください>
 マスターパスワードを入力してください>
 出力を /opt/SUNWappserver/domains/domain1/logs/server.log にリダイレクトしています
 ドメイン domain1 が起動しました。
 ドメイン [domain1] はその設定で [Sun Java System Application Server 9.1_01 (build local)] を実行しています。ログは [/opt/SUNWappserver/domains] にあります。
 管理コンソールは [https://localhost:4848] で使用できます。
 "asadmin" コマンドにも同じポート [4848] を使用します。
 ユーザーの Web アプリケーションは次の URL で使用できます:
 [http://localhost:80 https://localhost:8181 ]。
 次の web-contexts を使用できます:
 [/web1  /__wstx-services amserver ampassword amcommon amconsole /da /commcli ]。
 標準の JMX クライアント (JConsole など) はドメイン管理のために JMXServiceURL:
 [service:jmx:rmi:///jndi/rmi://sw-89.japan.sun.com:8686/jmxrmi] に接続できます。
 ドメインは少なくとも次のポートで接続を待機しています:
 [80 8181 4848 3700 3820 3920 8686 ]。
 ドメインはアプリケーションサーバークラスタおよびその他のスタンドアロンインスタンスをサポートします。
 
 sw-89#
          \* デフォルトドメインで mail サービスを有効にする
 sw-89# /opt/sun/comms/da/bin/commadmin domain modify -D admin \\
 -w adminpass -X sw-89.japan.sun.com -n japan.sun.com -p 80 \\
 -d japan.sun.com -S mail -H sw-89.japan.sun.com
 OK
 

 sw-89#
          \* Delegated Administrator の URL
          例) http://sw-89.japan.sun.com/da/DA/Login
  1. Messaging Server の初期設定
 sw-89# pwd
 /opt/sun/comms/messaging64/sbin
 sw-89# ls
 MoveUser              iminitquota           msgcert
 UpgradeMsg5toMsg7.pl  immonitor-access      patch-config
 config-mfwk           imquotacheck          readership
 config-servicetags    ims_db_upgrade        reconstruct
 config-vcsha          imsbackup             refresh
 configure             imsconnutil           rehostuser
 configutil            imscripter            relinker
 counterutil           imsexport             setconf
 deliver               imsimport             showconfig
 getconf               imsimta               showlog
 grep                  imsrestore            spfquery
 ha_ip_config          install-newconfig     start-msg
 hashdir               less                  stop-msg
 help                  ls                    uninstall-newconfig
 imarchive             mboxutil              useconfig
 imcheck               migrate-config        writeconfig
 imdbverify            mkbackupdir
 imexpire              msgadm
 sw-89# ./configure -nodisplay
          リンク : 詳細ログ

          \* webmail ポートの変更
 sw-89# /opt/sun/comms/messaging64/bin/configutil -o service.http.port -v 2080
 OK SET
 sw-89#
          \* Messaging Server の起動
 sw-89# /opt/sun/comms/messaging64/bin/stop-msg
 Connecting to watcher ...
 Warning: Cannot connect to the watcher process
 job_controller server is not running
 dispatcher server is not running
 sched server is not running
 http server is not running
 pop server is not running
 imap server is not running
 purge server is not running
 store server is not running
 sw-89# /opt/sun/comms/messaging64/bin/start-msg
 Connecting to watcher ...
 Launching watcher ... 28506
 Starting store server .... 28507
 Checking store server status ...... ready
 Starting purge server .... 28508
 Starting imap server .... 28509
 Starting pop server .... 28510
 Starting http server ...... 28511
 Starting sched server ... 28512
 Starting dispatcher server .... 28514
 Starting job_controller server .... 28520
 sw-89#
ユーザの追加
 sw-89# /opt/sun/comms/da/bin/commadmin user create -D admin -F One \\
 -l test1 -L Test -n japan.sun.com -p 80 -w adminpass -W test1 \\
 -X sw-89.japan.sun.com -S mail -E test1@japan.sun.com \\
 -H sw-89.japan.sun.com
 OK
 
 sw-89#

 sw-89# /opt/sun/comms/da/bin/commadmin user create -D admin -F Two \\
 -l test2 -L Test -n japan.sun.com -p 80 -w adminpass -W test2 \\
 -X sw-89.japan.sun.com -S mail -E test2@japan.sun.com \\
 -H sw-89.japan.sun.com
 OK
 
 sw-89#
動作確認
 \* 送信テスト 1 (from test1 to test2)

 sw-89# telnet localhost 25
 Trying 127.0.0.1...
 Connected to localhost.
 Escape character is '\^]'.
 220 sw-89.japan.sun.com -- Server ESMTP (Sun Java(tm) System Messaging Server 7.0-0.04 64bit (built Jun 20 2008))
 ehlo localhost
 250-sw-89.japan.sun.com
 250-8BITMIME
 250-PIPELINING
 250-CHUNKING
 250-DSN
 250-ENHANCEDSTATUSCODES
 250-EXPN
 250-HELP
 250-XADR
 250-XSTA
 250-XCIR
 250-XGEN
 250-XLOOP E273F53846A54D1B07DF41E33EBB8C23
 250-ETRN
 250-NO-SOLICITING
 250 SIZE 0
 mail from: test1@japan.sun.com
 250 2.5.0 Address Ok.
 rcpt to: test2@japan.sun.com
 250 2.1.5 test2@japan.sun.com OK.
 data
 354 Enter mail, end with a single ".".
 From: test1@japan.sun.com
 To: test2@japan.sun.com
 Subject: test from test1 to test2
 
 This is a test message.
 .
 250 2.5.0 Ok, envelope id 0K7P00M0395F0700@sw-89.japan.sun.com
 quit
 221 2.3.0 Bye received. Goodbye.
 Connection to localhost closed by foreign host.

 \* 送信テスト 2 (from test2 to test1)

 sw-89# telnet localhost 25
 Trying 127.0.0.1...
 Connected to localhost.
 Escape character is '\^]'.
 220 sw-89.japan.sun.com -- Server ESMTP (Sun Java(tm) System Messaging Server 7.0-0.04 64bit (built Jun 20 2008))
 ehlo localhost
 250-sw-89.japan.sun.com
 250-8BITMIME
 250-PIPELINING
 250-CHUNKING
 250-DSN
 250-ENHANCEDSTATUSCODES
 250-EXPN
 250-HELP
 250-XADR
 250-XSTA
 250-XCIR
 250-XGEN
 250-XLOOP E273F53846A54D1B07DF41E33EBB8C23
 250-ETRN
 250-NO-SOLICITING
 250 SIZE 0
 mail from: test2@japan.sun.com
 250 2.5.0 Address Ok.
 tcpt to: test1@japan.sun.com
 500 5.5.1 Unknown command "tcpt to: test1@japan.sun.com" specified
 rcpt to: test1@japan.sun.com
 250 2.1.5 test1@japan.sun.com OK.
 data
 354 Enter mail, end with a single ".".
 From: test2@japan.sun.com
 To: test1@japan.sun.com
 Subject: test from test2 to test1
 
 This is a test message.
 .
 250 2.5.0 Ok, envelope id 0K7P00M069760700@sw-89.japan.sun.com
 quit
 221 2.3.0 Bye received. Goodbye.
 Connection to localhost closed by foreign host.
 sw-89#

 \* 受信テスト 1 (by test1)

 sw-89# telnet localhost 110
 Trying 127.0.0.1...
 Connected to localhost.
 Escape character is '\^]'.
 +OK sw-89.japan.sun.com POP3 service (Sun Java(tm) System Messaging Server 7.0-0.04 64bit (built Jun 20 2008))
 user test1
 +OK Name is a valid mailbox
 pass test1
 +OK Maildrop ready
 list
 +OK scan listing follows
 1 617
 .
 retr 1
 +OK 617 octets
 Return-path: 
 Received: from localhost ([127.0.0.1])
  by sw-89.japan.sun.com (Sun Java(tm) System Messaging Server 7.0-0.04 64bit
  (built Jun 20 2008)) with ESMTP id <0K7P00M0596V0700@sw-89.japan.sun.com> for
  test1@japan.sun.com; Wed, 24 Sep 2008 21:26:48 +0900 (JST)
 Original-recipient: rfc822;test1@japan.sun.com
 Date-warning: Date header was inserted by sw-89.japan.sun.com
 Date: Wed, 24 Sep 2008 21:26:43 +0900 (JST)
 Message-id: <0K7P00M069760700@sw-89.japan.sun.com>
 From: test2@japan.sun.com
 To: test1@japan.sun.com
 Subject: test from test2 to test1
 
 This is a test message.
 .
 quit
 +OK
 Connection to localhost closed by foreign host.
 sw-89#

 \* 受信テスト 2 (by test2)

 sw-89# telnet localhost 110
 Trying 127.0.0.1...
 Connected to localhost.
 Escape character is '\^]'.
 +OK sw-89.japan.sun.com POP3 service (Sun Java(tm) System Messaging Server 7.0-0.04 64bit (built Jun 20 2008))
 user test2
 +OK Name is a valid mailbox
 pass test2
 +OK Maildrop ready
 list
 +OK scan listing follows
 1 617
 .
 retr 1
 +OK 617 octets
 Return-path: 
 Received: from localhost ([127.0.0.1])
  by sw-89.japan.sun.com (Sun Java(tm) System Messaging Server 7.0-0.04 64bit
  (built Jun 20 2008)) with ESMTP id <0K7P00M029530700@sw-89.japan.sun.com> for
  test2@japan.sun.com; Wed, 24 Sep 2008 21:25:36 +0900 (JST)

 Original-recipient: rfc822;test2@japan.sun.com
 Date-warning: Date header was inserted by sw-89.japan.sun.com
 Date: Wed, 24 Sep 2008 21:25:27 +0900 (JST)
 Message-id: <0K7P00M0395F0700@sw-89.japan.sun.com>
 From: test1@japan.sun.com
 To: test2@japan.sun.com
 Subject: test from test1 to test2
 
 This is a test message.
 .
 quit
 +OK
 Connection to localhost closed by foreign host.
 sw-89#
以上で、Messaging Server 7.0 のインストールおよび初期設定が完了しました。

参考資料

次回は、新しくなった WebMail、Sun Convergence をインストールしてみましょう。

水曜日 8 27, 2008

SJSMS - Milter プログラムを使ってみよう

Sun Java System Messaging Server 6.3 では、sendmail や、Postfix 等で Virus/Spam フィルタ 機能としてよく使われている Sendmail Content Management API をベースとした、Milter (Mail Filter の略) プログラムと連係動作する事が可能となっています。

・参考 Sun Java Communications Suite 5 リリースノート

という事で、今回はこの機能を試して見ましょう。

まずは、www.milter.org よりサンプルプログラムを取得します。

・リンク A Sample Filter

今回は、これをコンパイルして使うのですが、ひとつ注意点があります。
SJSMS では、Sendmail 8.13.X milter protocol のみのサポートなり、 上記サンプルプログラムで使用されている xxfi_negotiate() がサポート されていません。

・参考 About milter plugin
・参考 Sendmail - 8.14.0 - release notes

ですので、サンプルプログラムの以下の部分をコメントアウトしましょう。

・コメントアウトする箇所1
 /\* xxfi_negotiate is not supported by 8.13
  sfsistat
 
  xxfi_negotiate(ctx, f0, f1, f2, f3, pf0, pf1, pf2, pf3)
         SMFICTX \*ctx;
         unsigned long f0;
         unsigned long f1;
         unsigned long f2;
         unsigned long f3;
         unsigned long \*pf0;
         unsigned long \*pf1;
         unsigned long \*pf2;
         unsigned long \*pf3;
  {
          return SMFIS_ALL_OPTS;
  }
  \*/
・コメントアウトする箇所2
 struct smfiDesc smfilter =
 {
   (省略)
 /\* xxfi_negotiate is not supported by 8.13 \*/
 //        xxfi_negotiate        /\* Once, at the start of each SMTP connection \*/
 
 };
上記がコメントアウト出来たら、milter.org を参考にコンパイルします。
 $ /usr/sfw/bin/gcc -I/usr/include -c sample.c
 sample.c:808: warning: excess elements in struct initializer
 sample.c:808: warning: (near initialization for `smfilter')
 sample.c:810: warning: excess elements in struct initializer
 sample.c:810: warning: (near initialization for `smfilter')
 $ ls sample.o
 sample.o
 $
 $ /usr/sfw/bin/gcc -o samplefilter sample.o -L/usr/lib -lmilter -pthreads
 $ ls samplefilter
 samplefilter
 $
上記で、Milter Server のプログラムが作成されましたので、この プログラムを実行させておきましょう。
 # ./samplefilter -p inet:3333 -r test1@Japan.Sun.COM &
 ※ 上記の起動方法で受け取りアドレスが test1@Japan.Sun.COM となっている
    メールをリジェクトする動作となります。
    詳しくは、上記サンプルプログラムのサイトをご確認下さい。
次に以下のドキュメントを参考に SJSMS を上記の Milter Server に接続させる 設定を行います。

・参考 Sun Java System Messaging Server 6.3 管理ガイド

1. /opt/SUNWmsgsr/config/option.dat に以下の記述を追加
    !
    ! for milter
    spamfilter1_library=/opt/SUNWmsgsr/lib/libmilter.so
    spamfilter1_config_file=/opt/SUNWmsgsr/config/milter.opt
    spamfilter1_string_action=data:,$M
2. /opt/SUNWmsgsr/config/milter.opt を作成し、以下を記述
    HOST=localhost
    PORT=3333
    DEBUG=2
    TIMEOUT=10
3. /opt/SUNWmsgsr/config/imta.cnf を編集し、Milter によるフィルタリング を行いたいチャネルに "destinationspamfilter1optin milter" を追加
    ims-ms defragment subdirs 20 notices 1 7 14 21 28 backoff "pt5m" "pt10m" "pt30m" "pt1h" 
    "pt2h" "pt4h" maxjobs 2 pool IMS_POOL fileinto $U+$S@$D slave_debug master_debug 
    destinationspamfilter1optin milter
4. SJSMS の設定をコンパイル・再起動します
    # imsimta cnbuild
    # stop-msg smtp
    Connecting to watcher ...
    Stopping job_controller server 26592 .... done
    Stopping dispatcher server 26585 ... done
    # start-msg smtp
    Connecting to watcher ...
    Starting dispatcher server .... 6272
    Starting job_controller server .... 6278
    #
それでは、実際に動作確認をして見ましょう。
 # telnet localhost 25
 Trying 127.0.0.1...
 Connected to localhost.
 Escape character is '\^]'.
 220 sw-82 -- Server ESMTP (Sun Java(tm) System Messaging Server 6.3-5.02 (built Oct 12 2007; 32bit))
 ehlo
 (省略)
 250 SIZE 0
 mail from: test1@japan.sun.com
 250 2.5.0 Address Ok.
 rcpt to: test1@japan.sun.com
 550 5.7.0 Milter rejected recipient [slot 1]: test1@japan.sun.co
正しく、test1@Japan.Sun.COM 宛てのメールがリジェクトされました。

この様に、一部制限はありますが、Milter も SJSMS で利用可能となっておりますので、 使用したい Milter サーバがありましたら、是非試してみてください。

※ 念のため、libmilter を利用してユーザ様自ら開発された、Milter サーバや、 オープンソースの Milter サーバ自体を Sun にてサポートしているわけでは無い事をご注意ください。
About

Search

Archives
« 7月 2014
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
  
       
今日