# Port for Aardvark to listen on
port: 1729

# Which backend to proxy to if request is kosher
proxy_url: "http://localhost:8080/"

# Default IP forward header from httpd
ipheader: x-forwarded-for

# This is the text of the 403 response if a request is blocked
spam_response: "Your request has been blocked. If you feel this is in error, please let us know at: abuse@infra.apache.org"

# Debug prints for ...debug. disabled by default
debug: false

# Enable persistent storage of offenders
persistence: true

# Suppress repeat offenders from syslog. setting `debug: true` overrides this.
suppress_repeats: true

# This is where we save the bad requests, for further perusal. Only one request per IP is saved (the first)
savedata: /tmp/aardvark

##############################
# The actual spam scan rules #
##############################

# When using the naïve spam corpus for form data, this threshold causes a block.
# 0 is considered perfectly sane ham, 50 is bordering on spam, 100 is definitely spam
enable_naive_scan: true
naive_spam_threshold: 85

# These automatically cause a ban
spamurls:
    - "/jira/rest/api/.+/issue/AAR-\\d+/comment"

# Don't run spam check here...
ignoreurls:
    - "AttachTemporaryFile"

# Match any of these to banninate
postmatches:
    - "mobilestrikehacktools"
    - "monsterlegendshackx"
    - "router customer service"
    - "router customer support"
    - "customer service number"
    - "customer care phone"
    - "\\b(https?[:/%32AF]*\\S*essay\\S*)\\b"
    - "escorts"
    - "solitairetimes"
    - "myspades"
    - "myeuchre"
    - "ringtone"
    - "keywords INNER JOIN keyworddefs ON keywords.keywordid"
    - "\\b(https?[:/%32AF]*[^/\\s]*resume\\S*)\\b"
    - "\\b(https?[:/%32AF]*\\S*800support\\S*)\\b"
    - "drzafarsaifi"
    - "\\b(https?[:/%32AF]*\\S*dissertation\\S*)\\b"
    - "\\b(https?[:/%32AF]*\\S*dumps\\S*)\\b"
    - "\\b(https?[:/%32AF]*[^/\\s]*assignment\\S*)\\b"
    - "\\b(https?[:/%32AF]*[^/\\s]*dumps\\S*)\\b"
    - "\\b(https?[:/%32AF]*[^/\\s]*lead\\S*)\\b"
    - "\\b(https?[:/%32AF]*\\S*poker\\S*)\\b"
    - "assignmenthelp"
    - "paperwriting"
    - "bestdiss"
    - "besttempmail"
    - "eventeca"
    - "ngaydem"
    - "moneyprinters"
    - "free[- ]watch.+?listen"
    - "https://tvvslivenba.co/"
    - "certsexpert"
    - "online bank"
    - "bank online"
    - "online deposit"
    - "deposit online"
    - "deposit bank"
    - "bank deposit"
    - "casino"
    - "money back"
    - "% discount"
    - "Full Movie Online"

# Match multiple of these to ban
multimatch:
    auxiliary:
        - "p.?h.?o.?n.?e"
        - "s.?u.?p.?p.?o.?r.?t"
    required:
        - "(1[-.\\s]+\\d\\d\\d[-.\\s]+\\d\\d\\d[-.\\s]+\\d\\d\\d\\d)"
