OpenARC

OpenARCをインストール・設定する。

OpenARC/openarc/openarc.conf.sample at master · trusteddomainproject/OpenARC · GitHub

インストール

dnfでインストール

$ env LANG=C sudo dnf install openarc
Last metadata expiration check: 1:08:33 ago on Fri Jan 12 20:46:55 2024.
Dependencies resolved.
============================================================================================================================================
 Package                      Architecture             Version                                   Repository                            Size
============================================================================================================================================
Installing:
 openarc                      x86_64                   1.0.0-0.15.Beta3.el8                      ol8_developer_EPEL                    66 k
Installing dependencies:
 libopenarc                   x86_64                   1.0.0-0.15.Beta3.el8                      ol8_developer_EPEL                    48 k

Transaction Summary
============================================================================================================================================
Install  2 Packages

Total download size: 113 k
Installed size: 202 k
Is this ok [y/N]: y
Downloading Packages:
(1/2): openarc-1.0.0-0.15.Beta3.el8.x86_64.rpm                                                               41 kB/s |  66 kB     00:01
(2/2): libopenarc-1.0.0-0.15.Beta3.el8.x86_64.rpm                                                            29 kB/s |  48 kB     00:01
--------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                        69 kB/s | 113 kB     00:01
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                    1/1
  Installing       : libopenarc-1.0.0-0.15.Beta3.el8.x86_64                                                                             1/2
  Running scriptlet: openarc-1.0.0-0.15.Beta3.el8.x86_64                                                                                2/2
  Installing       : openarc-1.0.0-0.15.Beta3.el8.x86_64                                                                                2/2
  Running scriptlet: openarc-1.0.0-0.15.Beta3.el8.x86_64                                                                                2/2
/sbin/ldconfig: /etc/ld.so.conf.d/kernel-5.4.17-2011.1.2.el8uek.x86_64.conf:6: hwcap directive ignored
/sbin/ldconfig: /etc/ld.so.conf.d/kernel-5.4.17-2011.7.4.el8uek.x86_64.conf:6: hwcap directive ignored

  Verifying        : libopenarc-1.0.0-0.15.Beta3.el8.x86_64                                                                             1/2
  Verifying        : openarc-1.0.0-0.15.Beta3.el8.x86_64                                                                                2/2

Installed:
  libopenarc-1.0.0-0.15.Beta3.el8.x86_64                                 openarc-1.0.0-0.15.Beta3.el8.x86_64

Complete!
$ 

設定ファイル確認

$ env LANG=C ls -la /etc/openarc.conf
-rw-r--r--. 1 root openarc 679 Oct 11  2022 /etc/openarc.conf
$ env LANG=C ls -la /etc/openarc/
total 20
drwxr-xr-x.   2 root    openarc  4096 Jan 12 21:55 .
drwxr-xr-x. 161 root    root    12288 Jan 12 21:55 ..
-r--r-----.   1 openarc openarc    23 Oct 11  2022 PeerList
$

設定していく。秘密鍵DKIMのをコピーして利用(OpenDKIMとはユーザが異なるので、コピーする)。

$ sudo cp /etc/opendkim/keys/example.jp/20231210.private /etc/openarc/
$ chown openarc:openarc /etc/openarc/20231210.private
$ env LANG=C ls -la /etc/openarc/
total 24
drwxr-xr-x.   2 root    openarc  4096 Jan 12 22:04 .
drwxr-xr-x. 161 root    root    12288 Jan 12 22:00 ..
-rw-------.   1 openarc openarc  1679 Jan 12 22:04 20231210.private
-r--r-----.   1 openarc openarc    23 Oct 11  2022 PeerList
$ 

/etc/openarc.conf の

  • Domain
  • Selector
  • KeyFile

を変更。

$ sudo cat /etc/openarc.conf
## See openarc.conf(5) or /usr/share/doc/openarc-1.0.0/openarc.conf.sample for more
#PidFile /run/openarc/openarc.pid
Syslog  yes
UserID  openarc:openarc
Socket  local:/run/openarc/openarc.sock
SignHeaders to,subject,message-id,date,from,mime-version,dkim-signature
PeerList /etc/openarc/PeerList
MilterDebug 6
EnableCoredumps yes

## After setting Mode to "sv", running
## opendkim-genkey -D /etc/openarc -s key -d
## and putting /etc/openarc
Mode                    sv
Canonicalization        relaxed/relaxed
Domain                  example.jp
Selector                20231210
KeyFile                 /etc/openarc/20231210.private
#SignatureAlgorithm rsa-sha256
$ 

