オープンソース

サーバー構築のデージーネットTOP > OSS情報 > デージーネットのOSS > SaMMA

next up previous contents
Next: A. Appendix Up: SaMMA Previous: 4. 使い方


5. 設定詳細

5.1 configure オプション

configure のオプションとして以下のものが設定できます。


表: configureオプション
オプション 説明
--prefix=PREFIX SaMMAソフトウェアの配置場所のprefixを指定できます。
デフォルト値は”/usr/local”です。
--bindir=DIRECTORY SaMMAソフトウェアを配意する場所を指定できます。
デフォルト値は”PREFIX/bin”です。
--sysconfdir=DIRECTORY SaMMAソフトウェアの設定ファイルを配置する場所を指定できます。DIRECTORY/samma配下に設定ファイルを配置します。
デフォルト値は”PREFIX/etc/samma”です。
--with-zip=PATH zipコマンドへのパスを指定できます。
指定しない場合は環境変数$PATHを検索します。
--with-sendmail=PATH sendmailコマンドへのパスを指定できます。
指定しない場合は環境変数$PATH、”/usr/sbin”を検索します。
--with-dgconf=DIRECTORY libdgconfigライブラリ・ヘッダファイルのprefixを指定できます。
デフォルト値は”/usr”です。
--with-dgstr=DIRECTORY libdgstrライブラリ・ヘッダファイルのprefixを指定できます。
デフォルト値は”/usr”です。
--with-dgmail=DIRECTORY libdgmailライブラリ・ヘッダファイルのprefixを指定できます。
デフォルト値は”/usr”です。
--with-dgnetutil=DIRECTORY libdgnetutilライブラリ・ヘッダファイルのprefixを指定できます。
デフォルト値は”/usr”です。
--with-pthread=DIRECTORY pthreadライブラリ・ヘッダファイルのprefixを指定できます。
デフォルト値は”/usr”です。
--with-iconv=DIRECTORY iconvライブラリ・ヘッダファイルのprefixを指定できます。
デフォルト値は”/usr”です。
--with-milter=DIRECTORY milterライブラリ・ヘッダファイルのprefixを指定できます。
デフォルト値は”/usr”です。
--with-bdb=DIRECTORY dbライブラリ・ヘッダファイルのprefixを指定できます。
デフォルト値は”/usr”です。
--with-glib=DIRECORY glibライブラリ・ヘッダファイルのprefixを指定できます。
デフォルト値は”/usr”です。
--with-gmime=DIRECTORY gmimeライブラリ・ヘッダファイルのprefixを指定できます。
デフォルト値は”/usr”です。

5.2 samma.conf

samma.confに設定可能な項目の一覧です。
暗号化モード、削除モード、無害化モードでそれぞれ記述できる値が異なります。
全てで共通して利用できる項目、それぞれ別個で利用できる項目を別表にて記載します。

5.2.1 共通の項目

表: samma.conf(共通項目)
項目 デフォルト値 必須 reload
反映
※1
機能
CommandPort 17777 - - 外部連携の際にSaMMAがListenする
ポート番号を指定します。
設定例:17777
CommandPass - 外部連携の際に使用するパスワード
を指定します。
設定例:secret
SyslogFacility local1 - syslogのファシリティを指定します。
※詳しくは3.6節参照
設定例:local1
ListenIP 127.0.0.1 - - SaMMAがListenするIPアドレスを
指定します。※2
設定例:127.0.0.1
ListenPort 20026 - - SaMMAがListenするポート番号を
指定します。※3
設定例:20026
RcptDB btree:
@sysconfdir@/
rcpt.db
※4
- 受信者DBの形式と受信者DBへのパス
を指定します。※5
設定例:
btree:/usr/local/etc/samma/rcpt.db
SendmailCommand - sendmailコマンドへのパスとオプションを
指定します。
設定例:/usr/sbin/sendmail -i
MailSaveTmpDir - サイズの大きいメールを受け取った
場合に一時的に保存するディレクトリを
指定します。
※指定するディレクトリは、事前に
作成する必要があります。
設定例:/tmp
StrCode - 添付ファイル名を変換する文字コードを
指定します。
以下の文字コードを指定できます。
  • UTF8
  • ISO2022JP
  • EUCJP
  • SJIS
