mirror of
				https://github.com/usmannasir/cyberpanel.git
				synced 2025-11-03 20:05:58 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			85 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
import sys
 | 
						|
import subprocess
 | 
						|
import shutil
 | 
						|
import installLog as logging
 | 
						|
import argparse
 | 
						|
import os
 | 
						|
import shlex
 | 
						|
import socket
 | 
						|
 | 
						|
 | 
						|
 | 
						|
class FirewallUtilities:
 | 
						|
 | 
						|
    @staticmethod
 | 
						|
    def addRule(proto,port):
 | 
						|
        try:
 | 
						|
            if port == "21":
 | 
						|
                command = "sudo firewall-cmd --add-service=ftp --permanent"
 | 
						|
                cmd = shlex.split(command)
 | 
						|
                res = subprocess.call(cmd)
 | 
						|
 | 
						|
            ipAddress = "0.0.0.0/0"
 | 
						|
 | 
						|
            ruleFamily = 'rule family="ipv4"'
 | 
						|
            sourceAddress = 'source address="' + ipAddress + '"'
 | 
						|
            ruleProtocol = 'port protocol="' + proto + '"'
 | 
						|
            rulePort = 'port="' + port + '"'
 | 
						|
 | 
						|
            command = "sudo firewall-cmd --permanent --zone=public --add-rich-rule='" + ruleFamily + " " + sourceAddress + " " + ruleProtocol + " " + rulePort + " " + "accept'"
 | 
						|
 | 
						|
            cmd = shlex.split(command)
 | 
						|
 | 
						|
            res = subprocess.call(cmd)
 | 
						|
 | 
						|
            command = 'firewall-cmd --reload'
 | 
						|
 | 
						|
            cmd = shlex.split(command)
 | 
						|
 | 
						|
            res = subprocess.call(cmd)
 | 
						|
 | 
						|
        except OSError, msg:
 | 
						|
            logging.InstallLog.writeToFile(str(msg) + " [addRule]")
 | 
						|
            return 0
 | 
						|
        except ValueError, msg:
 | 
						|
            logging.InstallLog.writeToFile(str(msg) + " [addRule]")
 | 
						|
            return 0
 | 
						|
 | 
						|
        return 1
 | 
						|
 | 
						|
    @staticmethod
 | 
						|
    def deleteRule(proto, port):
 | 
						|
        try:
 | 
						|
            if port=="21":
 | 
						|
                command = "sudo firewall-cmd --remove-service=ftp --permanent"
 | 
						|
                cmd = shlex.split(command)
 | 
						|
                res = subprocess.call(cmd)
 | 
						|
 | 
						|
            ipAddress = "0.0.0.0/0"
 | 
						|
 | 
						|
            ruleFamily = 'rule family="ipv4"'
 | 
						|
            sourceAddress = 'source address="' + ipAddress + '"'
 | 
						|
            ruleProtocol = 'port protocol="' + proto + '"'
 | 
						|
            rulePort = 'port="' + port + '"'
 | 
						|
 | 
						|
            command = "sudo firewall-cmd --permanent --zone=public --remove-rich-rule='" + ruleFamily + " " + sourceAddress + " " + ruleProtocol + " " + rulePort + " " + "accept'"
 | 
						|
 | 
						|
            cmd = shlex.split(command)
 | 
						|
 | 
						|
            res = subprocess.call(cmd)
 | 
						|
 | 
						|
            command = 'firewall-cmd --reload'
 | 
						|
 | 
						|
            cmd = shlex.split(command)
 | 
						|
 | 
						|
            res = subprocess.call(cmd)
 | 
						|
 | 
						|
        except OSError, msg:
 | 
						|
            logging.InstallLog.writeToFile(str(msg) + " [deleteRule]")
 | 
						|
            return 0
 | 
						|
        except ValueError, msg:
 | 
						|
            logging.InstallLog.writeToFile(str(msg) + " [deleteRule]")
 | 
						|
            return 0
 | 
						|
 | 
						|
        return 1
 |