fix8: продакшн host firewall + dual reconcile firewall
- добавлена секция host_firewall в конфиг и defaults\n- реализован host firewall reconcile в отдельной таблице\n- apply-firewall теперь делает host firewall + anti-torrent\n- убрана JSON-инспекция из full-table drift для anti-torrent\n- расширен status вывод drift по host firewall/anti-torrent
This commit is contained in:
@@ -165,6 +165,29 @@ pub fn print_status(cfg: &Config) -> anyhow::Result<()> {
|
||||
Err(_) => println!(" filter statistics: unavailable"),
|
||||
}
|
||||
|
||||
println!("Host firewall:");
|
||||
println!(" enabled: {}", cfg.host_firewall.enabled);
|
||||
println!(" ssh_port: {}/tcp", cfg.host_firewall.ssh_port);
|
||||
println!(
|
||||
" amnezia_port: {}/{}",
|
||||
cfg.host_firewall.amnezia_port,
|
||||
cfg.host_firewall.amnezia_protocols.join(",")
|
||||
);
|
||||
println!(
|
||||
" input_policy: {}",
|
||||
cfg.host_firewall.default_input_policy.to_ascii_lowercase()
|
||||
);
|
||||
if cfg.host_firewall.enabled {
|
||||
match firewall::host_firewall_drift_reason(cfg) {
|
||||
Ok(None) => println!(" drift: no"),
|
||||
Ok(Some(reason)) => {
|
||||
println!(" drift: yes");
|
||||
println!(" reason: {}", reason);
|
||||
}
|
||||
Err(e) => println!(" drift: unknown ({e})"),
|
||||
}
|
||||
}
|
||||
|
||||
println!("Anti-torrent:");
|
||||
println!(" enabled: {}", cfg.anti_torrent.enabled);
|
||||
println!(
|
||||
@@ -173,6 +196,14 @@ pub fn print_status(cfg: &Config) -> anyhow::Result<()> {
|
||||
);
|
||||
|
||||
if cfg.anti_torrent.enabled {
|
||||
match firewall::antitorrent_drift_reason(cfg) {
|
||||
Ok(None) => println!(" drift: no"),
|
||||
Ok(Some(reason)) => {
|
||||
println!(" drift: yes");
|
||||
println!(" reason: {}", reason);
|
||||
}
|
||||
Err(e) => println!(" drift: unknown ({e})"),
|
||||
}
|
||||
match firewall::antitorrent_drop_counter(cfg) {
|
||||
Ok(Some((packets, bytes))) => {
|
||||
println!(" dropped_packets: {}", packets);
|
||||
@@ -243,6 +274,29 @@ fn print_degraded_sections(cfg: &Config) -> anyhow::Result<()> {
|
||||
println!("Traffic actual:");
|
||||
println!(" drift: unknown (container/netns not discovered)");
|
||||
|
||||
println!("Host firewall:");
|
||||
println!(" enabled: {}", cfg.host_firewall.enabled);
|
||||
println!(" ssh_port: {}/tcp", cfg.host_firewall.ssh_port);
|
||||
println!(
|
||||
" amnezia_port: {}/{}",
|
||||
cfg.host_firewall.amnezia_port,
|
||||
cfg.host_firewall.amnezia_protocols.join(",")
|
||||
);
|
||||
println!(
|
||||
" input_policy: {}",
|
||||
cfg.host_firewall.default_input_policy.to_ascii_lowercase()
|
||||
);
|
||||
if cfg.host_firewall.enabled {
|
||||
match firewall::host_firewall_drift_reason(cfg) {
|
||||
Ok(None) => println!(" drift: no"),
|
||||
Ok(Some(reason)) => {
|
||||
println!(" drift: yes");
|
||||
println!(" reason: {}", reason);
|
||||
}
|
||||
Err(e) => println!(" drift: unknown ({e})"),
|
||||
}
|
||||
}
|
||||
|
||||
println!("Anti-torrent:");
|
||||
println!(" enabled: {}", cfg.anti_torrent.enabled);
|
||||
println!(
|
||||
@@ -250,6 +304,14 @@ fn print_degraded_sections(cfg: &Config) -> anyhow::Result<()> {
|
||||
cfg.anti_torrent.max_connections_per_peer
|
||||
);
|
||||
if cfg.anti_torrent.enabled {
|
||||
match firewall::antitorrent_drift_reason(cfg) {
|
||||
Ok(None) => println!(" drift: no"),
|
||||
Ok(Some(reason)) => {
|
||||
println!(" drift: yes");
|
||||
println!(" reason: {}", reason);
|
||||
}
|
||||
Err(e) => println!(" drift: unknown ({e})"),
|
||||
}
|
||||
match firewall::antitorrent_drop_counter(cfg) {
|
||||
Ok(Some((packets, bytes))) => {
|
||||
println!(" dropped_packets: {}", packets);
|
||||
|
||||
Reference in New Issue
Block a user