/usr/share/cagefs-skeleton/opt/imunify360/venv/lib/python3.11/site-packages/im360/simple_rpc
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()
.
Edit
..
Edit
__init__.py
Edit
__pycache__
Edit
configuration_management.py
Edit
conflicts.py
Edit
control_panel.py
Edit
countries.py
Edit
csf_imports.py
Edit
custom_lists.py
Edit
disabled_rules.py
Edit
feature.py
Edit
health.py
Edit
hosting_panel.py
Edit
incidents.py
Edit
kcarectl.py
Edit
lists.py
Edit
malware.py
Edit
middleware.py
Edit
proactive.py
Edit
remote_proxy.py
Edit
resident_socket.py
Edit
schema
Edit
schema.py
Edit
schema_responses
Edit
smart_advice.py
Edit
smtp_blocking.py
Edit
unavailable_on_freemium.py
Edit
uninstall_cleanup.py
Edit
validate.py
Edit
whitelist_rbl.py
Edit
whitelisted_crawlers.py
Edit
whitelisted_domains.py
Edit