add timoute och export av fg config
This commit is contained in:
@@ -24,25 +24,24 @@ def analyze_logs(args: argparse.Namespace) -> int:
|
||||
min_score=args.min_score,
|
||||
allowlist=parse_allowlist(args.allowlist),
|
||||
)
|
||||
_print_json(
|
||||
{
|
||||
"summary": summarize_events(events),
|
||||
"diagnostics": {
|
||||
"top_source_ips": top_field_values(events, "srcip", limit=10),
|
||||
"top_services": top_field_values(events, "service", limit=10),
|
||||
"top_actions": top_field_values(events, "action", limit=10),
|
||||
"top_subtypes": top_field_values(events, "subtype", limit=10),
|
||||
"local_in_failures": local_in_failures(events, limit=10),
|
||||
},
|
||||
"block_candidates": [
|
||||
{"src_ip": candidate.src_ip, "score": candidate.score, "reasons": candidate.reasons}
|
||||
for candidate in candidates
|
||||
],
|
||||
}
|
||||
)
|
||||
analysis = {
|
||||
"summary": summarize_events(events),
|
||||
"diagnostics": {
|
||||
"top_source_ips": top_field_values(events, "srcip", limit=10),
|
||||
"top_services": top_field_values(events, "service", limit=10),
|
||||
"top_actions": top_field_values(events, "action", limit=10),
|
||||
"top_subtypes": top_field_values(events, "subtype", limit=10),
|
||||
"local_in_failures": local_in_failures(events, limit=10),
|
||||
},
|
||||
"block_candidates": [
|
||||
{"src_ip": candidate.src_ip, "score": candidate.score, "reasons": candidate.reasons}
|
||||
for candidate in candidates
|
||||
],
|
||||
}
|
||||
_print_json(analysis)
|
||||
if args.llm:
|
||||
print("\nLLM summary:")
|
||||
print(ollama_summary([], candidates, args.model))
|
||||
print(ollama_summary([], candidates, args.model, analysis=analysis, timeout=args.llm_timeout))
|
||||
return 0
|
||||
|
||||
|
||||
@@ -51,7 +50,7 @@ def audit_policy_file(args: argparse.Namespace) -> int:
|
||||
_print_json([finding.__dict__ for finding in findings])
|
||||
if args.llm:
|
||||
print("\nLLM summary:")
|
||||
print(ollama_summary(findings, [], args.model))
|
||||
print(ollama_summary(findings, [], args.model, timeout=args.llm_timeout))
|
||||
return 0
|
||||
|
||||
|
||||
@@ -117,12 +116,14 @@ def build_parser() -> argparse.ArgumentParser:
|
||||
logs.add_argument("--allowlist", default=None, help="Comma-separated IPs/CIDRs never to block")
|
||||
logs.add_argument("--llm", action="store_true", help="Ask local Ollama to summarize results")
|
||||
logs.add_argument("--model", default=None, help="Ollama model name")
|
||||
logs.add_argument("--llm-timeout", type=int, default=None, help="Ollama request timeout in seconds")
|
||||
logs.set_defaults(func=analyze_logs)
|
||||
|
||||
policies = subparsers.add_parser("audit-policies", help="Audit FortiOS firewall policy config")
|
||||
policies.add_argument("--config", required=True, help="Path to FortiOS config backup")
|
||||
policies.add_argument("--llm", action="store_true", help="Ask local Ollama to summarize results")
|
||||
policies.add_argument("--model", default=None, help="Ollama model name")
|
||||
policies.add_argument("--llm-timeout", type=int, default=None, help="Ollama request timeout in seconds")
|
||||
policies.set_defaults(func=audit_policy_file)
|
||||
|
||||
blocks = subparsers.add_parser("suggest-blocks", help="Suggest or execute guarded source IP blocks")
|
||||
|
||||
Reference in New Issue
Block a user