Browse Source

add a test for fail2ban monitoring managesieve

tags/v0.43
Joshua Tauberer 1 year ago
parent
commit
5aeced5c2e
1 changed files with 23 additions and 0 deletions
  1. +23
    -0
      tests/fail2ban.py

+ 23
- 0
tests/fail2ban.py View File

@@ -90,6 +90,26 @@ def pop_test():
if M:
M.quit()

def managesieve_test():
# We don't have a Python sieve client, so we'll
# just run the IMAP client and see what happens.
import imaplib

try:
M = imaplib.IMAP4(hostname, 4190)
except ConnectionRefusedError:
# looks like fail2ban worked
raise IsBlocked()

try:
M.login("fakeuser", "fakepassword")
raise Exception("authentication didn't fail")
except imaplib.IMAP4.error:
# authentication should fail
pass
finally:
M.logout() # shuts down connection, has nothing to do with login()

def http_test(url, expected_status, postdata=None, qsargs=None, auth=None):
import urllib.parse
import requests
@@ -208,6 +228,9 @@ if __name__ == "__main__":
# POP
run_test(pop_test, [], 20, 30, 4)

# Managesieve
run_test(managesieve_test, [], 20, 30, 4)

# Mail-in-a-Box control panel
run_test(http_test, ["/admin/me", 200], 20, 30, 1)


Loading…
Cancel
Save