parsedmarc のインストール

parsedmarc

opensearch/grafana の準備ができたので parsedmarc をインストールしてみる。

geoipupdate のインストール

インストール

以下のコマンドでインストールする。

# dnf -y install geoipupdate

GeoIP のライセンス取得

ここから GeoIP Lite2 の Account ID とライセンスキーを取得する。

/etc/GepIP.conf の修正

以下のパラメータを設定する。上記の値を設定する。

AccountID 
LicenseKey 

systemd関連設定

/etc/systemd/system/geoipupdate.serviceの作成

以下の内容で作成する。

[Unit]
Description=geoipupdate

[Service]
EnvironmentFile=/etc/GeoIP.conf
Type=oneshot
ExecStart=/usr/bin/geoipupdate

/etc/systemd/system/geoipupdate.timer の作成

以下の内容で作成する。

[Unit]
Description=geoipupdate

[Timer]
OnCalendar=*-*-* 12:00:00
RandomizedDelaySec=24hours
Persistent=true

[Install]
WantedBy=timers.target

有効化

以下のコマンドを実行して有効化する。

# systemctl daemon-reload
# systemctl enable geoipupdate.timer
# systemctl start geoipupdate.timer
# systemctl list-timers

parsedmarc のインストール

python および関連パッケージのインストール

# dnf install -y python39 python3-virtualenv python3-setuptools python3-devel libxml2-devel libxslt-devel

ユーザー登録

# useradd parsedmarc -r -s /bin/false -m -b /opt

virtualenv の設定

# sudo -u parsedmarc virtualenv /opt/parsedmarc/venv

virtualenv の有効化

# source /opt/parsedmarc/venv/bin/activate

parsedmarc のインストール

# sudo -u parsedmarc /opt/parsedmarc/venv/bin/pip install -U parsedmarc
# sudo -u parsedmarc /opt/parsedmarc/venv/bin/python -m pip install --upgrade pip

/etc/parsedmarc.ini の作成/アクセス権設定

[general]
save_aggregate = True
save_forensic = True

[imap]
host = imap.example.com
user = dmarcresports@example.com
password = $uperSecure

[mailbox]
watch = True
delete = False

[elasticsearch]
hosts = 127.0.0.1:9200
ssl = False

[opensearch]
hosts = https://admin:admin@127.0.0.1:9200
ssl = True

[splunk_hec]
url = https://splunkhec.example.com
token = HECTokenGoesHere
index = email

[s3]
bucket = my-bucket
path = parsedmarc

[syslog]
server = localhost
port = 514
# sudo chown root:parsedmarc /etc/parsedmarc.ini
# sudo chmod u=rw,g=r,o= /etc/parsedmarc.ini

設定ファイル(parsedmarc.ini)の指定

# /opt/parsedmarc/venv/bin/parsedmarc -c /etc/parsedmarc.ini

systemd 関連設定

/etc/systemd/system/parsedmarc.service の作成

以下の内容でファイルを作成する。

[Unit]
Description=parsedmarc mailbox watcher
Documentation=https://domainaware.github.io/parsedmarc/
Wants=network-online.target
After=network.target network-online.target elasticsearch.service

[Service]
ExecStart=/opt/parsedmarc/venv/bin/parsedmarc -c /etc/parsedmarc.ini
User=parsedmarc
Group=parsedmarc
Restart=always
RestartSec=5m

[Install]
WantedBy=multi-user.target

有効化

# systemctl daemon-reload
# systemctl enable parsedmarc
# systemctl start parsedmarc
# systemctl status parsedmarc

エラー

parsedmarc をスタートさせると、kafka-python というモジュールでエラーとなり、parsedmarc が起動しない(2024/4/20 現在)。

google を検索したところ、kafka-python-ng というパッケージをインストールすると回避できるとの情報があった。実際 kafka-python-ng をインストールしたところ parsedmarc を起動できた(2024/4/20 現在)。

# sudo -u parsedmarc /opt/parsedmarc/venv/bin/pip3 install kafka-python-ng
# systemctl restart parsedmarc

でも、まだ dmarc レポートメールを取り込めていない。(2024/04/20 ここまで)

取り込めた?(2024/04/21)

朝起きてメールリーダを起動すると、dmarc レポートメールが所定のフォルダから消えていた。

dovecot のスプールをのぞいてみると、Archive.Aggregate/cur に移動されていた。さらにopensearch のログをみると kafka-python-ng をインストールしたあたりから imap サーバからデータを取り込んでいるようだ。

ただ、opensearch の使い方がよくわからないのでまでデータを見ることができていない。

コメント

タイトルとURLをコピーしました