add support for lookup only blacklists which don't add bans in if a match found
This commit is contained in:
parent
ea0381a591
commit
b0ffd45657
4 changed files with 29 additions and 22 deletions
|
@ -1,6 +1,7 @@
|
||||||
Black List Scanning Bot Module for NeoStats Changelog.
|
Black List Scanning Bot Module for NeoStats Changelog.
|
||||||
==============================================================================
|
==============================================================================
|
||||||
3.0.a3-dev - Fish (F) & Mark (M)
|
3.0.a3-dev - Fish (F) & Mark (M)
|
||||||
|
- Add support for lookup lists only without banning (D)
|
||||||
- Make sure we broadcast a message when we akill even if not in verbose (F)
|
- Make sure we broadcast a message when we akill even if not in verbose (F)
|
||||||
- AKILL support (F)
|
- AKILL support (F)
|
||||||
- Reorder add command so name works. (M)
|
- Reorder add command so name works. (M)
|
||||||
|
|
46
blsb.c
46
blsb.c
|
@ -60,9 +60,9 @@ static Bot *blsb_bot;
|
||||||
|
|
||||||
static dom_list stddomlist[] =
|
static dom_list stddomlist[] =
|
||||||
{
|
{
|
||||||
{"Blitzed_OPM", "opm.blitzed.org", BL_LOOKUP_TXT_RECORD, "Open proxy - see http://opm.blitzed.org/%s"},
|
{"Blitzed_OPM", "opm.blitzed.org", BL_LOOKUP_TXT_RECORD, "Open proxy - see http://opm.blitzed.org/%s", 0},
|
||||||
{"Secure-IRC", "bl.irc-chat.net", BL_LOOKUP_TXT_RECORD, "Insecure Host - See http://secure.irc-chat.net/ipinfo.php?ip=%s"},
|
{"Secure-IRC", "bl.irc-chat.net", BL_LOOKUP_TXT_RECORD, "Insecure Host - See http://secure.irc-chat.net/ipinfo.php?ip=%s", 0},
|
||||||
{"Tor_Exit_Server", "tor.dnsbl.sectoor.de", BL_LOOKUP_TXT_RECORD, "Your Host is a Tor Exit Server"},
|
{"Tor_Exit_Server", "tor.dnsbl.sectoor.de", BL_LOOKUP_TXT_RECORD, "Your Host is a Tor Exit Server", 0},
|
||||||
{"", "", 0}
|
{"", "", 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -96,19 +96,19 @@ ModuleInfo module_info =
|
||||||
|
|
||||||
static bot_cmd blsb_commands[]=
|
static bot_cmd blsb_commands[]=
|
||||||
{
|
{
|
||||||
{"ADD", blsb_cmd_add, 4, NS_ULEVEL_ADMIN, blsb_help_add, 0, NULL, NULL},
|
{"ADD", blsb_cmd_add, 4, NS_ULEVEL_ADMIN, blsb_help_add, 0, NULL, NULL},
|
||||||
{"DEL", blsb_cmd_del, 1, NS_ULEVEL_ADMIN, blsb_help_del, 0, NULL, NULL},
|
{"DEL", blsb_cmd_del, 1, NS_ULEVEL_ADMIN, blsb_help_del, 0, NULL, NULL},
|
||||||
{"LIST", blsb_cmd_list, 0, NS_ULEVEL_ADMIN, blsb_help_list, 0, NULL, NULL},
|
{"LIST", blsb_cmd_list, 0, NS_ULEVEL_ADMIN, blsb_help_list, 0, NULL, NULL},
|
||||||
{"CHECK", blsb_cmd_check, 1, NS_ULEVEL_OPER, blsb_help_check, 0, NULL, NULL},
|
{"CHECK", blsb_cmd_check, 1, NS_ULEVEL_OPER, blsb_help_check, 0, NULL, NULL},
|
||||||
NS_CMD_END()
|
NS_CMD_END()
|
||||||
};
|
};
|
||||||
|
|
||||||
static bot_setting blsb_settings[]=
|
static bot_setting blsb_settings[]=
|
||||||
{
|
{
|
||||||
{"AKILL", &blsb.doakill, SET_TYPE_BOOLEAN, 0, 0, NS_ULEVEL_ADMIN, NULL, blsb_help_set_akill, NULL, (void*)1 },
|
{"AKILL", &blsb.doakill, SET_TYPE_BOOLEAN, 0, 0, NS_ULEVEL_ADMIN, NULL, blsb_help_set_akill, NULL, (void*)1 },
|
||||||
{"AKILLTIME", &blsb.akilltime, SET_TYPE_INT, 0, 20736000,NS_ULEVEL_ADMIN, NULL, blsb_help_set_akilltime, NULL, (void*)TS_ONE_DAY },
|
{"AKILLTIME", &blsb.akilltime, SET_TYPE_INT, 0, 20736000, NS_ULEVEL_ADMIN, NULL, blsb_help_set_akilltime, NULL, (void*)TS_ONE_DAY },
|
||||||
{"VERBOSE", &blsb.verbose, SET_TYPE_BOOLEAN, 0, 0, NS_ULEVEL_ADMIN, NULL, blsb_help_set_verbose, NULL, (void*)1 },
|
{"VERBOSE", &blsb.verbose, SET_TYPE_BOOLEAN, 0, 0, NS_ULEVEL_ADMIN, NULL, blsb_help_set_verbose, NULL, (void*)1 },
|
||||||
{"EXCLUSIONS", &blsb.exclusions, SET_TYPE_BOOLEAN, 0, 0, NS_ULEVEL_ADMIN, NULL, blsb_help_set_exclusions, blsb_set_exclusions_cb, (void *)0 },
|
{"EXCLUSIONS", &blsb.exclusions, SET_TYPE_BOOLEAN, 0, 0, NS_ULEVEL_ADMIN, NULL, blsb_help_set_exclusions, blsb_set_exclusions_cb, (void *)0 },
|
||||||
NS_SETTING_END()
|
NS_SETTING_END()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -146,7 +146,7 @@ ModuleEvent module_events[] =
|
||||||
* @return pointer to newly allocated entry
|
* @return pointer to newly allocated entry
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static dom_list *new_bldomain( const char *name, const char *domain, BL_LOOKUP_TYPE type, const char *msg )
|
static dom_list *new_bldomain( const char *name, const char *domain, BL_LOOKUP_TYPE type, const char *msg , int noban)
|
||||||
{
|
{
|
||||||
dom_list *dl;
|
dom_list *dl;
|
||||||
|
|
||||||
|
@ -154,7 +154,8 @@ static dom_list *new_bldomain( const char *name, const char *domain, BL_LOOKUP_T
|
||||||
strlcpy( dl->name, name, BUFSIZE );
|
strlcpy( dl->name, name, BUFSIZE );
|
||||||
strlcpy( dl->domain, domain, BUFSIZE );
|
strlcpy( dl->domain, domain, BUFSIZE );
|
||||||
strlcpy( dl->msg, msg, BUFSIZE );
|
strlcpy( dl->msg, msg, BUFSIZE );
|
||||||
dl->type = type;
|
dl->type = type;
|
||||||
|
dl->noban = noban;
|
||||||
lnode_create_append( blsb.domains, dl );
|
lnode_create_append( blsb.domains, dl );
|
||||||
DBAStore( "domains", dl->name, (void *)dl, sizeof( dom_list ) );
|
DBAStore( "domains", dl->name, (void *)dl, sizeof( dom_list ) );
|
||||||
return dl;
|
return dl;
|
||||||
|
@ -190,7 +191,7 @@ static void dnsbl_callback(void *data, adns_answer *a)
|
||||||
irc_chanalert( blsb_bot, "%s (%s) exists in %s blacklist: %s", sc->user->name, sc->ip, sc->domain->name, show );
|
irc_chanalert( blsb_bot, "%s (%s) exists in %s blacklist: %s", sc->user->name, sc->ip, sc->domain->name, show );
|
||||||
if (sc->check)
|
if (sc->check)
|
||||||
irc_prefmsg(blsb_bot, sc->check, "%s (%s) exists in %s blacklist: %s", sc->user->name, sc->ip, sc->domain->name, show);
|
irc_prefmsg(blsb_bot, sc->check, "%s (%s) exists in %s blacklist: %s", sc->user->name, sc->ip, sc->domain->name, show);
|
||||||
if (sc->banned == 0 && sc->user) {
|
if (sc->banned == 0 && sc->user && !sc->domain->noban) {
|
||||||
sc->banned = 1;
|
sc->banned = 1;
|
||||||
/* only ban/msg the user once */
|
/* only ban/msg the user once */
|
||||||
irc_prefmsg(blsb_bot, sc->user, "Your Host is listed as a inscure host at %s: %s", sc->domain->name, show);
|
irc_prefmsg(blsb_bot, sc->user, "Your Host is listed as a inscure host at %s: %s", sc->domain->name, show);
|
||||||
|
@ -263,7 +264,7 @@ static scanclient *do_lookup( Client *lookupuser, Client *reportuser )
|
||||||
nlog( LOG_WARNING, "Unknown Type for DNS BL %s", dl->name );
|
nlog( LOG_WARNING, "Unknown Type for DNS BL %s", dl->name );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
node = list_next( blsb.domains, node );
|
node = list_next( blsb.domains, node );
|
||||||
}
|
}
|
||||||
return sc;
|
return sc;
|
||||||
}
|
}
|
||||||
|
@ -287,7 +288,7 @@ int blsb_cmd_list( const CmdParams *cmdparams )
|
||||||
irc_prefmsg (blsb_bot, cmdparams->source, "BlackList domains:");
|
irc_prefmsg (blsb_bot, cmdparams->source, "BlackList domains:");
|
||||||
while (lnode) {
|
while (lnode) {
|
||||||
dl = lnode_get(lnode);
|
dl = lnode_get(lnode);
|
||||||
irc_prefmsg (blsb_bot, cmdparams->source, "%s: %s (type %d)", dl->domain, dl->name, dl->type);
|
irc_prefmsg (blsb_bot, cmdparams->source, "%s: %s (type %d) %s", dl->domain, dl->name, dl->type, dl->noban ? "NOBAN" : "");
|
||||||
lnode = list_next(blsb.domains, lnode);
|
lnode = list_next(blsb.domains, lnode);
|
||||||
}
|
}
|
||||||
irc_prefmsg (blsb_bot, cmdparams->source, "End of list.");
|
irc_prefmsg (blsb_bot, cmdparams->source, "End of list.");
|
||||||
|
@ -341,7 +342,7 @@ int blsb_cmd_add( const CmdParams *cmdparams )
|
||||||
}
|
}
|
||||||
lnode = list_next(blsb.domains, lnode);
|
lnode = list_next(blsb.domains, lnode);
|
||||||
}
|
}
|
||||||
dl = new_bldomain( cmdparams->av[2], cmdparams->av[0], type, msg );
|
dl = new_bldomain( cmdparams->av[2], cmdparams->av[0], type, msg , ircstrcasecmp( cmdparams->av[3], "NOBAN" ) ? 1 : 0);
|
||||||
irc_prefmsg( blsb_bot, cmdparams->source, "Added domain %s (%s) as type %d", dl->name, dl->domain, dl->type );
|
irc_prefmsg( blsb_bot, cmdparams->source, "Added domain %s (%s) as type %d", dl->name, dl->domain, dl->type );
|
||||||
CommandReport( blsb_bot, "%s added domain %s (%s) as type %d", cmdparams->source->name, dl->name, dl->domain, dl->type );
|
CommandReport( blsb_bot, "%s added domain %s (%s) as type %d", cmdparams->source->name, dl->name, dl->domain, dl->type );
|
||||||
return NS_SUCCESS;
|
return NS_SUCCESS;
|
||||||
|
@ -460,9 +461,12 @@ static int load_dom( void *data, int size )
|
||||||
{
|
{
|
||||||
dom_list *dl;
|
dom_list *dl;
|
||||||
|
|
||||||
dl = ns_calloc( sizeof(dom_list));
|
if( size == sizeof(dom_list) )
|
||||||
os_memcpy(dl, data, sizeof (dom_list));
|
{
|
||||||
lnode_create_append(blsb.domains, dl);
|
dl = ns_calloc( sizeof(dom_list));
|
||||||
|
os_memcpy(dl, data, sizeof (dom_list));
|
||||||
|
lnode_create_append(blsb.domains, dl);
|
||||||
|
}
|
||||||
return NS_FALSE;
|
return NS_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -482,7 +486,7 @@ static void load_default_bldomains( void )
|
||||||
default_domains = stddomlist;
|
default_domains = stddomlist;
|
||||||
while( default_domains->type != BL_LOOKUP_TYPE_MIN )
|
while( default_domains->type != BL_LOOKUP_TYPE_MIN )
|
||||||
{
|
{
|
||||||
(void)new_bldomain( default_domains->name, default_domains->domain, default_domains->type, default_domains->msg );
|
(void)new_bldomain( default_domains->name, default_domains->domain, default_domains->type, default_domains->msg , default_domains->noban );
|
||||||
default_domains++;
|
default_domains++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
1
blsb.h
1
blsb.h
|
@ -40,6 +40,7 @@ typedef struct dom_list {
|
||||||
char domain[BUFSIZE];
|
char domain[BUFSIZE];
|
||||||
BL_LOOKUP_TYPE type;
|
BL_LOOKUP_TYPE type;
|
||||||
char msg[BUFSIZE];
|
char msg[BUFSIZE];
|
||||||
|
int noban;
|
||||||
} dom_list;
|
} dom_list;
|
||||||
|
|
||||||
typedef struct scanclient {
|
typedef struct scanclient {
|
||||||
|
|
|
@ -43,13 +43,14 @@ const char *blsb_help_check[] = {
|
||||||
|
|
||||||
const char *blsb_help_add[] = {
|
const char *blsb_help_add[] = {
|
||||||
"Add to the blacklist domains",
|
"Add to the blacklist domains",
|
||||||
"Syntax: \2ADD <domain> <type> <name>\2",
|
"Syntax: \2ADD <domain> <type> <name> [NOBAN]\2",
|
||||||
"",
|
"",
|
||||||
"Add a domain to the blacklist lookup list",
|
"Add a domain to the blacklist lookup list",
|
||||||
"<type> 1 for TXT record lookups",
|
"<type> 1 for TXT record lookups",
|
||||||
" 2 for A record lookups",
|
" 2 for A record lookups",
|
||||||
"<domain> domain for lookups, e.g. opm.blitzed.org",
|
"<domain> domain for lookups, e.g. opm.blitzed.org",
|
||||||
"<name> name to assign to this entry, e.g. Blitzed OPM",
|
"<name> name to assign to this entry, e.g. Blitzed OPM",
|
||||||
|
"[NOBAN] does not ban if found, only inform the services channel",
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Reference in a new issue