mirror of
https://github.com/netbirdio/netbird.git
synced 2026-10-06 21:49:08 +02:00
Reject port 0 in NB_DNS_FIREWALL_PORTS and roll back firewall on DNS setup failure
This commit is contained in:
@@ -49,6 +49,10 @@ func blockedPorts() []uint16 {
|
|||||||
log.Warnf("dns firewall: ignoring invalid port %q in %s: %v", raw, EnvPorts, err)
|
log.Warnf("dns firewall: ignoring invalid port %q in %s: %v", raw, EnvPorts, err)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
if port == 0 {
|
||||||
|
log.Warnf("dns firewall: ignoring port 0 in %s", EnvPorts)
|
||||||
|
continue
|
||||||
|
}
|
||||||
ports = append(ports, uint16(port))
|
ports = append(ports, uint16(port))
|
||||||
}
|
}
|
||||||
if len(ports) == 0 {
|
if len(ports) == 0 {
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ func TestBlockedPorts(t *testing.T) {
|
|||||||
{name: "override multi", ports: "53, 853 ,5353", setPorts: true, want: []uint16{53, 853, 5353}},
|
{name: "override multi", ports: "53, 853 ,5353", setPorts: true, want: []uint16{53, 853, 5353}},
|
||||||
{name: "override empty disables", ports: "", setPorts: true, want: nil},
|
{name: "override empty disables", ports: "", setPorts: true, want: nil},
|
||||||
{name: "override invalid skipped", ports: "53,not-a-port,853", setPorts: true, want: []uint16{53, 853}},
|
{name: "override invalid skipped", ports: "53,not-a-port,853", setPorts: true, want: []uint16{53, 853}},
|
||||||
|
{name: "override zero skipped", ports: "53,0,853", setPorts: true, want: []uint16{53, 853}},
|
||||||
{name: "override only invalid disables", ports: "abc", setPorts: true, want: nil},
|
{name: "override only invalid disables", ports: "abc", setPorts: true, want: nil},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -221,7 +221,11 @@ func (r *registryConfigurator) applyRouteAll(config HostDNSConfig) error {
|
|||||||
return fmt.Errorf("dns firewall: %w", err)
|
return fmt.Errorf("dns firewall: %w", err)
|
||||||
}
|
}
|
||||||
if err := r.addDNSSetupForAll(config.ServerIP); err != nil {
|
if err := r.addDNSSetupForAll(config.ServerIP); err != nil {
|
||||||
return fmt.Errorf("add dns setup: %w", err)
|
merr := multierror.Append(nil, fmt.Errorf("add dns setup: %w", err))
|
||||||
|
if dErr := r.dnsFirewall.Disable(); dErr != nil {
|
||||||
|
merr = multierror.Append(merr, fmt.Errorf("rollback dns firewall: %w", dErr))
|
||||||
|
}
|
||||||
|
return nberrors.FormatErrorOrNil(merr)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user