ec_ip_connections_cluster
Name
ec_ip_connections_cluster — Audit how many connections an IP address has made cluster-wide
Synopsis
ec_ip_connections_cluster
{ time_series_index
} [ mask
]
ec_ip_connections_cluster
{ $hash
}
Description
ec_ip_connections_cluster
returns a string containing the number of connections that have occurred for a CIDR block within a configured time window. The referenced CIDR block is constructed by applying the mask
option value to the SMTP connection's remote IP address. There are two forms of this command.
In the first form, the time_series_index
value selects a monitor corresponding to its position in the inbound_audit configuration stanza (A time_series_index
of '0' corresponds to the first monitor in the inbound_audit configuration stanza). The audit data returned for this monitor is based on a weighted sliding average of the current time window within this monitor and the previous time window, thus smoothing the transition between windows. If mask
is not specified, the default value of '32' is used to compute the CIDR block.
In the second form, a hash is used to pass the arguments. These keys are supported:
- monitor
-
A string matching a monitor definition within the inbound_audit configuration stanza, for example, "300,6". By default the first monitor listed in the configuration stanza is used.
- period_start
-
Starting window number. The default is 0, which is the chronologically current window. For example, if the inbound_audit configuration stanza defines a monitor as "300,6", then the monitor contains six windows numbered 0 (current) through 5 (oldest). Each time window in this example is 300 seconds duration.
- period_end
-
Ending window number. It defaults to the value of
period_start
. If this key is specified, its value is a window number (which should be equal to or greater than period_start). The result will be an aggregate sum over the window range. - mask
-
This is the mask used to compute CIDR block. The mask defaults to '32'.
**Configuration Change. ** This feature requires the inbound_audit module. See “inbound_audit – Inbound traffic analytics” for more information.
Note
This feature also requires the cluster module. The cluster configuration stanza must specify metrics replication including the parameter connect
:
cluster { # ... other cluster config ... Replicate "inbound_cidr" {} }
$connections = ec_ip_connections_cluster "0" "32"; $c_connections = ec_ip_connections_cluster "0" "24"; if ec_test :value "gt" :comparator "i;ascii-numeric" "${connections}" "1000" { ec_tarpit 10 "too many connections /32"; } if ec_test :value "gt" :comparator "i;ascii-numeric" "${c_connections}" "10000" { ec_tarpit 10 "too many connections /24"; }
$args = hash_create; hash_set $args "period_start" "0"; hash_set $args "period_end" "2"; hash_set $args "monitor" "300,6"; hash_set $args "mask" "32"; $count = ec_ip_connections_cluster $args; if ec_test :value "gt" :comparator "i;ascii-numeric" "${count}" "10000" { ec_tarpit 10 "too many connections /32 in last fifteen minutes"; }