D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
opt
/
imunify360
/
venv
/
lib
/
python3.11
/
site-packages
/
im360
/
subsys
/
panels
/
plesk
/
Filename :
remoteip.py
back
Copy
import os from typing import Optional, Tuple from defence360agent.utils import check_run from im360.subsys.panels.base import RemoteIPInterface __all__ = [] # type: list _REMOTEIP = "remoteip" _RPAF = "rpaf" _HTTPD_IS_NOT_RUNNING = "httpd is not running" _NGINX_MNG_CMD = ("/usr/local/psa/admin/sbin/nginxmng", "-s") async def _enable_httpd_module(name: str): await check_run(["plesk", "sbin", "httpd_modules_ctl", "-e", name]) async def _is_nginx_proxy_on() -> bool: return b"Enabled" in ( await check_run( _NGINX_MNG_CMD, env=dict(os.environ, LC_ALL="C"), ) ) class RemoteIP(RemoteIPInterface): _REMOTEIP_MODULE_NAMES: Tuple[bytes, ...] = ( b"mod_remoteip", b"remoteip_module", b"rpaf_module", ) async def remoteip_activated(self) -> bool: return await self._is_loaded_to_apache() async def remoteip_install(self) -> Optional[str]: for m in (_REMOTEIP, _RPAF): await _enable_httpd_module(m) if await _is_nginx_proxy_on(): await check_run(["service", "nginx", "reload"]) return None