設定ファイルチェック

# /sbin/openarc -n
# echo $?
0
#

起動してみる。問題なさそうなので、自動起動を有効にしておく。

# systemctl start openarc
# systemctl status openarc
* openarc.service - Authenticated Receive Chain (ARC) Milter
   Loaded: loaded (/usr/lib/systemd/system/openarc.service; disabled; vendor preset: disabled)
   Active: active (running) since Fri 2024-01-12 22:12:30 JST; 17s ago
     Docs: man:openarc(8)
           man:openarc.conf(5)
           http://www.trusteddomain.org/openarc/
  Process: 4074895 ExecStartPost=/sbin/restorecon -r -F /run/openarc (code=exited, status=0/SUCCESS)
 Main PID: 4074894 (openarc)
    Tasks: 3 (limit: 203056)
   Memory: 976.0K
   CGroup: /system.slice/openarc.service
           `-4074894 /usr/sbin/openarc -f

Jan 12 22:12:30 mail.example.jp systemd[1]: Starting Authenticated Receive Chain (ARC) Milter...
Jan 12 22:12:30 mail.example.jp openarc[4074894]: OpenARC Filter: Opening listen socket on conn local:/run/openarc/openarc.sock
Jan 12 22:12:30 mail.example.jp openarc[4074894]: OpenARC Filter v1.0.0 starting (args: -f)
Jan 12 22:12:30 mail.example.jp systemd[1]: Started Authenticated Receive Chain (ARC) Milter.
# systemctl enable openarc
Created symlink /etc/systemd/system/multi-user.target.wants/openarc.service -> /usr/lib/systemd/system/openarc.service.
# 

Postfix設定

Postfixのmilterとして、OpenARCを指定する。

/run/openarc/openarc.sock 経由で接続するため、postfixユーザをopenarcグループに追加しておく。

$ groups postfix
postfix : postfix mail opendkim
$ sudo gpasswd -a postfix openarc
$ groups postfix
postfix : postfix mail opendkim openarc

/etc/postfix/main.cfを編集。

diff -r1.4 main.cf
733c733
< smtpd_milters = local:/run/opendkim/opendkim.sock
---
> smtpd_milters = local:/run/opendkim/opendkim.sock, local:/run/openarc/openarc.sock

Postfixを再起動

$ sudo systemctl restart postfix
$ sudo systemctl status postfix
* postfix.service - Postfix Mail Transport Agent
   Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2024-01-12 22:32:44 JST; 7s ago
  Process: 4075663 ExecStop=/usr/sbin/postfix stop (code=exited, status=0/SUCCESS)
  Process: 4075695 ExecStart=/usr/sbin/postfix start (code=exited, status=0/SUCCESS)
  Process: 4075691 ExecStartPre=/usr/libexec/postfix/chroot-update (code=exited, status=0/SUCCESS)
  Process: 4075687 ExecStartPre=/usr/libexec/postfix/aliasesdb (code=exited, status=0/SUCCESS)
  Process: 4075683 ExecStartPre=/usr/sbin/restorecon -R /var/spool/postfix/pid/master.pid (code=exited, status=255)
 Main PID: 4075763 (master)
    Tasks: 3 (limit: 203056)
   Memory: 8.2M
   CGroup: /system.slice/postfix.service
           |-4075763 /usr/libexec/postfix/master -w
           |-4075764 pickup -l -t unix -u
           `-4075765 qmgr -l -t unix -u

Jan 12 22:32:43 mail.example.jp systemd[1]: Starting Postfix Mail Transport Agent...
Jan 12 22:32:43 mail.example.jp restorecon[4075683]: /usr/sbin/restorecon: lstat(/var/spool/postfix/pid/master.pid) failed: No such file or>
Jan 12 22:32:44 mail.example.jp postfix/master[4075763]: daemon started -- version 3.5.8, configuration /etc/postfix
Jan 12 22:32:44 mail.example.jp systemd[1]: Started Postfix Mail Transport Agent.
[shinichi@kasumi postfix]$

メールを送受信してみる。ヘッダーに

  • ARC-Seal
  • ARC-Message-Signature
  • ARC-Authentication-Results

がつく。また、Authentication-Resultsヘッダーに arc= でARCとしての検証結果がつく。