mirror of
https://github.com/ntop/ntopng.git
synced 2026-05-01 00:19:33 +00:00
69 lines
1.6 KiB
Lua
69 lines
1.6 KiB
Lua
--
|
|
-- (C) 2018 - ntop.org
|
|
--
|
|
|
|
local lists_utils = {}
|
|
|
|
local dirs = ntop.getDirs()
|
|
local lists_path = dirs.httpdocsdir .. "/other/lists"
|
|
local CUSTOM_CATEGORY_MALWARE = 100
|
|
|
|
local blacklist_utils = require "blacklist_utils"
|
|
|
|
local function loadListItem(host, category)
|
|
category = tonumber(category)
|
|
|
|
if category ~= nil then
|
|
--traceError(TRACE_NORMAL, TRACE_CONSOLE, host .. " -> " .. category)
|
|
|
|
if category ~= CUSTOM_CATEGORY_MALWARE or blacklist_utils.isBlacklistEnabled() then
|
|
if isIPv4Network(host) then
|
|
if(category ~= CUSTOM_CATEGORY_MALWARE) then
|
|
ntop.loadCustomCategoryIp(host, category)
|
|
else
|
|
-- Add the host to the blacklist instead
|
|
ntop.addToHostBlacklist(host)
|
|
end
|
|
|
|
return true
|
|
else
|
|
ntop.loadCustomCategoryHost(host, category)
|
|
return true
|
|
end
|
|
end
|
|
end
|
|
|
|
return false
|
|
end
|
|
|
|
local function loadList(list_path)
|
|
for line in io.lines(list_path) do
|
|
if not starts(line, "#") then
|
|
local parts = {}
|
|
for word in line:gmatch("%S+") do parts[#parts + 1] = word end
|
|
|
|
if #parts == 2 then
|
|
host = parts[1]
|
|
category = parts[2]
|
|
|
|
loadListItem(host, category)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function lists_utils.reloadLists(force_purge)
|
|
blacklist_utils.beginLoad(force_purge)
|
|
|
|
for fname in pairs(ntop.readdir(lists_path) or {}) do
|
|
local list_path = lists_path .. "/" .. fname
|
|
|
|
traceError(TRACE_INFO, TRACE_CONSOLE, "Loading list " .. fname)
|
|
loadList(list_path)
|
|
end
|
|
|
|
ntop.reloadCustomCategories()
|
|
blacklist_utils.endLoad(force_purge)
|
|
end
|
|
|
|
return lists_utils
|