yo4h!ddlZddlZddlZddlZddlmZmZddlm Z ddl m Z m Z m Z mZejeZdZdZdZdZd Zd Zd Zd Zd eedfdZGddZGddZGddeZGddeZGddeZdddZ dZ!dZ"dZ#d Z$d!Z%d"Z&d#Z'd$Z(dS)%N)IterableUnion)Core) check_run CheckRunErrorrun OsReleaseInfozimunify360-dos-protectionz imunify360-unified-access-loggerzimunify360-pamzimunify-auditd-log-readerzimunify360-scanlogdzimunify360-wafdzimunify360-agentcfd}|S)Nc|K|i|}td|t|d{VdS)Nzcheck_call(%r))loggerdebugr)argskwargscmdfuncs R/opt/imunify360/venv/lib/python3.11/site-packages/defence360agent/subsys/svcctl.pywrapperz_apply_cmd..wrappersTdD#F## %s+++nn)rrs` r _apply_cmdrs# Nrservices)_CentOs6_SystemctlBasedcK|D]} |d{V|d{Vn5#t$r(}td||Yd}~dSd}~wwxYwt dD]T}|d{Vrn7td|dtjdd{VUdS)Nz/Failed to reset failed state for service %s: %s z4Service %s is still not active, sleep for %s seconds) reset_failedrestartrr warningrange is_activeasynciosleep)rse_s r_reset_failed_stater's;## .."" " " " " " " "))++            NNA1a    FFFFFF   r # #A[[]]""""""  NNF1   -"" " " " " " " " "##s4= A/A**A/ceZdZdZdZdZedZedZedZ dZ edZ d Z d Z ed ZeZe Zd Zd ZdZdS)rz /sbin/servicez/sbin/chkconfigc||_dSN _service_nameself service_names r__init__z_CentOs6.__init__7)rc |j|jdgSNstart SVC_CTL_BINr,r.s rr4z_CentOs6.start:s $"4g>>rc |j|jdgSNstopr5r7s rr:z _CentOs6.stop>s $"4f==rc |j|jdgSNrr5r7s rrz_CentOs6.restartBs $"4i@@rc KdS)zNot implemented for Centos6Nrr7s rrz_CentOs6.reset_failedFs  rc |jd|jgS)Nz--add _CHKCONFIGr,)r.rs renablez_CentOs6.enableJ$*<==rcK|jd|jg}tj|tjtjdd{V}|d{V\}}|d{V}|dkod|vSN--liststdoutstderrrs:on) r@r,r"create_subprocess_execsuPIPEDEVNULL communicatewait)r.rprocoutr&rcs r is_enabledz_CentOs6.is_enabledNs$*<=3          ''))))))))Q99;;      Qw(6S=(rc|jd|jg}tj|tjtj}|jdkod|jvSrD)r@r,rJrrKrL returncoderG)r.rcps ris_enabled_syncz_CentOs6.is_enabled_syncWsF$*<= VC ; ; ;}!9f &99rc |jd|jgS)Nz--delr?r7s rdisablez_CentOs6.disable\rBrcbK|j|jdg}t|d{V\}}}|dkS)Nstatusrr6r,rr.r exit_coder&s rr!z_CentOs6.is_activecs?!3X> #C...... 1aA~rcK|d{Vr2|d{Vst|fd{VdSdSdSr*)rRr!r'r7s ractivate_socket_servicez _CentOs6.activate_socket_servicehs"" " " " " " " /1A1A+A+A+A+A+A+A /%tg.. . . . . . . . . . / / / /rctj|jd|jgtjtj}|jdkS)NrErFr)rJrr@r,rLrTr.rUs r unit_existsz_CentOs6.unit_existsls@ V _h(: ;::    }!!rN)__name__ __module__ __qualname__r6r@r0rr4r:rrrArRrVrXmaskunmaskr!r_rbrrrrr3s!K"J***??Z?>>Z>AAZA   >>Z>)))::: >>Z> D F ///"""""rrceZdZdZdZedZedZedZede fdZ de fdZ d Z d Z ede fd Zed Zed ZedZdZedZdZdZdS)r systemctlc||_dSr*r+r-s rr0z_SystemctlBased.__init__xr1rc |jd|jgSr3r5r7s rr4z_SystemctlBased.start{s '4+=>>rc |jd|jgSr9r5r7s rr:z_SystemctlBased.stops &$*<==rc |jd|jgSr<r5r7s rrz_SystemctlBased.restarts )T-?@@rnowc0|jdg|rdgng|jS)NrA--nowr5r.rns r _enable_nowz_SystemctlBased._enable_nows9    &wiiB      rcjK||d{Vi} tj|n#ttf$rYdSwxYw|dddkrdS|dddkr|d{VdSdS)N)rnIDubuntu VERSION_IDz16.04)rrr dict_from_fileFileNotFoundErrorPermissionErrorgetlowerr)r.rnosinfos rrAz_SystemctlBased.enables3'''''''''    ( 0 0 0 0!?3    FF  ::dB   % % ' '8 3 3 F ::lB ' '7 2 2,,..  3 2s7A  A cK|jd|jg}tj|tjtjdd{V}|d{V|d{V}|dkSNz is-enabledrFr)r6r,r"rIrJrLrMrN)r.rrOrQs rrRz_SystemctlBased.is_enabledst/AB3 BJ                  99;;      Qwrc|jd|jg}tj|tjtj}|dkSr)r6r,rJcallrL)r.rrQs rrVz_SystemctlBased.is_enabled_syncs7t/AB WSBJ ? ? ?Qwrc0|jdg|rdgng|jS)NrXrpr5rqs rrXz_SystemctlBased.disables9    &wiiB      rc |jd|jgS)Nreloadr5r7s rrz_SystemctlBased.reloads (D,>??rc |jd|jgS) It was created for imunify360-webshield which required masking as far This is no more relevant but let it stay is started by 'Wants=' in imunify360.service rfr5r7s rrfz_SystemctlBased.masks &$*<==rc |jd|jgS)rrgr5r7s rrgz_SystemctlBased.unmasks (D,>??rcbK|jd|jg}t|d{V\}}}|dkS)Nz is-activerr[r\s rr!z_SystemctlBased.is_actives?d.@A #C...... 1aA~rc |jd|jgS)Nz reset-failedr5r7s rrz_SystemctlBased.reset_faileds .$2DEErcKt|jd}|d{Vr3|d{Vst ||fd{VdSdSdS)Nz.socket)adaptorr,rRr!r')r.agent_service_sockets rr_z'_SystemctlBased.activate_socket_services&$*<'E'E'EFF&1133 3 3 3 3 3 3 D.88:::::::: D&t-A&BCC C C C C C C C C C  D D D Drctj|jd|jgtjtj}|jdkS)NcatrFr)rJrr6r,rLrTras rrbz_SystemctlBased.unit_existssA V  ud&8 9::    }!!rN)rcrdrer6r0rr4r:rboolrrrArRrVrXrrfrgr!rr_rbrrrrrusK***??Z?>>Z>AAZA $   Z !4!!!!"  d   Z @@Z@>>Z>@@Z@ FFZFDDD"""""rrceZdZdZdS)_CentOs7z/usr/bin/systemctlNrcrdrer6rrrrrs&KKKrrceZdZdZdS) _DebianUbuntuz/bin/systemctlNrrrrrrs"KKKrrc.eZdZddZeddZdS)MinidaemonService minidaemonc||_dSr*r+r-s rr0zMinidaemonService.__init__r1rNc4|j|jdg}|r||gz }|Sr<r5)r.servicers rrzMinidaemonService.restarts-!3Y?   G9 C r)rr*)rcrdrer0rrrrrrrsH****ZrrTinclude_centos6cttg|rtfn tRD]3}tj|jr ||cS4td)Nz'Cannot instantiate appropriate adaptor.) rrrtupleospathexistsr6 RuntimeError)r/ras rrrs}) 58++eggFF 7>>!- ( ( #1\?? " " " #DEEErc4ttjSr*)rrSVC_NAMErrrimunify360_servicers 4= ! !!rc ttdS#t$rtdYdSwxYw)NFrz5DOS Protector service is not available on this system)rDOS_PROTECTOR_SERVICE_NAMErr inforrr imunify360_dos_protector_servicer sP15IIII  KLLLtts$AAc*ttSr*)rUAL_SERVICE_NAMErrrimunify360_ual_servicer # $ $$rc*ttSr*)rPAM_SERVICE_NAMErrrimunify360_pam_servicerrrc*ttSr*)rSCANLOGD_SERVICE_NAMErrrimunify360_scanlogd_servicers ( ) ))rc*ttSr*)rWAFD_SERVICE_NAMErrrimunify360_wafd_servicer s $ % %%rc*ttSr*)rAGENT_SERVICE_NAMErrrimunify360_agent_servicer$s % & &&rctt}|rttStddS)Nz9Auditd-log-reader service is not available on this system)rAUDITD_SERVICE_NAMErbr r)units rimunify360_auditd_servicer(sK & ' 'D ,*+++ KKKLLL 4r))r"loggingr subprocessrJtypingrr defence360agent.contracts.configrdefence360agent.utilsrrrr getLoggerrcr rrrrrrrrr'rrrrrrrrrrrrrrrrrrsi """"""""111111NNNNNNNNNNNN  8 $ $85#1-%'#u:;<####*?"?"?"?"?"?"?"?"Dp"p"p"p"p"p"p"p"f''''''''#####O###        .2 F F F F F"""%%%%%%***&&&'''r