403Webshell
Server IP : 216.106.184.20  /  Your IP : 216.73.216.234
Web Server : LiteSpeed
System : Linux asmodeus.in-hell.com 5.14.0-570.58.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Oct 29 06:24:11 EDT 2025 x86_64
User : sekoaid1 ( 1891)
PHP Version : 7.3.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/imunify360/venv/lib/python3.11/site-packages/im360/simple_rpc/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/imunify360/venv/lib/python3.11/site-packages/im360/simple_rpc/remote_proxy.py
import asyncio

from defence360agent.model.simplification import run_in_executor
from defence360agent.rpc_tools.lookup import RootEndpoints, bind
from defence360agent.rpc_tools.utils import run_in_executor_decorator
from defence360agent.utils import Scope
from im360.contracts.config import Protector
from im360.subsys.webshield import update_remote_proxy_config
from im360.internals.core.ipset.ip import IPSetRemoteProxy
from im360.model.firewall import RemoteProxy, RemoteProxyGroup


class RemoteProxyEndpoints(RootEndpoints):
    SCOPE = Scope.IM360

    @bind("remote-proxy", "list")
    @run_in_executor_decorator
    def remote_proxy_list(self, by_group=None, by_source=None):
        return {"items": RemoteProxy.list(by_group, by_source, None)}

    @bind("remote-proxy", "add")
    async def remote_proxy_add(self, name, networks):
        await run_in_executor(
            asyncio.get_event_loop(),
            lambda: RemoteProxy.add_many(
                name, RemoteProxyGroup.MANUAL, networks
            ),
        )
        async with Protector.RULE_EDIT_LOCK:
            for network in networks:
                await IPSetRemoteProxy().add(network, 0)
        await update_remote_proxy_config()

    @bind("remote-proxy", "delete")
    async def remote_proxy_delete(self, networks):
        deleted = await run_in_executor(
            asyncio.get_event_loop(),
            lambda: RemoteProxy.delete_networks(
                RemoteProxyGroup.MANUAL, networks
            ),
        )
        async with Protector.RULE_EDIT_LOCK:
            for network in deleted:
                await IPSetRemoteProxy().delete(network)
        if len(deleted):
            await update_remote_proxy_config()

    @bind("remote-proxy", "group", "enable")
    async def remote_proxy_group_enable(self, name, source):
        loop = asyncio.get_event_loop()
        changed = await run_in_executor(
            loop, lambda: RemoteProxyGroup.set_enabled(name, source, True)
        )
        if changed:
            networks = await run_in_executor(
                loop, lambda: RemoteProxy.list(name, source, None)
            )
            async with Protector.RULE_EDIT_LOCK:
                for network in networks:
                    await IPSetRemoteProxy().add(network["network"])
            if len(networks):
                await update_remote_proxy_config()

    @bind("remote-proxy", "group", "disable")
    async def remote_proxy_group_disable(self, name, source):
        loop = asyncio.get_event_loop()
        changed = await run_in_executor(
            loop, lambda: RemoteProxyGroup.set_enabled(name, source, False)
        )
        if changed:
            networks = await run_in_executor(
                loop, lambda: RemoteProxy.list(name, source, None)
            )
            async with Protector.RULE_EDIT_LOCK:
                for network in networks:
                    await IPSetRemoteProxy().delete(network["network"])
            if len(networks):
                await update_remote_proxy_config()

Youez - 2016 - github.com/yon3zu
LinuXploit