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をコピーしました