common — format of common component configuration
General syntax rules of Kernun Firewall configuration files are described in configuration(7). This man page describes types, sections and items specific for the common component configuration.
Repeatable sections/items are marked by
the '*' before section/item name.
Configuration directives have attributes of several value-types. For the basic types description, see configuration(7).
Enumeration is a list of words (names) representing integer values. Some enumerations accept both names and direct integer values; in this case, enumeration description contains values for every name (in parenthesis next to name). For other enumerations, using of names is obligatory.
The following enumerations are used in common configuration directives:
enabling (name-usage obligatory)General Enabling/Disabling Enumeration.
disable, enable
yes-no (name-usage obligatory)General Yes/No Enumeration
no, yes
language (name-usage obligatory)National Language Support - Language Setting.
ENEnglish
CZCzech (UTF-8)
nls (name-usage obligatory)National Language Support - Language and Charset.
ENEnglish
CZCzech (default charset)
CZ-ASCIICzech, without diacritics
CZ-ISO-8859-2Czech, ISO-Latin-2
CZ-WINDOWS-1250Czech, Windows-1250
on-off (name-usage optional)Features switching on/off.
off (0), on (1)
genesis (name-usage obligatory)General Genesis (Static/Dynamic) Enumeration.
static, dynamic
permission (name-usage obligatory)Permission/Denial Methods.
permitparticular option is permitted
denyparticular option is rejected but ignored
abortparticular option is rejected and session is aborted
max-setting (name-usage obligatory)Ways to Set Maximum.
maxparticular limitation will be set, values have maximum
anyparticular limitation will be ignored, any value is valid
direction (name-usage obligatory)General Traffic Direction Enumeration.
downloadTransfer from server to client.
uploadTransfer from client to server.
name-selection (name-usage obligatory)Methods to select object.
anySetting of particular object is not required, anyone is correct.
nameSetting of object by its name in configuration.
destination (name-usage obligatory)Destination (remote peers or nets).
host, net, default
ip-version (name-usage optional)IP version.
ipv4 (4), ipv6 (6)
address-family (name-usage obligatory)Socket Address Family.
inet, inet6, unix
osi4-proto (name-usage obligatory)Transport Layer Protocol.
default, tcp, udp, tcp-udp
in-out (name-usage obligatory)Interface inbound/outbound Direction.
in, out, both
report-mode (name-usage optional)Process stdout/stderr control.
nothing (0), out (1), err (2), all (3)
periodicity (name-usage obligatory)Time period types.
daily, weekly, monthly
time-cond (name-usage obligatory)Time condition types.
anytimeNo condition on time applied
daily, weekly, monthly
zip-mode (name-usage obligatory)Logfile zipping mode.
plain, gzip, bzip2
obligation (name-usage obligatory)Modes of special features usage.
This enumeration is used when some feature (like authentication, SSL etc.) can be required or only allowed by admin's decision.
requiredFeature is mandatory
allowedFeature is optional
range-op (name-usage obligatory)Range Comparison Operator.
unknownTested value is not known.
ltTested value is lower than the configuration limit.
leTested value is lower than or equal to the configuration limit.
eqTested value is equal to the configuration limit.
neTested value is not equal to the configuration limit.
gtTested value is greater than the configuration limit.
geTested value is greater than or equal to the configuration limit.
inTested value is in between the configuration limits (borders OK).
niTested value is not in between the configuration limits (borders OK).
inline-file-format (name-usage obligatory)In-line File Formats.
textRegular text, lines will be trimmed and quoted.
rawRaw text, lines are only quoted, no comments allowed.
nativeNative CML values, lines are used as-is.
ip-addrIP addresses with or without mask, but without brackets.
regexpRegular expressions without slashes
yes-no-always (name-usage obligatory)Yes/No Enumeration with Always option.
Represents a YES-NO value that is tied to a certain condition, usually to a component or function being configured.
noAlways NO, even when the condition is true
yesYES when the condition is true, NO when the condition is false
alwaysAlways YES, even when the condition is false
task-frequency (name-usage obligatory)Task frequency
dailyRun the task once a day.
hourlyRun the task once an hour.
everyRun the task every PERIOD minutes.
rawRaw crontab period specification.
manuallyNo automatically scheduled refresh.
Configuration of common library component consists of following prototypes:
admin ... ;
ipv6-mode ... ;
phase ... ;
* cfg-tag ... ;
* range-cond ... ;
* set-var ... ;
* mime-type-check ... ;
* shared-file name { ... }
* shared-dir name { ... }
rotate-file ... ;
cron-schedule ... ;
admin system [contact];Firewall administrator and contact e-mail addresses.
system (type: str)The technical administrator(s) of the system; an address or set of comma separated adresses of persons responsible for system maintenance.
contact (type: str, optional, default: <NULL>)The policy administator; an address of person responsible for system configuration. If not defined, the technical administration is used instead.
Administrator contact must comply with RFC.
ipv6-mode [status];Enabling/Disabling IPv6 Mode.
status (type: enabling, optional, default: enable)phase [number];Application Startup Phase.
number (type: uint8, optional, default: 50)Phase number; the lower one, the earlier start.
cfg-tag value;Configuration factorization tag.
This feature allows admin to create groups of Kernun applications (specially proxies and servers) according to various aspects (belonging to one customer, applications of particular network traffic etc.).
Each application can have several tag attributes and the KAT tool can run some commands (like 'ps', 'start' atc.) for applications with or without given tag.
value (type: str)Tag must contain letters, digits, hyphens and dots, only.
range-cond unknown;range-cond lt limit;range-cond le limit;range-cond eq limit;range-cond ne limit;range-cond gt limit;range-cond ge limit;range-cond in lower upper;range-cond ni lower upper;Range Testing Condition.
range-op)limit (type: uint64)Tested value limitation.
lower (type: uint64)Tested value lower bound.
upper (type: uint64)Tested value upper bound.
set-var name value;Shell-like variable setting.
name (type: str)Variable name.
value (type: str)Variable value.
Variable name must contain alphanumeric chars only.
mime-type-check type;Document MIME Type and Subtype Testing Checking.
type (type: str-set)Set of type/subtype string definition.
If a regexp is part of the set, then this regexp is checked to match with type/subtype specification. Beware of escaping the slash, if present (write /...\/.../).
If a string is part of the set, then it must contain at most one slash. If the slash is not present, string is compared with document type only (not the subtype). If the slash is present, then pattern is checked to match with type/subtype specification.
shared-file name {
path ... ;
format ... ;
}
Shared file definition.
Pathname must be specified.
path name;Path specification.
This path is valid in the environment, where applied:
within CML it means path on the filesystem where run; if relative, it is related to the configuration directory
within firewall configuration files it means path on the firewall (cannot be relative).
Thus, value of this item can differ between source CML file and target CFG files and CML command /GENERATE copies these files into destination SYSTEM-* tree.
name (type: str)Path to the file.
format [type];Inline file format.
If the shared file is used as inline file ("< NAME" in list) this item defines line modifications.
type (type: inline-file-format, optional, default: text)[End of section shared-file description.]
shared-dir name {
path ... ;
}
Shared directory definition.
Pathname must be specified.
path name;Path specification.
This path is valid in the environment, where applied:
within CML it means path on the filesystem where run; if relative, it is related to the configuration directory
within firewall configuration files it means path on the firewall (cannot be relative).
Thus, value of this item can differ between source CML file and target CFG files and CML command /GENERATE copies these directories into destination SYSTEM-* tree.
name (type: str)Path to the directory.
[End of section shared-dir description.]
rotate-file [user user] [group group] [mode mode] [count count] [size size] [when [zip]];Log file rotation description.
Use the SIZE elem if log file size criterion required. Use the WHEN elem if periodical rotation required. If used both SIZE and WHEN elems, the log file is rotated at a proper time only if size limit is reached.
user user (type: str, optional, default: <NULL>)Log file owner - user.
group group (type: str, optional, default: "wheel")Log file owner - group.
mode mode (type: uint16, optional, default: 640)Log file permissions.
count count (type: uint16, optional, default: 31)Number of days being archived.
size size (type: uint16, optional, default: 0)Size limit for rotation in KB (ignore log file size if omitted).
when (type: time-cond, optional, default: anytime)Rotation periodicity (use SIZE condition if omitted).
zip (type: zip-mode, optional, default: bzip2)Zipping mode.
Use either size criterion or defined periodicity.
cron-schedule daily [time time] [report report];cron-schedule hourly [minute minute] [report report];cron-schedule [every] [period period] [at at] [report report];cron-schedule raw raw raw [report report];cron-schedule manually;Parameters for scheduling a cron task.
task-frequency, optional, default: every)raw raw (type: str)Raw line to be placed into crontab. First 5 columns (the time specification) must be specified.
minute minute (type: time, optional, default: 0)Starting time of task (mm, hour ignored).
time time (type: time, optional, default: 415)Starting time of task (hhmm).
period period (type: uint8, optional, default: 15)Run the task every PERIOD minutes (mm, hours ignored).
at at (type: uint8, optional, default: 0)Starting time of task (mm, hours ignored)
report report (type: report-mode, optional, default: nothing=0)Task output (stdout and stderr) delivery.