§ ¦¾¡± ãóº—ddlZddlZddlZddlmZddlmZddlmZddl m Z ddl m Z ddl mZddlmZdd lmZeje¦«ZGd „d e ¦«ZdS) éN)ÚPath)Úensure_line_in_file_bytes)Úfiles)ÚIDSAwareMessageSink)Ústrategy)Úsend_to_socket)ÚRULES_CHECK_IN_PROGRESS)ÚcsfcóL—eZdZejjZdZd„Zd„Z de de fd„Z d„Z dS) Ú ExportWBListFcƒóK—||_dS)N)Ú_loop)ÚselfÚloops úP/opt/imunify360/venv/lib/python3.11/site-packages/im360/plugins/export_wblist.pyÚ create_sinkzExportWBList.create_sinksèè€ØˆŒ ˆ ˆ ócóð—ttj¦« ¦«r&t d¦«tjSt d¦«tjS)a@ Determine which CSF post-hook script to use based on priority rules: - If /usr/local/csf/bin/csfpost.sh exists, use it (higher priority) - Otherwise use /etc/csf/csfpost.sh - Preserve any custom content from either script Returns path to the script that should be used. z7Using /usr/local/csf/bin/csfpost.sh as post-hook scriptz-Using /etc/csf/csfpost.sh as post-hook script)rr ÚCSF_POST_HOOK_SCRIPT_USR_LOCALÚexistsÚloggerÚinfoÚCSF_POST_HOOK_SCRIPT_ETC)rs rÚ_determine_csf_post_hook_scriptz,ExportWBList._determine_csf_post_hook_scriptsc€õ •Ô2Ñ 3Ô 3× :Ò :Ñ <Ô <ð 0Ý KŠKØIñ ô ð õÔ5Ð 5å KŠKÐGÑ HÔ HÐ HÝÔ/Ð /rÚ script_pathÚreturncóˆ—t|¦«}|j dd¬¦«| ¦«sM| dt j d¦«›d¦«| d¦«dS|  ¦«}t j |vr\|  t j t j¦«}|  |¦«t d|¦«dSt|t j¦«}|rt d|¦«|S) a Preserve custom content in the CSF post-hook script by ensuring our IPSET_RESTORE_SCRIPT is added without removing other content. Handles upgrade from legacy rules_checker.py to the new ipset_sync.py RPC script. T)ÚparentsÚexist_okz #!/bin/sh Úutf8ú ièz*Replaced legacy ipset restore script in %sz%Added command to restore ipsets to %s)rÚparentÚmkdirrÚ write_textr ÚIPSET_RESTORE_SCRIPTÚdecodeÚchmodÚ read_bytesÚIPSET_RESTORE_SCRIPT_LEGACYÚreplaceÚ write_bytesrrr)rrÚscriptÚcontentÚipset_line_addeds rÚ_preserve_custom_contentz%ExportWBList._preserve_custom_content*sA€õkÑ"Ô"ˆàŒ ×Ò D°4ÐÑ8Ô8Ð8à}Š}‰Œð Ø × Ò ØIcÔ6×=Ò=¸fÑEÔEÐIÐIÐIñ ô ð ð LŠL˜Ñ Ô Ð Ø4à×#Ò#Ñ%Ô%ˆå Ô *¨gÐ 5Ð 5Ø—o’oÝÔ/ÝÔ(ñôˆGð × Ò ˜wÑ 'Ô 'Ð 'Ý KŠKØ<¸kñ ô ð ð4å4Ø Ý Ô $ñ ô Ðð ð NÝ KŠKÐ?ÀÑ MÔ MÐ MàÐrcƒóHK—tj tj¦«}tj |d¦«} ttj dt j |¦«z¦«}|rt  d¦«|  ¦«}| |¦«}|s|rŒt  d¦«tj¦«r-t#jd¦«ƒd{V—†tj¦«°-tj¦«ƒd{V—†t)ddid ¬ ¦«ƒd{V—†| ¦«dS#t"j$rYdSt.$rt d |¦«YdSwxYw) z When switching to CSF mode, some critical addresses added to csf allow list and the post-hook script is configured. zimunify360.txtsInclude z-Need to restart CSF to include imunify360.txtz&CSF config was changed, restarting CSFéNÚmethodÚRECREATE_RULESF)ÚmsgÚwait_for_responsezFailed to activate %r plugin)rÚIndexÚ files_pathÚ WHITELISTSÚosÚpathÚjoinrr ÚCSF_ALLOW_FILEÚfsencoderrrr/r rÚasyncioÚsleepÚ restart_allrÚ_mark_as_activeÚCancelledErrorÚ ExceptionÚ exception)rÚprefixÚ ALLOW_LISTÚ include_addedrÚscript_updateds rÚactivatezExportWBList.activateUsèèè€õ ”×'Ò'­Ô(8Ñ9Ô9ˆÝ”W—\’\ &Ð*:Ñ;Ô;ˆ ð Cå5ÝÔ" Kµ"´+¸jÑ2IÔ2IÑ$IñôˆMðð MÝ— ’ ÐKÑLÔLÐLà×>Ò>Ñ@Ô@ˆKà!×:Ò:¸;ÑGÔGˆNðð  ð Ý— ’ ÐDÑEÔEÐEÝ-Ô4Ñ6Ô6ð+Ý!œ-¨Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*õ.Ô4Ñ6Ô6ð+å”oÑ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'å$à Ð"2ðð',ð ñôðððððððð × Ò Ñ "Ô "Ð "Ð "Ð "øÝÔ%ð ð ð Ø ˆDˆDÝð Cð Cð CÝ × Ò Ð;¸TÑ BÔ BÐ BÐ BÐ BÐ Bð CøøøsÁ DE'Å'F!Å9$F!Æ F!N)Ú__name__Ú __module__Ú __qualname__rÚStrategyÚCSF_COOP_STRATEGYÚSTRATEGYÚAVAILABLE_ON_FREEMIUMrrÚstrÚboolr/rI©rrr r sz€€€€€ØÔ Ô2€HØ!Ððððð0ð0ð0ð$) °Cð) ¸Dð) ð) ð) ð) ðV$Cð$Cð$Cð$Cð$Crr )r>Úloggingr9ÚpathlibrÚdefence360agent.utilsrÚim360rÚim360.contracts.pluginsrÚim360.internalsrÚ im360.simple_rpc.resident_socketrÚim360.utils.lazy_initr Ú im360.subsysr Ú getLoggerrJrr rSrrúr^s ðØ€€€Ø€€€Ø € € € ØÐÐÐÐÐà;Ð;Ð;Ð;Ð;Ð;ØÐÐÐÐÐØ7Ð7Ð7Ð7Ð7Ð7Ø$Ð$Ð$Ð$Ð$Ð$Ø;Ð;Ð;Ð;Ð;Ð;Ø9Ð9Ð9Ð9Ð9Ð9ØÐÐÐÐÐà ˆÔ ˜8Ñ $Ô $€ðhCðhCðhCðhCðhCÐ&ñhCôhCðhCðhCðhCr