[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: panel.py
File is not writable. Editing disabled.
import logging from functools import lru_cache, partial from typing import Set from pathlib import Path from defence360agent.subsys.panels.directadmin import DirectAdmin as Base from defence360agent.subsys.panels.directadmin.config import ConfigOptions from imav.malwarelib.subsys.pure_ftpd import PureFTPBaseConfig from im360.subsys.panels.base import PanelInterface from .mod_security import DirectAdminModSecurity, get_custombuild_webserver from .remoteip import RemoteIP PURE_FTP_CONFIG = ( "/usr/local/directadmin/custombuild/configure/pureftpd/pure-ftpd.conf" ) SETUP_TXT_OLD = Path("/usr/local/directadmin/scripts/setup.txt") SETUP_TXT = Path("/usr/local/directadmin/conf/setup.txt") VERSIONS = "/usr/local/directadmin/custombuild/versions.txt" logger = logging.getLogger(__name__) class DirectAdmin(Base, PanelInterface, DirectAdminModSecurity, RemoteIP): pure_ftp_conf_cls = partial(PureFTPBaseConfig, filename=PURE_FTP_CONFIG) @lru_cache(maxsize=1) def _get_config_options(self): config = {"is_SSL_on": False, "SSL_port": False, "port": "2222"} try: config["is_SSL_on"] = (ConfigOptions("SSL").get() or "0") == "1" config["SSL_port"] = ConfigOptions("ssl_port").get() or False config["port"] = ConfigOptions("port").get() or "2222" except (OSError, KeyError): logger.exception("Failed to obtain options from DA config") return config @lru_cache(maxsize=1) def _get_setup_file(self): if SETUP_TXT.exists(): return SETUP_TXT elif SETUP_TXT_OLD.exists(): return SETUP_TXT_OLD else: raise FileNotFoundError("setup.txt file not found") async def _get_all_admin_emails(self) -> list: emails = ConfigOptions("email", filename=self._get_setup_file()).get() if emails: return [email.strip() for email in emails.split(",") if email] return [] def http_ports(self) -> Set[int]: config = self._get_config_options() if config["is_SSL_on"]: return set() try: return {int(config["port"])} except ValueError: return set() def https_ports(self) -> Set[int]: config = self._get_config_options() ports = set() try: if config["SSL_port"]: ports.add(int(config["SSL_port"])) except ValueError: logger.warning( "Bad value for `SSL_port` in DirectAdmin configuration: %s", config["SSL_port"], ) try: if config["is_SSL_on"]: ports.add(int(config["port"])) except ValueError: logger.warning( "Bad value for `port` in DirectAdmin configuration: %s", config["port"], ) return ports def remoteip_supported(self) -> bool: return True async def get_web_server(self): return await get_custombuild_webserver()
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server05.hostinghome.co.in
Server IP: 192.168.74.40
PHP Version: 7.4.33
Server Software: Apache
System: Linux server05.hostinghome.co.in 3.10.0-962.3.2.lve1.5.81.el7.x86_64 #1 SMP Wed May 31 10:36:47 UTC 2023 x86_64
HDD Total: 1.95 TB
HDD Free: 690.17 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Disabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes
gcc:
Yes
pkexec:
No
git:
Yes
User Info
Username: itsweb
User ID (UID): 1619
Group ID (GID): 1621
Script Owner UID: 1619
Current Dir Owner: N/A