設定例:SJIS
SetTimeZone 0 ※6 パスワード通知メールの日付のタイムゾーン
設定例:900
WhitelistPath @sysconfdir@/
whitelist
※4
- ホワイトリストのファイパスです。
設定例:/usr/local/etc/samma/whitelist
AttachmentFileAlias - - 添付ファイル名に変換不可能文字が存在する場に指定したファイル名に変換します。
設定例:UnknownFileName
LoopCheck no - メールヘッダ内「X-SaMMA-Enc: YES」 が含まれていた場合に二重暗号化と見なして暗号化を行いません。
設定例:yes


※1 reload反映はreload allで再読み込みする設定項目です。CommandPort、ListenIP、ListenPortを変更したい場合はSaMMAを再起動する必要があります。
※2 milterアプリケーションが使用するIPアドレスと同一にする必要があります。
※3 milterアプリケーションが使用するポートと同一にする必要があります。
※4 @sysconfdir@はインストール時に指定した設定ファイルの配置場所です。
※5 書式は以下になります。

{hash|btree}:DBファイルのパス
※6 SetTimeZoneが指定されていない場合、もしくは0で設定されている場合、パスワード通知メールの日付はメールの日付をそのまま利用します。
値は-2345クA群345の間で指定し、下2桁は00, 15, 30, 45のみ指定可能です。

5.2.2 暗号化モードで利用できる項目

表: samma.conf(暗号化モード)
項目 デフォルト値 必須 reload
反映
機能
EncryptionTmpDir - 暗号化ZIP変換を行うファイルを一時的
に格納するディレクトリを指定します。
※指定するディレクトリは、事前に作成
する必要があります。
設定例:/tmp
ZipCommand - zipコマンドへのパスを指定します。
設定例:/usr/bin/zip
ZipCommandOpt - - zipコマンドに追加するオプションを
指定します。
※ZipCommandに指定したzipコマンドで
使用できるものを指定してください。
設定例:-j
SenderDB btree:@sysconfdir@/
sender.db
※1
- 内部ドメインDBの形式と内部ドメインDB
へのパスを指定します。※2
設定例:
btree:/usr/local/etc/samma/sender.db
TemplatePath @sysconfdir@/
samma.tmpl
※1
パスワード通知メールのテンプレート
ファイルへのパスを指定します。
ErrorMessageTemplatePath @sysconfdir@/
errmsg.tmpl
※1
文字コード変換失敗用パスワード通知メールのテンプレート
ファイルへのパスを指定します。
設定例:
/usr/local/etc/samma/errmsg.tmpl
ZipfileName - 暗号化ZIP変換後のファイル名の
フォーマットを指定します。
%から始まるものは、それぞれ下記の
特定の形式に置換されます。
  • %Y → 年(例:2009)
  • %m → 月(例:07)
  • %d → 日(例:07)
設定例:AttachFile.%Y%m%d.zip
PasswordLength 8 - 自動生成するパスワードの長さを指定
します。
1字から20字までの間で指定できます。
設定例:8
DefaultEncryption - 受信者DBで暗号化方法が決まらな
かった場合の暗号化処理の有無を設定できます。
  • yes
  • no
設定例:no
DefaultPassword - - 受信者DBで暗号化方法が決まらな
かった場合の暗号化処理に使う
パスワードを設定できます。
なお次の文字は動的に置き換えて設定
されます。
  • %Y 年(2010)
  • %m 月(01-12)
  • %d 日(01-31)
設定例:password
UserPolicy - LDAPを利用したユーザ個別設定機能の有無を設定できます。
  • yes
  • no
設定例:yes
LdapUri - ※3 LDAPサーバURIを指定します。
設定例:ldap://127.0.0.1:389/
LdapBaseDn - ※3 LDAPサーバの検索を開始するベースDNを指定します。
検索は、ここで指定したDNの配下に対して行われます。
設定例:
LdapBaseDn=ou=User,dc=inside,
dc=designet,dc=jp
LdapBindDn - ※3 LDAPにバインドするDNを指定します。
設定例:
LdapBindDn=cn=Manager,dc=designet,
dc=jp
LdapBindPassword - ※3 LDAPにバインドするDNのパスワードを指定します。
設定例:LdapBindPassword=secret
LdapFilter - ※3 送信者のエントリをLDAPから検索するためのフィルタを指定します。
ここで「%s」を指定した場合にはメールアドレスが補完されます。
設定例:LdapFilter=(mail=%s)
AutoBccOption no BCC自動追加機能の有無
DefaultAutoBccConditionString - ※4 デフォルトのBCC追加条件
(正規表現で指定)
DefaultAutoBccMailAddr - ※4 デフォルトの追加メールアドレス
(カンマ区切りで複数指定可能)
References no - パスワード通知メールのヘッダに、Referencesフィールドの有無を設定できます。
  • yes
  • no
