website/content/docs/services-security.md

2.5 KiB

Security & anti-abuse (services)

echo services runs a native anti-abuse engine in its core. It observes network activity, scores it against configurable detectors, and can act (kill / ban) — or, by default, only report. It is separate from the daemon's layered anti-abuse.

Arm it carefully. report_only defaults to true (detect and alert only). Before setting it false, make sure exempt_ips covers loopback and your trusted hosts — otherwise an over-eager detector could ban your own services or bots.

[security] — engine core

Key Description
enabled Master switch
report_only Detect & alert only, never kill/ban (default true)
exempt_ips IP masks exempt from enforcement (defaults to loopback)
exempt_opers / exempt_accounts / exempt_voice Exempt operators (default on) / logged-in accounts (off) / voiced users (on)
announce_permit / announce_life Rate limit on abuse announcements
cascade_permit / cascade_life Correlated-event (cascade) detection thresholds
netsplit_grace Grace period after a netsplit before enforcing

The OperServ DEFCON command raises the network defence level on top of this.

[security.connect] — connection floods

enabled, flood_permit / flood_life (connects per source in a window), range_permit / range_life (per IP range), ban_duration.

[security.behavior] — behavioural abuse

Nick flooding, join/part cycling, mass-join, quit floods, and channel crawling: nick_permit/nick_life, cycle_permit/cycle_life, joinpart_permit/joinpart_life/joinpart_grace, massjoin_permit/massjoin_life, quit_permit/quit_life/quit_reasons, crawl_permit/crawl_life, ban_duration.

[security.content] — message content

Highlight spam, bad Unicode, and repeats: highlight_nicks/highlight_min_len/highlight_permit/highlight_life, badunicode_score/badunicode_min/badunicode_permit/badunicode_life, repeat_min/repeat_permit/repeat_life, ban_duration.

[security.auth] — auth abuse

Login and registration flooding, ban evasion: fail_permit/fail_life, register_permit/register_life, evade_ttl, ban_duration.

security.pattern — custom connect masks (repeatable)

mask, field (which connection field to match), regex (treat the mask as a regex), reason, ban (duration).

[security.mxbl] — email MX/IP blocklist

Screens registration email domains: enabled, resolver, mx_globs, ip_cidrs, timeout_ms.