1openarc.conf(5) File Formats Manual openarc.conf(5)
2
3
4
6 openarc.conf - Configuration file for openarc
7
8
10 /etc/openarc.conf
11
12
14 openarc(8) implements the ARC (Authenticated Received Chain) specifica‐
15 tion for verifying authentication and handling of messages as they are
16 routed to their destinations. This file is its configuration file.
17
18 Blank lines are ignored. Lines containing a hash ("#") character are
19 truncated at the hash character to allow for comments in the file.
20
21 Other content should be the name of a parameter, followed by white
22 space, followed by the value of that parameter, each on a separate
23 line.
24
25 For parameters that are Boolean in nature, only the first byte of the
26 value is processed. For positive values, the following are accepted:
27 "T", "t", "Y", "y", "1". For negative values, the following are
28 accepted: "F", "f", "N", "n", "0".
29
30 See the openarc(8) man page for details about how and when the configu‐
31 ration file contents are reloaded.
32
33 Unless otherwise stated, Boolean values default to "false", integer
34 values default to 0, and string and dataset values default to being
35 undefined.
36
37
39 AutoRestart (Boolean)
40 Automatically re-start on failures. Use with caution; if the
41 filter fails instantly after it starts, this can cause a tight
42 fork(2) loop.
43
44
45 AutoRestartCount (integer)
46 Sets the maximum automatic restart count. After this number of
47 automatic restarts, the filter will give up and terminate. A
48 value of 0 implies no limit; this is the default.
49
50
51 AutoRestartRate (string)
52 Sets the maximum automatic restart rate. If the filter begins
53 restarting faster than the rate defined here, it will give up
54 and terminate. This is a string of the form n/t[u] where n is
55 an integer limiting the count of restarts in the given interval
56 and t[u] defines the time interval through which the rate is
57 calculated; t is an integer and u defines the units thus repre‐
58 sented ("s" or "S" for seconds, the default; "m" or "M" for min‐
59 utes; "h" or "H" for hours; "d" or "D" for days). For example,
60 a value of "10/1h" limits the restarts to 10 in one hour. There
61 is no default, meaning restart rate is not limited.
62
63
64 Background (Boolean)
65 Causes openarc to fork and exits immediately, leaving the ser‐
66 vice running in the background. The default is "true".
67
68
69 Canonicalization (string)
70 Selects the canonicalization method(s) to be used when signing
71 messages. When verifying, the message's ARC-Message-Signature:
72 header field specifies the canonicalization method. The recog‐
73 nized values are relaxed and simple as defined by the DKIM spec‐
74 ification. The default is relaxed/simple. The value may
75 include two different canonicalizations separated by a slash
76 ("/") character, in which case the first will be applied to the
77 header and the second to the body.
78
79
80 ChangeRootDirectory (string)
81 Requests that the operating system change the effective root
82 directory of the process to the one specified here prior to
83 beginning execution. chroot(2) requires superuser access. A
84 warning will be generated if UserID is not also set.
85
86
87 EnableCoredumps (boolean)
88 On systems that have such support, make an explicit request to
89 the kernel to dump cores when the filter crashes for some rea‐
90 son. Some modern UNIX systems suppress core dumps during
91 crashes for security reasons if the user ID has changed during
92 the lifetime of the process. Currently only supported on Linux.
93
94
95 Include (string)
96 Names a file to be opened and read as an additional configura‐
97 tion file. Nesting is allowed to a maximum of five levels.
98
99
100 InternalHosts (dataset)
101 Identifies a set of hosts that identifies clients whose connec‐
102 tions should be treated as "internal" by this filter. Messages
103 received from such sources will not be verified and are instead
104 trusted as-is; in particular, their Authentication-Results
105 fields are trusted to be correct and authentic, meaning they
106 will be assumed to contain the correct chain status when gener‐
107 ating an outgoing seal. See the description of "PeerList" for a
108 description of the supported format. If no set is provided,
109 "127.0.0.1" is added to the list by default.
110
111
112 MilterDebug (integer)
113 Sets the debug level to be requested from the milter library.
114 The default is 0.
115
116
117 Mode (string)
118 Selects the operating mode(s) for this filter. If the string
119 contains the character "s", the filter will sign and seal mes‐
120 sages passing through the filter. If the string contains the
121 character "v", the filter will do signature and seal validation
122 of arriving messages. The two can be combined. If neither is
123 specified, the operating mode will be inferred on a per-connec‐
124 tion basis based on the entries in the InternalHosts list; con‐
125 nections from internal hosts will be assigned to signing mode,
126 and all others will be assigned to verify mode.
127
128
129 OversignHeaders (string)
130 Specifies a comma-separated list of header field names that
131 should be included in all signature header lists (the "h=" tag)
132 once more than the number of times they were actually present in
133 the signed message. The set is empty by default. The purpose
134 of this, and especially of listing an absent header field, is to
135 prevent the addition of important fields between the signer and
136 the verifier. Since the verifier would include that header
137 field when performing verification if it had been added by an
138 intermediary, the signed message and the verified message were
139 different and the verification would fail. Note that listing a
140 field name here and not listing it in the SignHeaders list is
141 likely to generate invalid signatures.
142
143
144 PeerList (dataset)
145 Identifies a set of "peers" that identifies clients whose con‐
146 nections should be accepted without processing by this filter.
147 The set should contain on each line a hostname, domain name
148 (e.g. ".example.com"), IP address, an IPv6 address (including an
149 IPv4 mapped address), or a CIDR-style IP specification (e.g.
150 "192.168.1.0/24"). An entry beginning with a bang ("!") charac‐
151 ter means "not", allowing exclusions of specific hosts that are
152 otherwise members of larger sets. Host and domain names are
153 matched first, then the IP or IPv6 address depending on the con‐
154 nection type. More precise entries are preferred over less pre‐
155 cise ones, i.e. "192.168.1.1" will match before
156 "!192.168.1.0/24". The text form of IPv6 addresses will be
157 forced to lowercase when queried (RFC5952), so the contents of
158 this data set should also use lowercase. The IP address portion
159 of an entry may optionally contain square brackets; both forms
160 (with and without) will be checked.
161
162
163 PidFile (string)
164 Specifies the path to a file that should be created at process
165 start containing the process ID.
166
167
168 SealHeaderChecks (string)
169 Identifies a file containing header checks that should be done
170 to determine whether to seal a message. Each entry in this file
171 must be of the form "name:regexp". When this feature is set,
172 messages will only be processed by the filter if any instance of
173 the named header field exists and has a value matching the pro‐
174 vided regular expression. If the value of an instance appears
175 to be a JSON list, then the regular expression is applied to all
176 strings in the list.
177
178
179 SignatureAlgorithm (string)
180 Selects the signing algorithm to use when generating signatures.
181 Use 'openarc -V' to see the list of supported algorithms. The
182 default is rsa-sha256.
183
184
185 SignHeaders (string)
186 Specifies the set of header fields that should be included when
187 generating signatures. This is expected to be a comma-separated
188 list of header field names, and matching is case-insensitive.
189 If the list omits any header field that is mandated by the ARC
190 specification, those fields are implicitly added. By default,
191 those fields listed in the DKIM specification as "SHOULD" be
192 signed (RFC6376, Section 5.4) will be signed by the filter.
193
194
195 Socket (string)
196 Specifies the socket that should be established by the filter to
197 receive connections from sendmail(8) in order to provide ser‐
198 vice. socketspec is in one of two forms: local:path, which cre‐
199 ates a UNIX domain socket at the specified path, or
200 inet:port[@host] or inet6:port[@host] which creates a TCP socket
201 on the specified port and in the specified protocol family. If
202 the host is not given as either a hostname or an IP address, the
203 socket will be listening on all interfaces. A literal IP
204 address must be enclosed in square brackets. This option is
205 mandatory either in the configuration file or on the command
206 line.
207
208
209 Syslog (Boolean)
210 Log via calls to syslog(3) any interesting activity.
211
212
213 SyslogFacility (string)
214 Log via calls to syslog(3) using the named facility. The facil‐
215 ity names are the same as the ones allowed in syslog.conf(5).
216 The default is "mail".
217
218
219 UserID (string)
220 Attempts to become the specified userid before starting opera‐
221 tions. The value is of the form userid[:group]. The process
222 will be assigned all of the groups and primary group ID of the
223 named userid unless an alternate group is specified.
224
225
227 Features that involve specification of IPv4 addresses or CIDR blocks
228 will use the inet_addr(3) function to parse that information. Users
229 should be familiar with the way that function handles the non-trivial
230 cases (for example, "192.0.2/24" and "192.0.2.0/24" are not the same
231 thing).
232
234 /etc/openarc.conf
235 Default location of this file.
236
238 This man page covers version 1.0.0 of openarc.
239
240
242 Copyright (c) 2007, 2008, Sendmail, Inc. and its suppliers. All rights
243 reserved.
244
245 Copyright (c) 2009-2017, The Trusted Domain Project. All rights
246 reserved.
247
249 openarc(8), sendmail(8)
250
251 RFC5451 - Message Header Field for Indicating Message Authentication
252 Status
253
254 RFC5617 - DKIM Author Domain Signing Practises
255
256 RFC5965 - An Extensible Format for Email Feedback Reports
257
258 RFC6008 - Authentication-Results Registration for Differentiating among
259 Cryptographic Results
260
261 RFC6376 - DomainKeys Identified Mail
262
263 RFC6651 - Extensions to DomainKeys Identified Mail (DKIM) for Failure
264 Reporting
265
266
267
268 The Trusted Domain Project openarc.conf(5)