Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
AIDE.CONF(5)			      AIDE			    AIDE.CONF(5)

NAME
     aide.conf	-  The configuration file for Advanced Intrusion Detection Envi-
     ronment

SYNOPSIS
     aide.conf is the configuration file for Advanced Intrusion Detection  Envi-
     ronment. aide.conf contains the runtime configuration aide uses to initial-
     ize or check the AIDE database.

FILE FORMAT
     aide.conf is case-sensitive. Leading and trailing white spaces are ignored.
     Each config line must end with new line.

     AIDE  uses the backslash character (\) as escape character for ' ' (space),
     '@' and '\' (backslash) (e.g. '\ ' or '\@'). To literally match a '\' in  a
     file  path with a regular expression you have to escape the backslash twice
     (i.e. '\\\\').

     There are three types of lines in aide.conf. First there are the configura-
     tion options which are used to  set  configuration  parameters  and  define
     groups.  Second,  there  are  (restricted)  rules that are used to indicate
     which files/directoires from the file system are  added  to  the  database.
     Third,  macro  lines  define  or undefine variables within the config file.
     Lines beginning with # are ignored as comments.

CONFIG OPTIONS
     These lines have the format parameter=value. See URLS for a list  of  valid
     urls.

     database_in (type: URL, default: see --version output, added in AIDE v0.17)
     database (REMOVED in AIDE v0.19)
	    The  url from which database is read. There can only be one of these
	    lines. If there are multiple database lines then the first is used.

	    Examples:

	       database_in=file:/var/lib/aide/aide.db

		  Read database locally from /var/lib/aide/aide.db.

	       database_in=stdin

		  Read database from stdin.

	       database_in=https://example.com/aide.db

		  Read database remotely from https://example.com/aide.db.

     database_out (type: URL, default: see --version output)
	    The url to which the new database is written to. There can	only  be
	    one  of  these  lines. If there are multiple database_out lines then
	    the first is used.

     database_new (type: URL, default: <none>)
	    The url from which the other database for --compare is read.

     database_attrs (type: attribute expression, default: H, added in AIDE
     v0.16)
	    The attributes of the (uncompressed) database files which are to  be
	    added  to  the reports in report level >= database_attributes . Only
	    checksum attributes are supported. To disable set database_attrs  to
	    'E'.

     database_add_metadata (type: bool, default: true, added in AIDE v0.16)
	    Whether  to add the AIDE version and the time of database generation
	    as comments to the database file or not. This option may be  set  to
	    false by default in a future release.

     log_level (type: log level, default: warning, added in AIDE v0.17)
	    The  log  level to use. Log messages are written to stderr. If there
	    are multiple log_level lines then the first one is used. The  --log-
	    level or -L command line option overwrites this option.

	    The following log levels are available:

		   error:  show  unrecoverable issues that have to be handled by
		   the user. Errors are fatal to the AIDE process.

		   warning:  additionally  show  recoverable  issues  that  most
		   likely  lead to unexpected behaviour and should be handled by
		   the user

		   notice: additionally show recoverable issues  that  sometimes
		   lead  to  unexpected  behaviour  and  might be handled by the
		   user.

		   info: additionally show informational messages

		   compare: additionally show messages to  help  to  debug  file
		   comparison and (special) attribute handling

		   The log levels below are very verbose and can easily generate
		   multiple  gigabytes	of  log data (depending on the number of
		   processed files and the size of the rule tree). For debugging
		   it is recommended to use these log levels together  with  the
		   --limit parameter (see aide (1) for details).

		   rule:  additionally	show  messages to help to debug the path
		   rule matching

		   config: additionally show messages to help  to  debug  config
		   and rule parsing

		   debug:  additionally  show  messages that are useful to debug
		   the application

		   limit: additionally show messages about skipped  entries  due
		   to limit match

		   thread:  additionally  show	messages about thread processing
		   (e.g. broadcast events)

		   trace: additionallyt show messages about  the  internal  data
		   structures and the flow of the application (e.g. in-loop log-
		   ging) (extremely verbose)

     verbose (type: number, range: 0 - 255, default: 5, REMOVED in AIDE v0.17)
	    Removed, use log_level and report_level options instead.

     gzip_dbout (type: bool, default: false)
	    Whether the output to the database is gzipped or not. This option is
	    available only if zlib support is compiled in.

     root_prefix (type: path, default: <empty>, added in AIDE v0.16)
	    The  prefix  to  strip from each file name in the file system before
	    applying the rules and writing to database. AIDE removes a	trailing
	    slash from the prefix.  If there are multiple root_prefix lines then
	    the first one is used. This option has no effect in compare mode.

     acl_no_symlink_follow (type: bool, default: false)
	    Whether  to check ACLs for symlinks or not. This option is available
	    only if acl support is compiled in.

     warn_dead_symlinks (type: path, default: false)
	    Whether to warn about dead symlinks or not.

     config_version (type: string, default: <empty>)
	    The value of config_version  is  printed  in  the  report  and  also
	    printed to the database. This is for informational purposes only. It
	    has no other functionality.

     config_check_warn_unrestricted_rules (type: bool, default: false, added in
     AIDE v0.18)
	    Whether  to  warn  on unrestricted rules during config check. To ex-
	    plicitly define unrestricted rules use 0 (zero) as restriction char-
	    acter.

     num_workers (type: number|percentage, default: 1, added in AIDE v0.18)
	    Specifies the number of simultaneous workers (threads) for file  at-
	    tribute processing (i.a. hashsum calculation).

	    The  number  of  workers can be a positive integer (e.g. '4') or the
	    percentage of the available processors (e.g. '60%').  The  resulting
	    number of workers is rounded up to the next integer (e.g. '60%' of 8
	    processors results in 5 workers).

	    If there are multiple num_workers lines then the first one is used.

	    Use 0 (zero) to disable (multi-threaded) workers.

	    The  default  value 1 (single worker thread) may be changed in a fu-
	    ture release.

