Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion files/etc/config/firewall
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
config defaults 'ns_defaults'
option syn_flood 1
option input REJECT
option output ACCEPT
option forward REJECT
Expand Down
35 changes: 25 additions & 10 deletions packages/ns-api/files/ns.threatshield
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,9 @@ def list_blocklist(e_uci):
return { "data": ret }

def list_settings(e_uci):
ban_icmplimit_default = 25
ban_synlimit_default = 10
ban_udplimit_default = 100
return {
'data': {
'enabled': e_uci.get('banip', 'global', 'ban_enabled') == '1',
Expand All @@ -177,10 +180,13 @@ def list_settings(e_uci):
'ban_loglimit': True if int(e_uci.get('banip', 'global', 'ban_loglimit', default=100)) > 0 else False,
'ban_logcount': e_uci.get('banip', 'global', 'ban_logcount', default=1),
'ban_logterm': e_uci.get('banip', 'global', 'ban_logterm', list=True, default=[]),
'ban_icmplimit': True if int(e_uci.get('banip', 'global', 'ban_icmplimit', default=10)) > 0 else False,
'ban_synlimit': True if int(e_uci.get('banip', 'global', 'ban_synlimit', default=10)) > 0 else False,
'ban_udplimit': True if int(e_uci.get('banip', 'global', 'ban_udplimit', default=100)) > 0 else False,
'ban_nftexpiry': e_uci.get('banip', 'global', 'ban_nftexpiry', default='30m')
'ban_icmplimit': e_uci.get('banip', 'global', 'ban_icmplimit', default=ban_icmplimit_default, dtype=int),
'ban_synlimit': e_uci.get('banip', 'global', 'ban_synlimit', default=ban_synlimit_default, dtype=int),
'ban_udplimit': e_uci.get('banip', 'global', 'ban_udplimit', default=ban_udplimit_default, dtype=int),
'ban_nftexpiry': e_uci.get('banip', 'global', 'ban_nftexpiry', default='30m'),
'ban_icmplimit_default': ban_icmplimit_default,
'ban_synlimit_default': ban_synlimit_default,
'ban_udplimit_default': ban_udplimit_default,
}
}

Expand Down Expand Up @@ -232,15 +238,15 @@ def edit_settings(e_uci, payload):
raise ValidationError('ban_logforwardlan', 'invalid', payload['ban_logforwardlan'])
if 'ban_icmplimit' not in payload:
raise ValidationError('ban_icmplimit', 'required')
if not isinstance(payload['ban_icmplimit'], bool):
if not (isinstance(payload['ban_icmplimit'], bool) or isinstance(payload['ban_icmplimit'], int)):
raise ValidationError('ban_icmplimit', 'invalid', payload['ban_icmplimit'])
if 'ban_synlimit' not in payload:
raise ValidationError('ban_synlimit', 'required')
if not isinstance(payload['ban_synlimit'], bool):
if not (isinstance(payload['ban_synlimit'], bool) or isinstance(payload['ban_synlimit'], int)):
raise ValidationError('ban_synlimit', 'invalid', payload['ban_synlimit'])
if 'ban_udplimit' not in payload:
raise ValidationError('ban_udplimit', 'required')
if not isinstance(payload['ban_udplimit'], bool):
if not (isinstance(payload['ban_udplimit'], bool) or isinstance(payload['ban_udplimit'], int)):
raise ValidationError('ban_udplimit', 'invalid', payload['ban_udplimit'])
if 'ban_loglimit' not in payload:
raise ValidationError('ban_loglimit', 'required')
Expand Down Expand Up @@ -273,9 +279,18 @@ def edit_settings(e_uci, payload):
e_uci.set('banip', 'global', 'ban_logforwardlan', payload['ban_logforwardlan'])
e_uci.set('banip', 'global', 'ban_loglimit', 100 if payload['ban_loglimit'] else 0)

e_uci.set('banip', 'global', 'ban_icmplimit', 10 if payload['ban_icmplimit'] else 0)
e_uci.set('banip', 'global', 'ban_synlimit', 10 if payload['ban_synlimit'] else 0)
e_uci.set('banip', 'global', 'ban_udplimit', 100 if payload['ban_udplimit'] else 0)
if isinstance(payload['ban_icmplimit'], int):
e_uci.set('banip', 'global', 'ban_icmplimit', max(0, payload['ban_icmplimit']))
else:
e_uci.set('banip', 'global', 'ban_icmplimit', 10 if payload['ban_icmplimit'] else 0)
if isinstance(payload['ban_synlimit'], int):
e_uci.set('banip', 'global', 'ban_synlimit', max(0, payload['ban_synlimit']))
else:
e_uci.set('banip', 'global', 'ban_synlimit', 10 if payload['ban_synlimit'] else 0)
if isinstance(payload['ban_udplimit'], int):
e_uci.set('banip', 'global', 'ban_udplimit', max(0, payload['ban_udplimit']))
else:
e_uci.set('banip', 'global', 'ban_udplimit', 100 if payload['ban_udplimit'] else 0)

if payload['ban_loglimit']:
e_uci.set('banip', 'global', 'ban_logcount', payload['ban_logcount'])
Expand Down
Loading