edited where server sets peers to account for ACLs

This commit is contained in:
0xdcarns
2022-03-11 08:59:53 -05:00
parent 112f03cf1f
commit 7eac05528a
2 changed files with 12 additions and 2 deletions

View File

@@ -11,6 +11,8 @@ import (
"time" "time"
"github.com/gravitl/netmaker/logger" "github.com/gravitl/netmaker/logger"
"github.com/gravitl/netmaker/logic/acls"
"github.com/gravitl/netmaker/logic/acls/nodeacls"
"github.com/gravitl/netmaker/models" "github.com/gravitl/netmaker/models"
"github.com/gravitl/netmaker/netclient/ncutils" "github.com/gravitl/netmaker/netclient/ncutils"
"github.com/gravitl/netmaker/servercfg" "github.com/gravitl/netmaker/servercfg"
@@ -208,6 +210,11 @@ func GetServerPeers(serverNode *models.Node) ([]wgtypes.PeerConfig, bool, []stri
return nil, hasGateway, gateways, err return nil, hasGateway, gateways, err
} }
currentNetworkACL, err := nodeacls.FetchAllACLs(nodeacls.NetworkID(serverNode.Network))
if err != nil {
logger.Log(1, "could not fetch current ACL list, proceeding with all peers")
}
for _, node := range nodes { for _, node := range nodes {
pubkey, err := wgtypes.ParseKey(node.PublicKey) pubkey, err := wgtypes.ParseKey(node.PublicKey)
if err != nil { if err != nil {
@@ -290,7 +297,11 @@ func GetServerPeers(serverNode *models.Node) ([]wgtypes.PeerConfig, bool, []stri
ReplaceAllowedIPs: true, ReplaceAllowedIPs: true,
AllowedIPs: allowedips, AllowedIPs: allowedips,
} }
peers = append(peers, peer) if currentNetworkACL != nil && currentNetworkACL.IsAllowed(acls.AclID(serverNode.ID), acls.AclID(node.ID)) {
peers = append(peers, peer)
} else { // if ACLs were not found
peers = append(peers, peer)
}
} }
if serverNode.IsIngressGateway == "yes" { if serverNode.IsIngressGateway == "yes" {
extPeers, err := GetServerExtPeers(serverNode) extPeers, err := GetServerExtPeers(serverNode)

View File

@@ -206,7 +206,6 @@ func UpdatePeers(client mqtt.Client, msg mqtt.Message) {
ncutils.Log("error updating /etc/hosts " + err.Error()) ncutils.Log("error updating /etc/hosts " + err.Error())
return return
} }
ncutils.Log("DNS updating /etc/hosts")
} else { } else {
if err := removeHostDNS(ncutils.IsWindows()); err != nil { if err := removeHostDNS(ncutils.IsWindows()); err != nil {
ncutils.Log("error removing netmaker profile from /etc/hosts " + err.Error()) ncutils.Log("error removing netmaker profile from /etc/hosts " + err.Error())