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の使い方がよくわからないのでまでデータを見ることができていない。
コメント