mirror of
				https://github.com/mail-in-a-box/mailinabox.git
				synced 2025-10-31 19:00:54 +00:00 
			
		
		
		
	add a test for fail2ban monitoring managesieve
This commit is contained in:
		
							parent
							
								
									46f64e0e0a
								
							
						
					
					
						commit
						5aeced5c2e
					
				| @ -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…
	
		Reference in New Issue
	
	Block a user