CentOS7

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

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

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

SaMMAインストール

EPELリポジトリ導入(EPEL)を参照してEPELリポジトリを導入する
[root@localhost ~]# rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm ← nux-dextopリポジトリインストール
[root@localhost ~]# yum -y install sendmail-devel openldap-devel glib2-devel gmime-devel libspf2-devel ← SaMMAインストールに必要なパッケージをインストール
[root@localhost ~]# alternatives --config mta ← sendmailコマンド設定
2 プログラムがあり 'mta' を提供します。

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

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:1 ← 1を応答してpostfixsendmailコマンドを使用するように設定
[root@localhost ~]# wget https://ja.osdn.net/dl/samma/SaMMA-4.1.11.tar.gz ← SaMMAダウンロード
※最新版のURLはダウンロードページで確認すること
[root@localhost ~]# tar zxvf SaMMA-4.1.11.tar.gz ← SaMMA展開
[root@localhost ~]# cd SaMMA-4.1.11/ ← SaMMA展開先へ移動
[root@localhost SaMMA-4.1.11]# ./configure && make && make install ← SaMMAインストール
[root@localhost SaMMA-4.1.11]# cd ← ホームディレクトリへ戻る
[root@localhost ~]# rm -rf SaMMA-4.1.11 ← 展開先ディレクトリを削除
[root@localhost ~]# rm -f SaMMA-4.1.11.tar.gz ← ダウンロードしたファイルを削除
[root@localhost ~]# echo /usr/local/lib > /etc/ld.so.conf.d/libdg.conf ← libdgライブラリパス設定
[root@localhost ~]# ldconfig ← libdgライブラリパス設定反映

SaMMA設定

SaMMA設定

[root@localhost ~]# cp /usr/local/etc/samma/samma.conf.enc.default /usr/local/etc/samma/samma.conf ← サンプルよりSaMMA設定ファイルをコピー
[root@localhost ~]# cp /usr/local/etc/samma/samma.tmpl.default /usr/local/etc/samma/samma.tmpl ← サンプルよりパスワード通知書式ファイルをコピー
[root@localhost ~]# cp /usr/local/etc/samma/errmsg.tmpl.default /usr/local/etc/samma/errmsg.tmpl ← サンプルより文字コード変換失敗用パスワード通知書式ファイルをコピー
[root@localhost ~]# cp /usr/local/etc/samma/sender.default /usr/local/etc/samma/sender ← サンプルより送信元設定ファイルをコピー
[root@localhost ~]# cp /usr/local/etc/samma/rcpt.default /usr/local/etc/samma/rcpt ← サンプルより宛先設定ファイルをコピー

暗号化対象設定

[root@localhost samma]# cd /usr/local/etc/samma/ ← SaMMA設定ファイル格納先へ移動
[root@localhost samma]# echo @`hostname -d` >> sender ← 暗号化対象送信元を設定 ※内部から送信するメールの添付ファイルはすべて暗号化
[root@localhost samma]# echo @example.co.jp >> rcpt ← 暗号化対象宛先を設定※@example.co.jp宛に送信するメールの添付ファイルはすべて暗号化
[root@localhost samma]# make ← 内部ドメインDB(sender.db)・受信者DB(rcpt.db)作成
[root@localhost samma]# cd ← ホームディレクトリへ戻る

パスワード通知メール文字化け対処

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

日本語ファイル名文字化け対処

[root@localhost ~]# wget https://ja.osdn.net/dl/samma/libiconv-1.12-1.src.rpm ← libiconvのSRPMをダウンロード
※最新版のURLはダウンロードページで確認すること
[root@localhost ~]# rpm -ivh libiconv-1.12-1.src.rpm ← libiconvSRPMを展開
更新中 / インストール中...
1:libiconv-1.12-1 ################################# [100%]
警告: ユーザー yamauchi は存在しません - root を使用します
警告: グループ designet は存在しません - root を使用します
警告: ユーザー yamauchi は存在しません - root を使用します
警告: グループ designet は存在しません - root を使用します
警告: ユーザー yamauchi は存在しません - root を使用します
警告: グループ designet は存在しません - root を使用します
[root@localhost ~]# vi ~/rpmbuild/SPECS/libiconv.spec ← libiconv.spec編集
#make ← 行頭に#を追加してコメントアウト

%install

%makeinstall ← makeinstallに変更
[root@localhost ~]# rpmbuild -bb --clean ~/rpmbuild/SPECS/libiconv.spec &color(lime){← libiconvRPMを生成
[root@localhost ~]# rpm -ivh --nodeps rpmbuild/RPMS/`uname -p`/libiconv-1.12-1.`uname -p`.rpm ← 生成したlibiconvRPMをインストール
[root@localhost ~]# rm -f ~/rpmbuild/RPMS/`uname -p`/libiconv-1.12-1.`uname -p`.rpm ← 生成したlibiconvRPMを削除
[root@localhost ~]# rpmbuild --rmsource --rmspec ~/rpmbuild/SPECS/libiconv.spec ← RPM生成後始末
[root@localhost ~]# rm -f libiconv-1.12-1.src.rpm ← ダウンロードしたlibiconvSRPMを削除
[root@localhost ~]# vi /usr/local/bin/sammainit ← SaMMA起動スクリプト作成
#!/bin/sh

export LD_LIBRARY_PATH=/usr/local/samma/lib
export LD_PRELOAD=/usr/local/samma/lib/preloadable_libiconv.so
export CHARSET_ALIAS="Shift_JIS=CP932:EUC-JP=EUC-JP-MS:ISO-2022-JP=ISO-2022-JP-MS"

/usr/local/bin/samma
[root@localhost ~]# chmod +x /usr/local/bin/sammainit ← SaMMA起動スクリプトに実行権限付加

SaMMA起動

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

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

[Install]
WantedBy=multi-user.target
[root@localhost ~]# systemctl start samma ← SaMMA起動
[root@localhost ~]# systemctl enable samma ← SaMMA自動起動設定

Postfix・SaMMA連携設定

[root@localhost ~]# 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@localhost ~]# systemctl reload postfix ← Postfix設定反映

SaMMA確認


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-08-29 (水) 12:58:36