LiquidProxy Lua Edition
1local leaderboard = {}
2---@type table<string,boolean>
3AllowedIPs = {}
4---@type table<string,boolean>
5BannedIPs = {}
6
7local max_allowed = Config.secure.fail2ban_max_tries
8
9function AddIP(ip)
10 local lip = leaderboard[ip]
11 leaderboard[ip] = lip and lip + 1 or 1
12 l:info(ip.." failed auth")
13 if (lip or 1) >= max_allowed - 1 then
14 BannedIPs[ip] = true
15 l:info("Banned %s for failing fail2ban", ip)
16 end
17end
18
19-- auth pass
20function RemoveIP(ip)
21 leaderboard[ip] = nil
22 AllowedIPs[ip] = true
23end