Skip to content
API Documentation
BastionGuard™
Firewall.hpp
Go to the documentation of this file.
1#pragma once
2#include <cstdint>
3#include <string>
4
5namespace bsc::fw {
6
7class Firewall {
8 public:
9 explicit Firewall(std::string backend = "nftables") : backend_(std::move(backend)) {}
10 bool reload(const std::string& config_path) const;
11
12 // Installa la chain di intercettazione che dirotta il traffico in uscita
13 // verso la NFQUEUE con numero `queue_num`. Restituisce true se nft e'
14 // disponibile e il comando e' stato eseguito con successo. In caso di
15 // errore (nft non installato, permessi mancanti, ecc.) restituisce false
16 // e il daemon cade nel fallback di polling /proc.
17 bool install_nfqueue_rule(std::uint16_t queue_num, bool queue_bypass = true) const;
18
19 // Rimuove la chain di intercettazione installata da install_nfqueue_rule.
20 // Sicuro da chiamare anche se la chain non esiste.
21 void remove_nfqueue_rule() const;
22
23 private:
24 std::string backend_;
25};
26
27} // namespace bsc::fw
bool install_nfqueue_rule(std::uint16_t queue_num, bool queue_bypass=true) const
Definition Firewall.cpp:472
Firewall(std::string backend="nftables")
Definition Firewall.hpp:9
void remove_nfqueue_rule() const
Definition Firewall.cpp:583
bool reload(const std::string &config_path) const
Definition Firewall.cpp:394
std::string backend_
Definition Firewall.hpp:24