REPORT OPTIONS
     report_url (type: URL, default: stdout)

	    The URL that the output is written to.

	    Multiple instances of the report_url option are supported.

	    Examples:

	       report_url=file:/var/log/aide.log

		  Write report to /var/log/aide.log.

	       report_url=stdout

		  Write report to stdout.

	       report_url=syslog:<LOG_FACILITY>

		  Write report to syslog using LOG_FACILITY.

     The following report options are available (to take effect they have to  be
     set before report_url):

     report_level (type: report level, default: changed_attributes, added in
     AIDE v0.17)

	    The report level to use. The available report levels are as follows:

	    minimal:  print  single  line  whether AIDE found differences to the
	    database

	    summary: additionally print number of  added,  removed  and  changed
	    files

	    database_attributes: additionally print database checksums

	    list_entries: additionally print lists of added, removed and changed
	    entries

	    changed_attributes: additionally print details about changed entries

		   Example:

		      File: /var/lib/apt/extended_states
		       Perm	 : -rw-r--r--			    | -rw-------
		       Uid	 : 0				    | 106

		   The	left  column  shows  the  old value (e.g. from the data-
		   base_in database) and the right column shows  the  new  value
		   (e.g. from the file system).

	    added_removed_attributes: additionally print details about added and
	    removed attributes

	    added_removed_entries:  additionally  print  details about added and
	    removed entries

     report_format (type: report format, default: plain, added in AIDE v0.18)
	    The report format to use. The available report formats are	as  fol-
	    lows:

	    plain: Print report in plain human-readable format.

	    json: Print report in json machine-readable format.

     report_base16 (type: bool, default: false, added in AIDE v0.17)
	    Base16  encode the checksums in the report. The default is to report
	    checksums in base64 encoding.

     report_detailed_init (type: bool, default: false, added in AIDE v0.16)
	    Report added files (report level >= list_entries) and their  details
	    (report level >= added_removed_entries) in initialization mode.

     report_quiet (type: bool, default: false, added in AIDE v0.16)
	    Suppress  report  output if no differences to the database have been
	    found.

     report_append (type: bool, default: false, added in AIDE v0.17)
	    Append to the report URL.

     report_grouped (type: bool, default: true, added in AIDE v0.17)
     grouped (REMOVED in AIDE v0.19)
	    Group the files in the report by added, removed and changed files.

     report_summarize_changes (type: bool, default: true, added in AIDE v0.17)
     summarize_changes (REMOVED in AIDE v0.19)
	    Summarize changes in the added, removed and changed  files	sections
	    of the report.

	    The  general  format is like the string YlZbpugamcinHAXSECF, where Y
	    is replaced by the file-type ('f' for a regular file, 'd' for a  di-
	    rectory,  'l'  for	a symbolic link, 'c' for a character device, 'b'
	    for a block device, 'p' for a FIFO, 's' for a unix socket, 'D' for a
	    Solaris door, 'P' for a Solaris event port, '!'  if  file  type  has
	    changed and '?' otherwise).

	    The  Z  is	replaced  as  follows: A '=' means that the size has not
	    changed, a '<' reports a shrinked size and a  '>'  reports	a  grown
	    size.   The  other letters in the string are the actual letters that
	    will be output if the associated attribute for  the  item  has  been
	    changed or a '.' for no change.

	    Otherwise  a  '+' is shown if the attribute has been added, a '-' if
	    it has been removed, a ':' if the  attribute  is  ignored  (but  not
	    forced) or a ' ' if the attribute has not been checked.

	    The  exceptions  to this are: (1) a newly created file replaces each
	    letter with a '+', and (2) a removed file replaces each letter  with
	    a '-'.

	    The attribute that is associated with each letter is as follows:

	    o	   An l means that the link name has changed.

	    o	   A b means that the block count has changed.

	    o	   A p means that the permissions have changed.

	    o	   A u means that the uid has changed.

	    o	   A g means that the gid has changed.

	    o	   An a means that the access time has changed.

	    o	   An m means that the modification time has changed.

	    o	   A c means that the change time has changed.

	    o	   An i means that the inode has changed.

	    o	   An n means that the link count has changed.

	    o	   An H means that one or more message digests have changed.

	    o	   An  F  means  that  one  file  system type has changed (Linux
		   only).

	    The following letters are only available when explicitly enabled us-
	    ing configure:

	    o	   An A means that the access control list has changed.

	    o	   An X means that the extended attributes have changed.

	    o	   An S means that the SELinux attributes have changed.

	    o	   An E means that the file attributes on a second extended file
		   system have changed.

	    o	   A C means that the file capabilities have changed.

     report_ignore_added_attrs (type: attribute expression, default: empty,
     added in AIDE v0.16)
	    Attributes whose addition is to be ignored in the report.

     report_ignore_removed_attrs (type: attribute expression, default: empty,
     added in AIDE v0.16)
	    Attributes whose removal is to be ignored in the report.

     report_ignore_changed_attrs (type: attribute expression, default: empty,
     added in AIDE v0.16)
     ignore_list (REMOVED in AIDE v0.17)
	    Attributes whose change is to be ignored in the report.

     report_force_attrs (type: attribute expression, default: empty, added in
     AIDE v0.16)
     report_attributes (REMOVED in AIDE v0.17)
	    Attributes which are always printed in the report for changed files.
	    If an attribute is both ignored and forced the attribute is not con-
	    sidered for file change but printed in the final report as	long  as
	    the file has been otherwise changed.

     report_ignore_e2fsattrs (type: string, default: 0, added in AIDE v0.16)
	    List  (no delimiter) of ext2 file attributes which are to be ignored
	    in the report.  See chattr(1) for the available  attributes.  Use  0
	    (zero)  to	not  ignore any attribute. Ignored attributes are repre-
	    sented by a ':' in the report.

	    By default AIDE also reports changes  of  the  read-only  attributes
	    mentioned  in  chattr(1)  (see  example  below  how  to ignore those
	    changes).

	    Example:

	       Ignore changes of the read-only ext2 file attributes verify  (V),
	       inline data (N), indexed directory (I) and encrypted (E):

		  report_ignore_e2fsattrs=VNIE

