1AIDE.CONF(5) AIDE AIDE.CONF(5)
2
3
4
6 aide.conf - The configuration file for Advanced Intrusion Detection
7 Environment
8
10 aide.conf is the configuration file for Advanced Intrusion Detection
11 Environment. aide.conf contains the runtime configuration aide uses to
12 initialize or check the AIDE database.
13
15 aide.conf is similar in to Tripwire(tm)'s configuration file. With lit‐
16 tle effort tw.conf can be converted to aide.conf.
17
18 aide.conf is case-sensitive. Leading and trailing white spaces are
19 ignored.
20
21 There are three types of lines in aide.conf. First there are the con‐
22 figuration lines which are used to set configuration parameters and
23 define/undefine variables. Second, there are (restricted) selection
24 lines that are used to indicate which files are added to the database.
25 Third, macro lines define or undefine variables within the config file.
26 Lines beginning with # are ignored as comments.
27
29 These lines have the format parameter=value. See URLS for a list of
30 valid urls.
31
32 database
33 The url from which database is read. There can only be one of
34 these lines. If there are multiple database lines then the first
35 is used. The default value is "/usr/etc/aide.db".
36
37 database_out
38 The url to which the new database is written to. There can only
39 be one of these lines. If there are multiple database_out lines
40 then the first is used. The default value is
41 "/usr/etc/aide.db.new".
42
43 database_new
44 The url from which the other database for --compare is read.
45 There is no default for this one.
46
47 database_attrs
48 The attributes of the (uncompressed) database files which are to
49 be added to the final report in verbose level 2 or higher. Only
50 checksum attributes are supported. To disable set database_attrs
51 to 'E'. By default all compiled in checksums are added to the
52 report.
53
54 database_add_metadata
55 Whether to add the AIDE version and the time of database genera‐
56 tion as comments to the database file or not. Valid values are
57 yes, true, no and false. The default is to add the AIDE version
58 and the time of database generation. This option may be set to
59 no by default in a future release.
60
61 verbose
62 The level of messages that is output. This value can be 0-255
63 inclusive. This parameter can only be given once. Value from the
64 first occurrence is used. If --verbose or -V is used then the
65 value from that is used. The default is 5. If verbosity is 20
66 then additional report output is written when doing --check,
67 --update or --compare.
68
69 report_url
70 The url that the output is written to. There can be multiple
71 instances of this parameter. Output is written to all of them.
72 The default is stdout.
73
74 report_base16
75 Whether to base16 encode the checksums in the report or not.
76 Valid values are yes, true, no and false. The default is to
77 report checksums not in base16 but in base64 encoding.
78
79 report_detailed_init
80 Whether to report added files (verbose level >= 2) and their
81 details (verbose level >=7) in initialization mode or not. Valid
82 values are yes, true, no and false. The default is to not report
83 added files or their details in init mode.
84
85 report_quiet
86 Whether to suppress report output if no differences to the data‐
87 base have been found or not. Valid values are yes, true, no and
88 false. The default is to not suppress output in the report.
89
90 gzip_dbout
91 Whether the output to the database is gzipped or not. Valid val‐
92 ues are yes,true,no and false. The default is no. This option is
93 available only if zlib support is compiled in.
94
95 root_prefix
96 The prefix to strip from each file name in the file system
97 before applying the rules and writing to database. AIDE removes
98 a trailing slash from the prefix. The default is no (an empty)
99 prefix. This option has no effect in compare mode.
100
101 acl_no_symlink_follow
102 Whether to check ACLs for symlinks or not. Valid values are
103 yes,true,no and false. The default is to follow symlinks. This
104 option is available only if acl support is compiled in.
105
106 warn_dead_symlinks
107 Whether to warn about dead symlinks or not. Valid values are
108 yes,true,no and false. The default is not to warn about dead
109 symlinks.
110
111 grouped
112 Whether to group the files in the report by added, removed and
113 changed files or not. Valid values are yes, true, no and false.
114 The default is to group the files in the report.
115
116 summarize_changes
117 Whether to summarize changes in the added, removed and changed
118 files sections of the report or not. Valid values are
119 yes,true,no and false. The default is to summarize the changes.
120
121 The general format is like the string YlZbpugamcinCAXSE, where Y
122 is replaced by the file-type (f for a regular file, d for a
123 directory, l for a symbolic link, c for a character device, b
124 for a block device, p for a FIFO, s for a unix socket, D for a
125 Solaris door, P for a Solaris event port, ! if file type has
126 changed and ? otherwise).
127
128 The Z is replaced as follows: A = means that the size has not
129 changed, a < reports a shrinked size and a > reports a grown
130 size.
131
132 The other letters in the string are the actual letters that will
133 be output if the associated attribute for the item has been
134 changed or a "." for no change, a "+" if the attribute has been
135 added, a "-" if it has been removed, a ":" if the attribute is
136 ignored (but not forced) or a " " if the attribute has not been
137 checked. The exceptions to this are: (1) a newly created file
138 replaces each letter with a "+", and (2) a removed file replaces
139 each letter with a "-".
140
141 The attribute that is associated with each letter is as follows:
142
143
144 o A l means that the link name has changed.
145
146 o A b means that the block count has changed.
147
148 o A p means that the permissions have changed.
149
150 o An u means that the uid has changed.
151
152 o A g means that the gid has changed.
153
154 o An a means that the access time has changed.
155
156 o A m means that the modification time has changed.
157
158 o A c means that the change time has changed.
159
160 o An i means that the inode has changed.
161
162 o A n means that the link count has changed.
163
164 o A C means that one or more checksums have changed.
165
166 The following letters are only available when explicitly enabled
167 using configure:
168
169
170 o A A means that the access control list has changed.
171
172 o A X means that the extended attributes have changed.
173
174 o A S means that the SELinux attributes have changed.
175
176 o A E means that the file attributes on a second extended
177 file system have changed.
178
179 report_ignore_added_attrs
180 Special group definition that lists attributes whose addition is
181 to be ignored in the final report.
182
183 report_ignore_removed_attrs
184 Special group definition that lists attributes whose removal is
185 to be ignored in the final report.
186
187 report_ignore_changed_attrs
188 ignore_list (DEPRECATED, will be removed in a future release)
189 Special group definition that lists attributes whose change is
190 to be ignored in the final report.
191
192 report_force_attrs
193 report_attributes (DEPRECATED, will be removed in a future release)
194 Special group definition that lists attributes which are always
195 printed in the final report for changed files. If an attribute
196 is both ignored and forced the attribute is not considered for
197 file change but printed in the final report if the file has been
198 otherwise changed.
199
200 report_ignore_e2fsattrs
201 List (no delimiter) of ext2 file attributes which are to be
202 ignored in the final report. See chattr(1) for the available
203 attributes. Use '0' to not ignore any attribute. Ignored
204 attributes are represented by a ':' in the output. The default
205 is to not ignore any ext2 file attribute.
206
207 Example
208 Ignore changes of the ext2 file attributes compression error
209 (E), huge file (h), indexed directory (I):
210
211 report_ignore_e2fsattrs=EhI
212
213 config_version
214 The value of config_version is printed in the report and also
215 printed to the database. This is for informational purposes
216 only. It has no other functionality.
217
218 Group definitions
219 If the parameter is not one of the previous parameters then it
220 is regarded as a group definition. Value is then regarded as an
221 expression. Expression is of the following form.
222
223 <predefined group>| <expr> + <predefined group>
224 | <expr> - <predefined group>
225
226 See DEFAULT GROUPS for an explanation of default predefined
227 groups. Note that this is different from the way Tripwire(tm)
228 does it.
229
231 AIDE supports three types of selection lines:
232
233 Regular selection line:
234
235 <regex> <group>
236
237 Files and directories matching the regular expression are added to
238 the database.
239
240
241 Negative selection line:
242
243 !<regex>
244
245 Files and directories matching the regular expression are ignored
246 and not added to the database.
247
248
249 Equals selection line:
250
251 =<regex> <group>
252
253 Files and directories matching the regular expression are added to
254 the database. The children of directories are only added if the reg‐
255 ular expression ends with a "/". The children of sub-directories are
256 not added at all.
257
258
259 Every regular expression has to start with a "/". An implicit ^ is
260 added in front of each regular expression. In other words the regular
261 expressions are matched at the first position against the complete
262 filename (i.e. including the path). Special characters in your file‐
263 names can be escaped using two-digit URL encoding (for example, %20 to
264 represent a space).
265
266 See EXAMPLES and doc/aide.conf for examples.
267
268 More in-depth discussion of the selection algorithm can be found in the
269 AIDE manual.
270
272 Restricted selection lines are like normal selection lines but can be
273 restricted to file types. The following file types are supported:
274
275
276 f: restrict rule to regular files
277
278 d: restrict rule to directories
279
280 l: restrict rule to symbolic links
281
282 c: restrict rule to character devices
283
284 b: restrict rule to block devices
285
286 p: restrict rule to FIFO files
287
288 s: restrict rule to UNIX sockets
289
290 D: restrict rule to Solaris doors
291
292 P: restrict rule to Solaris event ports
293
294 The file types are separated by comma. The syntax of restricted selec‐
295 tion lines is as follows:
296
297 Restricted regular selection line:
298 <regex> <file types> <group>
299
300 Restricted negative selection line:
301 !<regex> <file types>
302
303 Restricted equals selection line:
304 =<regex> <file types> <group>
305
306 Examples
307 Only add directories and files to the database:
308
309 / d,f R
310
311 Add all but directory entries to the database:
312
313 !/run d
314 /run R
315
316 Use specific rule for directories:
317
318 /run d R-m-c-i
319 /run R
320
321
323 @@define VAR val
324 Define variable VAR to value val.
325
326 @@undef VAR
327 Undefine variable VAR.
328
329 @@ifdef VAR, @@ifndef VAR
330 @@ifdef begins an if statement. It must be terminated with an
331 @@endif statement. The lines between @@ifdef and @@endif are
332 used if variable VAR is defined. If there is an @@else statement
333 then the part between @@ifdef and @@else is used is VAR is
334 defined otherwise the part between @@else and @@endif is used.
335 @@ifndef reverses the logic of @@ifdef statement but otherwise
336 works similarly.
337
338 @@ifhost hostname, @@ifnhost hostname
339 @@ifhost works like @@ifdef only difference is that it checks
340 whether hostname equals the name of the host that AIDE is run‐
341 ning on. hostname is the name of the host without the domain‐
342 name (hostname, not hostname.example.com).
343
344 @@{VAR}
345 @@{VAR} is replaced with the value of the variable VAR. If
346 variable VAR is not defined an empty string is used. Unlike
347 Tripwire(tm) @@VAR is NOT supported. One special VAR is @@{HOST‐
348 NAME} which is substituted for the hostname of the current sys‐
349 tem.
350
351 @@else Begins the else part of an if statement.
352
353 @@endif
354 Ends an if statement.
355
356 @@include VAR
357 Includes the file VAR. The content of the file is used as if it
358 were inserted in this part of the config file.
359
361 Urls can be one of the following. Input urls cannot be used as outputs
362 and vice versa.
363
364 stdout
365
366 stderr Output is sent to stdout,stderr respectively.
367
368 stdin Input is read from stdin.
369
370 file://filename
371 Input is read from filename or output is written to filename.
372
373 fd:number
374 Input is read from filedescriptor number or output is written to
375 number.
376
378 p: permissions
379
380 ftype: file type
381
382 i: inode
383
384 l: link name
385
386 n: number of links
387
388 u: user
389
390 g: group
391
392 s: size
393
394 b: block count
395
396 m: mtime
397
398 a: atime
399
400 c: ctime
401
402 S: check for growing size
403
404 I: ignore changed filename
405
406 ANF: allow new files
407
408 ARF: allow removed files
409
410 md5: md5 checksum
411
412 sha1: sha1 checksum
413
414 sha256: sha256 checksum
415
416 sha512: sha512 checksum
417
418 rmd160: rmd160 checksum
419
420 tiger: tiger checksum
421
422 haval: haval checksum
423
424 crc32: crc32 checksum
425
426 R: p+ftype+i+l+n+u+g+s+m+c+md5+X
427
428 L: p+ftype+i+l+n+u+g+X
429
430 E: Empty group
431
432 X: acl+selinux+xattrs+e2fsattrs (if groups are explicitly enabled)
433
434 >: Growing file p+ftype+l+u+g+i+n+S+X
435
436 And also the following if you have mhash support enabled
437
438 gost: gost checksum
439
440 whirlpool: whirlpool checksum
441
442 The following are available only when explicitly enabled using config‐
443 ure
444
445 acl: access control list
446
447 selinux: selinux attributes
448
449 xattrs: extended attributes
450
451 e2fsattrs: file attributes on a second extended file system
452
453 Please note that 'I' and 'c' are incompatible. When the name of a file
454 is changed, it's ctime is updated as well. When you put 'c' and 'I' in
455 the same rule the, a changed ctime is silently ignored.
456
457 When 'ANF' is used, new files are added to the new database, but are
458 ignored in the report.
459
460 When 'ARF' is used, files missing on disk are omitted from the new
461 database, but are ignored in the report.
462
464 / R
465
466 This adds all files on your machine to the database. This one line is a
467 fully qualified configuration file.
468
469 !/dev
470
471 This ignores the /dev directory structure.
472
473 =/foo R
474
475 Only /foo and /foobar are taken into the database. None of their chil‐
476 dren are added.
477
478 =/foo/ R
479
480 Only /foo and its children (e.g. /foo/file and /foo/directory) are
481 taken into the database. The children of sub-directories (e.g.
482 /foo/directory/bar) are not added.
483
484 All=p+i+n+u+g+s+m+c+a+md5+sha1+tiger+rmd160
485
486 This line defines group All. It has all attributes and all md checksum
487 functions. If you absolutely want all digest functions then you should
488 enable mhash support and add +crc32+haval+gost to the end of the defi‐
489 nition for All. Mhash support can only be enabled at compile-time.
490
492 In the following, the first is not allowed in AIDE. Use the latter
493 instead.
494
495 /foo epug
496
497 /foo e+p+u+g
498
500 aide(1) manual.html
501
503 All trademarks are the property of their respective owners. No animals
504 were harmed while making this webpage or this piece of software.
505
506
507
508
509
510aide 0.16 Jul 25, 2016 AIDE.CONF(5)