§
¦¾¡± ã óº — d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ d dl m
Z
d dlmZ d dl
mZ d dlmZ d d lmZ ej e¦ « Z G d
„ de
¦ « ZdS )é N)ÚPath)Úensure_line_in_file_bytes)Úfiles)ÚIDSAwareMessageSink)Ústrategy)Úsend_to_socket)ÚRULES_CHECK_IN_PROGRESS)Úcsfc óL — e Zd Zej j ZdZd„ Zd„ Z de
defd„Zd„ Z
dS ) ÚExportWBListFc ƒ ó K — || _ d S )N)Ú_loop)ÚselfÚloops úP/opt/imunify360/venv/lib/python3.11/site-packages/im360/plugins/export_wblist.pyÚcreate_sinkzExportWBList.create_sink s è è € ؈Œ
ˆ
ˆ
ó c óð — t t j ¦ « ¦ « r&t d¦ « t j S t d¦ « t j S )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)r r
ÚCSF_POST_HOOK_SCRIPT_USR_LOCALÚexistsÚloggerÚinfoÚCSF_POST_HOOK_SCRIPT_ETC)r s r Ú_determine_csf_post_hook_scriptz,ExportWBList._determine_csf_post_hook_script sc € õ •Ô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
|v r\| t
j
t
j ¦ « }| |¦ « t d|¦ « dS t |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_bytesr r r )r r Ú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àÐr c ƒ óH K — t j t j ¦ « }t j |d¦ « } t t j dt j
|¦ « z ¦ « }|rt d¦ « |
¦ « }| |¦ « }|s|rŒt d¦ « t j ¦ « r-t# j d¦ « ƒ d{V —† t j ¦ « °-t j ¦ « ƒ d{V —† t) ddid ¬
¦ « ƒ d{V —† | ¦ « dS # t" j $ r Y dS t. $ r t d| ¦ « Y dS w xY w)z
When switching to CSF mode, some critical addresses added to csf
allow list and the post-hook script is configured.
zimunify360.txts Include 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Újoinr r
ÚCSF_ALLOW_FILEÚfsencoder r r r/ r r ÚasyncioÚsleepÚrestart_allr Ú_mark_as_activeÚCancelledErrorÚ ExceptionÚ exception)r ÚprefixÚ
ALLOW_LISTÚ
include_addedr Úscript_updateds r ÚactivatezExportWBList.activateU sè è è € õ
”×'Ò'Ô(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_FREEMIUMr r ÚstrÚboolr/ rI © r r r r sz € € € € € ØÔ Ô2€HØ!Ððð ð ð0ð 0ð 0ð$) °Cð ) ¸Dð ) ð ) ð ) ð ) ðV$Cð $Cð $Cð $Cð $Cr r )r> Úloggingr9 Úpathlibr Údefence360agent.utilsr Úim360r Úim360.contracts.pluginsr Úim360.internalsr Ú im360.simple_rpc.resident_socketr Úim360.utils.lazy_initr Úim360.subsysr
Ú getLoggerrJ r r rS r r ú