設定例:yes
SendPasswordCommand - - sendmailコマンドへのパスとオプションを指定します。(パスワードメールの送信の際、別のコマンドを使用したいときに指定してください)
設定例:/usr/sbin/sendmail -i
AllowCharEnvelopeFrom
abcdefghijklm
nopqrstuvwxyz
ABCDEFGHIJKLM
NOPQRSTUVWXYZ
0123456789`~!
@#$%^&*()_+-
={}[]:";'<>?,./
- 送信元メールアドレスに含まれていてもよい文字を指定します。
AlternativePartEncrypt no - multipart/alternative または multipart/related のパート内の添付ファイルを暗号化するかどうかを指定します。
yesを指定した場合、HTMLメールの背景画像等も暗号化されます。


※1 @sysconfdir@はインストール時に指定した設定ファイルの配置場所です。
※2 書式は以下になります。

{hash|btree}:DBファイルのパス

 
※3 UserPolicyが「yes」の場合、LdapURI、LdapBaseDn、LdapBindDn、LdapBindPassword、LdapFilterは必須項目になります。
※4 AutoBccOptionが「yes」の場合、DefaultAutoBccConditionString、DefaultAutoBccMailAddrは必須項目になります。

5.2.3 削除モードで利用できる項目

表: samma.conf(削除モード)
項目 デフォルト値 必須 reload
反映
機能
TmpDir - 削除一覧ファイルを一時的に格納するディレクトリを指定します。
※指定するディレクトリは、事前に作成する必要があります。
設定例:/tmp
DeleteListName - 削除一覧ファイルのファイル名のフォーマットを指定します。
%から始まるものは、それぞれ下記の特定の形式に置換されます。
  • %Y → 年(例:2016)
  • %m → 月(例:11)
  • %d → 日(例:10)
設定例:DeletedFiles.%Y%m%d.txt
DefaultDeletePolicy - 受信者DBで削除する/しないが決まらなかった場合の処理の有無を設定できます。
  • yes
  • no
設定例:no

5.2.4 無害化モードで利用できる項目

表: samma.conf(無害化モード)
項目 デフォルト値 必須 reload
反映
機能
EncryptionTmpDir - 暗号化ZIP変換を行うファイルを一時的
に格納するディレクトリを指定します。
※指定するディレクトリは、事前に作成
する必要があります。
設定例:/tmp
ZipCommand - zipコマンドへのパスを指定します。
設定例:/usr/bin/zip
ZipCommandOpt - - zipコマンドに追加するオプションを
指定します。
※ZipCommandに指定したzipコマンドで
使用できるものを指定してください。
設定例:-j
ZipfileName - 暗号化ZIP変換後のファイル名の
フォーマットを指定します。
%から始まるものは、それぞれ下記の
特定の形式に置換されます。
  • %Y → 年(例:2009)
  • %m → 月(例:07)
  • %d → 日(例:07)
設定例:AttachFile.%Y%m%d.zip
PasswordLength 8 - 自動生成するパスワードの長さを指定
します。
1字から20字までの間で指定できます。
設定例:8
DefaultPassword - - 暗号化処理に使う解凍パスワードのデフォルト値を設定できます。
なお次の文字は動的に置き換えて設定されます。
  • %Y 年(2010)
  • %m 月(01-12)
  • %d 日(01-31)
設定例:password
この項目を省略した場合、ランダムなパスワードが自動的に生成されます。
SendPasswordCommand - - sendmailコマンドへのパスとオプションを指定します。(パスワードメールの送信の際、別のコマンドを使用したいときに指定してください)
設定例:/usr/sbin/sendmail -i
DefaultSenderCheck - 受信者DBで、マッチする設定項目が記述されていない受信者について、送信者チェックのデフォルトを設定できます。
  • yes
  • no
設定例:no
SenderCheck - 送信者の照合処理を行うポリシーを設定します。照合の結果、 不正な送信者と判定された場合、無害化処理が実行されます。以下の値をカンマ区切りで記述できます。記載した左から順番に、照合処理が実行されます。
  • check-spf
      送信者のドメインのSPFチェックを実行します。
  • check-senderip
     送信者のIPからドメイン名をDNSで逆引きし、メールアドレスとの比較を行います。
  • check-senderdomain
     送信者のメールアドレスのドメインからDNSで正引きし、送信者のIPアドレスとの比較を行います。
  • none
    無害化処理を一切行わず、ただSaMMAログに照合不正のログメッセージを出力します。
設定例:check-spf, check-senderip, check-senderdomain, none
この設定例では、まずSPFチェックを行い、不正だった場合にIP逆引きを行い、 さらに不正だった場合、メールアドレスのドメインで正引きを行い、それでも身元を確認できなかった場合にはログを出力し、無害化処理は実行されません。
無害化処理を行うためには、noneを記述しないで設定します。
HarmlessProc - 無害化処理の方式と、その処理順を設定します。以下の値をカンマ区切りで記述できます。記載した左から順番に実行されます。
  • convert
      無害化設定ファイル(HarmlessConf設定値)に従って、メールパートの変換処理を行います。
  • encrypt
     対象メールパートを暗号化します。
  • delete
    対象メールパートを削除します。削除処理は失敗しません。
設定例 1:convert,encrypt,delete
設定例 2:convert,delete
どちらの設定例もまず、メール本文および添付ファイルそれぞれを変換しようとし、失敗した場合には暗号化圧縮もしくは削除を実行します。
HarmlessConf - 無害化設定ファイルのファイルパスです。reload処理によって再読込されます。
設定例:/usr/local/etc/samma/harmless.conf
HamlessMessageFileName - 無害化処理結果添付メッセージのファイル名のフォーマットを指定します。
%から始まるものは、それぞれ下記の特定の形式に置換されます。
  • %Y → 年(例:2016)
  • %m → 月(例:11)
  • %d → 日(例:10)
設定例:HarmlessLog.%Y%m%d.txt
MaxMultipartDepth 10 - 処理対象のメールが多重のマルチパートを持っていた時、それを何段階まで展開するかの設定値です。
HarmlessCommandTimeout 60 - 無害化処理で外部コマンドが実行される際のタイムアウト秒数です。
MimeTypeFile /etc/mime.types - harmless.confのextensionコマンドで
参照するファイルを指定します。
HarmlessMessageConvert (設定例参照) 無害化処理で変換が指定され、処理に成功された場合に、メッセージ添付ファイルに出力されるログのフォーマットを指定します。
以下のタグを記述でき、自動的に置換されます。
  • <@@mime-before@@> → 変換前のMIMEタイプ
  • <@@mime-after@@> → 変換後のMIMEタイプ
  • <@@file-before@@> → 変換前のファイル名
  • <@@file-after@@> → 変換後のファイル名
設定例:Converted:
mime-type[<@@mime-before@@> ->
<@@mime-after@@>],
filename=[<@@file-before@@> ->
<@@file-after@@>]
HarmlessMessageEncrypt (設定例参照) 無害化処理で暗号化が指定され、処理に成功された場合に、メッセージ添付ファイルに出力されるログのフォーマットを指定します。
以下のタグを記述でき、自動的に置換されます。
  • <@@filename@@> → 添付ファイル名
設定例:Encrypted <@@filename@@>.
HarmlessMessageDelete (設定例参照) 無害化処理で削除が指定され、処理に成功された場合に、メッセージ添付ファイルに出力されるログのフォーマットを指定します。
以下のタグを記述でき、自動的に置換されます。
  • <@@mimetype@@> → MIMEタイプ
設定例:Deleted <@@mimetype@@>.

5.3 harmless.conf

無害化変換の処理対象を指定するファイルです。

以下に設定例を示します。

harmless.confの設定例
# 元のMIMEタイプ   変換後のMIMEタイプ   拡張子  変換コマンド
multipart/alternative text/plain       .alt   alternative
multipart/mixed    multipart/mixed     -     multipart
text/html       text/plain       .txt   /usr/bin/python-html2text
*           -            -     extension
*           -            -     @none

1行あたり4つの設定項目をスペースまたはタブ区切りで記述します。#で始まる行はコメント行として無視されます。

  • 元のMIMEタイプ → 変換対象とするMIMEタイプを記述します。「*」を指定することにより、全てのMIMEタイプが対象となります。書式チェックは行いません。
  • 変換後のMIMEタイプ → ここに記述されたMIMEタイプに変換されます。ハイフンを指定した場合、MIMEタイプは変換されません。
  • 拡張子 → 変換対象パートにファイル名が存在した場合、指定した拡張子が付与されます。ハイフンを記述した場合、拡張子は付与されません。
  • 変換コマンド → 変換後のファイル名を記述します。また、コマンドの先頭に@を記述すると無害化処理結果添付メッセージを書き込ませないようにできます。

5.3.1 変換コマンド

変換コマンドのパートには、alternative・multipart・extension・noneおよび外部コマンドを記述します。

  • alternative
    • alternativeパートを分割し、text/plainパート以外を削除します。
    • text/plainパートが複数存在した場合、最初の1つを残し、それ以外を削除します。
    • text/plainパートがひとつも存在しなかった場合、変換後のMIMEタイプをtext/plainに設定されているパートを探し、変換を試みます。
    • 残せるパートがひとつも存在しなかった場合、変換エラーとなり、メールは送信されません。

  • multipart
    • multipartパートを分割し、それぞれのパートを変換します。
    • 環境設定ファイルに指定された最大のネスト数に達した場合、変換エラーとなります。
    • 最大ネスト数は、MaxMultipartDepthの項目で指定します。

  • extension
    • 添付ファイル名の拡張子で設定項目MimeTypeFileに指定されたファイルを検索し、定義されているMIMEタイプを取得します。
    • 添付ファイル名や拡張子がない場合と拡張子がMimeTypeFileで指定されたファイルになかった場合、extensionコマンドの次の処理へ進みます。
    • その取得したMIMEタイプでもう一度無害化処理を行います。

  • none
    • 変換を行いません。
    • 主に、text/plainパートを指定することで、本文を変換対象外とすることができます。

  • 外部コマンド
    • スラッシュ (/) で始まる、変換コマンドを記述できます。
    • 変換コマンドは絶対パスで指定し、実行権が必要です。
    • 標準入力からデータを受け取り、標準出力に変換後のデータを返す必要があります。
    • 正常終了した場合には、終了コードとして0を返す必要があります。
    • SaMMAから外部コマンドが起動される時、環境変数 SAMMA_FILENAME に添付ファイル名が設定されます。外部コマンドでは、環境変数 SAMMA_FILENAME を参照することで、添付ファイル名を参照することができます。
    • 先の設定例では、HTMLパートをpython-html2txtコマンドによってテキストファイルに変換しています。

5.4 mime.types

harmless.confで指定できるextensionコマンドで参照するファイルです。

以下に設定例を示します。

mime.typesの設定例
# MIMEタイプ                拡張子
application/andrew-inset          ez
application/applefile
application/atom+xml            atom
application/atomcat+xml           atomcat
application/atomdeleted+xml atomdeleted
application/atomicmail
application/atomsvc+xml           atomsvc
application/auth-policy+xml         apxml
application/batch-SMTP
application/cellml+xml           cellml cml
:
(以下省略)

1行あたり2つの設定項目をスペースまたはタブ区切りで記述します。#で始まる行はコメント行として無視されます。 また、「mailcap」パッケージに含まれるものと同様の形式のファイルとします。(mailcapパッケージは、CentOSでは標準でインストールされています。)

  • MIMEタイプ → 拡張子ごとに定義されたMIMEタイプです。添付ファイルの拡張子を元にこの項目から新しいMIMEタイプを取得します。書式チェックは行いません。
  • 拡張子 → MIMEタイプを定義する拡張子です。添付ファイルと同じ拡張子だった場合、対応するMIMEタイプとして再度無害化処理を行います。また、拡張子を複数指定する場合、スペース区切りで羅列します。拡張子の存在しない行は、書式上許可されますが無視されます。


next up previous contents
Next: A. Appendix Up: SaMMA Previous: 4. 使い方

2017年3月28日