Rspamd†
スパムメールチェック、メール電子署名、外部プログラム連携を実装するメール管理ソフトウェア。
スパムメール・ウイルスメールチェックを実装する場合、従来は複数のソフトウェアを組み合わせる必要があったが、
Rspamdを使用すると設定が簡素化される為、メンテナンス性が向上する。
殆どのコンポーネントはSQLiteにデータを書き込むが、NeuralNetworkプラグインなど高速処理が必要な物は、
Redis(RemoteDictionaryServer)にデータを書き込む為、Redisも構築を行う必要がある。
参考サイト†
構築環境†
- 配布サイト
- 公式ドキュメント
Parameter | SERVER-A | SERVER-B |
OS | openSUSE Leap 42.3 | openSUSE Leap 42.3 |
IP | 10.0.0.1 | 10.0.0.2 |
USER | rspamd |
GROUP | rspamd |
VERSION | v1.7.4 |
PREFIX | /usr/lcoal/rspamd-1.7.4 |
|
未設画像
|
インストール†
- 1. インストール
yum/apt-get/zypper辺りのパッケージ管理でもインストールする事が出来るが、
Rspamd公式がオフィシャルパッケージを推奨している為、今回はソースコードをビルドして利用する。
構築例ではopenSUSEを利用しているがCentOS/Debianでも同手順で構築可能である。
# zypper install ragel libevent-devel sqlite3-devel file-devel
# zypper install lua lua-devel lua51-luajit lua51-luajit-devel
# zypper install pcre-devel pcre2-devel libfann-devel libfann2
# zypper install jemalloc-devel libjemalloc2 gd-devel
# cd /usr/local/src
# wget https://github.com/vstakhov/rspamd/archive/1.7.4.tar.gz
# tar zxvf 1.7.4.tar.gz
# cd rspamd-1.7.4
# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/rspamd \
-DINSTALL_EXAMPLES=ON \
-DINSTALL_WEBUI=ON \
-DENABLE_JEMALLOC=ON \
-DENABLE_LUAJIT=ON \
-DENABLE_SQLITE=ON \
-DENABLE_REDIRECTOR=ON \
-DENABLE_URL_INCLUDE=ON \
-DENABLE_TORCH=ON \
-DENABLE_FANN=ON \
-DENABLE_PCRE2=ON \
-DENABLE_GD=ON
# make && make install
- 2. 起動準備
実行ユーザ、systemdスクリプト、ログローテート設定を準備する。
systemdスクリプトにはLimitNOFILEを埋め込み、ファイルディスクリプタを上書きする。
設定ファイル・インストール先ディレクトリも書き換えている為、
環境に合わせて名前も変更する。
# vi /usr/lib/systemd/system/rspamd.service
---
[Unit]
Description=rapid spam filtering system
After=nss-lookup.target network-online.target
Documentation=https://rspamd.com/doc/
[Service]
LimitNOFILE=1048576
NonBlocking=true
ExecStart=/usr/local/rspamd/bin/rspamd -c /etc/rspamd/rspamd.conf -f
ExecReload=/bin/kill -HUP $MAINPID
User=rspamd
Group=rspamd
RuntimeDirectory=rspamd
RuntimeDirectoryMode=0755
Restart=always
[Install]
WantedBy=multi-user.target
# vi /etc/logrotate.d/rspamd
---
/var/log/rspamd/rspamd.log {
weekly
compress
rotate 4
missingok
ifempty
sharedscripts
create 0644 rspamd rspamd
postrotate
systemctl restart rspamd > /dev/null 2>/dev/null || true
endscript
}
# groupadd rspamd
# useradd -g rspamd -s /sbin/nologin rspamd
# mkdir /var/log/rspamd
# cd /usr/local
# mv rspamd rspamd-1.7.4
# ln -s /usr/local/rspamd-1.7.4 rspamd
# ln -s /usr/local/rspamd/etc/rspamd /etc/rspamd
- 3. 基礎設定
初期設定はコンフィグウィザードを利用するが、細かい設定は直接編集する必要がある。
ただし、Rspamdのコンフィグは階層化されており、
既存設定に追記する物はlocal.dディレクトリに設定し、
設定を上書きする場合はoverride.dディレクトリに保存する必要がある。
また、設定ファイルの拡張子も [.conf][.inc] の二つが存在する。
利用する拡張子は設定ファイル毎に違う為、呼び出し元ファイルを確認する。
また、モジュールを無効化する場合は [enabled = false;] のみを記載した設定を作成し、
"local.d" 内に無効化したいモジュール名で保存する。