管理者向け
クイックスタート
Postfix + Rspamd + ClamAV
管理者クイックスタート
最小構成での組み込み手順
ここでは 最小手順に絞って、Postfix の Milter チェーンへ ZipCloudMilter を組み込み、Rspamd / ClamAV と共存させる流れを示します。
先に 導入チェックリスト で要件を確認しておくとスムーズです。
本番適用前に ステージング で検証してください。ポリシー変更や宛先別の切替は段階的に。
1
📦
ZipCloudMilter の配置とサービス起動
# 例:/usr/local/zipcloudmilter/ に配置(仮) # Python venv & 依存導入(例) python3 -m venv /opt/zcm-venv . /opt/zcm-venv/bin/activate pip install -r /usr/local/zipcloudmilter/requirements.txt # systemd / rc.d などで常駐化(例は systemd) # /etc/systemd/system/zipcloudmilter.service [Unit] Description=ZipCloudMilter After=network.target [Service] User=postfix Group=postfix Environment="VIRTUAL_ENV=/opt/zcm-venv" ExecStart=/opt/zcm-venv/bin/python /usr/local/zipcloudmilter/zipcloudmilter.py Restart=always [Install] WantedBy=multi-user.target systemctl daemon-reload && systemctl enable --now zipcloudmilter
※ 実際の配置・起動コマンドは環境に合わせて調整してください。
2
✉️
Postfix へ Milter として組み込み
送信(submission)/ 受信(smtp)いずれに適用するか設計。まずは submission から段階導入が安全です。
# /etc/postfix/main.cf(例) # 既存の Rspamd/ClamAV と併用する順序を確認 # 推奨:①ウイルス/スパム等の判定 → ②ZipCloudMilter(添付→リンク化) milter_default_action = accept milter_protocol = 6 smtpd_milters = inet:127.0.0.1:11332, unix:/var/run/zipcloudmilter.sock non_smtpd_milters = $smtpd_milters # Rspamd(例): 127.0.0.1:11332 # ZipCloudMilter(例): /var/run/zipcloudmilter.sock
順序の目安: スパム・ウイルス判定で拒否/隔離した後に、残った正規メールをリンク化する流れが運用上シンプルです。
3
🧪
Rspamd / ClamAV との共存チェック
Rspamd
# /usr/local/etc/rspamd/local.d/milter_headers.conf(例) extended_spam_headers = true;
※ ヘッダ追加と ZipCloudMilter の本文置換が競合しないかを確認。
ClamAV
# clamd.conf の TimeOut / StreamMaxLength 等の見直し # 大容量添付のスキャン時間・サイズ上限が厳しすぎないか確認
※ スキャンで拒否されたメールはリンク化フェーズに到達しません。
4
☁️
Nextcloud 側の接続テスト
- WebDAV/アプリ経由のアップロード動作(API認証/トークン)
- 保存先クォータ/残容量の確認、公開リンクポリシーの整合
- 証明書/TLS 設定の妥当性
体験段階では「体験用クォータ」「体験用フォルダ」で分離しておくと安全です。
5
⚙️
既定ポリシーの決定(最小)
項目 | 推奨初期値 | メモ |
---|---|---|
#EXPIRE | 7日 | 案件クローズ基準で短めに。延長は個別上書き。 |
#LIMIT | 5回 | 二次配布抑止と利便性のバランス。 |
#ZIP | 重要案件は必須 | パスワード別送の徹底。 |
配布方式 | cloud(ストリーミング) | 相手ドメインにより zip/reply へ切替。 |
6
🧪
試験送受信(サンプル)
# 件名サンプル #ZIP #REPLY #LIMIT=3 #EXPIRE=3 見積書送付の件 # 想定確認 # - 本文に安全なダウンロードリンクが挿入される # - 受信者は「ダウンロード開始」→ 別送パス入力 → 取得 # - 送信者に初回DL通知が届く # - 公開停止リンクで即時無効化できる
受信側で URL ブロックがある場合は トラブルシュート を参照。
7
📝
運用開始前チェック
- 誤送信訓練(公開停止 → 再発行)の実施
- 監査:初回DL通知・履歴の確認手順を共有
- 問い合わせ・エスカレーションフローの整備
8
📊
ログ/監視の目安
- MTA ログ:送信経路・Milter 適用確認
- アプリログ:アップロード完了/リンク生成のタイムライン
- Nextcloud:I/O, WebDAV 応答、クォータ/残容量
運用後は 件数 停止件数 エラー率 を月次で振り返り、既定値を最適化。