You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

39 lines
1.4 KiB

######## BLOCK BY IP[PORT] ########
#!trydef KZ_BLOCK_ENABLE 1
#!trydef KZ_BLOCK_LOG_LEVEL 1
#!trydef KZ_BLOCK_LOG_BUFFER 0
#!trydef KZ_BLOCK_DRY_RUN 0
#!ifdef KZ_BLOCK_COLD_CACHE
#!substdef "!BLOCK_S_WARM_CACHE!!g"
#!else
#!substdef "!BLOCK_S_WARM_CACHE!dbtable=block_cache;dbmode=1;!g"
#!endif
modparam("htable", "htable", "block=>size=8;BLOCK_S_WARM_CACHE")
modparam("statistics","variable", "block:blocked_requests")
kazoo.block_enable = KZ_BLOCK_ENABLE descr "enable block processing"
kazoo.block_log_level = KZ_BLOCK_LOG_LEVEL descr "block log level"
kazoo.block_log_buffer = KZ_BLOCK_LOG_BUFFER descr "log the received buffer"
kazoo.block_dry_run = KZ_BLOCK_DRY_RUN descr "log but keep processing"
## global param to enable route
received_route_mode=1
event_route[core:msg-received]
{
if($sel(cfg_get.kazoo.block_enable) == 1) {
if($sht(block=>$rcv(srcip)) || $sht(block=>$rcv(srcip)::$rcv(srcport))) {
if($sel(cfg_get.kazoo.block_log_buffer) == 1) {
xlog("$(sel(cfg_get.kazoo.block_log_level){s.int})", "|block|request from [$rcv(srcip):$rcv(srcport)] to [$rcv(rcvip):$rcv(rcvport)] was blocked => [$rcv(buf)]\n");
} else {
xlog("$(sel(cfg_get.kazoo.block_log_level){s.int})", "|block|request from [$rcv(srcip):$rcv(srcport)] to [$rcv(rcvip):$rcv(rcvport)] was blocked\n");
}
if($sel(cfg_get.kazoo.block_dry_run) == 0) {
drop;
}
}
}
}