fix w trackerze
This commit is contained in:
		
							
								
								
									
										13
									
								
								logmon.py
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								logmon.py
									
									
									
									
									
								
							| @@ -150,6 +150,10 @@ class LogMonDaemon: | |||||||
|             ip: Adres IP atakującego |             ip: Adres IP atakującego | ||||||
|             score: Punkty za dane niepowodzenie (domyślnie 1) |             score: Punkty za dane niepowodzenie (domyślnie 1) | ||||||
|         """ |         """ | ||||||
|  |         if ip in self.banned_ips: | ||||||
|  |             self.logger.debug(f"IP {ip} already banned, ignoring") | ||||||
|  |             return | ||||||
|  |          | ||||||
|         now = datetime.now() |         now = datetime.now() | ||||||
|          |          | ||||||
|         # Dodaj wpis do trackera |         # Dodaj wpis do trackera | ||||||
| @@ -157,7 +161,7 @@ class LogMonDaemon: | |||||||
|          |          | ||||||
|         # Usuń stare wpisy spoza okna czasowego |         # Usuń stare wpisy spoza okna czasowego | ||||||
|         time_window = self.config.getint('module_postfix', 'time_window',  |         time_window = self.config.getint('module_postfix', 'time_window',  | ||||||
|                                          fallback=60) |                                         fallback=60) | ||||||
|         cutoff = now - timedelta(seconds=time_window) |         cutoff = now - timedelta(seconds=time_window) | ||||||
|          |          | ||||||
|         while self.ip_tracker[ip] and self.ip_tracker[ip][0][0] < cutoff: |         while self.ip_tracker[ip] and self.ip_tracker[ip][0][0] < cutoff: | ||||||
| @@ -168,17 +172,16 @@ class LogMonDaemon: | |||||||
|         failures_count = len(self.ip_tracker[ip]) |         failures_count = len(self.ip_tracker[ip]) | ||||||
|          |          | ||||||
|         max_failures = self.config.getint('module_postfix', 'max_failures',  |         max_failures = self.config.getint('module_postfix', 'max_failures',  | ||||||
|                                          fallback=5) |                                         fallback=5) | ||||||
|          |          | ||||||
|         self.logger.debug( |         self.logger.debug( | ||||||
|             f"IP {ip}: {failures_count} failures, score {total_score}/{max_failures}" |             f"IP {ip}: {failures_count} failures, score {total_score}/{max_failures}" | ||||||
|         ) |         ) | ||||||
|          |          | ||||||
|         # Sprawdź czy przekroczono limit |         # Sprawdź czy przekroczono limit | ||||||
|         if total_score >= max_failures and ip not in self.banned_ips: |         if total_score >= max_failures: | ||||||
|             self.ban_ip(ip) |             self.ban_ip(ip) | ||||||
|         elif total_score >= max_failures and ip in self.banned_ips: |  | ||||||
|             self.logger.debug(f"IP {ip} already banned, ignoring") |  | ||||||
|              |              | ||||||
|     def ban_ip(self, ip): |     def ban_ip(self, ip): | ||||||
|         """ |         """ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Mateusz Gruszczyński
					Mateusz Gruszczyński