Rename interface to firewaller

This commit is contained in:
Zoltán Papp
2025-01-27 10:41:25 +01:00
parent efa8c17d27
commit f89994a988
13 changed files with 31 additions and 33 deletions
+2 -2
View File
@@ -8,13 +8,13 @@ import (
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
"github.com/netbirdio/netbird/client/firewall/interface" "github.com/netbirdio/netbird/client/firewall/firewaller"
"github.com/netbirdio/netbird/client/firewall/uspfilter" "github.com/netbirdio/netbird/client/firewall/uspfilter"
"github.com/netbirdio/netbird/client/internal/statemanager" "github.com/netbirdio/netbird/client/internal/statemanager"
) )
// NewFirewall creates a firewall manager instance // NewFirewall creates a firewall manager instance
func NewFirewall(iface IFaceMapper, _ *statemanager.Manager) (_interface.Firewall, error) { func NewFirewall(iface IFaceMapper, _ *statemanager.Manager) (firewaller.Firewall, error) {
if !iface.IsUserspaceBind() { if !iface.IsUserspaceBind() {
return nil, fmt.Errorf("not implemented for this OS: %s", runtime.GOOS) return nil, fmt.Errorf("not implemented for this OS: %s", runtime.GOOS)
} }
+5 -5
View File
@@ -11,7 +11,7 @@ import (
"github.com/google/nftables" "github.com/google/nftables"
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
"github.com/netbirdio/netbird/client/firewall/interface" "github.com/netbirdio/netbird/client/firewall/firewaller"
nbiptables "github.com/netbirdio/netbird/client/firewall/iptables" nbiptables "github.com/netbirdio/netbird/client/firewall/iptables"
nbnftables "github.com/netbirdio/netbird/client/firewall/nftables" nbnftables "github.com/netbirdio/netbird/client/firewall/nftables"
"github.com/netbirdio/netbird/client/firewall/uspfilter" "github.com/netbirdio/netbird/client/firewall/uspfilter"
@@ -33,7 +33,7 @@ const SKIP_NFTABLES_ENV = "NB_SKIP_NFTABLES_CHECK"
// FWType is the type for the firewall type // FWType is the type for the firewall type
type FWType int type FWType int
func NewFirewall(iface IFaceMapper, stateManager *statemanager.Manager) (_interface.Firewall, error) { func NewFirewall(iface IFaceMapper, stateManager *statemanager.Manager) (firewaller.Firewall, error) {
// on the linux system we try to user nftables or iptables // on the linux system we try to user nftables or iptables
// in any case, because we need to allow netbird interface traffic // in any case, because we need to allow netbird interface traffic
// so we use AllowNetbird traffic from these firewall managers // so we use AllowNetbird traffic from these firewall managers
@@ -50,7 +50,7 @@ func NewFirewall(iface IFaceMapper, stateManager *statemanager.Manager) (_interf
return createUserspaceFirewall(iface, fm) return createUserspaceFirewall(iface, fm)
} }
func createNativeFirewall(iface IFaceMapper, stateManager *statemanager.Manager) (_interface.Firewall, error) { func createNativeFirewall(iface IFaceMapper, stateManager *statemanager.Manager) (firewaller.Firewall, error) {
fm, err := createFW(iface) fm, err := createFW(iface)
if err != nil { if err != nil {
return nil, fmt.Errorf("create firewall: %s", err) return nil, fmt.Errorf("create firewall: %s", err)
@@ -63,7 +63,7 @@ func createNativeFirewall(iface IFaceMapper, stateManager *statemanager.Manager)
return fm, nil return fm, nil
} }
func createFW(iface IFaceMapper) (_interface.Firewall, error) { func createFW(iface IFaceMapper) (firewaller.Firewall, error) {
switch check() { switch check() {
case IPTABLES: case IPTABLES:
log.Info("creating an iptables firewall manager") log.Info("creating an iptables firewall manager")
@@ -77,7 +77,7 @@ func createFW(iface IFaceMapper) (_interface.Firewall, error) {
} }
} }
func createUserspaceFirewall(iface IFaceMapper, fm _interface.Firewall) (_interface.Firewall, error) { func createUserspaceFirewall(iface IFaceMapper, fm firewaller.Firewall) (firewaller.Firewall, error) {
var errUsp error var errUsp error
if fm != nil { if fm != nil {
fm, errUsp = uspfilter.CreateWithNativeFirewall(iface, fm) fm, errUsp = uspfilter.CreateWithNativeFirewall(iface, fm)
@@ -1,4 +1,4 @@
package _interface package firewaller
import ( import (
"net" "net"
+1 -1
View File
@@ -13,7 +13,7 @@ import (
"github.com/google/uuid" "github.com/google/uuid"
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
firewall "github.com/netbirdio/netbird/client/firewall/interface" firewall "github.com/netbirdio/netbird/client/firewall/firewaller"
"github.com/netbirdio/netbird/client/firewall/types" "github.com/netbirdio/netbird/client/firewall/types"
"github.com/netbirdio/netbird/client/firewall/uspfilter/conntrack" "github.com/netbirdio/netbird/client/firewall/uspfilter/conntrack"
"github.com/netbirdio/netbird/client/iface" "github.com/netbirdio/netbird/client/iface"
+3 -3
View File
@@ -15,7 +15,7 @@ import (
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
nberrors "github.com/netbirdio/netbird/client/errors" nberrors "github.com/netbirdio/netbird/client/errors"
"github.com/netbirdio/netbird/client/firewall/interface" "github.com/netbirdio/netbird/client/firewall/firewaller"
"github.com/netbirdio/netbird/client/firewall/types" "github.com/netbirdio/netbird/client/firewall/types"
"github.com/netbirdio/netbird/client/internal/acl/id" "github.com/netbirdio/netbird/client/internal/acl/id"
"github.com/netbirdio/netbird/client/ssh" "github.com/netbirdio/netbird/client/ssh"
@@ -31,14 +31,14 @@ type Manager interface {
// DefaultManager uses firewall manager to handle // DefaultManager uses firewall manager to handle
type DefaultManager struct { type DefaultManager struct {
firewall _interface.Firewall firewall firewaller.Firewall
ipsetCounter int ipsetCounter int
peerRulesPairs map[id.RuleID][]types.Rule peerRulesPairs map[id.RuleID][]types.Rule
routeRules map[id.RuleID]struct{} routeRules map[id.RuleID]struct{}
mutex sync.Mutex mutex sync.Mutex
} }
func NewDefaultManager(fm _interface.Firewall) *DefaultManager { func NewDefaultManager(fm firewaller.Firewall) *DefaultManager {
return &DefaultManager{ return &DefaultManager{
firewall: fm, firewall: fm,
peerRulesPairs: make(map[id.RuleID][]types.Rule), peerRulesPairs: make(map[id.RuleID][]types.Rule),
+2 -3
View File
@@ -7,7 +7,6 @@ import (
"github.com/golang/mock/gomock" "github.com/golang/mock/gomock"
"github.com/netbirdio/netbird/client/firewall" "github.com/netbirdio/netbird/client/firewall"
"github.com/netbirdio/netbird/client/firewall/interface"
"github.com/netbirdio/netbird/client/iface" "github.com/netbirdio/netbird/client/iface"
"github.com/netbirdio/netbird/client/internal/acl/mocks" "github.com/netbirdio/netbird/client/internal/acl/mocks"
mgmProto "github.com/netbirdio/netbird/management/proto" mgmProto "github.com/netbirdio/netbird/management/proto"
@@ -56,7 +55,7 @@ func TestDefaultManager(t *testing.T) {
t.Errorf("create firewall: %v", err) t.Errorf("create firewall: %v", err)
return return
} }
defer func(fw _interface.Firewall) { defer func(fw firewaller.Firewall) {
_ = fw.Reset(nil) _ = fw.Reset(nil)
}(fw) }(fw)
acl := NewDefaultManager(fw) acl := NewDefaultManager(fw)
@@ -349,7 +348,7 @@ func TestDefaultManagerEnableSSHRules(t *testing.T) {
t.Errorf("create firewall: %v", err) t.Errorf("create firewall: %v", err)
return return
} }
defer func(fw _interface.Firewall) { defer func(fw firewaller.Firewall) {
_ = fw.Reset(nil) _ = fw.Reset(nil)
}(fw) }(fw)
acl := NewDefaultManager(fw) acl := NewDefaultManager(fw)
+3 -3
View File
@@ -9,7 +9,7 @@ import (
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
nberrors "github.com/netbirdio/netbird/client/errors" nberrors "github.com/netbirdio/netbird/client/errors"
"github.com/netbirdio/netbird/client/firewall/interface" "github.com/netbirdio/netbird/client/firewall/firewaller"
"github.com/netbirdio/netbird/client/firewall/types" "github.com/netbirdio/netbird/client/firewall/types"
) )
@@ -20,13 +20,13 @@ const (
) )
type Manager struct { type Manager struct {
firewall _interface.Firewall firewall firewaller.Firewall
fwRules []types.Rule fwRules []types.Rule
dnsForwarder *DNSForwarder dnsForwarder *DNSForwarder
} }
func NewManager(fw _interface.Firewall) *Manager { func NewManager(fw firewaller.Firewall) *Manager {
return &Manager{ return &Manager{
firewall: fw, firewall: fw,
} }
+2 -2
View File
@@ -25,7 +25,7 @@ import (
nberrors "github.com/netbirdio/netbird/client/errors" nberrors "github.com/netbirdio/netbird/client/errors"
"github.com/netbirdio/netbird/client/firewall" "github.com/netbirdio/netbird/client/firewall"
"github.com/netbirdio/netbird/client/firewall/interface" "github.com/netbirdio/netbird/client/firewall/firewaller"
"github.com/netbirdio/netbird/client/firewall/types" "github.com/netbirdio/netbird/client/firewall/types"
"github.com/netbirdio/netbird/client/iface" "github.com/netbirdio/netbird/client/iface"
"github.com/netbirdio/netbird/client/iface/bind" "github.com/netbirdio/netbird/client/iface/bind"
@@ -170,7 +170,7 @@ type Engine struct {
statusRecorder *peer.Status statusRecorder *peer.Status
firewall _interface.Firewall firewall firewaller.Firewall
routeManager routemanager.Manager routeManager routemanager.Manager
acl acl.Manager acl acl.Manager
dnsForwardMgr *dnsfwd.Manager dnsForwardMgr *dnsfwd.Manager
+3 -3
View File
@@ -8,7 +8,7 @@ import (
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
nberrors "github.com/netbirdio/netbird/client/errors" nberrors "github.com/netbirdio/netbird/client/errors"
"github.com/netbirdio/netbird/client/firewall/interface" "github.com/netbirdio/netbird/client/firewall/firewaller"
"github.com/netbirdio/netbird/client/firewall/types" "github.com/netbirdio/netbird/client/firewall/types"
) )
@@ -18,13 +18,13 @@ type RulePair struct {
} }
type Manager struct { type Manager struct {
firewall _interface.Firewall firewall firewaller.Firewall
rules map[string]RulePair // keys is the ID of the ForwardRule rules map[string]RulePair // keys is the ID of the ForwardRule
rulesMu sync.Mutex rulesMu sync.Mutex
} }
func NewManager(firewall _interface.Firewall) *Manager { func NewManager(firewall firewaller.Firewall) *Manager {
return &Manager{ return &Manager{
firewall: firewall, firewall: firewall,
rules: make(map[string]RulePair), rules: make(map[string]RulePair),
+3 -3
View File
@@ -14,7 +14,7 @@ import (
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
"golang.org/x/exp/maps" "golang.org/x/exp/maps"
"github.com/netbirdio/netbird/client/firewall/interface" "github.com/netbirdio/netbird/client/firewall/firewaller"
"github.com/netbirdio/netbird/client/iface" "github.com/netbirdio/netbird/client/iface"
"github.com/netbirdio/netbird/client/iface/configurer" "github.com/netbirdio/netbird/client/iface/configurer"
"github.com/netbirdio/netbird/client/iface/netstack" "github.com/netbirdio/netbird/client/iface/netstack"
@@ -44,7 +44,7 @@ type Manager interface {
GetClientRoutesWithNetID() map[route.NetID][]*route.Route GetClientRoutesWithNetID() map[route.NetID][]*route.Route
SetRouteChangeListener(listener listener.NetworkChangeListener) SetRouteChangeListener(listener listener.NetworkChangeListener)
InitialRouteRange() []string InitialRouteRange() []string
EnableServerRouter(firewall _interface.Firewall) error EnableServerRouter(firewall firewaller.Firewall) error
Stop(stateManager *statemanager.Manager) Stop(stateManager *statemanager.Manager)
} }
@@ -214,7 +214,7 @@ func (m *DefaultManager) initSelector() *routeselector.RouteSelector {
return routeselector.NewRouteSelector() return routeselector.NewRouteSelector()
} }
func (m *DefaultManager) EnableServerRouter(firewall _interface.Firewall) error { func (m *DefaultManager) EnableServerRouter(firewall firewaller.Firewall) error {
if m.disableServerRoutes { if m.disableServerRoutes {
log.Info("server routes are disabled") log.Info("server routes are disabled")
return nil return nil
+2 -2
View File
@@ -3,7 +3,7 @@ package routemanager
import ( import (
"context" "context"
"github.com/netbirdio/netbird/client/firewall/interface" "github.com/netbirdio/netbird/client/firewall/firewaller"
"github.com/netbirdio/netbird/client/iface" "github.com/netbirdio/netbird/client/iface"
"github.com/netbirdio/netbird/client/internal/listener" "github.com/netbirdio/netbird/client/internal/listener"
"github.com/netbirdio/netbird/client/internal/routeselector" "github.com/netbirdio/netbird/client/internal/routeselector"
@@ -78,7 +78,7 @@ func (m *MockManager) SetRouteChangeListener(listener listener.NetworkChangeList
} }
func (m *MockManager) EnableServerRouter(firewall _interface.Firewall) error { func (m *MockManager) EnableServerRouter(firewall firewaller.Firewall) error {
panic("implement me") panic("implement me")
} }
@@ -6,7 +6,6 @@ import (
"context" "context"
"fmt" "fmt"
"github.com/netbirdio/netbird/client/firewall/interface"
"github.com/netbirdio/netbird/client/iface" "github.com/netbirdio/netbird/client/iface"
"github.com/netbirdio/netbird/client/internal/peer" "github.com/netbirdio/netbird/client/internal/peer"
"github.com/netbirdio/netbird/route" "github.com/netbirdio/netbird/route"
@@ -22,6 +21,6 @@ func (r serverRouter) updateRoutes(map[route.ID]*route.Route) error {
return nil return nil
} }
func newServerRouter(context.Context, iface.IWGIface, _interface.Firewall, *peer.Status) (*serverRouter, error) { func newServerRouter(context.Context, iface.IWGIface, firewaller.Firewall, *peer.Status) (*serverRouter, error) {
return nil, fmt.Errorf("server route not supported on this os") return nil, fmt.Errorf("server route not supported on this os")
} }
@@ -10,7 +10,7 @@ import (
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
"github.com/netbirdio/netbird/client/firewall/interface" "github.com/netbirdio/netbird/client/firewall/firewaller"
"github.com/netbirdio/netbird/client/firewall/types" "github.com/netbirdio/netbird/client/firewall/types"
"github.com/netbirdio/netbird/client/iface" "github.com/netbirdio/netbird/client/iface"
"github.com/netbirdio/netbird/client/internal/peer" "github.com/netbirdio/netbird/client/internal/peer"
@@ -22,12 +22,12 @@ type serverRouter struct {
mux sync.Mutex mux sync.Mutex
ctx context.Context ctx context.Context
routes map[route.ID]*route.Route routes map[route.ID]*route.Route
firewall _interface.Firewall firewall firewaller.Firewall
wgInterface iface.IWGIface wgInterface iface.IWGIface
statusRecorder *peer.Status statusRecorder *peer.Status
} }
func newServerRouter(ctx context.Context, wgInterface iface.IWGIface, firewall _interface.Firewall, statusRecorder *peer.Status) (*serverRouter, error) { func newServerRouter(ctx context.Context, wgInterface iface.IWGIface, firewall firewaller.Firewall, statusRecorder *peer.Status) (*serverRouter, error) {
return &serverRouter{ return &serverRouter{
ctx: ctx, ctx: ctx,
routes: make(map[route.ID]*route.Route), routes: make(map[route.ID]*route.Route),