title: apt_preferences(5)

summary: Preference control file for APT

text:
# apt_preferences(5)

## NAME
apt_preferences - Preference control file for APT

## DESCRIPTION
The APT preferences file /etc/apt/preferences can be used to control which versions of packages will be selected for installation.

Several versions of a package may be available for installation when the sources.list(5) file contains references to more than one distribution (for example, stable and testing). APT assigns a priority to each version that is available. Subject to dependency constraints, apt-get selects the version with the highest priority for installation. The APT preferences file overrides the priorities that APT assigns to package versions by default, thus giving the user control over which one is selected for installation.

Several instances of the same version of a package may be available when the sources.list(5) file contains references to more than one source. In this case apt-get downloads the instance listed earliest in the sources.list(5) file. The APT preferences file does not affect the choice of instance, only the choice of version.

### APT'S DEFAULT PRIORITY ASSIGNMENTS
If there is no preferences file or if there is no entry in the file that applies to a particular version then the priority assigned to that version is the priority of the distribution to which that version belongs. It is possible to single out a distribution, "the target release", which receives a higher priority than other distributions do by default. The target release can be set on the apt-get command line or in the APT configuration file /etc/apt/apt.conf. For example,

```
apt-get install -t testing some-package
```

```
APT::Default-Release "stable";
```

If the target release has been specified then APT uses the following algorithm to set the priorities of the versions of a package. Assign:

priority 100

to the version that is already installed (if any).

priority 500

to the versions that are not installed and do not belong to the target release.

priority 990

to the versions that are not installed and belong to the target release.

If the target release has not been specified then APT simply assigns priority 100 to all installed package versions and priority 500 to all uninstalled package versions.

APT then applies the following rules, listed in order of precedence, to determine which version of a package to install.

•

