メールサーバーで添付ファイル自動暗号化(Postfix+SaMMA)

最終更新日: 2017.11.25

■概要

メールの添付ファイルを自動的にパスワード保護したZIP形式に暗号化する。ここでは、SaMMAを導入して、設定した宛先に添付ファイル付メールを送る場合、添付ファイルを自動でパスワード保護したZIP形式に暗号化するようにする。パスワード通知メールは送信者のみに送られてくるので、送信者は内容を確認後、パスワード通知メールを宛先へ転送する。これにより、万が一宛先を誤った場合でも、パスワード通知メールを転送しなければ、宛先では添付ファイルを参照することはできない。

SaMMAによる添付ファイル自動暗号化運用イメージ



■SaMMAインストール

(1)CentOS7
EPELリポジトリ導入(EPEL)を参照してEPELリポジトリを導入する

[root@centos ~]# rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm ← nux-dextopリポジトリインストール

[root@centos ~]# yum -y install sendmail-devel openldap-devel glib2-devel gmime-devel libspf2-devel ← SaMMAインストールに必要なパッケージをインストール

[root@centos ~]# alternatives --config mta ← sendmailコマンド設定

2 プログラムがあり 'mta' を提供します。

  選択       コマンド
-----------------------------------------------
   1           /usr/sbin/sendmail.postfix
*+ 2           /usr/sbin/sendmail.sendmail

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:1 ← 1を応答してpostfixのsendmailコマンドを使用するように設定

[root@centos ~]# wget https://ja.osdn.net/dl/samma/SaMMA-4.1.11.tar.gz ← SaMMAダウンロード
※最新版のURLはダウンロードページで確認すること

[root@centos ~]# tar zxvf SaMMA-4.1.11.tar.gz ← SaMMA展開

[root@centos ~]# cd SaMMA-4.1.11/ ← SaMMA展開先へ移動

[root@centos SaMMA-4.1.11]# ./configure && make && make install ← SaMMAインストール

[root@centos SaMMA-4.1.11]# cd ← ホームディレクトリへ戻る

[root@centos ~]# rm -rf SaMMA-4.1.11 ← 展開先ディレクトリを削除

[root@centos ~]# rm -f SaMMA-4.1.11.tar.gz ← ダウンロードしたファイルを削除

[root@centos ~]# echo /usr/local/lib > /etc/ld.so.conf.d/libdg.conf ← libdgライブラリパス設定

[root@centos ~]# ldconfig ← libdgライブラリパス設定反映

(2)CentOS6
EPELリポジトリ導入(EPEL)を参照してEPELリポジトリを導入する

[root@centos ~]# rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm ← nux-dextopリポジトリインストール

[root@centos ~]# yum -y install sendmail-devel openldap-devel glib2-devel libspf2-devel libgpg-error-devel ← SaMMAインストールに必要なパッケージをインストール

[root@centos ~]# alternatives --config mta ← sendmailコマンド設定

2 プログラムがあり 'mta' を提供します。

  選択       コマンド
-----------------------------------------------
   1           /usr/sbin/sendmail.postfix
*+ 2           /usr/sbin/sendmail.sendmail

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:1 ← 1を応答してpostfixのsendmailコマンドを使用するように設定

[root@centos ~]# wget https://download.gnome.org/sources/gmime/2.6/gmime-2.6.15.tar.xz ← gmimeダウンロード

[root@centos ~]# tar xvf gmime-2.6.15.tar.xz ← gmime展開

[root@centos ~]# cd gmime-2.6.15 ← gmime展開先へ移動

[root@centos gmime-2.6.15]# ./configure && make && make install ← gmimeインストール

[root@centos gmime-2.6.15]# cd ← ホームディレクトリへ戻る

[root@centos ~]# rm -rf gmime-2.6.15 ← 展開先ディレクトリを削除

[root@centos ~]# rm -f gmime-2.6.15.tar.xz ← ダウンロードしたファイルを削除

[root@centos ~]# wget https://ja.osdn.net/dl/samma/SaMMA-4.1.11.tar.gz ← SaMMAダウンロード
※最新版のURLはダウンロードページで確認すること

[root@centos ~]# tar zxvf SaMMA-4.1.11.tar.gz ← SaMMA展開

[root@centos ~]# cd SaMMA-4.1.11/ ← SaMMA展開先へ移動

[root@centos SaMMA-4.1.11]# ./configure --with-gmime=/usr/local && make && make install ← SaMMAインストール

[root@centos SaMMA-4.1.11]# cd ← ホームディレクトリへ戻る

[root@centos ~]# rm -rf SaMMA-4.1.11 ← 展開先ディレクトリを削除

[root@centos ~]# rm -f SaMMA-4.1.11.tar.gz ← ダウンロードしたファイルを削除

[root@centos ~]# echo /usr/local/lib > /etc/ld.so.conf.d/libdg.conf ← libdgライブラリパス設定

[root@centos ~]# ldconfig ← libdgライブラリパス設定反映

■SaMMA設定

(1)SaMMA設定
[root@centos ~]# cp /usr/local/etc/samma/samma.conf.enc.default /usr/local/etc/samma/samma.conf ← サンプルよりSaMMA設定ファイルをコピー

[root@centos ~]# cp /usr/local/etc/samma/samma.tmpl.default /usr/local/etc/samma/samma.tmpl ← サンプルよりパスワード通知書式ファイルをコピー

