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