Never downgrade unless the priority of an available version exceeds 1000. ("Downgrading" is installing a less recent version of a package in place of a more recent version. Note that none of APT's default priorities exceeds 1000; such high priorities can only be set in the preferences file. Note also that downgrading a package can be risky.)

•

Install the highest priority version.

•

If two or more versions have the same priority, install the most recent one (that is, the one with the higher version number).

•

If two or more versions have the same priority and version number but either the packages differ in some of their metadata or the --reinstall option is given, install the uninstalled one.

In a typical situation, the installed version of a package (priority 100) is not as recent as one of the versions available from the sources listed in the sources.list(5) file (priority 500 or 990). Then the package will be upgraded when apt-get install some-package or apt-get upgrade is executed.

More rarely, the installed version of a package is more recent than any of the other available versions. The package will not be downgraded when apt-get install some-package or apt-get upgrade is executed.

Sometimes the installed version of a package is more recent than the version belonging to the target release, but not as recent as a version belonging to some other distribution. Such a package will indeed be upgraded when apt-get install some-package or apt-get upgrade is executed, because at least one of the available versions has a higher priority than the installed version.

### THE EFFECT OF APT PREFERENCES
The APT preferences file allows the system administrator to control the assignment of priorities. The file consists of one or more multi-line records separated by blank lines. Records can have one of two forms, a specific form and a general form.

•

The specific form assigns a priority (a "Pin-Priority") to a specified package and specified version or version range. For example, the following record assigns a high priority to all versions of the perl package whose version number begins with "5.8".

```
Package: perl
Pin: version 5.8*
Pin-Priority: 1001

```

•

The general form assigns a priority to all of the package versions in a given distribution (that is, to all the versions of packages that are listed in a certain Release file) or to all of the package versions coming from a particular Internet site, as identified by the site's fully qualified domain name. This general-form entry in the APT preferences file applies only to groups of packages. For example, the following record assigns a high priority to all package versions available from the local site.

```
Package: *
Pin: origin ""
Pin-Priority: 999

```

A note of caution: the keyword used here is "origin". This should not be confused with the Origin of a distribution as specified in a Release file. What follows the "Origin:" tag in a Release file is not an Internet address but an author or vendor name, such as "Debian" or "Ximian".

The following record assigns a low priority to all package versions belonging to any distribution whose Archive name is "unstable".

```
Package: *
Pin: release a=unstable
Pin-Priority: 50

```

The following record assigns a high priority to all package versions belonging to any release whose Archive name is "stable" and whose release Version number is "3.0".

```
Package: *
Pin: release a=unstable, v=3.0
Pin-Priority: 50

```

### HOW APT INTERPRETS PRIORITIES
Priorities (P) assigned in the APT preferences file must be positive or negative integers. They are interpreted as follows (roughly speaking):

P > 1000

causes a version to be installed even if this constitutes a downgrade of the package

990 < P <=1000

causes a version to be installed even if it does not come from the target release, unless the installed version is more recent

500 < P <=990

causes a version to be installed unless there is a version available belonging to the target release or the installed version is more recent

100 < P <=500

causes a version to be installed unless there is a version available belonging to some other distribution or the installed version is more recent

0 < P <=100

causes a version to be installed only if there is no installed version of the package

P < 0

prevents the version from being installed

If any specific-form records match an available package version then the first such record determines the priority of the package version. Failing that, if any general-form records match an available package version then the first such record determines the priority of the package version.

For example, suppose the APT preferences file contains the three records presented earlier:

```
Package: perl
Pin: version 5.8*
Pin-Priority: 1001
Package: *
Pin: origin ""
Pin-Priority: 999
Package: *
Pin: release unstable
Pin-Priority: 50
```

Then: •

The most recent available version of the perl package will be installed, so long as that version's version number begins with "5.8". If any 5.8* version of perl is available and the installed version is 5.9*, then perl will be downgraded.

•

A version of any package other than perl that is available from the local system has priority over other versions, even versions belonging to the target release.

•

A version of a package whose origin is not the local system but some other site listed in sources.list(5) and which belongs to an unstable distribution is only installed if it is selected for installation and no version of the package is already installed.

### DETERMINATION OF PACKAGE VERSION AND DISTRIBUTION PROPERTIES
The locations listed in the sources.list(5) file should provide Packages and Release files to describe the packages available at that location.

The Packages file is normally found in the directory .../dists/dist-name/component/arch: for example, .../dists/stable/main/binary-i386/Packages. It consists of a series of multi-line records, one for each package available in that directory. Only two lines in each record are relevant for setting APT priorities:

the Package: line

gives the package name

the Version: line

gives the version number for the named package

The Release file is normally found in the directory .../dists/dist-name: for example, .../dists/stable/Release, or .../dists/woody/Release. It consists of a single multi-line record which applies to all of the packages in the directory tree below its parent. Unlike the Packages file, nearly all of the lines in a Release file are relevant for setting APT priorities:

the Archive: line

names the archive to which all the packages in the directory tree belong. For example, the line "Archive: stable" specifies that all of the packages in the directory tree below the parent of the Release file are in a stable archive. Specifying this value in the APT preferences file would require the line:

```
Pin: release a=stable

```

the Version: line

names the release version. For example, the packages in the tree might belong to Debian GNU/Linux release version 3.0. Note that there is normally no version number for the testing and unstable distributions because they have not been released yet. Specifying this in the APT preferences file would require one of the following lines.

```
Pin: release v=3.0
Pin: release a=stable, v=3.0
Pin: release 3.0

```

the Component: line

names the licensing component associated with the packages in the directory tree of the Release file. For example, the line "Component: main" specifies that all the packages in the directory tree are from the main component, which entails that they are licensed under terms listed in the Debian Free Software Guidelines. Specifying this component in the APT preferences file would require the line:

```
Pin: release c=main

```

the Origin: line

names the originator of the packages in the directory tree of the Release file. Most commonly, this is Debian. Specifying this origin in the APT preferences file would require the line:

```
Pin: release o=Debian

```

the Label: line

names the label of the packages in the directory tree of the Release file. Most commonly, this is Debian. Specifying this label in the APT preferences file would require the line:

```
Pin: release l=Debian

```

All of the Packages and Release files retrieved from locations listed in the sources.list(5) file are stored in the directory /var/lib/apt/lists, or in the file named by the variable Dir::State::Lists in the apt.conf file. For example, the file debian.lcs.mit.edu_debian_dists_unstable_contrib_binary-i386_Release contains the Release file retrieved from the site debian.lcs.mit.edu for binary-i386 architecture files from the contrib component of the unstable distribution.

### OPTIONAL LINES IN AN APT PREFERENCES RECORD
Each record in the APT preferences file can optionally begin with one or more lines beginning with the word Explanation:. This provides a place for comments.

The Pin-Priority: line in each APT preferences record is optional. If omitted, APT assigs a priority of 1 less than the last value specified on a line beginning with Pin-Priority: release ....

## EXAMPLES

### TRACKING STABLE
The following APT preferences file will cause APT to assign a priority higher than the default (500) to all package versions belonging to a stable distribution and a prohibitively low priority to package versions belonging to other Debian distributions.

```
Explanation: Uninstall or do not install any Debian-originated
Explanation: package versions other than those in the stable distro
Package: *
Pin: release a=stable
Pin-Priority: 900
Package: *
Pin: release o=Debian
Pin-Priority: -10
```

With a suitable sources.list(5) file and the above preferences file, any of the following commands will cause APT to upgrade to the latest stable version(s).

```
apt-get install package-name
apt-get upgrade
apt-get dist-upgrade
```

The following command will cause APT to upgrade the specified package to the latest version from the testing distribution; the package will not be upgraded again unless this command is given again.

```
apt-get install package/testing
```

### TRACKING TESTING OR UNSTABLE
The following APT preferences file will cause APT to assign a high priority to package versions from the testing distribution, a lower priority to package versions from the unstable distribution, and a prohibitively low priority to package versions from other Debian distributions.

```
Package: *
Pin: release a=testing
Pin-Priority: 900
Package: *
Pin: release a=unstable
Pin-Priority: 800
Package: *
Pin: release o=Debian
Pin-Priority: -10
```

With a suitable sources.list(5) file and the above preferences file, any of the following commands will cause APT to upgrade to the latest testing version(s).

```
apt-get install package-name
apt-get upgrade
apt-get dist-upgrade
```

The following command will cause APT to upgrade the specified package to the latest version from the unstable distribution. Thereafter, apt-get upgrade will upgrade the package to the most recent testing version if that is more recent than the installed version, otherwise, to the most recent unstable version if that is more recent than the installed version.

```
apt-get install package/unstable
```

## SEE ALSO
apt-get(8) apt-cache(8) apt.conf(5) sources.list(5)

## BUGS
Reporting bugs in APT-RPM is best done in the APT-RPM mailinglist <URL:http://apt-rpm.org/mailinglist.shtml>.

## AUTHOR
Maintainer and contributor information can be found in the credits page <URL:http://apt-rpm.org/about.shtml> of APT-RPM.


sources.list

package: apt

title: sources.list(5)

summary: Package resource list for APT

text:
# sources.list(5)

## NAME
sources.list - Package resource list for APT

## DESCRIPTION
The package resource list is used to locate archives of the package distribution system in use on the system. At this time, this manual page documents only the packaging system used by the Debian GNU/Linux system. This control file is located in /etc/apt/sources.list

The source list is designed to support any number of active sources and a variety of source media. The file lists one source per line, with the most preferred source listed first. The format of each line is: type uri args. The first item, type, determines the format for args. uri is a Universal Resource Identifier (URI), which is a superset of the more specific and well-known Universal Resource Locator, or URL. The rest of the line can be marked as a comment by using a #.

## THE DEB AND DEB-SRC TYPES
The deb type describes a typical two-level Debian archive, distribution/component. Typically, distribution is generally one of stable, unstable, or testing, while component is one of main, contrib, non-free, or non-us. The deb-src type describes a debian distribution's source code in the same form as the deb type. A deb-src line is required to fetch source indexes.

The format for a sources.list entry using the deb and deb-src types are:

```
deb uri distribution [component1] [component2] [...]
```

The URI for the deb type must specify the base of the Debian distribution, from which APT will find the information it needs. distribution can specify an exact path, in which case the components must be omitted and distribution must end with a slash (/). This is useful for when only a particular sub-section of the archive denoted by the URI is of interest. If distribution does not specify an exact path, at least one component must be present.

distribution may also contain a variable, $(ARCH), which expands to the Debian architecture (i386, m68k, powerpc, ...) used on the system. This permits architecture-independent sources.list files to be used. In general this is only of interest when specifying an exact path, APT will automatically generate a URI with the current architecture otherwise.

Since only one distribution can be specified per line it may be necessary to have multiple lines for the same URI, if a subset of all available distributions or components at that location is desired. APT will sort the URI list after it has generated a complete set internally, and will collapse multiple references to the same Internet host, for instance, into a single connection, so that it does not inefficiently establish an FTP connection, close it, do something else, and then re-establish a connection to that same host. This feature is useful for accessing busy FTP sites with limits on the number of simultaneous anonymous users. APT also parallelizes connections to different hosts to more effectively deal with sites with low bandwidth.

It is important to list sources in order of preference, with the most preferred source listed first. Typically this will result in sorting by speed from fastest to slowest (CD-ROM followed by hosts on a local network, followed by distant Internet hosts, for example).

Some examples:

```
deb http://http.us.debian.org/debian stable main contrib non-free
deb http://http.us.debian.org/debian dists/stable-updates/

```

## URI SPECIFICATION
The currently recognized URI types are cdrom, file, http, and ftp.

file

The file scheme allows an arbitrary directory in the file system to be considered an archive. This is useful for NFS mounts and local mirrors or archives.

cdrom

The cdrom scheme allows APT to use a local CDROM drive with media swapping. Use the apt-cdrom(8) program to create cdrom entries in the source list.

http

The http scheme specifies an HTTP server for the archive. If an environment variable http_proxy is set with the format http://server:port/, the proxy server specified in http_proxy will be used. Users of authenticated HTTP/1.1 proxies may use a string of the format http://user:pass@server:port/ Note that this is an insecure method of authentication.

ftp

The ftp scheme specifies an FTP server for the archive. APT's FTP behavior is highly configurable; for more information see the apt.conf(5) manual page. Please note that a ftp proxy can be specified by using the ftp_proxy environment variable. It is possible to specify a http proxy (http proxy servers often understand ftp urls) using this method and ONLY this method. ftp proxies using http specified in the configuration file will be ignored.

copy

The copy scheme is identical to the file scheme except that packages are copied into the cache directory instead of used directly at their location. This is useful for people using a zip disk to copy files around with APT.

rsh

ssh

The rsh/ssh method invokes rsh/ssh to connect to a remote host as a given user and access the files. No password authentication is possible, prior arrangements with RSA keys or rhosts must have been made. Access to files on the remote uses standard find and dd commands to perform the file transfers from the remote.

## EXAMPLES
Uses the archive stored locally (or NFS mounted) at /home/jason/debian for stable/main, stable/contrib, and stable/non-free.

```
deb file:/home/jason/debian stable main contrib non-free
```

As above, except this uses the unstable (development) distribution.

```
deb file:/home/jason/debian unstable main contrib non-free
```

Source line for the above

```
deb-src file:/home/jason/debian unstable main contrib non-free
```

Uses HTTP to access the archive at archive.debian.org, and uses only the hamm/main area.

```
deb http://archive.debian.org/debian-archive hamm main
```

Uses FTP to access the archive at ftp.debian.org, under the debian directory, and uses only the stable/contrib area.

```
deb ftp://ftp.debian.org/debian stable contrib
```

Uses FTP to access the archive at ftp.debian.org, under the debian directory, and uses only the unstable/contrib area. If this line appears as well as the one in the previous example in sources.list, a single FTP session will be used for both resource lines.

```
deb ftp://ftp.debian.org/debian unstable contrib
```

Uses HTTP to access the archive at nonus.debian.org, under the debian-non-US directory.

```
deb http://nonus.debian.org/debian-non-US stable/non-US main contrib non-free
```

Uses HTTP to access the archive at nonus.debian.org, under the debian-non-US directory, and uses only files found under unstable/binary-i386 on i386 machines, unstable/binary-m68k on m68k, and so forth for other supported architectures. [Note this example only illustrates how to use the substitution variable; non-us is no longer structured like this]

```
deb http://ftp.de.debian.org/debian-non-US unstable/binary-$(ARCH)/
```

## SEE ALSO
apt-cache(8) apt.conf(5)

## BUGS
Reporting bugs in APT-RPM is best done in the APT-RPM mailinglist <URL:http://apt-rpm.org/mailinglist.shtml>.

## AUTHOR
Maintainer and contributor information can be found in the credits page <URL:http://apt-rpm.org/about.shtml> of APT-RPM.

branch: sisyphus


vendors.list

title: vendors.list(5)

summary: Security key configuration for APT

text:
# vendors.list(5)

## NAME
vendors.list - Security key configuration for APT

## DESCRIPTION
The package vendor list contains a list of all vendors from whom you wish to authenticate downloaded packages. For each vendor listed, it must contain the corresponding PGP key fingerprint, so that APT can perform signature verification of the release file and subsequent checking of the checksums of each downloaded package. To have authentication enabled, you must add the vendor identification string (see below) enclosed in square braces to the sources.list line for all sites that mirror the repository provided by that vendor.

The format of this file is similar to the one used by apt.conf. It consists of an arbitrary number of blocks of vendors, where each block starts with a string telling the key_type and the vendor_id.

Some vendors may have multiple blocks that define different security policies for their distributions. Debian for instance uses a different signing methodology for stable and unstable releases.

key_type is the type of the check required. Currently, there is only one type available which is simple-key.

vendor_id is the vendor identification string. It is an arbitrary string you must supply to uniquely identifify a vendor that's listed in this file. Example:

```
simple-key "joe"
{

   Fingerprint "0987AB4378FSD872343298787ACC";

   Name "Joe Shmoe <joe@shmoe.com>";
}
```

## THE SIMPLE-KEY TYPE
This type of verification is used when the vendor has a single secured key that must be used to sign the Release file. The following items should be present

Fingerprint

The PGP fingerprint for the key. The fingerprint should be expressed in the standard notion with or without spaces. The --fingerprint option for gpg(1) will show the fingerprint for the selected keys(s).

Name

A string containing a description of the owner of the key or vendor. You may put the vendor name and it's email. The string must be quoted with ".

## FILES
/etc/apt/vendors.list

## SEE ALSO
sources.list(5)

## BUGS
Reporting bugs in APT-RPM is best done in the APT-RPM mailinglist <URL:http://apt-rpm.org/mailinglist.shtml>.

## AUTHOR
Maintainer and contributor information can be found in the credits page <URL:http://apt-rpm.org/about.shtml> of APT-RPM.


aoxsuper.conf

package: archiveopteryx

title: aoxsuper.conf(5)

text:
# aoxsuper.conf(5)

## NAME
aoxsuper.conf - configuration file for Archiveopteryx.

## SYNOPSIS
/etc/archiveopteryx/aoxsuper.conf

## DESCRIPTION
The aoxsuper.conf file contains a few configuration settings for Archiveopteryx. It is read by aox(8) at startup. Syntax errors, unknown variables, and other errors are logged on stderr.

aoxsuper.conf is usually created at installation time, by running /usr/lib64/archiveopteryx/installer.

There is only one required variable, namely db-owner-password.

## SECURITY NOTE
Anyone who can read aoxsuper.conf can see the database owner password, and use this password to read all mail, or even to damage or destroy the mail database.

By default, aoxsuper.conf is readable only by root.

## SETTINGS
The format is as for archiveopteryx.conf(5):

name = value # comment

All variables in archiveopteryx.conf(5) may be overridden in aoxsuper.conf, if it is necessary that aox(8) sees a different value than the servers see.

### Database Access
db-owner

The name of the Postgres user that owns the database and is used to perform privileged operations (such as deleting mail). The default is aoxsuper.

db-owner-password

The database password used for the db-owner. The default is an empty string.

Unless a password is specified, the Archiveopteryx installer sets up a randomly-chosen password and writes it to the configuration file.

## AUTHOR
The Archiveopteryx Developers, info@aox.org.

## VERSION
This man page covers Archiveopteryx version 3.1.3, released 2010-03-10, http://archiveopteryx.org/3.1.3

## SEE ALSO
archiveopteryx.conf(5), archiveopteryx(8), deliver(8), logd(8), http://archiveopteryx.org


archiveopteryx.conf

title: archiveopteryx.conf(5)

text:
# archiveopteryx.conf(5)

## NAME
archiveopteryx.conf - configuration file for Archiveopteryx.

## SYNOPSIS
/etc/archiveopteryx/archiveopteryx.conf

## DESCRIPTION
The archiveopteryx.conf file contains most global configuration settings for Archiveopteryx. It is read by each server at startup. Syntax errors, unknown variables, and other errors are logged via logd(8).

archiveopteryx.conf and its sibling aoxsuper.conf(5) are usually created at installation time, by running /usr/lib64/archiveopteryx/installer.

There is only one required variable, namely db-password.

## SECURITY NOTE
Anyone who can read archiveopteryx.conf can see the database user password, and use this password to read all mail and in many cases even delete mail.

By default, archiveopteryx.conf is readable only by root.

## SETTINGS
All settings share a common format:

name = value # comment

For the *-address variables, the value may be either a hostname, an IPv4 or IPv6 address, the fully-qualified path to a Unix socket. For imap-address and a few other variables, the empty string is also allowed, meaning "all IPv4/6 addresses of this host".

### General Settings
hostname

Most of the servers need to know the fully-qualified hostname. The default is computed at runtime and is normally acceptable.

Note that if the name is "localhost", there may be problems with TLS. An IMAP/POP/SMTP client may refuse a server certificate for "localhost" if it already has seen a different certificate for "localhost". We strongly suggest using a different hostname.

use-ipv4

decides whether the various servers accept IPv4 connections. true by default.

use-ipv6

decides whether the various servers accept IPv6 connections. true by default.

undelete-time

is the number of days a message can be undeleted after being deleted, 49 by default.

server-processes

is the number of processes started to serve IMAP/POP clients. This is 1 by default. 1 is suitable for a small server.

The server-processes setting should be about as large as the number of CPUs available, perhaps a little larger. We advise asking info@aox.org in unusual cases.

### Database Access
db

The type of database. The default, postgres, is currently the only supported value.

db-address

The address of the database server. The default is 127.0.0.1.

db-port

The port number of the database server. The default is 5432.

db-name

The name of the database to use. The default is archiveopteryx.

db-schema

The name of the schema in the database where the database objects are installed. The default is public. It is safe to ignore this setting.

db-user

The name of the unprivileged Postgres user that the servers ordinarily use. The default is aox.

db-password

The database password used for the db-user. The default is an empty string.

Unless a password is specified, Archiveopteryx sets up a randomly-chosen password and writes it to the configuration file during installation.

db-max-handles

The maximum number of database handles that Archiveopteryx may open. The default is 4.

The server creates one handle at startup, and may create others if the load justifies it (and as controlled by db-handle-interval). Note, however, that when running with security=on, new database handles can be created only if you connect to the server using TCP/IP, not via Unix sockets. In the latter case, the server must use the first handle throughout its lifetime, since the socket is no longer accessible after chroot.

db-handle-interval

The minimum interval (in seconds) between the creation of new database handles. The default is 120.

### Logging
log-address

The address of the log server. The default is 127.0.0.1.

log-port

The port number at which logd(8) listens, and to which the other servers connect. The default is 2054.

logfile

tells logd(8) where to write log events. It may be set to an absolute file name (starting with '/'), or to "syslog/category" (e.g. "syslog/local2"), which logs via syslog(2), or to -, which causes everything to be logged to stdout. The default is to log to syslog/mail.

logfile-mode

is 400 by default and controls the permissions used by logd(8) if it creates logfile. The format (three octal digits) is the same as that used by chmod(1).

log-level

may be set to debug, info, significant, or error, in increasing order of severity (it is significant by default). If a message is logged with this severity or above, the log server writes it to the logfile immediately. Messages with lower severity are discarded.

### Security
security

is enabled by default, and should be enabled whenever Archiveopteryx is used in production. It causes the servers to lock themselves into a chroot jail and run with very limited unix and database privileges. Most notably, they cannot open files or delete messages.

Turning security off has exactly one advantage: it simplifies debugging.

allow-plaintext-access

controls whether it is possible to read mail via an unencrypted connection. The default value is always. If this is changed to localhost, plaintext connections are permitted only from the host itself. If it is changed to never, TLS is necessary to read mail.

jail-directory

is /var/lib/archiveopteryx by default. On startup, each secure server uses chroot(2) to jail themselves into this directory, to which the jail-user should have minimal rights (only o+x permissions).

jail-user

is the user name under which the servers run, and is aox by default. On startup, the servers change UID to this user. This user should not have read or write access to the jail directory.

jail-group

is the group name under which the servers run, and is aox by default. On startup, the servers change GID to this user.

entropy-source

is the fully-qualified name of a file that acts as a source for random bytes, whenever they are needed (e.g. SASL challenges). Set to /dev/urandom by default. If this is instead set to /dev/random, Archiveopteryx never uses anything less than perfectly random numbers. In this case, make sure that there's enough entropy, or else a series of rapid login attempts can block the entire server.

### User Authentication
http://archiveopteryx.org/sasl describes SASL and authentication in more detail.

allow-plaintext-passwords

controls whether the servers permit plaintext passwords, and how such passwords are handled. May be set to always (which is the default) or never. (Future versions of Archiveopteryx will offer more settings.)

auth-digest-md5

controls whether the servers offer the digest-md5 SASL mechanism. Disabled by default due to interoperability problems.

auth-cram-md5

controls whether the servers offer the cram-md5 SASL mechanism. Enabled by default.

auth-plain

controls whether the servers offer the plain-text SASL mechanism. Enabled by default.

Note that disabling auth-plain doesn't disable all plaintext passwords, since SASL isn't always used. To disable plaintext passwords, use the allow-plaintext-passwords variable above.

auth-anonymous

controls whether the servers offer anonymous login, disabled by default.

### Mail delivery
use-lmtp

controls whether archiveopteryx(8) should accept mail via LMTP (RFC 2033). The default is enabled.

lmtp-address

specifies the address where archiveopteryx(8) should listen for LMTP connections, and to which deliver(8) should connect. The default is 127.0.0.1.

lmtp-port

specifies which port archiveopteryx(8) should listen to, and which port deliver(8) should connect to. The default is 2026.

use-smtp

controls whether archiveopteryx(8) should accept mail via SMTP/ESMTP (RFC 2821/1869). SMTP is disabled by default.

smtp-address

specifies the address where archiveopteryx(8) should listen for SMTP connections The default is an empty string, which means all available IPv4 and IPv6 interfaces.

smtp-port

specifies which port archiveopteryx(8) should listen to. The default is 25.

use-subaddressing

controls whether messages addressed to user+tag@example.org are accepted for delivery to user@example.org (if the latter is a valid recipient address). The default is false.

address-separator

is the character that separates the username from the subaddress in a localpart, e.g. the + in user+tag@example.org. The default, which you should not need to change, is +. This setting is relevant only if use-subaddressing is true.

soft-bounce

specifies whether a delivery problem causes a message to be rejected permanently (soft-bounce disabled) or queued at the MTA (soft-bounce enabled). This is enabled by default. We recommend disabling it when you are confident that mail delivery works.

message-copy

specifies whether or not to keep filesystem copies of incoming messages, e.g. to burn a mail log to CD/DVD regularly. The default value of none means that no copies are ever made.

Setting it to delivered keeps copies of all delivered messages, a value of errors keeps only those messages that could not be delivered because of errors, and all keeps copies of all messages.

message-copy-directory

specifies a directory to which mail delivered via LMTP/SMTP is copied, if message-copy is set. Its default value is /var/lib/archiveopteryx/messages. If you set use-security, message-copy-directory must be a subdirectory of jail-directory.

If message-copy-directory does not exist or is not writable, Archiveopteryx logs an error at startup and exits.

Each file in message-copy-directory contains one or more header lines, namely Error, From and To, then an empty line, then the verbatim received mail message. If there is an Error line, the message was not delivered, and the rest of the line describes the problem.

The file's name is a unique string of numbers and hyphens. It ends with "-err" if there was an error injecting the message into the database.

### SMTP Submission
use-smtp-submit

controls whether archiveopteryx(8) should accept mail via SMTP-Submit (RFC 4409). The default is enabled.

check-sender-addresses

controls whether archiveopteryx(8) should check whether the sender is authorised to use the addresses in the message. From, Sender, Return-Path (SMTP Mail From) and Reply-To are all checked. The default is disabled.

submit-copy-to-sender

controls whether archiveopteryx(8) should ensure that the sender receives a copy of outgoing mail. The default is disabled. This can be used to ensure that all outgoing mail is archived.

If the sender already receives a copy of the message, submit-copy-to-sender has no effect. Senders will not receive two copies. The copy is always sent to the user who sends the message, even if the From and/or Return-Path is different. The sender's copy will be delivered through the configured smarthost, as with any other outgoing message.

smtp-submit-address

specifies the address where archiveopteryx(8) should listen for Submit connections. The default, an empty string, means to listen on all available IPv4 and IPv6 addresses. 127.0.0.1.

smtp-submit-port

specifies which port archiveopteryx(8) should listen to. The default is 587.

smarthost-address

specifies the address of the SMTP server which is used to relay mail to remote recipients. The default is 127.0.0.1.

smarthost-port

specifies the port to use when forwarding mail to a smarthost. The default is 25. (These defaults thus conflict with the default values of smtp-address and smtp-port when use-smtp is enabled.)

use-smtps

controls whether archiveopteryx(8) should accept SSL-wrapped SMTP connections. The default is false (and the use of STARTTLS with SMTP Submit is strongly recommended instead).

smtps-address

is the address where archiveopteryx(8) listens for new SSL-wrapped SMTP connections. As for smtp-address, the default is an empty string, which means all available IPv4 and IPv6 addresses.

smtps-port

is the port where archiveopteryx(8) accepts SSL-wrapped SMTP connections, 465 by default.

### IMAP
use-imap

must be enabled for archiveopteryx(8) to accept IMAP connections. The default is true.

imap-address

is the address where archiveopteryx(8) listens for new connections. The default, an empty string, means to listen on all available IPv4 and IPv6 addresses.

imap-port

is the port where archiveopteryx(8) accepts connections, 143 by default.

use-imaps

controls whether archiveopteryx(8) should also accept SSL-wrapped IMAP connections. The default is false (and the use of STARTTLS over the standard IMAP port is strongly recommended instead).

imaps-address

is the address where archiveopteryx(8) listens for new SSL-wrapped connections. As with imap-address, the default is an empty string, which means all available IPv4 and IPv6 addresses.

imaps-port

is the port where archiveopteryx(8) accepts SSL-wrapped connections, 993 by default.

### POP
use-pop

must be enabled for archiveopteryx(8) to accept POP3 connections. The default is false.

pop-address

is the address where archiveopteryx(8) listens for new connections. The default, an empty string, means to listen on all available IPv4 and IPv6 addresses.

pop-port

is the port where archiveopteryx(8) accepts connections, 110 by default.

use-pops

controls whether archiveopteryx(8) should also accept SSL-wrapped POP connections. The default is false (and the use of STARTTLS over the standard POP port is strongly recommended instead).

pops-address

is the address where archiveopteryx(8) listens for new SSL-wrapped connections. As with pop-address, the default is an empty string, which means all available IPv4 and IPv6 addresses.

pops-port

is the port where archiveopteryx(8) accepts SSL-wrapped connections, 995 by default.

### SIEVE
use-sieve

controls whether or not the managesieve server is started. The default is enabled.

managesieve-address

specifies the address where archiveopteryx(8) should listen for connections. The default is an empty string, which means to listen on all available IPv4 and IPv6 addresses. anempt

managesieve-port

specifies which port archiveopteryx(8) should listen to. The default is 2000.

### TLS
use-tls

regulates whether Archiveopteryx supports TLS at all. The default is enabled.

tls-certificate

is the absolute file name of the TLS private key and signed certificate, e.g. /etc/archiveopteryx/imap.p15. If tls-certificate is not specified, tlsproxy generates a private key and a self-signed certificate at runtime and stores both in /etc/archiveopteryx/automatic-key.pem.

tls-certificate-label

is not used in 3.1.4.

## SYNTAX
The name is case insensitive, as shown:

hostname = test1.example.com

HOSTNAME = mailserver.example.org

The value is case insensitive wherever possible. (Exceptions include logfile, db-user and db-password.)

There are three datatypes: Strings, numbers and toggles.

Strings may be written as a single unquoted word or quoted with either single or double quotes, as shown in these three examples:

db-password = single.word

db-password = "rock'n'roll" # a 12-character password

db-password = 'two words, quoted' # a 17-character one

Only single-line strings can be used. Single-word strings may contain the characters a-z, A-Z, 0-9, dot, hyphen and slash.

Numbers are integers not smaller than 0 and not larger than 2147483647 (ie. 31-bit unsigned integers).

Toggles are written as a single word. Yes, true, on, 1, and enabled all mean that the toggle is enabled, while no, false, off, 0, and disabled unsurprisingly mean disabled. Toggles are case-insensitive.

use-lmtp = yes

crash-and-delete-all-the-mail = off

Spaces are allowed at the start of the line, before and after '=', and after the value. Comments extend from '#' to the end of the line.

\# this is a comment

hostname=stuff.nonsense.example.com # also a comment

logfile = /dev/null# and this is a comment

\# empty lines are ignored

## AUTHOR
The Archiveopteryx Developers, info@aox.org.

## VERSION
This man page covers Archiveopteryx version 3.1.3, released 2010-03-10, http://archiveopteryx.org/3.1.3

## SEE ALSO
archiveopteryx(8), deliver(8), logd(8), http://archiveopteryx.org


mac-vendor

package: arp-scan

title: mac-vendor(5)

summary: Ethernet vendor file for arp-scan

text:
# mac-vendor(5)

## NAME
mac-vendor - Ethernet vendor file for arp-scan

## SYNOPSIS
mac-vendor.txt

## DESCRIPTION
The mac-vendor.txt contains Ethernet MAC to vendor string mappings for arp-scan. It is used in addition to the IEEE OUI listings in ieee-oui.txt. It is for MAC-vendor mappings that are not covered by the IEEE manufacturer listings.

Each line in the mac-vendor.txt file contains a MAC-vendor mapping in the form:

```
<MAC-Prefix><TAB><Vendor>
```

Where <MAC-Prefix> is the prefix of the MAC address in hex, and <Vendor> is the name of the vendor. The prefix can be of any length from two hex digits (one octet) to twelve hex digits (six octets, the entire Ethernet hardware address).

Alphabetic hex characters [A-F] may use either upper or lower case, and seperator symbols such as ":", "-" and "." are ignored. This permits the use of standard format MAC addresses in this file.

For example:

01:23:45 matches 01:23:45:xx:xx:xx, where xx represents any value;

01:23:45:6 matches 01:23:45:6x:xx:xx; and

01:23:45:67 matches 01:23:45:67:xx:xx.

Do not include entries from the IEEE OUI listings, as these are already in the file ieee-oui.txt, which is automatically used by arp-scan. See get-oui(1) for details of how to update the OUI listings.

The order of entries in the file is not important.

Blank lines and lines beginning with "#" are ignored. arp-scan will attempt to match larger prefixes before trying to match smaller ones, and will stop at the first match.

## FILES
/usr/local/share/arp-scan/mac-vendor.txt

## EXAMPLE

```
# From nmap Debian bug report #369681 dated 31 May 2006
52:54:00        QEMU
b0:c4:20        Bochs
# From RFC 2338: 00-00-5E-00-01-{VRID}
00:00:5e:00:01  VRRP (last octet is VRID)
# Microsoft WLBS (Windows NT Load Balancing Service)
# http://www.microsoft.com/technet/prodtechnol/acs/reskit/acrkappb.mspx
02:bf   Microsoft WLBS (last four octets are IP address)
# Cisco HSRP (Hot Standby Routing Protocol)
# 00-00-0c-07-ac-XX, where XX is the HSRP group number (0 to 255)
00:00:0c:07:ac  HSRP (last octet is group number)
```

## SEE ALSO
arp-scan(1)

get-oui(1)

arp-fingerprint(1)


atoprc

package: atop

title: atoprc(5)

text:
# atoprc(5)

## NAME
atoprc - atop/atopsar related rcfile

## DESCRIPTION
This manual page documents the rcfile of the atop and atopsar commands. These commands can be used to monitor the system and process load on a Linux system.

The atoprc file contains the default settings. These settings are read during startup, first from the system-wide rcfile /etc/atoprc and after that from the user-specific rcfile ~/.atoprc (so system-wide settings can be overruled by an individual user). The options in both rcfiles are identical.

## OPTIONS
The rcfile contains keyword-value pairs, one on every line (blank lines and lines starting with a #-sign are ignored).

The following keywords can be specified:

flags

A list of default flags for atop can be defined here. The flags which are allowed are 't', 'B', 'H', 'G', '2' till '9', 'g', 'm', 'd', 'n', 'u', 'p', 's', 'c', 'v', 'C', 'M', 'D', 'N', 'A', 'a', 'y', 'Y', 'f', 'F', 'R', '1', 'e', 'E' and 'x'.

twindir

The default absolute path name of the temporary directory in which the twin file should be allocated.

interval

The default interval value in seconds.

linelen

The length of a screen line when sending output to a file or pipe (default 80).

username

Regular expression or one numerical UID to select the users for which (active) processes will be shown.

procname

The default regular expression for the process names to be shown.

maxlinecpu

The maximum number of active CPUs that will be shown.

maxlinegpu

The maximum number of active GPUs that will be shown.

maxlinelvm

The maximum number of active logical volumes that will be shown.

maxlinemdd

The maximum number of active multiple devices that will be shown.

maxlinedisk

The maximum number of active disks that will be shown.

maxlinenfsm

The maximum number of NFS mounts that will be shown on an NFS client.

maxlineintf

The maximum number of active network interfaces that will be shown.

maxlinecont

The maximum number of active containers that will be shown.

maxlineifb

The maximum number of Infiniband ports that will be shown.

maxlinenuma

The maximum number of NUMA node metrics that will be shown. Notice that two lines are shown for each NUMA node.

maxlinellc

The maximum number of lines with LLC metrics that will be shown.

cpucritperc

The busy percentage considered critical for a processor (see section COLORS in the man-page of the atop command). This percentage is used to determine a weighted percentage for line coloring and sorting of active processes in text mode. When this value is zero, no line coloring or automatic sorting is performed for this resource.

dskcritperc

The busy percentage considered critical for a disk (see section COLORS in the man-page of the atop command). This percentage is used to determine a weighted percentage for line coloring and sorting of active processes in text mode. When this value is zero, no line coloring or automatic sorting is performed for this resource.

netcritperc

The busy percentage considered critical for a network interface (see section COLORS in the man-page of the atop command). This percentage is used to determine a weighted percentage for line coloring and sorting of active processes in text mode. When this value is zero, no line coloring or automatic sorting is performed for this resource.

memcritperc

The percentage considered critical for memory utilization (see section COLORS in the man-page of the atop command). This percentage is used to determine a weighted percentage for line coloring and sorting of active processes in text mode. When this value is zero, no line coloring or automatic sorting is performed for this resource.

swpcritperc

The occupation percentage considered critical for swap space (see section COLORS in the man-page of the atop command). This percentage is used to determine a weighted percentage for line coloring and sorting of active processes in text mode. When this value is zero, no line coloring or automatic sorting is performed for this resource.

swoutcritsec

The number of pages swapped out per second considered critical for for memory utilization (see section COLORS in the man-page of the atop command). This threshold is used in combination with 'memcritperc' to determine a weighted percentage for line coloring and sorting of active processes in text mode. When this value is zero, no line coloring or automatic sorting is performed for this resource.

almostcrit

A percentage of the critical percentage to determine if the resource is almost critical (see section COLORS in the man-page of the atop command). When this value is zero, no line coloring for `almost critical' is performed.

cpubarwidth

Number of columns used per bar in the processor bar graph. The default value is 0 which means that the bar width will be scaled automatically (the wider the terminal, the more columns per bar up to a maximum of three). With the value 1, 2 or 3 the number of bars can be statically pinned to that number of columns, with one column of white space in between the bars.

colorinfo

Definition of color name for information messages (default: green) in text mode.

Allowed colors are: red green yellow blue magenta cyan black white.

colorthread

Definition of color name for thread-specific lines when using the 'y' option (default: yellow).

Allowed colors are: red green yellow blue magenta cyan black white.

coloralmost

Definition of color name for almost critical resources (default: cyan) in text mode.

Allowed colors are: red green yellow blue magenta cyan black white.

colorcritical

Definition of color name for critical resources (default: red) in text mode.

Allowed colors are: red green yellow blue magenta cyan black white.

atopsarflags

A list of default flags for atopsar can be defined here. The flags that are allowed are 'S', 'x', 'C', 'M', 'H', 'a', 'A' and the flags to select one or more specific reports.

perfevents

Defines whether or not the CPU cycle counter should be retrieved by atop via the 'perf' counters. The values 'auto' (default), 'enable' or 'disable' can be specified. In case of 'auto', the CPU cycle counter will not be retrieved on virtual machines due to the overhead of reading this counter in a guest.

pacctdir

The name of the topdirectory used by the atopacctd daemon. In this directory, the daemon creates a subdirectory pacct_shadow.d in which files will be written containing the process accounting records. The default topdirectory is /var/run and this option only has to be specified when the atopacctd daemon is started with an alternative topdirectory as command line argument.

This option can only be specified in the /etc/atoprc file (on system level)!

An example of the /etc/atoprc or ~/.atoprc file:

flags Aaf

interval 5

username

procname

maxlinecpu 4

maxlinedisk 10

maxlineintf 5

cpucritperc 80

almostcrit 90

atopsarflags CMH

ownprocline PID:50 VGROW:40 RGROW:45 COMMAND-LINE:50

ownpagline PAGSCAN:3 BLANKBOX:0 PAGSWIN:3 PAGSWOUT:7

The keywords 'ownprocline' and 'ownpagline' are explained in the subsequent section.

## OWN DEFINITION OF OUTPUT LINE
Via the rcfile it is possible to define the layout of the output lines yourself, i.e. you can define the layout of one line with process information with the keyword 'ownprocline' (to be selected with the key 'o' or the flag -o) and you can redefine all lines with system information.

The layout of an output-line can be defined as follows (notice that this should be specified as one line in the rcfile):

keyword <columnid>:<prio> [<columnid>:<prio> ...]

The columnid is the symbolic name of a column that should shown at this position in the output line.

The prio is a positive integer value that determines which columns have precedence whenever not all specified columns fit into the current screen-width. The higher value, the higher priority.

The column-specifications should be separated by a space. The order in which columns have been specified is the order in which they will be shown, with respect to their priority (columns that do not fit, will be dropped dynamically).

A special columnid for system lines is 'BLANKBOX'. This indicates that an empty column is required at this position. Also this special columnid is followed by a priority (usually low).

The following definition can be specified for process information:

ownprocline

The columnids are the names of the columns that are shown in the normal output of the process-related lines that are shown by atop such as 'PID', 'CMD', 'S', .... The only exception is the special columnid 'SORTITEM' that is used to show one of the columns CPU%/DSK%/MEM%/NET%, depending on the chosen sort-criterium.

An example of a user-defined process line:

ownprocline PID:20 PPID:10 SYSCPU:15 USRCPU:15 VGROW:14 VSIZE:12 RGROW:14 RSIZE:12 ST:8 EXC:7 S:11 SORTITEM:18 CMD:20

The following definitions are used internally by atop as the default system lines (you can redefine each of them in the rcfile as one line):

ownsysprcline

Redefinition of line labeled with 'PRC':

ownsysprcline PRCSYS:8 PRCUSER:8 BLANKBOX:0 PRCNPROC:7 PRCNZOMBIE:5 PRCCLONES:4 BLANKBOX:0 PRCNNEXIT:6

ownallcpuline

Redefinition of line labeled with 'CPU' for total CPU-utilization:

ownallcpuline CPUSYS:8 CPUUSER:7 CPUIRQ:4 BLANKBOX:0 CPUIDLE:5 CPUWAIT:6 BLANKBOX:0 CPUSTEAL:1 CPUGUEST:3

ownonecpuline

Redefinition of line labeled with 'CPU' for utilization of one CPU:

ownonecpuline CPUISYS:8 CPUIUSER:7 CPUIIRQ:4 BLANKBOX:0 CPUIIDLE:5 CPUIWAIT:6 BLANKBOX:0 CPUISTEAL:1 CPUIGUEST:3

owncplline

Redefinition of line labeled with 'CPL':

owncplline CPLAVG1:4 CPLAVG5:3 CPLAVG15:2 BLANKBOX:0 CPLCSW:6 CPLINTR:5 BLANKBOX:0 CPLNUMCPU:1

ownmemline

Redefinition of line labeled with 'MEM':

ownmemline MEMTOT:2 MEMFREE:5 MEMCACHE:3 MEMDIRTY:1 MEMBUFFER:3 MEMSLAB:3 BLANKBOX:0 BLANKBOX:0 BLANKBOX:0 BLANKBOX:0

ownswpline

Redefinition of line labeled with 'SWP':

ownswpline SWPTOT:3 SWPFREE:4 BLANKBOX:0 BLANKBOX:0 BLANKBOX:0 BLANKBOX:0 BLANKBOX:0 BLANKBOX:0 SWPCOMMITTED:5 SWPCOMMITLIM:6

ownpagline

Redefinition of line labeled with 'PAG':

ownpagline PAGSCAN:3 PAGSTALL:1 BLANKBOX:0 PAGSWIN:4 PAGSWOUT:3

owndskline

Redefinition of lines labeled with 'LVM', 'MDD' and 'DSK':

owndskline DSKNAME:8 DSKBUSY:7 DSKNREAD:6 DSKNWRITE:6 DSKKBPERRD:4 DSKKBPERWR:4 DSKMBPERSECRD:5 DSKMBPERSECWR:5 DSKAVQUEUE:1 DSKAVIO:5

ownnettrline

Redefinition of line labeled with 'NET' for transport:

ownnettrline NETTRANSPORT:9 NETTCPI:8 NETTCPO:8 NETUDPI:8 NETUDPO:8 NETTCPACTOPEN:6 NETTCPPASVOPEN:5 NETTCPRETRANS:4 NETTCPINERR:3 NETTCPORESET:20 NETUDPNOPORT:1 NETUDPINERR:3

ownnetnetline

Redefinition of line labeled with 'NET' for network:

ownnetnetline NETNETWORK:5 NETIPI:4 NETIPO:4 NETIPFRW:4 NETIPDELIV:4 BLANKBOX:0 BLANKBOX:0 BLANKBOX:0 NETICMPIN:1 NETICMPOUT:1

ownnetifline

Redefinition of line labeled with 'NET' for interfaces:

ownnetifline NETNAME:8 NETPCKI:7 NETPCKO:7 NETSPEEDIN:6 NETSPEEDOUT:6 NETCOLLIS:3 NETMULTICASTIN:2 NETRCVERR:5 NETSNDERR:5 NETRCVDROP:4 NETSNDDROP:4

The lines above are shown in the order as shown by atop in combination with the -f flag (in a very wide window you should be able to see all of the columns).

## SEE ALSO
atop(1), atopsar(1), atopacctd(8), netatop(4), netatopd(8), logrotate(8)

https://www.atoptool.nl

## AUTHOR
Gerlof Langeveld (gerlof.langeveld@atoptool.nl)

JC van Winkel


audisp-remote.conf

package: audit

title: audisp-remote.conf(5)

summary: the audisp-remote configuration file

text:
# audisp-remote.conf(5)

## NAME
audisp-remote.conf - the audisp-remote configuration file

## DESCRIPTION
audisp-remote.conf is the file that controls the configuration of the audit remote logging subsystem. The options that are available are as follows:

remote_server

This is a one word character string that is the remote server hostname or address that this plugin will send log information to. This can be the numeric address or a resolvable hostname.

port

This option is an unsigned integer that indicates what port to connect to on the remote machine.

local_port

This option is an unsigned integer that indicates what local port to connect from on the local machine. If unspecified (the default) or set to the word any then any available unprivileged port is used. This is a security mechanism to prevent untrusted user space apps from injecting events into the audit daemon. You should set it to an unused port < 1024 to ensure that only privileged users can bind to that port. Then also set the tcp_client_ports in the aggregating auditd.conf file to match the ports that clients are sending from.

transport

This parameter tells the remote logging app how to send events to the remote system. The valid options are TCP, and KRB5. If set to TCP, the remote logging app will just make a normal clear text connection to the remote system. If its set to KRB5, then Kerberos 5 will be used for authentication and encryption. The default value is TCP.

mode

This parameter tells the remote logging app what strategy to use getting records to the remote system. Valid values are immediate, and forward . If set to immediate, the remote logging app will attempt to send events immediately after getting them. forward means that it will store the events to disk and then attempt to send the records. If the connection cannot be made, it will queue records until it can connect to the remote system. The depth of the queue is controlled by the queue_depth option.

queue_file

Path of a file used for the event queue if mode is set to forward. The default is /var/spool/audit/remote.log.

queue_depth

This option is an unsigned integer that determines how many records can be buffered to disk or in memory before considering it to be a failure sending. This parameter affects the forward mode of the mode option and internal queueing for temporary network outages. The default depth is 2048.

format

This parameter tells the remote logging app what data format will be used for the messages sent over the network. The default is managed which adds some overhead to ensure each message is properly handled on the remote end, and to receive status messages from the remote server. If ascii is given instead, each message is a simple ASCII text line with no overhead at all. The ascii format is a very simplistic protocol. If there are any network problems, it will cause audisp-remote to exit. Auditd may or may not restart it on next event. If something more robust is needed, use the managed format. If mode is set to forward, format must be managed.

network_retry_time

The time, in seconds, between retries when a network error is detected. Note that this pause applies starting after the second attempt, so as to avoid unneeded delays if a reconnect is sufficient to fix the problem. The default is 1 second.

max_tries_per_record

The maximum number of times an attempt is made to deliver each message. The minimum value is one, as even a completely successful delivery requires at least one try. If too many attempts are made, the network_failure_action action is performed. The default is 3.

max_time_per_record

The maximum amount of time, in seconds, spent attempting to deliver each message. Note that both this and max_tries_per_record should be set, as each try may take a long time to time out. The default value is 5 seconds. If too much time is used on a message, the network_failure_action action is performed.

heartbeat_timeout

This parameter determines how often in seconds the client should send a heartbeat event to the remote server. This is used to let both the client and server know that each end is alive and has not terminated in a way that it did not shutdown the connection uncleanly. This value must be coordinated with the server's tcp_client_max_idle setting. The default value is 0 which disables sending a heartbeat.

network_failure_action

This parameter tells the system what action to take whenever there is an error detected when sending audit events to the remote system. Valid values are ignore, syslog, exec, warn_once, suspend, single, halt, and stop. If set to ignore, the remote logging app does nothing. If an event was sent, its dequeued. Syslog means that it will issue a warning to syslog. If an event was sent, its dequeued. This is the default. exec /path-to-script will execute the script. You cannot pass parameters to the script. If an event was sent, its dequeued. warn_once_continue is like syslog except that only one message is put in syslog until an event is successfully transferred. warn_once is like warn_once_continue except that the event is not dequeued. Suspend will cause the remote logging app to stop sending records to the remote system. The logging app will still be alive. If an event was sent, it is not dequeued. The single option will cause the remote logging app to put the computer system in single user mode. If an event was sent, it is not dequeued. The stop option will cause the remote logging app to exit, but leave other plugins running. If an event was sent, it is not dequeued. The halt option will cause the remote logging app to shutdown the computer system. If an event was sent, it is not dequeued. The default is to stop.

disk_low_action

Likewise, this parameter tells the system what action to take if the remote end signals a disk low error. The default is ignore.

disk_full_action

Likewise, this parameter tells the system what action to take if the remote end signals a disk full error. The default is warn_once.

disk_error_action

Likewise, this parameter tells the system what action to take if the remote end signals a disk error. The default is warn_once.

remote_ending_action

Likewise, this parameter tells the system what action to take if the network connection is lost. This action has one additional option, reconnect which tells the remote plugin to attempt to reconnect to the server upon receipt of the next audit record. If an event was being sent when something triggered this action, it is not dequeued. If it is unsuccessful in reconnecting, the audit record could be lost. The default is to reconnect.

generic_error_action

Likewise, this parameter tells the system what action to take if the remote end signals an error we don't recognize. The default is to log it to syslog.

generic_warning_action

Likewise, this parameter tells the system what action to take if the remote end signals a warning we don't recognize. The default is to log it to syslog.

queue_error_action

Likewise, this parameter tells the system what action to take if there is a problem working with a local record queue. The default is stop.

overflow_action

This parameter tells the system what action to take if the internal event queue overflows. Valid values are ignore, syslog, suspend, single, and halt . If set to ignore, the remote logging app does nothing. Syslog means that it will issue a warning to syslog. This is the default. Suspend will cause the remote logging app to stop sending records to the remote system. The logging app will still be alive. The single option will cause the remote logging app to put the computer system in single user mode. The halt option will cause the remote logging app to shutdown the computer system.

startup_failure_action

This parameter tells the system what action to take whenever there is an error connecting to the remote system during startup. Typically, this is benign as the plugin's default behavior is to attempt reconnecting until it succeeds. But there may be times when you want to do something different. Valid values are ignore, syslog, exec, warn_once, and warn_once_continue . If set to ignore, the remote logging app does nothing. Syslog means that it will issue a warning to syslog. exec /path-to-script will execute the script. You cannot pass parameters to the script. warn_once is like syslog except that only one message is put in syslog until an event is successfully transferred. warn_once_continue is like warn_once except it ignores the problem. This is the default.

enable_krb5

This option is deprecated. Use the transport option to enable Kerberos support. If this option follows the transport configuration option, it will override the transport setting. This would be the normal expected behavior for backwards compatibility. If set to yes, Kerberos 5 will be used for authentication and encryption. Default is no. Note that encryption can only be used with managed connections, not plain ASCII.

krb5_principal

If specified, This is the expected principal for the server. The client and server will use the specified principal to negotiate the encryption. The format for the krb5_principal is like somename/hostname, see the auditd.conf man page for details. If not specified, the krb5_client_name and remote_server values are used.

krb5_client_name

This specifies the name portion of the client's own principal. If unspecified, the default is "auditd". The remainder of the principal will consist of the host's fully qualified domain name and the default Kerberos realm, like this: auditd/host14.example.com@EXAMPLE.COM (assuming you gave "auditd" as the krb_client_name). Note that the client and server must have the same principal name and realm.

krb5_key_file

Location of the key for this client's principal. Note that the key file must be owned by root and mode 0400. The default is /etc/audisp/audisp-remote.key

## NOTES
Specifying a local port may make it difficult to restart the audit subsystem due to the previous connection being in a TIME_WAIT state, if you're reconnecting to and from the same hosts and ports as before.

The network failure logic works as follows: The first attempt to deliver normally "just works". If it doesn't, a second attempt is immediately made, perhaps after reconnecting to the server. If the second attempt also fails, audispd-remote pauses for the configured time and tries again. It continues to pause and retry until either too many attempts have been made or the allowed time expires. Note that these times govern the maximum amount of time the remote server is allowed in order to reboot, if you want to maintain logging across a reboot.

It is recommended to set a large q_depth in auditd.conf if using this plugin. Also set an even bigger q_depth in audisp-remote.conf. Also set the heartbeat_timeout to something non-zero but coordinate it with the server so that it's half the size of the server's tcp_client_max_idle setting. This is required to get retries in a reasonable time if the network has a problem.

## SEE ALSO
audisp-remote(8), auditd.conf(5).

## AUTHOR
Steve Grubb


auditd-plugins

title: auditd-plugins(5)

summary: realtime event receivers

text:
# auditd-plugins(5)

## NAME
auditd-plugins - realtime event receivers

## DESCRIPTION
auditd can multiplex audit events in realtime. It takes audit events and distributes them to child programs that want to analyze events in realtime. When the audit daemon receives a SIGTERM or SIGHUP, it passes that signal to its child processes so that can reload the configuration or terminate.

The child programs install a configuration file in a plugins directory which defaults to /etc/audit/plugins.d. This can be controlled by a auditd.conf config option plugin_dir if the admin wished to locate plugins somewhere else. But auditd will install its plugins in the default location.

The plugin directory will be scanned and every plugin that is active will be started. If the plugin has a problem and exits, it will be started a maximum of max_restarts times as found in auditd.conf.

Configuration files must be regular files that do not begin with a '.' character, contain at most one '.' character, and have a '.conf' suffix. Files that do not meet these criteria will be skipped. Config file options are given one per line with an equal sign between the keyword and its value. The available options are as follows:

active

The options for this are yes or no.

path

This is the absolute path to the plugin executable. In the case of internal plugins, it would be the name of the plugin.

type

This tells the dispatcher how the plugin wants to be run. There is only one valid option, always , which means the plugin is external and should always be run. The default is always since there are no more builtin plugins.

args

This allows you to pass arguments to the child program. Generally plugins do not take arguments and have their own config file that instructs them how they should be configured. At the moment, there is a limit of 2 args.

format

The valid options for this are binary and string. Binary passes the data exactly as the audit event dispatcher gets it from the audit daemon. The string option tells the dispatcher to completely change the event into a string suitable for parsing with the audit parsing library. The default value is string.

## NOTE
auditd has an internal queue to hold events for plugins. (See the q_depth setting in auditd.conf.) Plugins have to watch for and dequeue events as fast as possible and queue them internally if they can't be immediately processed. If the plugin is not able to dequeue records, the auditd internal queue will get filled. At any time, as root, you can run the following to check auditd's metrics:

auditctl --signal cont ; sleep 1 ; cat /run/audit/auditd.state

Plugins using libauplugin can retrieve their own queue metrics with auplugin_queue_depth, auplugin_queue_max_depth, and auplugin_queue_overflow. The auplugin_register_stats_callback function allows reporting these values from a signal handler.

If auditd's internal queue fills, it cannot dequeue any events from the kernel backlog. If the kernel's backlog fills, it looks at the value of backlog_wait_time to delay all processes that generate an event to see if there is eventually room to add the event. This will likely be noticed as slowing down various processes on the machine. The kernel's audit subsystem can be checked by running:

auditctl -s

When tuning the audit system's performance, you'd want to check both kernel and auditd metrics and adjust accordingly.

## NOTES FOR DEVELOPERS
When the audit daemon starts your plugin, you will be running as root. If you do not need root privileges, you should change uid/gid to lower chances of being a target for exploit. If you need to retain capabilities, using libcap-ng is the simplest way.

Your environment is not going to be clean. You are inheriting many attributes from auditd itself. You will need to adjust your signal mask, sigaction, umask, and environmental variables. Look at the auditd man page to see which signals auditd used. Plugins are expected to handle SIGTERM and SIGHUP. You will also inherit the resource limits of auditd. Note that some of these resource limits, such as maximum number of open descriptors, are controlled by systemd. You also inherit auditd's nice value. You might want to adjust that to be sure to keep up with incoming audit events.

Auditd will send events to the plugin on it's stdin. The plugin has to keep this descriptor empty so that events don't back up. If you do significant processing of each event, you should add an internal queue to your design in order to keep events flowing. The auparse_feed function is the preferred way to examine whole events if you need to analyze the contents of the events.

## FILES
/etc/auditd/auditd.conf /etc/audit/plugins.d

## SEE ALSO
auditd.conf(5), auditd(8), execve(2), auparse_feed(3).

## AUTHOR
Steve Grubb


auditd.conf

title: auditd.conf(5)

summary: audit daemon configuration file

text:
# auditd.conf(5)

## NAME
auditd.conf - audit daemon configuration file

## DESCRIPTION
The file /etc/audit/auditd.conf contains configuration information specific to the audit daemon. Each line should contain one configuration keyword, an equal sign, and then followed by appropriate configuration information. All option names and values are case insensitive. The keywords recognized are listed and described below. Each line should be limited to 160 characters or the line will be skipped. You may add comments to the file by starting the line with a '#' character.

local_events

This yes/no keyword specifies whether or not to include local events. Normally you want local events so the default value is yes. Cases where you would set this to no is when you want to aggregate events only from the network. At the moment, this is useful if the audit daemon is running in a container. This option can only be set once at daemon start up. Reloading the config file has no effect.

log_file

This keyword specifies the full path name to the log file where audit records will be stored. It must be a regular file. The default path is /var/log/audit/audit.log if not explicitly set.

write_logs

This yes/no keyword determines whether or not to write logs to the disk. Normally you want this so the default is yes.

log_format

The log format describes how the information should be stored on disk. There are 2 options: raw and enriched. If set to RAW, the audit records will be stored in a format exactly as the kernel sends it. The ENRICHED option will resolve all uid, gid, syscall, architecture, and socket address information before writing the event to disk. This aids in making sense of events created on one system but reported/analyzed on another system. The NOLOG option is now deprecated. If you were setting this format, now you should set the write_logs option to no.

log_group

This keyword specifies the group that is applied to the log file's permissions. The default is root. The group name can be either numeric or spelled out.

priority_boost

This is a non-negative number that tells the audit daemon how much of a priority boost it should take. The default is 4. No change is 0.

flush

Valid values are none, incremental, incremental_async, data, and sync. If set to none, no special effort is made to flush the audit records to disk. If set to incremental, Then the freq parameter is used to determine how often an explicit flush to disk is issued. The incremental_async parameter is very much like incremental except the flushing is done asynchronously for higher performance. The data parameter tells the audit daemon to keep the data portion of the disk file sync'd at all times. The sync option tells the audit daemon to keep both the data and meta-data fully sync'd with every write to disk. The default value is incremental_async.

freq

This is a non-negative number that tells the audit daemon how many records to write before issuing an explicit flush to disk command. This value is only valid when the flush keyword is set to incremental or incremental_async.

num_logs

This keyword specifies the number of log files to keep if rotate is given as the max_log_file_action. If the number is < 2, logs are not rotated. This number must be 999 or less. The default is 0 - which means no rotation. As you increase the number of log files being rotated, you may need to adjust the kernel backlog setting upwards since it takes more time to rotate the files. This is typically done in /etc/audit/audit.rules. If log rotation is configured to occur, the daemon will check for excess logs and remove them in effort to keep disk space available. The excess log check is only done on startup and when a reconfigure results in a space check.

name_format

This option controls how computer node names are inserted into the audit event stream. It has the following choices: none, hostname, fqd, numeric, and user. None means that no computer name is inserted into the audit event. hostname is the name returned by the gethostname syscall. The fqd means that it takes the hostname and resolves it with dns for a fully qualified domain name of that machine. Numeric is similar to fqd except it resolves the IP address of the machine. In order to use this option, you might want to test that 'hostname -i' or 'domainname -i' returns a numeric address. Also, this option is not recommended if dhcp is used because you could have different addresses over time for the same machine. User is an admin defined string from the name option. The default value is none.

name

This is the admin defined string that identifies the machine if user is given as the name_format option.

max_log_file

This keyword specifies the maximum file size in mebibytes (MiB). When this limit is reached, it will trigger a configurable action. The value given must be numeric.

max_log_file_action

This parameter tells the system what action to take when the system has detected that the max file size limit has been reached. Valid values are ignore, syslog, exec, suspend, rotate and keep_logs. If set to ignore, the audit daemon does nothing. syslog means that it will issue a warning to syslog. exec /path-to-script will execute the script. You cannot pass parameters to the script. The script is also responsible for telling the auditd daemon to resume logging once its completed its action. This can be done by adding auditdctl --signal resume to the script. Also note that logging is stopped when this script runs. Whatever it does needs to be real quick because events are backing up in the kernel. The script MUST delete or rename /var/log/audit/audit.log or when logging resumes, it will retrigger executing the script. If the script fails to execute, auditing is suspended until it is told to resume by sending it a signal. suspend will cause the audit daemon to stop writing records to the disk. The daemon will still be alive. The rotate option will cause the audit daemon to rotate the logs. It should be noted that logs with higher numbers are older than logs with lower numbers. This is the same convention used by the logrotate utility. The keep_logs option is similar to rotate except it does not use the num_logs setting. This prevents audit logs from being overwritten. The effect is that logs accumulate and are not deleted - which will trigger the space_left_action if the volume fills up. This is best used in combination with an external script used to archive logs on a periodic basis.

verify_email

This option determines if the email address given in action_mail_acct is checked to see if the domain name can be resolved. This option must be given before action_mail_acct or the default value of yes will be used.

action_mail_acct

This option should contain a valid email address or alias. Addresses may use RFC 5233 style subaddressing with the '+' character. The allowed characters are alphanumerics, '@', '.', '-', '_', and '+'. The default address is root. If the email address is not local to the machine, you must make sure you have email properly configured on your machine and network. This this option requires that /usr/lib/sendmail exists on the machine. Many clients provide it as a symlink.

space_left

If the free space in the filesystem containing log_file drops below this value, the audit daemon takes the action specified by space_left_action. If the value of space_left is specified as a whole number, it is interpreted as an absolute size in mebibytes (MiB). If the value is specified as a number between 1 and 99 followed by a percentage sign (e.g., 5%), the audit daemon calculates the absolute size in mebibytes based on the size of the filesystem containing log_file. (E.g., if the filesystem containing log_file is 2 gigabytes in size, and space_left is set to 25%, then the audit daemon sets space_left to approximately 500 mebibytes. Note that this calculation is performed when the audit daemon starts, so if you resize the filesystem containing log_file while the audit daemon is running, you should send the audit daemon SIGHUP to re-read the configuration file and recalculate the correct percentage.

space_left_action

This parameter tells the system what action to take when the system has detected that it is starting to get low on disk space. Valid values are ignore, syslog, rotate, email, exec, suspend, and single. If set to ignore, the audit daemon does nothing. syslog means that it will issue a warning to syslog. rotate will rotate logs, losing the oldest to free up space. Email means that it will send a warning to the email account specified in action_mail_acct as well as sending the message to syslog. exec /path-to-script will execute the script. You cannot pass parameters to the script. The script is also responsible for telling the auditd daemon to resume logging once its completed its action. This can be done by adding service auditd resume to the script. suspend will cause the audit daemon to stop writing records to the disk. If the script fails to execute, the audit daemon will be left suspended until its told to resume by sending it a signal. The single option will cause the audit daemon to put the computer system in single user mode. Except for rotate, it will perform this action just one time. The previously available halt option, which would cause the audit daemon to shut down the computer system, has been deprecated and should no longer be used. It was determined that halting the system at this stage could lead to unintended consequences and is considered a bad action if selected. Disk space notifications follow a three-stage progression. The space_left_action is the low water mark and serves as the first warning that disk space is running low. Halting at this stage is not recommended, as it prevents administrators from taking corrective action. The next stage, admin_space_left_action, indicates an emergency level where immediate action is required to free up disk space. Administrators should configure critical responses for this level. Finally, the disk_full_action occurs when the disk is completely full. At this stage, the system may have already halted, and preemptive measures configured in earlier stages will determine the system’s behavior.

admin_space_left

This is a numeric value in mebibytes (MiB) that tells the audit daemon when to perform a configurable action because the system is running low on disk space. This should be considered the last chance to do something before running out of disk space. The numeric value for this parameter should be lower than the number for space_left. You may also append a percent sign (e.g. 1%) to the number to have the audit daemon calculate the number based on the disk partition size.

admin_space_left_action

This parameter tells the system what action to take when the system has detected that it is low on disk space. Valid values are ignore, syslog, rotate, email, exec, suspend, single, and halt. If set to ignore, the audit daemon does nothing. Syslog means that it will issue a warning to syslog. rotate will rotate logs, losing the oldest to free up space. Email means that it will send a warning to the email account specified in action_mail_acct as well as sending the message to syslog. exec /path-to-script will execute the script. You cannot pass parameters to the script. The script is also responsible for telling the auditd daemon to resume logging once its completed its action. This can be done by adding service auditd resume to the script. Suspend will cause the audit daemon to stop writing records to the disk. The daemon will still be alive. The single option will cause the audit daemon to put the computer system in single user mode. The halt option will cause the audit daemon to shutdown the computer system. Except for rotate, it will perform this action just one time.

disk_full_action

This parameter tells the system what action to take when the system has detected that the partition to which log files are written has become full. Valid values are ignore, syslog, rotate, exec, suspend, single, and halt. If set to ignore, the audit daemon will issue a syslog message but no other action is taken. Syslog means that it will issue a warning to syslog. rotate will rotate logs, losing the oldest to free up space. exec /path-to-script will execute the script. You cannot pass parameters to the script. The script is also responsible for telling the auditd daemon to resume logging g once its completed its action. This can be done by adding service auditd resume to the script. Suspend will cause the audit daemon to stop writing records to the disk. The daemon will still be alive. The single option will cause the audit daemon to put the computer system in single user mode. halt option will cause the audit daemon to shutdown the computer system.

disk_error_action

This parameter tells the system what action to take whenever there is an error detected when writing audit events to disk or rotating logs. Valid values are ignore, syslog, exec, suspend, single, and halt. If set to ignore, the audit daemon will not take any action. Syslog means that it will issue no more than 5 consecutive warnings to syslog. exec /path-to-script will execute the script. You cannot pass parameters to the script. Suspend will cause the audit daemon to stop writing records to the disk. The daemon will still be alive. The single option will cause the audit daemon to put the computer system in single user mode. halt option will cause the audit daemon to shutdown the computer system.

tcp_listen_port

This is a numeric value in the range 1..65535 which, if specified, causes auditd to listen on the corresponding TCP port for audit records from remote systems. The audit daemon may be linked with tcp_wrappers. You may want to control access with an entry in the hosts.allow and deny files. If this is deployed on a systemd based OS, then you may need to adjust the 'After' directive. See the note in the auditd.service file. Networking can be enabled by adding this option and sending auditd a SIGHUP. Changing the port or disabling networking requires restarting the daemon so that clients reconnect.

tcp_listen_queue

This is a numeric value which indicates how many pending (requested but unaccepted) connections are allowed. The default is 5. Setting this too small may cause connections to be rejected if too many hosts start up at exactly the same time, such as after a power failure. This setting is only used for aggregating servers. Clients logging to a remote server should keep this commented out. Changing this value while the daemon is running restarts the listener and drops any current connections.

tcp_max_per_addr

This is a numeric value which indicates how many concurrent connections from one IP address is allowed. The default is 1 and the maximum is 1024. Setting this too large may allow for a Denial of Service attack on the logging server. Also note that the kernel has an internal maximum that will eventually prevent this even if auditd allows it by config. The default should be adequate in most cases unless a custom written recovery script runs to forward unsent events. In this case you would increase the number only large enough to let it in too.

use_libwrap

This setting determines whether or not to use tcp_wrappers to discern connection attempts that are from allowed machines. Legal values are either yes, or no The default value is yes.

tcp_client_ports

This parameter may be a single numeric value or two values separated by a dash (no spaces allowed). It indicates which client ports are allowed for incoming connections. If not specified, any port is allowed. Allowed values are 1..65535. For example, to require the client use a privileged port, specify 1-1023 for this parameter. You will also need to set the local_port option in the audisp-remote.conf file. Making sure that clients send from a privileged port is a security feature to prevent log injection attacks by untrusted users.

tcp_client_max_idle

This parameter indicates the number of seconds that a client may be idle (i.e. no data from them at all) before auditd complains. This is used to close inactive connections if the client machine has a problem where it cannot shutdown the connection cleanly. Note that this is a global setting, and must be higher than any individual client heartbeat_timeout setting, preferably by a factor of two. The default is zero, which disables this check.

transport

If set to TCP, only clear text tcp connections will be used. If set to KRB5, then Kerberos 5 will be used for authentication and encryption. The default value is TCP. Changes to this option take effect only after restart so that clients can reconnect.

enable_krb5

This option is deprecated. Use the transport option above instead. If set to "yes", Kerberos 5 will be used for authentication and encryption. The default is "no". If this option is set to "yes" and it follows the transport option, it will override the transport setting. This would be the normal expected behavior for backwards compatibility.

krb5_principal

This is the principal for this server. The default is "auditd". Given this default, the server will look for a key named like auditd/hostname@EXAMPLE.COM stored in /etc/audit/audit.key to authenticate itself, where hostname is the canonical name for the server's host, as returned by a DNS lookup of its IP address.

krb5_key_file

Location of the key for this client's principal. Note that the key file must be owned by root and mode 0400. The default is /etc/audit/audit.key

distribute_network

If set to "yes", network originating events will be distributed to the audit dispatcher for processing. The default is "no".

q_depth

This is a numeric value that tells how big to make the internal queue of the audit event dispatcher. A bigger queue lets it handle a flood of events better, but could hold events that are not processed when the daemon is terminated. If you get messages in syslog about events getting dropped, increase this value. The default value is 2000.

overflow_action

This option determines how the daemon should react to overflowing its internal queue. When this happens, it means that more events are being received than it can pass along to child processes. This error means that it is going to lose the current event that it's trying to dispatch. This option has the following choices: ignore, syslog, suspend, single, and halt. If set to ignore, the audit daemon does nothing. syslog means that it will issue a warning to syslog. suspend will cause the audit daemon to stop sending events to child processes. The daemon will still be alive. The single option will cause the audit daemon to put the computer system in single user mode. halt option will cause the audit daemon to shutdown the computer system.

max_restarts

This is a non-negative number that tells the audit event dispatcher how many times it can try to restart a crashed plugin. The default is 10.

plugin_dir

This is the location that auditd will use to search for its plugin configuration files. The default directory is /etc/audit/plugins.d

end_of_event_timeout

This is a non-negative number of seconds used by the userspace auparse() library routines and the aureport(8) , ausearch(8) utilities to consider an event is complete when parsing an event log stream. For an event stream being processed, if the time of the current event is over end_of_event_timeout seconds old, compared to co-located events, then the event is considered complete. The default is 2 seconds. See the NOTES section for more detail.

report_interval

This option specifies the interval between automatic state reports. The value is a time string composed of a number optionally followed by m for minutes, h for hours, d for days, or M for months. The default is 0 which disables preriodic reporting. The largest value is 40 days. When set, auditd will periodically generate the state report written to /run/audit/auditd.state.

## RELOADING
Most parameters can be changed while the daemon is running by sending SIGHUP to auditd. This can also be done with auditctl --signal reload. Options that are only read at startup include local_events and verify_email

## NOTES
In a CAPP environment, the audit trail is considered so important that access to system resources must be denied if an audit trail cannot be created. In this environment, it would be suggested that /var/log/audit be on its own partition. This is to ensure that space detection is accurate and that no other process comes along and consumes part of it.

The flush parameter should be set to sync or data.

Max_log_file and num_logs need to be adjusted so that you get complete use of your partition. It should be noted that the more files that have to be rotated, the longer it takes to get back to receiving audit events. Max_log_file_action should be set to keep_logs.

Space_left should be set to a number that gives the admin enough time to react to any alert message and perform some maintenance to free up disk space. This would typically involve running the aureport -t report and moving the oldest logs to an archive area. The value of space_left is site dependent since the rate at which events are generated varies with each deployment. The space_left_action is recommended to be set to email. If you need something like an snmp trap, you can use the exec option to send one.

Admin_space_left should be set to the amount of disk space on the audit partition needed for admin actions to be recorded. Admin_space_left_action would be set to single so that use of the machine is restricted to just the console.

The disk_full_action is triggered when no more room exists on the partition. All access should be terminated since no more audit capability exists. This can be set to either single or halt.

The disk_error_action should be set to syslog, single, or halt depending on your local policies regarding handling of hardware malfunctions.

Specifying a single allowed client port may make it difficult for the client to restart their audit subsystem, as it will be unable to recreate a connection with the same host addresses and ports until the connection closure TIME_WAIT state times out.

Auditd events are made up of one or more records. The auditd system cannot guarantee that the set of records that make up an event will occur atomically, that is the stream will have interleaved records of different events, IE

event0_record0

event1_record0

event2_record0

event1_record3

event2_record1

event1_record4

event3_record0

The auditd system does not guarantee that the records that make up an event will appear in order. Thus, when processing event streams, we need to maintain a list of events with their own list of records hence List of List (LOL) event processing.

When processing an event stream we define the end of an event via

record type = AUDIT_EOE (audit end of event type record), or

record type = AUDIT_PROCTITLE (we note the AUDIT_PROCTITLE is always the last record), or

record type = AUDIT_KERNEL (kernel events are one record events), or

record type < AUDIT_FIRST_EVENT (only single record events appear before this type), or

record type >= AUDIT_FIRST_ANOM_MSG (only single record events appear after this type), or

record type >= AUDIT_MAC_UNLBL_ALLOW && record type <= AUDIT_MAC_CALIPSO_DEL (these are also one record events), or

for the stream being processed, the time of the event is over end_of_event_timeout seconds old.

## LOG ROTATION POLICY
By default, auditd uses size-based log rotation. If you prefer time-based rotation (e.g., hourly, daily, weekly, or custom schedule), refer to auditd.cron(5) for configuration details.

## FILES
/etc/audit/auditd.conf

Audit daemon configuration file

## SEE ALSO
auditd(8), audisp-remote.conf(5), auditd-plugins(5), auditd.cron(5).

## AUTHOR
Steve Grubb


auditd.cron

title: auditd.cron(5)

summary: time-based rotation of audit logs

text:
# auditd.cron(5)

## NAME
auditd.conf - time-based rotation of audit logs

## DESCRIPTION
By default, the audit daemon (auditd) supports size-based log rotation, where logs are rotated once they reach a specified size, as configured in /etc/audit/auditd.conf. This manual describes an alternative method: time-based log rotation using cron. Using this approach, audit logs can be rotated at specified intervals (hourly, daily, weekly or on a custom date), regardless of their size.

## CONFIGURATION
1.Disable Size-Based Rotation:

To enable time-based log rotation, first disable auditd's built-in size-based rotation by setting the following parameter in /etc/audit/auditd.conf:

max_log_file_action = ignore

2. Configure Log Retention:

The num_logs parameter determines the number of rotated log files to keep. For daily rotation, setting

num_logs = 7

ensures that logs from the last seven days are retained. However, on busy systems, audit logs may grow rapidly, potentially leading to a lack of disk space. To prevent this, ensure that the space_left_action parameter is configured to handle low-disk-space situations appropriately.

3. Apply Configuration Changes:

After modifying the main auditd configuration file, reload auditd to apply the changes:

auditctl --signal reload

4. Deploy the Rotation Script:

Copy the provided auditd.cron script to the appropriate cron directory ( cron.daily or cron.hourly or cron.weekly , depending on your rotation preference). Then, ensure the file has the correct SELinux labels:

cp /usr/share/doc/audit/auditd.cron /etc/cron.daily

## SEE ALSO
auditd.conf(5), auditd(8), cron(8).

## AUTHOR
Attila Lakatos


zos-remote.conf

title: zos-remote.conf(5)

text:
# zos-remote.conf(5)

## NAME
zos-remote.conf - the audisp-racf plugin configuration file

## DESCRIPTION
zos-remote.conf controls the configuration for the audispd-zos-remote(8) Audit dispatcher plugin. The default location for this file is /etc/audit/zos-remote.conf, however, a different file can be specified as the first argument to the audispd-zos-remote plugin. See audispd-zos-remote(8) and auditd(8). The options available are as follows:

server

This is the IBM z/OS ITDS server hostname or IP address

port

The port number where ITDS is running on the z/OS server. Default is 389 (ldap port)

user

The z/OS RACF user ID which the audispd-zos-remote plugin will use to perform Remote Audit requests. This user needs READ access to FACILITY Class resource IRR.LDAP.REMOTE.AUDIT (See audispd-zos-remote(8)).

password

The password associated the the z/OS user ID configured above.

timeout

The number in seconds that audispd-zos-remote plugin will wait before giving up in connection attempts and event submissions. The default value is 15

q_depth

The audispd-zos-remote plugin will queue inputted events to the maximum of q_depth events while trying to submit those remotely. This can handle burst of events or in case of a slow network connection. However, the audispd-zos-remote plugin will drop events in case the queue is full. The default queue depth is 64 - Increase this value in case you are experiencing event drop due to full queue (audispd-zos-remote will log this to syslog).

## SEE ALSO
audispd-zos-remote(8)

## AUTHOR
Klaus Heinrich Kiwi <klausk@br.ibm.com>