mirror of
https://github.com/netbirdio/netbird.git
synced 2026-09-23 15:19:08 +02:00
Add default firewall rules and fix tests in the github flow.
This commit is contained in:
@@ -223,7 +223,7 @@ func (e *Engine) Start() error {
|
||||
|
||||
e.routeManager = routemanager.NewManager(e.ctx, e.config.WgPrivateKey.PublicKey().String(), e.wgInterface, e.statusRecorder)
|
||||
|
||||
e.firewallManager, err = buildFirewallManager()
|
||||
e.firewallManager, err = buildFirewallManager(wgIfaceName)
|
||||
if err != nil {
|
||||
log.Errorf("failed to create firewall manager, ACL policy will not work: %s", err.Error())
|
||||
} else {
|
||||
|
||||
@@ -6,6 +6,7 @@ import (
|
||||
"net"
|
||||
"net/netip"
|
||||
"os"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
"strings"
|
||||
@@ -945,6 +946,12 @@ func TestEngine_firewallManager(t *testing.T) {
|
||||
if runtime.GOOS != "linux" {
|
||||
t.Skipf("firewall manager not supported in the: %s", runtime.GOOS)
|
||||
return
|
||||
} else {
|
||||
_, err := exec.LookPath("iptables")
|
||||
if err != nil {
|
||||
t.Skipf("iptables not found: %v", err)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
ctx, cancel := context.WithTimeout(CtxInitState(context.Background()), 10*time.Second)
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
//go:build !linux
|
||||
|
||||
package internal
|
||||
|
||||
import (
|
||||
@@ -5,15 +7,8 @@ import (
|
||||
"runtime"
|
||||
|
||||
"github.com/netbirdio/netbird/client/firewall"
|
||||
"github.com/netbirdio/netbird/client/firewall/iptables"
|
||||
)
|
||||
|
||||
func buildFirewallManager() (fw firewall.Manager, err error) {
|
||||
switch runtime.GOOS {
|
||||
case "linux":
|
||||
return iptables.Create()
|
||||
|
||||
default:
|
||||
return nil, fmt.Errorf("not implemented for this OS: %s", runtime.GOOS)
|
||||
}
|
||||
func buildFirewallManager(wgIfaceName string) (fw firewall.Manager, err error) {
|
||||
return nil, fmt.Errorf("not implemented for this OS: %s", runtime.GOOS)
|
||||
}
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
package internal
|
||||
|
||||
import (
|
||||
log "github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/netbirdio/netbird/client/firewall"
|
||||
"github.com/netbirdio/netbird/client/firewall/iptables"
|
||||
)
|
||||
|
||||
// buildFirewallManager creates a firewall manager instance for the Linux
|
||||
func buildFirewallManager(wgIfaceName string) (firewall.Manager, error) {
|
||||
fw, err := iptables.Create(wgIfaceName)
|
||||
if err != nil {
|
||||
log.Debugf("failed to create iptables manager: %s", err)
|
||||
return nil, err
|
||||
}
|
||||
return fw, nil
|
||||
}
|
||||
Reference in New Issue
Block a user