mirror of
https://github.com/netbirdio/netbird.git
synced 2026-10-12 08:29:06 +02:00
[management] remove toAll firewall rule (#4725)
This commit is contained in:
@@ -266,7 +266,7 @@ func TestAccount_getPeersByPolicy(t *testing.T) {
|
|||||||
|
|
||||||
expectedFirewallRules := []*types.FirewallRule{
|
expectedFirewallRules := []*types.FirewallRule{
|
||||||
{
|
{
|
||||||
PeerIP: "0.0.0.0",
|
PeerIP: "100.65.14.88",
|
||||||
Direction: types.FirewallRuleDirectionIN,
|
Direction: types.FirewallRuleDirectionIN,
|
||||||
Action: "accept",
|
Action: "accept",
|
||||||
Protocol: "all",
|
Protocol: "all",
|
||||||
@@ -274,7 +274,103 @@ func TestAccount_getPeersByPolicy(t *testing.T) {
|
|||||||
PolicyID: "RuleDefault",
|
PolicyID: "RuleDefault",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
PeerIP: "0.0.0.0",
|
PeerIP: "100.65.14.88",
|
||||||
|
Direction: types.FirewallRuleDirectionOUT,
|
||||||
|
Action: "accept",
|
||||||
|
Protocol: "all",
|
||||||
|
Port: "",
|
||||||
|
PolicyID: "RuleDefault",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
PeerIP: "100.65.62.5",
|
||||||
|
Direction: types.FirewallRuleDirectionIN,
|
||||||
|
Action: "accept",
|
||||||
|
Protocol: "all",
|
||||||
|
Port: "",
|
||||||
|
PolicyID: "RuleDefault",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
PeerIP: "100.65.62.5",
|
||||||
|
Direction: types.FirewallRuleDirectionOUT,
|
||||||
|
Action: "accept",
|
||||||
|
Protocol: "all",
|
||||||
|
Port: "",
|
||||||
|
PolicyID: "RuleDefault",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
PeerIP: "100.65.254.139",
|
||||||
|
Direction: types.FirewallRuleDirectionIN,
|
||||||
|
Action: "accept",
|
||||||
|
Protocol: "all",
|
||||||
|
Port: "",
|
||||||
|
PolicyID: "RuleDefault",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
PeerIP: "100.65.254.139",
|
||||||
|
Direction: types.FirewallRuleDirectionOUT,
|
||||||
|
Action: "accept",
|
||||||
|
Protocol: "all",
|
||||||
|
Port: "",
|
||||||
|
PolicyID: "RuleDefault",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
PeerIP: "100.65.32.206",
|
||||||
|
Direction: types.FirewallRuleDirectionIN,
|
||||||
|
Action: "accept",
|
||||||
|
Protocol: "all",
|
||||||
|
Port: "",
|
||||||
|
PolicyID: "RuleDefault",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
PeerIP: "100.65.32.206",
|
||||||
|
Direction: types.FirewallRuleDirectionOUT,
|
||||||
|
Action: "accept",
|
||||||
|
Protocol: "all",
|
||||||
|
Port: "",
|
||||||
|
PolicyID: "RuleDefault",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
PeerIP: "100.65.250.202",
|
||||||
|
Direction: types.FirewallRuleDirectionIN,
|
||||||
|
Action: "accept",
|
||||||
|
Protocol: "all",
|
||||||
|
Port: "",
|
||||||
|
PolicyID: "RuleDefault",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
PeerIP: "100.65.250.202",
|
||||||
|
Direction: types.FirewallRuleDirectionOUT,
|
||||||
|
Action: "accept",
|
||||||
|
Protocol: "all",
|
||||||
|
Port: "",
|
||||||
|
PolicyID: "RuleDefault",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
PeerIP: "100.65.13.186",
|
||||||
|
Direction: types.FirewallRuleDirectionIN,
|
||||||
|
Action: "accept",
|
||||||
|
Protocol: "all",
|
||||||
|
Port: "",
|
||||||
|
PolicyID: "RuleDefault",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
PeerIP: "100.65.13.186",
|
||||||
|
Direction: types.FirewallRuleDirectionOUT,
|
||||||
|
Action: "accept",
|
||||||
|
Protocol: "all",
|
||||||
|
Port: "",
|
||||||
|
PolicyID: "RuleDefault",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
PeerIP: "100.65.29.55",
|
||||||
|
Direction: types.FirewallRuleDirectionIN,
|
||||||
|
Action: "accept",
|
||||||
|
Protocol: "all",
|
||||||
|
Port: "",
|
||||||
|
PolicyID: "RuleDefault",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
PeerIP: "100.65.29.55",
|
||||||
Direction: types.FirewallRuleDirectionOUT,
|
Direction: types.FirewallRuleDirectionOUT,
|
||||||
Action: "accept",
|
Action: "accept",
|
||||||
Protocol: "all",
|
Protocol: "all",
|
||||||
@@ -833,10 +929,58 @@ func TestAccount_getPeersByPolicyPostureChecks(t *testing.T) {
|
|||||||
// We expect a single permissive firewall rule which all outgoing connections
|
// We expect a single permissive firewall rule which all outgoing connections
|
||||||
peers, firewallRules = account.GetPeerConnectionResources(context.Background(), account.Peers["peerC"], approvedPeers)
|
peers, firewallRules = account.GetPeerConnectionResources(context.Background(), account.Peers["peerC"], approvedPeers)
|
||||||
assert.Len(t, peers, len(account.Groups["GroupSwarm"].Peers))
|
assert.Len(t, peers, len(account.Groups["GroupSwarm"].Peers))
|
||||||
assert.Len(t, firewallRules, 1)
|
assert.Len(t, firewallRules, 7)
|
||||||
expectedFirewallRules := []*types.FirewallRule{
|
expectedFirewallRules := []*types.FirewallRule{
|
||||||
{
|
{
|
||||||
PeerIP: "0.0.0.0",
|
PeerIP: "100.65.80.39",
|
||||||
|
Direction: types.FirewallRuleDirectionOUT,
|
||||||
|
Action: "accept",
|
||||||
|
Protocol: "tcp",
|
||||||
|
Port: "80",
|
||||||
|
PolicyID: "RuleSwarm",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
PeerIP: "100.65.14.88",
|
||||||
|
Direction: types.FirewallRuleDirectionOUT,
|
||||||
|
Action: "accept",
|
||||||
|
Protocol: "tcp",
|
||||||
|
Port: "80",
|
||||||
|
PolicyID: "RuleSwarm",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
PeerIP: "100.65.62.5",
|
||||||
|
Direction: types.FirewallRuleDirectionOUT,
|
||||||
|
Action: "accept",
|
||||||
|
Protocol: "tcp",
|
||||||
|
Port: "80",
|
||||||
|
PolicyID: "RuleSwarm",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
PeerIP: "100.65.32.206",
|
||||||
|
Direction: types.FirewallRuleDirectionOUT,
|
||||||
|
Action: "accept",
|
||||||
|
Protocol: "tcp",
|
||||||
|
Port: "80",
|
||||||
|
PolicyID: "RuleSwarm",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
PeerIP: "100.65.13.186",
|
||||||
|
Direction: types.FirewallRuleDirectionOUT,
|
||||||
|
Action: "accept",
|
||||||
|
Protocol: "tcp",
|
||||||
|
Port: "80",
|
||||||
|
PolicyID: "RuleSwarm",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
PeerIP: "100.65.29.55",
|
||||||
|
Direction: types.FirewallRuleDirectionOUT,
|
||||||
|
Action: "accept",
|
||||||
|
Protocol: "tcp",
|
||||||
|
Port: "80",
|
||||||
|
PolicyID: "RuleSwarm",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
PeerIP: "100.65.21.56",
|
||||||
Direction: types.FirewallRuleDirectionOUT,
|
Direction: types.FirewallRuleDirectionOUT,
|
||||||
Action: "accept",
|
Action: "accept",
|
||||||
Protocol: "tcp",
|
Protocol: "tcp",
|
||||||
|
|||||||
@@ -1062,14 +1062,7 @@ func (a *Account) connResourcesGenerator(ctx context.Context, targetPeer *nbpeer
|
|||||||
rules := make([]*FirewallRule, 0)
|
rules := make([]*FirewallRule, 0)
|
||||||
peers := make([]*nbpeer.Peer, 0)
|
peers := make([]*nbpeer.Peer, 0)
|
||||||
|
|
||||||
all, err := a.GetGroupAll()
|
|
||||||
if err != nil {
|
|
||||||
log.WithContext(ctx).Errorf("failed to get group all: %v", err)
|
|
||||||
all = &Group{}
|
|
||||||
}
|
|
||||||
|
|
||||||
return func(rule *PolicyRule, groupPeers []*nbpeer.Peer, direction int) {
|
return func(rule *PolicyRule, groupPeers []*nbpeer.Peer, direction int) {
|
||||||
isAll := (len(all.Peers) - 1) == len(groupPeers)
|
|
||||||
for _, peer := range groupPeers {
|
for _, peer := range groupPeers {
|
||||||
if peer == nil {
|
if peer == nil {
|
||||||
continue
|
continue
|
||||||
@@ -1088,10 +1081,6 @@ func (a *Account) connResourcesGenerator(ctx context.Context, targetPeer *nbpeer
|
|||||||
Protocol: string(rule.Protocol),
|
Protocol: string(rule.Protocol),
|
||||||
}
|
}
|
||||||
|
|
||||||
if isAll {
|
|
||||||
fr.PeerIP = "0.0.0.0"
|
|
||||||
}
|
|
||||||
|
|
||||||
ruleID := rule.ID + fr.PeerIP + strconv.Itoa(direction) +
|
ruleID := rule.ID + fr.PeerIP + strconv.Itoa(direction) +
|
||||||
fr.Protocol + fr.Action + strings.Join(rule.Ports, ",")
|
fr.Protocol + fr.Action + strings.Join(rule.Ports, ",")
|
||||||
if _, ok := rulesExists[ruleID]; ok {
|
if _, ok := rulesExists[ruleID]; ok {
|
||||||
|
|||||||
Reference in New Issue
Block a user