mirror of
https://github.com/gravitl/netmaker.git
synced 2025-11-01 04:32:40 +08:00
edited where server sets peers to account for ACLs
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
@@ -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())
|
||||||
|
|||||||
Reference in New Issue
Block a user