Skip to content
API Documentation
BastionGuard™
Config.hpp
Go to the documentation of this file.
1#pragma once
2#include <cstdint>
3#include <string>
4
5namespace bsc::config {
6
7struct Config {
9 std::string cacert;
10 std::string server_cert;
11 std::string server_key;
12 std::string client_cert;
13 std::string client_key;
14 std::string client_auth_type{"no-client-cert"};
15 bool skip_verify{false};
16 };
17 struct ServerAuth {
18 std::string type{"simple"};
20 };
21 struct ServerConfig {
22 std::string address{"unix:///tmp/bsd-daemon.sock"};
24 std::string log_file{"/var/log/bastionguard-secure-connectiond.log"};
25 };
26 struct RulesOptions {
27 std::string path{"/etc/bastionguard-secure-connectiond/rules/"};
28 bool enable_checksums{false};
29 };
30 struct FwOptions {
31 std::string config_path{"/etc/bastionguard-secure-connectiond/system-fw.json"};
32 std::string monitor_interval{"15s"};
33 std::uint16_t queue_num{0};
34 bool queue_bypass{true};
35 };
36 struct StatsOptions {
37 std::uint32_t max_events{250};
38 std::uint32_t max_stats{25};
39 std::uint32_t workers{6};
40 };
42 int gc_percent{100};
44 };
45 struct TasksOptions {
46 std::string config_path{"/etc/bastionguard-secure-connectiond/tasks/"};
47 };
48
49 std::string source_path;
50 std::int32_t log_level{1};
51 std::string firewall{"nftables"};
52 std::string default_action{"allow"};
53 std::string default_duration{"once"};
54 std::string proc_monitor_method{"proc"};
55 std::string ebpf_obj_path{}; // percorso bsc_ebpf.o; "" = default di sistema
62 bool intercept_unknown{false};
63 bool log_utc{true};
64 bool log_micro{false};
65};
66
67Config load_file(const std::string& path);
68bool save_file(const Config& cfg, const std::string& path);
69std::string read_file(const std::string& path);
70
71} // namespace bsc::config
bool save_file(const Config &cfg, const std::string &path)
Definition Config.cpp:104
std::string read_file(const std::string &path)
Definition Config.cpp:43
Config load_file(const std::string &path)
Definition Config.cpp:51
StatsOptions stats
Definition Config.hpp:60
RulesOptions rules
Definition Config.hpp:58
std::string default_duration
Definition Config.hpp:53
std::string proc_monitor_method
Definition Config.hpp:54
std::string firewall
Definition Config.hpp:51
InternalOptions internal
Definition Config.hpp:59
std::int32_t log_level
Definition Config.hpp:50
std::string ebpf_obj_path
Definition Config.hpp:55
FwOptions fw_options
Definition Config.hpp:56
TasksOptions tasks
Definition Config.hpp:61
std::string source_path
Definition Config.hpp:49
ServerConfig server
Definition Config.hpp:57
std::string default_action
Definition Config.hpp:52