GROUPS
     Groups are aggregations of attributes.

     Group definitions have the format <group name> = <attribute expression>.

     Group names are limited to alphanumeric characters (A-Za-z0-9).

     See ATTRIBUTES for a description of all available attributes.

     Default groups

     R	    p+ftype+i+l+n+u+g+s+m+c+sha3_256+X

     L	    p+ftype+i+l+n+u+g+X

     >	    Growing file p+ftype+l+u+g+i+n+s+growing+X

     H	    all compiled in (and not deprecated) hashsums (added in AIDE v0.17)

     X	    acl+selinux+xattrs+e2fsattrs+caps  (if  attributes	are compiled in,
	    added in AIDE v0.16)

     E	    Empty group

     Use 'aide --version' to list the default compound groups.

RULES
     AIDE supports three types of rules:

     Regular rule:
	    <regex> <attribute expression>

	    Files and directories matching the regular expression are  added  to
	    the database.

     Recursive negative rule:
	    !<regex>

	    Files  and	directories matching the regular expression are excluded
	    and NOT added to the database. The children of directories and  sub-
	    directories  are recursed into and only not added to the database if
	    they also match the regular expression.

     Non-recursive negative rule (added in AIDE v0.19)
	    -<regex>

	    Files and directories matching the regular expression  are	excluded
	    and  NOT added the database. The children of directories and sub-di-
	    rectories are not recursed into and hence not added to the	database
	    by any means.

     Equals rule:
	    =<regex> <attribute expression>

	    Files  and	directories matching the regular expression are added to
	    the database.  The children of directories are  only  added  if  the
	    regular expression ends with a "/".  The children of sub-directories
	    are not added to the database.

     Every  regular expression has to start with an explicit "/".  An implicit ^
     is added in front of each regular expression.  In other words, the  regular
     expressions  are  matched	at the first position against the complete path.
     Special characters can be escaped using two-digit URL encoding  (for  exam-
     ple, %20 to represent a space).

     AIDE  uses a deepest-match algorithm to find the tree node to search, but a
     first-match algorithm inside the node.  (see also rule log level).

     See EXAMPLES for examples.

     More in-depth discussion of the selection algorithm can  be  found  in  the
     AIDE manual.

