オープンソース

一覧へ

10. 設定詳細

10.1. 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”です。

10.2. samma.conf

samma.confに設定可能な項目の一覧です。

安全化モード、削除モード、無害化モードでそれぞれ記述できる値が異なります。 全てで共通して利用できる項目、それぞれ別個で利用できる項目を別表にて記載します。

10.2.1. 共通の項目

ここでは、全モードで共通して利用できる項目について解説します。

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

Note

reload反映はreload allで再読み込みする設定項目です。CommandPort、ListenIP、ListenPortを変更したい場合はSaMMAを再起動する必要があります。

  • ※1 milterアプリケーションが使用するIPアドレスと同一にする必要があります。
  • ※2 milterアプリケーションが使用するポートと同一にする必要があります。
  • ※3 @sysconfdir@はインストール時に指定した設定ファイルの配置場所です。
  • ※4 書式は以下になります。
{hash|btree}:DBファイルのパス
  • ※5 SetTimeZoneが指定されていない場合、もしくは0で設定されている場合、パスワード通知メールの日付はメールの日付をそのまま利用します。値は-2345クA群345の間で指定し、下2桁は00, 15, 30, 45のみ指定可能です。

10.2.2. 安全化モードで利用できる項目

ここでは、安全化モードで共通して利用できる項目について解説します。

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

Note

  • ※1 @sysconfdir@はインストール時に指定した設定ファイルの配置場所です。
  • ※2 書式は以下になります。
{hash|btree}:DBファイルのパス
  • ※3 UserPolicyが「yes」の場合、LdapURI、LdapBaseDn、LdapBindDn、LdapBindPassword、LdapFilterは必須項目になります。
  • ※4 AutoBccOptionが「yes」の場合、DefaultAutoBccConditionString、DefaultAutoBccMailAddrは必須項目になります。

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

ここでは、削除モードで共通して利用できる項目について解説します。

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

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

ここでは、無害化モードで共通して利用できる項目について解説します。

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

10.3. 無害化処理設定ファイル

無害化変換の処理対象を指定するファイルです。以下に設定例を示します。

無害化処理設定ファイルの設定例
# 元の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タイプは変換されません。
  • 拡張子
    • 変換対象パートにファイル名が存在した場合、指定した拡張子が付与されます。ハイフンを記述した場合、拡張子は付与されません。
  • 変換コマンド
    • 変換後のファイル名を記述します。
      • コマンドの先頭に@を記述すると、無害化処理結果添付メッセージを書き込ませないようにできます。
      • コマンドの先頭に!を記述した場合は、無害化処理結果添付メッセージを書き込ませなことに加え、変換コマンド実行時のログを抑制することができます。

10.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コマンドによってテキストファイルに変換しています。

10.4. mime.types

無害化処理設定ファイルで指定できる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タイプとして再度無害化処理を行います。また、拡張子を複数指定する場合、スペース区切りで羅列します。拡張子の存在しない行は、書式上許可されますが無視されます。

10.5. os_uploader.conf

NextCloudに添付ファイルをアップロードするプログラムos_uploaderの設定を行うファイルです。

  • NC_URL (必須) (デフォルト値:なし)
    • NextCloudへのアクセスURL。 http(s)://ホスト名/パス/ の形式で指定します。NextCloudのAPIのトップURLを指定します。
  • NC_ADMIN (必須) (デフォルト値:なし)
    • NextCloudの管理者IDを指定します。
  • NC_ADMINPW (必須) (デフォルト値:なし)
    • NextCloudの管理者パスワードを指定します。
  • TEMPLATE_FILE(デフォルト値:@sysconfdir@/os_uploader.tmpl)
    • ダウンロードURLを通知する添付ファイルのテンプレートのパスを指定します。
  • STR_CODE(デフォルト値:CP932)
    • SaMMAから引き渡されるファイル名の文字コードを指定します。 ※1
  • FORCE_HTTPS(デフォルト値:False)
    • Trueに設定すると、NextCloudのAPIから返されたダウンロードURLのプロトコル部を、 http://からhttps://に置換します。

Note

※1 samma.confのStrCodeとの対応は次の通りです。

  • samma.conf
    • SJIS
    • EUC-JP
    • UTF-8
    • ISO-2022-JP
  • os_uploader.conf
    • CP932
    • EUC-JP-MS
    • UTF-8
    • ISO-2022-JP-MS
一覧へ