mirror of
				https://github.com/usmannasir/cyberpanel.git
				synced 2025-10-31 18:36:17 +01:00 
			
		
		
		
	- Introduced a new API endpoint to block IP addresses via firewalld, allowing users to manage security directly from the dashboard. - Updated the front-end to include a button for blocking IPs detected during brute force attacks, enhancing user interaction. - Revised README.md and documentation to include details about the new firewall blocking feature and its usage. - Improved the SSH security analysis function to streamline firewall command execution and ensure firewalld is active.
		
			
				
	
	
		
			65 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #!/usr/bin/env python3
 | |
| """
 | |
| Test script for the new firewall blocking functionality
 | |
| This script tests the blockIPAddress API endpoint
 | |
| """
 | |
| 
 | |
| import requests
 | |
| import json
 | |
| import sys
 | |
| 
 | |
| def test_firewall_blocking():
 | |
|     """
 | |
|     Test the firewall blocking functionality
 | |
|     Note: This is a basic test script. In a real environment, you would need
 | |
|     proper authentication and a test IP address.
 | |
|     """
 | |
|     
 | |
|     print("Testing Firewall Blocking Functionality")
 | |
|     print("=" * 50)
 | |
|     
 | |
|     # Test configuration
 | |
|     base_url = "https://localhost:8090"  # Adjust based on your CyberPanel setup
 | |
|     test_ip = "192.168.1.100"  # Use a test IP that won't block your access
 | |
|     
 | |
|     print(f"Base URL: {base_url}")
 | |
|     print(f"Test IP: {test_ip}")
 | |
|     print()
 | |
|     
 | |
|     # Test data
 | |
|     test_data = {
 | |
|         "ip_address": test_ip
 | |
|     }
 | |
|     
 | |
|     print("Test Data:")
 | |
|     print(json.dumps(test_data, indent=2))
 | |
|     print()
 | |
|     
 | |
|     print("Note: This test requires:")
 | |
|     print("1. Valid CyberPanel session with admin privileges")
 | |
|     print("2. CyberPanel addons enabled")
 | |
|     print("3. Active firewalld service")
 | |
|     print()
 | |
|     
 | |
|     print("To test manually:")
 | |
|     print("1. Login to CyberPanel dashboard")
 | |
|     print("2. Go to Dashboard -> SSH Security Analysis")
 | |
|     print("3. Look for 'Brute Force Attack Detected' alerts")
 | |
|     print("4. Click the 'Block IP' button next to malicious IPs")
 | |
|     print()
 | |
|     
 | |
|     print("Expected behavior:")
 | |
|     print("- Button shows loading state during blocking")
 | |
|     print("- Success notification appears on successful blocking")
 | |
|     print("- IP is marked as 'Blocked' in the interface")
 | |
|     print("- Security analysis refreshes to update alerts")
 | |
|     print()
 | |
|     
 | |
|     print("Firewall Commands:")
 | |
|     print("- firewalld: firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=<ip> drop'")
 | |
|     print("- firewalld reload: firewall-cmd --reload")
 | |
|     print()
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|     test_firewall_blocking()
 |