RESTRICTED RULES
     Restricted  rules are like normal rules but can be restricted to file types
     (added in AIDE v0.16) and/or file system types (added in AIDE v0.19,  Linux
     only).

     The syntax of restricted rules is as follows:

     Restricted regular rule

	<regex> <restriction expression> <attribute expression>

	Files  and  directories matching both the regular expression and the re-
	striction expression are added the database.

     Restricted recursive negative rule

	!<regex> <restriction expression>

	Files and directories matching both the regular expression and	the  re-
	striction  expression are excluded and NOT added the database. The chil-
	dren of directories and sub-directories are recursed into and  only  ex-
	cluded if they also match the regular expression as well as the restric-
	tion.

     Restricted non-recursive negative rule (added in AIDE v0.19)

	-<regex> <restriction expression>

	Files  and  directories matching both the regular expression and the re-
	striction expression are excluded and NOT added the database. The  chil-
	dren  of directories and sub-directories are not recursed into and hence
	not added to the database by any means.

     Restricted equals rule

	=<regex> <restriction expression> <attribute expression>

	Files and directories matching both the regular expression and	the  re-
	striction expression are added the database. The children of directories
	are  only  added if the regular expression ends with a "/". The children
	of sub-directories are not added to the database.

     Restriction expression

	An restriction expression is of the following form:

	<restriction expression>: <file types>
		     | =<file system type>
		     | <file types>=<file system type>

     File types

	The following file types are supported:

	   f	  restrict rule to regular files

	   d	  restrict rule to directories

	   l	  restrict rule to symbolic links

	   c	  restrict rule to character devices

	   b	  restrict rule to block devices

	   p	  restrict rule to FIFO files

	   s	  restrict rule to UNIX sockets

	   D	  restrict rule to Solaris doors

	   P	  restrict rule to Solaris event ports

	Multiple file type restrictions can be given as a comma-separated list.

     File system types (Linux only)

	The file system type restriction can be specified by file  system  types
	magic  number  (e.g.  '0x01021994'  for tmpfs) or by its name (use 'aide
	--version' to list the available file system type names). The magic num-
	ber must start with '0x' and be formatted in hexdecimal format.

     Empty restriction

	To explicitly don't restrict a rule use 0 (added in AIDE v0.18).

     Examples:

	/ d,f R

	   Only add directories and files to the database.

	/boot/efi$ d=vfat R

	   Only add /boot/efi to the database if it is a directory  and  mounted
	   on vfat.

	!/dev =0x01021994

	   Exclude  /dev and any children that are mounted on tmpfs (tmpfs magic
	   number: 0x01021994).

	-/dev =tmpfs

	   Exclude /dev and all children, if /dev is mounted on tmpfs.

MACRO LINES
     @@define VAR val
	    Define variable VAR to value val.

     @@undef VAR
	    Undefine variable VAR.

     @@if boolean_expression (added in AIDE v0.18)
     @@else
     @@endif
	    @@if begins an if statement. It must be terminated with  an  @@endif
	    statement.	 The  lines  between  @@if  and  @@endif are used if the
	    boolean_expression evaluates to true.  If there is an @@else  state-
	    ment  then	the  part between @@if and @@else is used if boolean_ex-
	    pression evaluates to true otherwise the  part  between  @@else  and
	    @@endif is used.

	    Available operators and functions in boolean expressions:

	       not boolean_expression
		  Evaluates  to  true  if  the	boolean_expression is false, and
		  false if the boolean_expression is true.

	       defined VARIABLE

		  Evaluates to true if VARIABLE is defined.

	       hostname HOSTNAME

		  Evaluates to true if HOSTNAME equals the hostname of	the  ma-
		  chine  that  AIDE  is  running on. hostname is the name of the
		  host without the domainname (ie 'hostname', not  'hostname.ex-
		  ample.com').

	       exists PATH

		  Evaluates to true if PATH exists.

	       VERSION_STRING1 version_ge VERSION_STRING2 (added in AIDE v0.19)

		  Evaluates  to true if VERSION_STRING1 is greater than or equal
		  to VERSION_STRING2 (e.g. 0.19.1 version_ge 0.18  evaluates  to
		  true	and  2.17  version_ge 1.1 to false). The version strings
		  must be in the formaat MAJOR.MINOR.PATCH (minor and patch ver-
		  sion can be omitted, any version suffix (e.g. for pre-release)
		  will be truncated).

     @@ifdef VARIABLE (DEPRECATED since AIDE v0.18, will be removed in AIDE
     v0.20)
	    same as @@if defined VARIABLE

     @@ifndef VARIABLE (DEPRECATED since AIDE v0.18, will be removed in AIDE
     v0.20)
	    same as @@if not defined VARIABLE

     @@ifhost HOSTNAME (DEPRECATED since AIDE v0.18, will be removed in AIDE
     v0.20)
	    same as @@if hostname HOSTNAME

     @@ifnhost HOSTNAME (DEPRECATED since AIDE v0.18, will be removed in AIDE
     v0.20)
	    same as @@if not hostname HOSTNAME

     @@{VAR}@@{VAR} is replaced with the value of the variable VAR.  If variable
	    VAR is not defined an empty string is used.

	    Variables are supported in strings and  in	regular  expressions  of
	    rules.

	    Pre-defined marco variables:

	       @@{AIDE_VERSION}: the version of AIDE

	       @@{HOSTNAME}: the hostname of the current system

     @@include FILE
	    Include FILE.

	    The  content of the file is used as if it were inserted in this part
	    of the config file.

	    The maximum depth of nested includes is 16.

     @@include DIRECTORY REGEX [RULE_PREFIX] (added in AIDE v0.17)
	    Include all (regular) files found in DIRECTORY matching regular  ex-
	    pression  REGEX (sub-directories are ignored). The file are included
	    in lexical sort order.

	    If RULE_PREFIX (added in AIDE v0.18) is set, all rules  included  by
	    the  statement  are  prefixed  with given RULE_PREFIX. Prefixes from
	    nested include statements are concatenated.

	    The content of the files is used as if it were inserted in this part
	    of the config file.

     @@x_include FILE (added in AIDE v0.17)
     @@x_include DIRECTORY REGEX [RULE_PREFIX]	(added in AIDE v0.17)
	    @x_include is identical to @@include, except that if a  config  file
	    is executable is is run and the output is used as config.

	    If the executable file exits with status greater than zero or writes
	    to stderr aide stops with an error.

	    For  security reasons DIRECTORY and each executable config file must
	    be owned by the current user or root. They must  not  be  group-  or
	    world-writable.

     @@x_include_setenv VAR VALUE (added in AIDE v0.17)

	    Adds  the  variable VAR with the value VALUE to the environment used
	    for config file execution.

	    Environment variable names are limited  to	alphanumeric  characters
	    (A-Za-z0-9) and the underscore '_' and must not begin with a digit.

TYPES
     bool
	Valid values are yes, true, no or false.

     attribute expression

	An attribute expression is of the following form:

	       <attribute expression>: <attribute/group>
		     | <attribute expression> + <attribute/group>
		     | <attribute expression> - <attribute/group>

     URLS
	Urls  can  be one of the following. Input urls cannot be used as outputs
	and vice versa.

	       stdout

	       stderr Output is sent to stdout, stderr respectively.

	       stdin  Input is read from stdin.

	       file:/path
		      Input is read from path or output is written to path.

	       fd:number
		      Input is read from  filedescriptor  number  or  output  is
		      written to number.

	       syslog:LOG_FACILITY
		      Output is written to syslog using LOG_FACILITY.

ATTRIBUTES
     File attributes

     ftype  file type (added in AIDE v0.15)

     fstype
	    file system type (Linux-only, added in AIDE v0.19)

     p	    permissions

     i	    inode

     l	    link name (symbolic links only)

     n	    number of links

     u	    user

     g	    group

     s	    size

     b	    block count

     m	    mtime

     a	    atime

     c	    ctime

     acl    access control list (requires libacl, Linux-only)

     selinux
	    selinux attributes (requires libselinux, Linux-only)

     xattrs
	    extended attributes (requires libattr, Linux-only)

     e2fsattrs
	    file  attributes  on  a  Linux  file  system,  see	also  report_ig-
	    nore_e2fsattrs  option (requires libext2fs, added in AIDE v0.15)

     caps   file capabilities (regular files only) (requires libcap, Linux-only,
	    added in AIDE v0.17)

     Use 'aide --version' to show which compiled-in attributes are available.

     Special attributes

     S	    check for growing size (DEPRECATED since AIDE v0.18, will be removed
	    in AIDE v0.20)

	    Use growing+s attributes instead

     I	    ignore changed filename

	    When I is used, the inode of the new file is used to  search  for  a
	    moved source file in the old database.

	    Source  and target file have to be located in the same directory and
	    must share the same attributes (except for special	attributes  ANF,
	    ARF, I, growing, and compressed).

	    For moved entries a change of the ctime attribute is ignored.

     growing
	    ignore growing file (added in AIDE v0.18)

	    When  growing  is  used, changes of the following attributes are ig-
	    nored:

	    size: if new size is greater than old size

	    bcount: if new bcount is greater than old bcount

	    atime: if new atime is greater than old atime

	    mtime: if new mtime is greater than old mtime

	    ctime: if new ctime is greater than old ctime

	    hashsums: if the hashsum of the new file restricted to the old  size
	    equals the hashsums of the old file

	    For  hashsum  attributes the growing attribute is ignored in compare
	    mode.

     compressed
	    ignore compressed file (added in AIDE v0.18)

	    When compressed is used, the uncompressed hashsums of the  new  com-
	    pressed  file  (supported compressions: gzip) are used to search for
	    the uncompressed file in the old database.

	    The old uncompressed and the new compressed file have to be  located
	    in the same directory and must share the same attributes (except for
	    special  attributes  ANF, ARF, I, growing, and compressed) including
	    at least one common hashsum.

	    Changes of the inode, size, bcount and ctime attributes are ignored.

	    The growing attribute (i.e. the old file size) is not considered for
	    compressed files during the calculation of	the  uncompressed  hash-
	    sums.

	    The compressed attribute is ignored in compare mode.

     ANF    allow new files

	    When 'ANF' is used, new files are added to the new database, but are
	    ignored in the report.

     ARF    allow removed files

	    When  'ARF'  is used, files missing on disk are omitted from the new
	    database, but are ignored in the report.

     Hashsums attributes (regular files only)

	sha256
	       SHA-256 checksum

	sha512
	       SHA-512 checksum

	sha512_256 (added in AIDE v0.19)
	       SHA-512 checksum truncated to 256 output bits

	sha3_256 (added in AIDE v0.19)
	       SHA3-256 checksum

	sha3_512 (added in AIDE v0.19)
	       SHA3-512 checksum

	stribog256 (added in AIDE v0.17)
	       GOST R 34.11-2012, 256 bit checksum

	stribog512 (added in AIDE v0.17)
	       GOST R 34.11-2012, 512 bit checksum

	md5 (DEPRECATED since AIDE v0.19, will be removed in AIDE v0.21)
	       MD5 checksum (not in libgcrypt FIPS mode)

	sha1 (DEPRECATED since AIDE v0.19, will be removed in AIDE v0.21)
	       SHA-1 checksum

	rmd160 (DEPRECATED since AIDE v0.19, will be removed in AIDE v0.21)
	       RIPEMD-160 checksum

	gost (DEPRECATED since AIDE v0.19, will be removed in AIDE v0.21)
	       GOST R 34.11-94 checksum

	crc32 (REMOVED in AIDE v0.19)
	       crc32 checksum

	crc32b (REMOVED in AIDE v0.19)
	       crc32 checksum

	haval (REMOVED in AIDE v0.19)
	       haval256 checksum

	tiger (REMOVED in AIDE v0.19)
	       tiger checksum

	whirlpool (REMOVED in AIDE v0.19)
	       whirlpool checksum

	Use 'aide --version' to show which hashsums are available.

	Hashsum transitions (since AIDE v0.19):

	AIDE has limited support for hashsum transitions (i.e. ensuring  hashsum
	validation  when  hashsums  are added/removed from existing entries). If
	both the old and the new entry do mot share common hashsum(s) AIDE tries
	to additionally calculate the removed hashsum(s) also for the new  entry
	(this  is  especieally	not  supported	for moved (I attribute) and com-
	pressed (compressed attribute) entries).

EXAMPLES
     / R    This adds all files on your machine to the database.  This one  line
	    is a fully qualified configuration file.

     !/dev$
	    This ignores the /dev directory structure.

     =/foo R
	    Only  /foo	and  /foobar are taken into the database.  None of their
	    children are added.

     =/foo/ R
	    Only /foo and its children (e.g. /foo/file and  /foo/directory)  are
	    taken  into  the  database.   The  children of sub-directories (e.g.
	    /foo/directory/bar) are not added.

     / d,f R
	    Only add directories and files to the database

     !/run d
     /run R
	    Add all but directory entries to the database

     /run d R-m-c-i
     /run R
	    Use specific rule for directories

     Suggested Groups

     OwnerMode = p+u+g+ftype
	    Check permissions, owner, group and file type

     Size = s+b
	    Check size and block count

     InodeData = OwnerMode+n+i+Size+l+X
     StaticFile = m+c+Checksums
	    Files that stay static

     Full = InodeData+StaticFile
     Full = ftype+p+l+u+g+s+m+c+a+i+b+n+H+X
     / 0 Full
	    This line defines group Full.  It has all attributes,  all	compiled
	    in	hashsums (H) and all compiled in extra file attributes (X).  See
	    '--version' output for the compiled in hashsums  and  extra  groups.
	    The  example  rule	is  the typical catch-all rule at the end of the
	    rule list.

     VarTime = InodeData+Checksums
     /etc/ssl/certs/ca-certificates\\.crt$ VarTime
	    Files that change their mtimes or ctimes but not their contents.

     VarInode = VarTime-i
     /var/lib/nfs/etab$ f VarInode
	    Files that are recreated regularly but do not change their contents

     VarFile = OwnerMode+n+l+X
     /etc/resolv\\.conf$ f VarFile
	    Files that change their contents during system operation

     VarDir = OwnerMode+n+i+X
     /var/lib/snmp$ d VarDir
	    Directories that change their contents during system operation

     RecreatedDir = OwnerMode+n+X
     /run/samba$ d RecreatedDir
	    Directories that are recreated regularly and change their contents

     Log Handling

     Logs pose a number of special challenges to AIDE.	An active log is  nearly
     constantly  being	written  to.   The  process of log rotation changes file
     names for files that are supposed to  have  unaltered  contents.	To  save
     space,  Logs  are compressed in the process of their rotation, and finally,
     they get deleted.	AIDE is supposed to handle all those cases without  gen-
     erating  reports,	and  it  is still expected to flag the cases when an at-
     tacker tampers with logs.

     The following examples suggest a way to handle the common case of log rota-
     tion with the logrotate(8)  program,  with  its  options  compress,  delay-
     compress  and  nocopytruncate  set.   The vast majority of logs are rotated
     this way on most Linux systems.

     ActLog=Full+growing+ANF+I
     /var/log/foo\\.log$ f ActLog
	    An Active Log is typically named foo.log.	It  is	constanty  being
	    written  to.   The	file  does neither change its mode nor its inode
	    number.  The size only increases, and what is written to the file is
	    not supposed to change (growing).  During log rotation,  foo.log  is
	    typically renamed to foo.log.1 (or foo.log.0) and the process is in-
	    structed to write to a new foo.log.  Log content is written to a new
	    file  (ANF)  and  will  eventually be renamed to foo.log.1 (I).  The
	    growing attribute suppresses reports for files that just had content
	    appended when compared to the database.  A change of the old content
	    is still reported!

     RotLog=Full
     /var/log/foo\\.log\\.1$ f RotLog
	    foo.log.0 or foo.log.1 is called the Rotated Log, the previously ac-
	    tive log renamed to the first name of the Log Series that is  formed
	    by	the  rotation  mechanism.   Right after rotation, the file might
	    still being written to by the daemon.  To aide, this looks like  the
	    Active  Log's  size  decreases  and its inode and timestamps change.
	    The Rotated Log is not supposed to change its  attributes  once  the
	    process  has  stopped  writing to it.  Reports might be generated if
	    aide runs while the process still writes to  the  Rotated  Log,  but
	    this  is quite unlikely to happen.	Some log rotation mechanisms re-
	    name foo.log to foo.log.0 to foo.log.1.gz, others rename foo.log  to
	    foo.log.1 to foo.2.log.gz.

     CompSerLog=Full+I+compressed
     /var/log/foo\\.log\\.2\\.gz$ f CompSerLog
	    In	 the   next   rotation	 step,	 foo.log.1  gets  compressed  to
	    foo.log.2.gz, becoming the Compressed Log in the Log  Series.   With
	    this  rule,  AIDE  does not report this step because it uncompresses
	    the contents of the file and takes the checksum of the  uncompressed
	    content.   The  contents strictly doesn't change, but some attribute
	    changes are ignored (compressed).

     MidlSerLog=Full+I
     /var/log/foo\\.log\\.[345]\\.gz$ f MidlSerLog
	    In	the  next  log	rotation,  all	foo.log.{x}   get   renamed   to
	    foo.log.{x+1}.  The other attributes are not supposed to change.

     LastSerLog=Full+ARF
     /var/log/foo\\.log\\.6\\.gz$ f LastSerLog
	    The  configuration of the log rotation process specifies a number of
	    log generations to keep. The last log in the series is therefore re-
	    moved from the disk (ARF).

     aide 0.18 does not yet support the following cases of log rotation:

     empty files
	    It might be the case that a log is actually created, but never writ-
	    ten to.  This commonly happens on rarely used web servers  that  use
	    the  log  rotation	as a method to cater for data protection regula-
	    tion.  In result, all files in a series are identical, breaking  the
	    heuristics	that  aide  uses  to  detect  log  rotation.  A possible
	    workaround is to begin a newly rotated log with a  timestamp.   With
	    logrotate, this can be done in a postrotate scriptlet.

     nodelaycompress
	    With  logrotate's  nodelaycompress option, a log is immediately com-
	    pressed after renaming it from the Active Log name.   For  the  time
	    being,  it	is recommended to always use the delaycompress option to
	    avoid this behavior.

     copytruncate
	    With logrotate's copytruncate option, the Active Log is not  renamed
	    and  newly	created but copied to the new file name.  After the copy
	    operation, the old file is truncated to zero size, allowing the dae-
	    mon to continuously write to the already  open  file  handle.   aide
	    uses  the Inode number to detect the rotation process.  That doesn't
	    work with copytruncate because the Inode stays with the Active  Log.
	    For  the time being, it is recommended to avoid the copytruncate op-
	    tion to avoid this behavior.

HINTS
     In the following, the first is not allowed in AIDE. Use the latter instead.

	    /foo epug

	    /foo e+p+u+g

SEE ALSO
     aide(1)

DISCLAIMER
     All trademarks are the property of their  respective  owners.   No  animals
     were harmed while making this webpage or this piece of software.

aide v0.19.2			   2025-08-13			    AIDE.CONF(5)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=aide.conf&sektion=5&manpath=FreeBSD+15.1-RELEASE+and+Ports>

home | help