[root@centos ~]# cp /usr/local/etc/samma/errmsg.tmpl.default /usr/local/etc/samma/errmsg.tmpl ← サンプルより文字コード変換失敗用パスワード通知書式ファイルをコピー

[root@centos ~]# cp /usr/local/etc/samma/sender.default /usr/local/etc/samma/sender ← サンプルより送信元設定ファイルをコピー

[root@centos ~]# cp /usr/local/etc/samma/rcpt.default /usr/local/etc/samma/rcpt ← サンプルより宛先設定ファイルをコピー

(2)暗号化対象設定
[root@centos samma]# cd /usr/local/etc/samma/ ← SaMMA設定ファイル格納先へ移動

[root@centos samma]# echo @`hostname -d` >> sender ← 暗号化対象送信元を設定※内部から送信するメールの添付ファイルはすべて暗号化
※送信元設定ファイルの詳細はこちらで確認すること

[root@centos samma]# echo @example.co.jp >> rcpt ← 暗号化対象宛先を設定※@example.co.jp宛に送信するメールの添付ファイルはすべて暗号化
※宛先設定ファイルの詳細はこちらで確認すること

[root@centos samma]# make ← 内部ドメインDB(sender.db)・受信者DB(rcpt.db)作成

[root@centos samma]# cd ← ホームディレクトリへ戻る

(3)パスワード通知メール文字化け対処
[root@centos ~]# nkf -w /usr/local/etc/samma/samma.tmpl > samma.tmpl ← パスワード通知メールテンプレートを編集用に文字コード変換してコピー

[root@centos ~]# vi samma.tmpl ← パスワード通知メールテンプレート編集
To: <@@TOADDR@@>
Subject: パスワード通知メール
Content-Type: text/plain; charset=ISO-2022-JP ← 追加
Content-Transfer-Encoding: 8bit ← 追加
MIME-Version: 1.0 ← 追加

以下のメールに添付されたファイルの解凍パスワードをお知らせします。

件名: <@@SUBJECT@@>
日付: <@@DATE@@>
パスワード: <@@PASSWORD@@>

受信者
<@@RCPTLIST@@>

添付ファイル名
<@@FILENAME@@>

[root@centos ~]# nkf --ic=UTF-8 --oc=ISO-2022-JP -x -m0 samma.tmpl > /usr/local/etc/samma/samma.tmpl ; rm -f samma.tmpl ← 編集したパスワード通知メールテンプレートを文字コード変換してコピー(戻し)後に削除

■SaMMA起動

(1)CentOS7
[root@centos ~]# vi /usr/lib/systemd/system/samma.service ← SaMMA起動スクリプト作成
[Unit]
Description=SaMMA (SAfety Mail gateway with Milter Api)

[Service]
ExecStart=/usr/local/bin/samma
Restart=always

[Install]
WantedBy=multi-user.target

[root@centos ~]# systemctl start samma ← SaMMA起動

[root@centos ~]# systemctl enable samma ← SaMMA自動起動設定

(2)CentOS6
[root@centos ~]# vi /etc/rc.d/init.d/samma ← SaMMA起動スクリプト作成
#!/bin/bash
#
# chkconfig: 345 79 31
# description: SaMMA (SAfety Mail gateway with Milter Api).

start() {
    /usr/local/bin/samma &
}

stop() {
    pkill -f /usr/local/bin/samma
}

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        stop
        start
        ;;
    status)
        pidof /usr/local/bin/samma > /dev/null 2>&1
        if [ $? -eq 0 ]; then
            echo "SaMMA (pid "`pidof /usr/local/bin/samma`") is running."
        else
            echo "SaMMA is not running."
        fi
        ;;
    *)
        echo $"Usage: SaMMA {start|stop|restart|status}"
esac

[root@centos ~]# chmod +x /etc/rc.d/init.d/samma ← SaMMA起動スクリプトに実行権限付加

[root@centos ~]# /etc/rc.d/init.d/samma start ← SaMMA起動

[root@centos ~]# chkconfig --add samma ← SaMMA自動起動設定



■Postfix・SaMMA連携設定

[root@centos ~]# vi /etc/postfix/main.cf ← Postfix設定ファイル編集
【Milter設定(smtpd_milters)がない場合】
下記を追加
smtpd_milters = inet:127.0.0.1:20026
milter_default_action = tempfail

【Milter設定(smtpd_milters)が既にある場合】
smtpd_milters = unix:/var/run/milter-manager/milter-manager.sock,inet:127.0.0.1:20026 ← SaMMA連携設定を追記

[root@centos ~]# systemctl reload postfix ← Postfix設定反映※CentOS7の場合
[root@centos ~]# /etc/rc.d/init.d/postfix reload ← Postfix設定反映※CentOS6の場合

■SaMMA確認

□/usr/local/etc/samma/rcptに設定したドメインのメールアドレス宛に添付ファイル付メールを送信して、添付ファイルがパスワード保護ZIP形式に暗号化されて宛先に送信されること
□パスワード通知メールのパスワードで宛先に送られたZIPファイルを復号化できること
□/usr/local/etc/samma/rcptに設定していないドメインのメールアドレス宛に添付ファイル付メールを送信して、添付ファイルが暗号化されずにそのまま宛先に送信されること


■関連コンテンツ




▲このページのトップへ戻る

Copyright© 2005-2017 fallenangels, All rights reserved.
ご自由にリンクしてください(連絡は不要です)
本ページへのご意見・ご要望、誤字・脱字・リンク切れ等のご連絡はこちらからお願いします