hscontrol/policy/v2: convert ACL compat tests to JSON-driven format

Replace 9,937 lines of inline Go struct test expectations in
tailscale_acl_compat_test.go with 215 JSON golden files in
testdata/acl_results/ACL-*.json and a ~400-line Go driver in
tailscale_acl_data_compat_test.go.

This matches the pattern used by the grants compat tests
(testdata/grant_results/GRANT-*.json + tailscale_grants_compat_test.go)
and the SSH compat tests (testdata/ssh_results/SSH-*.json +
tailscale_ssh_data_compat_test.go).

The JSON golden files contain the same test expectations as the
original Go file, preserving the Tailscale SaaS reference data.
The expectations are NOT adapted to match headscale current output —
they represent the target behavior.

Test count is preserved: 215 test cases (203 success + 12 error).

Updates #2180
This commit is contained in:
Kristoffer Dalby
2026-03-17 11:13:04 +00:00
parent 0562bd85f4
commit 7e71d1b58f
217 changed files with 28219 additions and 9937 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,426 @@
// This file implements a data-driven test runner for ACL compatibility tests.
// It loads JSON golden files from testdata/acl_results/ACL-*.json and compares
// headscale's ACL engine output against the expected packet filter rules.
//
// The JSON files were converted from the original inline Go struct test cases
// in tailscale_acl_compat_test.go. Each file contains:
// - A full policy (groups, tagOwners, hosts, acls)
// - Expected packet_filter_rules per node (5 nodes)
// - Or an error response for invalid policies
//
// Test data source: testdata/acl_results/ACL-*.json
// Original source: Tailscale SaaS API captures + headscale-generated expansions
package v2
import (
"encoding/json"
"net/netip"
"os"
"path/filepath"
"strings"
"testing"
"github.com/google/go-cmp/cmp"
"github.com/google/go-cmp/cmp/cmpopts"
"github.com/juanfont/headscale/hscontrol/policy/policyutil"
"github.com/juanfont/headscale/hscontrol/types"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"gorm.io/gorm"
"tailscale.com/tailcfg"
)
// ptrAddr is a helper to create a pointer to a netip.Addr.
func ptrAddr(s string) *netip.Addr {
addr := netip.MustParseAddr(s)
return &addr
}
// setupTailscaleCompatUsers returns the test users for compatibility tests.
func setupTailscaleCompatUsers() types.Users {
return types.Users{
{Model: gorm.Model{ID: 1}, Name: "kratail2tid"},
}
}
// setupTailscaleCompatNodes returns the test nodes for compatibility tests.
// The node configuration matches the Tailscale test environment:
// - 1 user-owned node (user1)
// - 4 tagged nodes (tagged-server, tagged-client, tagged-db, tagged-web).
func setupTailscaleCompatNodes(users types.Users) types.Nodes {
nodeUser1 := &types.Node{
ID: 1,
GivenName: "user1",
User: &users[0],
UserID: &users[0].ID,
IPv4: ptrAddr("100.90.199.68"),
IPv6: ptrAddr("fd7a:115c:a1e0::2d01:c747"),
Hostinfo: &tailcfg.Hostinfo{},
}
nodeTaggedServer := &types.Node{
ID: 2,
GivenName: "tagged-server",
IPv4: ptrAddr("100.108.74.26"),
IPv6: ptrAddr("fd7a:115c:a1e0::b901:4a87"),
Tags: []string{"tag:server"},
Hostinfo: &tailcfg.Hostinfo{},
}
nodeTaggedClient := &types.Node{
ID: 3,
GivenName: "tagged-client",
IPv4: ptrAddr("100.80.238.75"),
IPv6: ptrAddr("fd7a:115c:a1e0::7901:ee86"),
Tags: []string{"tag:client"},
Hostinfo: &tailcfg.Hostinfo{},
}
nodeTaggedDB := &types.Node{
ID: 4,
GivenName: "tagged-db",
IPv4: ptrAddr("100.74.60.128"),
IPv6: ptrAddr("fd7a:115c:a1e0::2f01:3c9c"),
Tags: []string{"tag:database"},
Hostinfo: &tailcfg.Hostinfo{},
}
nodeTaggedWeb := &types.Node{
ID: 5,
GivenName: "tagged-web",
IPv4: ptrAddr("100.94.92.91"),
IPv6: ptrAddr("fd7a:115c:a1e0::ef01:5c81"),
Tags: []string{"tag:web"},
Hostinfo: &tailcfg.Hostinfo{},
}
return types.Nodes{
nodeUser1,
nodeTaggedServer,
nodeTaggedClient,
nodeTaggedDB,
nodeTaggedWeb,
}
}
// findNodeByGivenName finds a node by its GivenName field.
func findNodeByGivenName(nodes types.Nodes, name string) *types.Node {
for _, n := range nodes {
if n.GivenName == name {
return n
}
}
return nil
}
// cmpOptions returns comparison options for FilterRule slices.
// It sorts SrcIPs and DstPorts to handle ordering differences.
func cmpOptions() []cmp.Option {
return []cmp.Option{
cmpopts.SortSlices(func(a, b string) bool { return a < b }),
cmpopts.SortSlices(func(a, b tailcfg.NetPortRange) bool {
if a.IP != b.IP {
return a.IP < b.IP
}
if a.Ports.First != b.Ports.First {
return a.Ports.First < b.Ports.First
}
return a.Ports.Last < b.Ports.Last
}),
cmpopts.SortSlices(func(a, b int) bool { return a < b }),
}
}
// aclTestFile represents the JSON structure of a captured ACL test file.
type aclTestFile struct {
TestID string `json:"test_id"`
Source string `json:"source"` // "tailscale_saas" or "headscale_adapted"
Error bool `json:"error"`
HeadscaleDiffers bool `json:"headscale_differs"`
ParentTest string `json:"parent_test"`
Input struct {
FullPolicy json.RawMessage `json:"full_policy"`
APIResponseCode int `json:"api_response_code"`
APIResponseBody *struct {
Message string `json:"message"`
} `json:"api_response_body"`
} `json:"input"`
Topology struct {
Nodes map[string]struct {
Hostname string `json:"hostname"`
Tags []string `json:"tags"`
IPv4 string `json:"ipv4"`
IPv6 string `json:"ipv6"`
User string `json:"user"`
} `json:"nodes"`
} `json:"topology"`
Captures map[string]struct {
PacketFilterRules json.RawMessage `json:"packet_filter_rules"`
} `json:"captures"`
}
// loadACLTestFile loads and parses a single ACL test JSON file.
func loadACLTestFile(t *testing.T, path string) aclTestFile {
t.Helper()
content, err := os.ReadFile(path)
require.NoError(t, err, "failed to read test file %s", path)
var tf aclTestFile
err = json.Unmarshal(content, &tf)
require.NoError(t, err, "failed to parse test file %s", path)
return tf
}
// aclSkipReasons documents WHY tests are expected to fail and WHAT needs to be
// implemented to fix them. Tests are grouped by root cause.
//
// Impact summary:
//
// SRCIPS_FORMAT - tests: SrcIPs use adapted format (100.64.0.0/10 vs partitioned CIDRs)
// DSTPORTS_FORMAT - tests: DstPorts IP format differences
// IPPROTO_FORMAT - tests: IPProto nil vs [6,17,1,58]
// IMPLEMENTATION_PENDING - tests: Not yet implemented in headscale
var aclSkipReasons = map[string]string{
// Currently all tests are in the skip list because the ACL engine
// output format changed with the ResolvedAddresses refactor.
// Tests will be removed from this list as the implementation is
// updated to match the expected output.
}
// TestACLCompat is a data-driven test that loads all ACL-*.json test files
// and compares headscale's ACL engine output against the expected behavior.
//
// Each JSON file contains:
// - A full policy with groups, tagOwners, hosts, and acls
// - For success cases: expected packet_filter_rules per node (5 nodes)
// - For error cases: expected error message
func TestACLCompat(t *testing.T) {
t.Parallel()
files, err := filepath.Glob(
filepath.Join("testdata", "acl_results", "ACL-*.json"),
)
require.NoError(t, err, "failed to glob test files")
require.NotEmpty(
t,
files,
"no ACL-*.json test files found in testdata/acl_results/",
)
t.Logf("Loaded %d ACL test files", len(files))
users := setupTailscaleCompatUsers()
nodes := setupTailscaleCompatNodes(users)
for _, file := range files {
tf := loadACLTestFile(t, file)
t.Run(tf.TestID, func(t *testing.T) {
t.Parallel()
// Check skip list
if reason, ok := aclSkipReasons[tf.TestID]; ok {
t.Skipf(
"TODO: %s — see aclSkipReasons for details",
reason,
)
return
}
if tf.Error {
testACLError(t, tf)
return
}
testACLSuccess(t, tf, users, nodes)
})
}
}
// testACLError verifies that an invalid policy produces the expected error.
func testACLError(t *testing.T, tf aclTestFile) {
t.Helper()
pol, err := unmarshalPolicy(tf.Input.FullPolicy)
if err != nil {
// Parse-time error — valid for some error tests
if tf.Input.APIResponseBody != nil {
wantMsg := tf.Input.APIResponseBody.Message
if wantMsg != "" {
assert.Contains(
t,
err.Error(),
wantMsg,
"%s: error message should contain expected substring",
tf.TestID,
)
}
}
return
}
err = pol.validate()
if err != nil {
if tf.Input.APIResponseBody != nil {
wantMsg := tf.Input.APIResponseBody.Message
if wantMsg != "" {
// Allow partial match — headscale error messages differ
// from Tailscale's
errStr := err.Error()
if !strings.Contains(errStr, wantMsg) {
// Try matching key parts
matched := false
for _, part := range []string{
"autogroup:self",
"not valid on the src",
"port range",
"tag not found",
"undefined",
} {
if strings.Contains(wantMsg, part) &&
strings.Contains(errStr, part) {
matched = true
break
}
}
if !matched {
t.Logf(
"%s: error message difference\n want (tailscale): %q\n got (headscale): %q",
tf.TestID,
wantMsg,
errStr,
)
}
}
}
}
return
}
// For headscale_differs tests, headscale may accept what Tailscale rejects
if tf.HeadscaleDiffers {
t.Logf(
"%s: headscale accepts this policy (Tailscale rejects it)",
tf.TestID,
)
return
}
t.Errorf(
"%s: expected error but policy parsed and validated successfully",
tf.TestID,
)
}
// testACLSuccess verifies that a valid policy produces the expected
// packet filter rules for each node.
func testACLSuccess(
t *testing.T,
tf aclTestFile,
users types.Users,
nodes types.Nodes,
) {
t.Helper()
pol, err := unmarshalPolicy(tf.Input.FullPolicy)
require.NoError(
t,
err,
"%s: policy should parse successfully",
tf.TestID,
)
err = pol.validate()
require.NoError(
t,
err,
"%s: policy should validate successfully",
tf.TestID,
)
for nodeName, capture := range tf.Captures {
t.Run(nodeName, func(t *testing.T) {
captureIsNull := len(capture.PacketFilterRules) == 0 ||
string(capture.PacketFilterRules) == "null" //nolint:goconst
node := findNodeByGivenName(nodes, nodeName)
if node == nil {
t.Skipf(
"node %s not found in test setup",
nodeName,
)
return
}
// Compile headscale filter rules for this node
compiledRules, err := pol.compileFilterRulesForNode(
users,
node.View(),
nodes.ViewSlice(),
)
require.NoError(
t,
err,
"%s/%s: failed to compile filter rules",
tf.TestID,
nodeName,
)
gotRules := policyutil.ReduceFilterRules(
node.View(),
compiledRules,
)
// Parse expected rules from JSON
var wantRules []tailcfg.FilterRule
if !captureIsNull {
err = json.Unmarshal(
capture.PacketFilterRules,
&wantRules,
)
require.NoError(
t,
err,
"%s/%s: failed to unmarshal expected rules",
tf.TestID,
nodeName,
)
}
// Compare
opts := append(
cmpOptions(),
cmpopts.EquateEmpty(),
)
if diff := cmp.Diff(
wantRules,
gotRules,
opts...,
); diff != "" {
t.Errorf(
"%s/%s: filter rules mismatch (-want +got):\n%s",
tf.TestID,
nodeName,
diff,
)
}
})
}
}

View File

@@ -0,0 +1,233 @@
{
"test_id": "ACL-all_dest_types_7_2",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["tag:client"],
"dst": [
"tag:server:22",
"tag:database:5432",
"webserver:80",
"database:443",
"group:admins:8080",
"kratail2tid@:3000",
"100.108.74.26:9000"
]
}
]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"tagged-client": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"user1": {
"packet_filter_rules": [
{
"SrcIPs": ["100.80.238.75/32", "fd7a:115c:a1e0::7901:ee86/128"],
"DstPorts": [
{
"IP": "100.90.199.68/32",
"Ports": {
"First": 8080,
"Last": 8080
}
},
{
"IP": "fd7a:115c:a1e0::2d01:c747/128",
"Ports": {
"First": 8080,
"Last": 8080
}
},
{
"IP": "100.90.199.68/32",
"Ports": {
"First": 3000,
"Last": 3000
}
},
{
"IP": "fd7a:115c:a1e0::2d01:c747/128",
"Ports": {
"First": 3000,
"Last": 3000
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["100.80.238.75/32", "fd7a:115c:a1e0::7901:ee86/128"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 80,
"Last": 80
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 80,
"Last": 80
}
},
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 9000,
"Last": 9000
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 9000,
"Last": 9000
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-db": {
"packet_filter_rules": [
{
"SrcIPs": ["100.80.238.75/32", "fd7a:115c:a1e0::7901:ee86/128"],
"DstPorts": [
{
"IP": "100.74.60.128/32",
"Ports": {
"First": 5432,
"Last": 5432
}
},
{
"IP": "fd7a:115c:a1e0::2f01:3c9c/128",
"Ports": {
"First": 5432,
"Last": 5432
}
},
{
"IP": "100.74.60.128/32",
"Ports": {
"First": 443,
"Last": 443
}
},
{
"IP": "fd7a:115c:a1e0::2f01:3c9c/128",
"Ports": {
"First": 443,
"Last": 443
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,169 @@
{
"test_id": "ACL-all_four_tags_as_destinations",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["kratail2tid@"],
"dst": ["tag:server:22", "tag:client:22", "tag:database:22", "tag:web:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-client": {
"packet_filter_rules": [
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "100.80.238.75/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::7901:ee86/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-db": {
"packet_filter_rules": [
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "100.74.60.128/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::2f01:3c9c/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-web": {
"packet_filter_rules": [
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "100.94.92.91/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::ef01:5c81/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,115 @@
{
"test_id": "ACL-all_four_tags_as_sources",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["tag:server", "tag:client", "tag:database", "tag:web"],
"dst": ["kratail2tid@:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"tagged-server": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"user1": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.108.74.26/32",
"100.74.60.128/32",
"100.80.238.75/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::2f01:3c9c/128",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::b901:4a87/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "100.90.199.68/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::2d01:c747/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,169 @@
{
"test_id": "ACL-all_four_tags_dests_9_2",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["autogroup:member"],
"dst": ["tag:server:22", "tag:client:22", "tag:database:22", "tag:web:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-client": {
"packet_filter_rules": [
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "100.80.238.75/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::7901:ee86/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-db": {
"packet_filter_rules": [
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "100.74.60.128/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::2f01:3c9c/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-web": {
"packet_filter_rules": [
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "100.94.92.91/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::ef01:5c81/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,115 @@
{
"test_id": "ACL-all_four_tags_sources_9_1",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["tag:server", "tag:client", "tag:database", "tag:web"],
"dst": ["tag:server:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.108.74.26/32",
"100.74.60.128/32",
"100.80.238.75/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::2f01:3c9c/128",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::b901:4a87/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,117 @@
{
"test_id": "ACL-all_source_types_to_tag_server_7_1",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["autogroup:member", "autogroup:tagged", "group:admins", "tag:client", "webserver", "100.74.60.128"],
"dst": ["tag:server:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.108.74.26/32",
"100.74.60.128/32",
"100.80.238.75/32",
"100.90.199.68/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::2d01:c747/128",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::2f01:3c9c/128",
"fd7a:115c:a1e0::b901:4a87/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,115 @@
{
"test_id": "ACL-all_tagged_nodes_as_source_to_specific_destination",
"source": "headscale_adapted",
"parent_test": "BasicTags",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["autogroup:tagged"],
"dst": ["tag:database:5432"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.108.74.26/32",
"100.74.60.128/32",
"100.80.238.75/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::2f01:3c9c/128",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::b901:4a87/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "100.74.60.128/32",
"Ports": {
"First": 5432,
"Last": 5432
}
},
{
"IP": "fd7a:115c:a1e0::2f01:3c9c/128",
"Ports": {
"First": 5432,
"Last": 5432
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,332 @@
{
"test_id": "ACL-all_to_all_subset_wildcard_wildcard_14_30",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"groups": {
"group:admins": ["kratail2tid@"]
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128"
},
"acls": [
{
"action": "accept",
"src": ["autogroup:member", "autogroup:tagged"],
"dst": ["autogroup:member:22", "autogroup:tagged:80"]
},
{
"action": "accept",
"src": ["*"],
"dst": ["*:443"]
}
]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.108.74.26/32",
"100.74.60.128/32",
"100.80.238.75/32",
"100.90.199.68/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::2d01:c747/128",
"fd7a:115c:a1e0::2f01:3c9c/128",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::b901:4a87/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "100.90.199.68/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::2d01:c747/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
},
{
"SrcIPs": ["100.64.0.0/10", "fd7a:115c:a1e0::/48"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 443,
"Last": 443
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-web": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.108.74.26/32",
"100.74.60.128/32",
"100.80.238.75/32",
"100.90.199.68/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::2d01:c747/128",
"fd7a:115c:a1e0::2f01:3c9c/128",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::b901:4a87/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "100.94.92.91/32",
"Ports": {
"First": 80,
"Last": 80
}
},
{
"IP": "fd7a:115c:a1e0::ef01:5c81/128",
"Ports": {
"First": 80,
"Last": 80
}
}
],
"IPProto": [6, 17, 1, 58]
},
{
"SrcIPs": ["100.64.0.0/10", "fd7a:115c:a1e0::/48"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 443,
"Last": 443
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.108.74.26/32",
"100.74.60.128/32",
"100.80.238.75/32",
"100.90.199.68/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::2d01:c747/128",
"fd7a:115c:a1e0::2f01:3c9c/128",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::b901:4a87/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 80,
"Last": 80
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 80,
"Last": 80
}
}
],
"IPProto": [6, 17, 1, 58]
},
{
"SrcIPs": ["100.64.0.0/10", "fd7a:115c:a1e0::/48"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 443,
"Last": 443
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-client": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.108.74.26/32",
"100.74.60.128/32",
"100.80.238.75/32",
"100.90.199.68/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::2d01:c747/128",
"fd7a:115c:a1e0::2f01:3c9c/128",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::b901:4a87/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "100.80.238.75/32",
"Ports": {
"First": 80,
"Last": 80
}
},
{
"IP": "fd7a:115c:a1e0::7901:ee86/128",
"Ports": {
"First": 80,
"Last": 80
}
}
],
"IPProto": [6, 17, 1, 58]
},
{
"SrcIPs": ["100.64.0.0/10", "fd7a:115c:a1e0::/48"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 443,
"Last": 443
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-db": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.108.74.26/32",
"100.74.60.128/32",
"100.80.238.75/32",
"100.90.199.68/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::2d01:c747/128",
"fd7a:115c:a1e0::2f01:3c9c/128",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::b901:4a87/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "100.74.60.128/32",
"Ports": {
"First": 80,
"Last": 80
}
},
{
"IP": "fd7a:115c:a1e0::2f01:3c9c/128",
"Ports": {
"First": 80,
"Last": 80
}
}
],
"IPProto": [6, 17, 1, 58]
},
{
"SrcIPs": ["100.64.0.0/10", "fd7a:115c:a1e0::/48"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 443,
"Last": 443
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,155 @@
{
"test_id": "ACL-allow_all_wildcard",
"source": "headscale_adapted",
"parent_test": "WildcardACLs",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["*"],
"dst": ["*:*"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": [
{
"SrcIPs": ["100.64.0.0/10", "fd7a:115c:a1e0::/48"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["100.64.0.0/10", "fd7a:115c:a1e0::/48"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-client": {
"packet_filter_rules": [
{
"SrcIPs": ["100.64.0.0/10", "fd7a:115c:a1e0::/48"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-db": {
"packet_filter_rules": [
{
"SrcIPs": ["100.64.0.0/10", "fd7a:115c:a1e0::/48"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-web": {
"packet_filter_rules": [
{
"SrcIPs": ["100.64.0.0/10", "fd7a:115c:a1e0::/48"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,85 @@
{
"test_id": "ACL-autogroup_internet_as_destination",
"source": "headscale_adapted",
"parent_test": "Autogroups",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["*"],
"dst": ["autogroup:internet:*"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
}
}
}

View File

@@ -0,0 +1,106 @@
{
"test_id": "ACL-autogroup_member_as_destination",
"source": "headscale_adapted",
"parent_test": "Autogroups",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["*"],
"dst": ["autogroup:member:*"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"tagged-server": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"user1": {
"packet_filter_rules": [
{
"SrcIPs": ["100.64.0.0/10", "fd7a:115c:a1e0::/48"],
"DstPorts": [
{
"IP": "100.90.199.68/32",
"Ports": {
"First": 0,
"Last": 65535
}
},
{
"IP": "fd7a:115c:a1e0::2d01:c747/128",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,155 @@
{
"test_id": "ACL-autogroup_member_as_source",
"source": "headscale_adapted",
"parent_test": "Autogroups",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["autogroup:member"],
"dst": ["*:*"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": [
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-client": {
"packet_filter_rules": [
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-db": {
"packet_filter_rules": [
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-web": {
"packet_filter_rules": [
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,111 @@
{
"test_id": "ACL-autogroup_member_plus_tag_client",
"source": "headscale_adapted",
"parent_test": "Autogroups",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["autogroup:member", "tag:client"],
"dst": ["tag:server:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.80.238.75/32",
"100.90.199.68/32",
"fd7a:115c:a1e0::2d01:c747/128",
"fd7a:115c:a1e0::7901:ee86/128"
],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,111 @@
{
"test_id": "ACL-autogroup_member_plus_tag_client_1_1",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["autogroup:member", "tag:client"],
"dst": ["tag:server:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.80.238.75/32",
"100.90.199.68/32",
"fd7a:115c:a1e0::2d01:c747/128",
"fd7a:115c:a1e0::7901:ee86/128"
],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,106 @@
{
"test_id": "ACL-autogroup_member_to_self",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["autogroup:member"],
"dst": ["autogroup:self:*"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"tagged-server": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"user1": {
"packet_filter_rules": [
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "100.90.199.68/32",
"Ports": {
"First": 0,
"Last": 65535
}
},
{
"IP": "fd7a:115c:a1e0::2d01:c747/128",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,106 @@
{
"test_id": "ACL-autogroup_self_as_destination",
"source": "headscale_adapted",
"parent_test": "Autogroups",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["*"],
"dst": ["autogroup:self:*"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"tagged-server": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"user1": {
"packet_filter_rules": [
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "100.90.199.68/32",
"Ports": {
"First": 0,
"Last": 65535
}
},
{
"IP": "fd7a:115c:a1e0::2d01:c747/128",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,127 @@
{
"test_id": "ACL-autogroup_self_mixed_with_tag",
"source": "headscale_adapted",
"parent_test": "Autogroups",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["*"],
"dst": ["autogroup:self:*", "tag:server:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"user1": {
"packet_filter_rules": [
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "100.90.199.68/32",
"Ports": {
"First": 0,
"Last": 65535
}
},
{
"IP": "fd7a:115c:a1e0::2d01:c747/128",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["100.64.0.0/10", "fd7a:115c:a1e0::/48"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,225 @@
{
"test_id": "ACL-autogroup_tagged_as_destination",
"source": "headscale_adapted",
"parent_test": "Autogroups",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["*"],
"dst": ["autogroup:tagged:*"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["100.64.0.0/10", "fd7a:115c:a1e0::/48"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 0,
"Last": 65535
}
},
{
"IP": "100.74.60.128/32",
"Ports": {
"First": 0,
"Last": 65535
}
},
{
"IP": "100.80.238.75/32",
"Ports": {
"First": 0,
"Last": 65535
}
},
{
"IP": "100.94.92.91/32",
"Ports": {
"First": 0,
"Last": 65535
}
},
{
"IP": "fd7a:115c:a1e0::2f01:3c9c/128",
"Ports": {
"First": 0,
"Last": 65535
}
},
{
"IP": "fd7a:115c:a1e0::7901:ee86/128",
"Ports": {
"First": 0,
"Last": 65535
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 0,
"Last": 65535
}
},
{
"IP": "fd7a:115c:a1e0::ef01:5c81/128",
"Ports": {
"First": 0,
"Last": 65535
}
},
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 0,
"Last": 65535
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-client": {
"packet_filter_rules": [
{
"SrcIPs": ["100.64.0.0/10", "fd7a:115c:a1e0::/48"],
"DstPorts": [
{
"IP": "100.80.238.75/32",
"Ports": {
"First": 0,
"Last": 65535
}
},
{
"IP": "fd7a:115c:a1e0::7901:ee86/128",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-db": {
"packet_filter_rules": [
{
"SrcIPs": ["100.64.0.0/10", "fd7a:115c:a1e0::/48"],
"DstPorts": [
{
"IP": "100.74.60.128/32",
"Ports": {
"First": 0,
"Last": 65535
}
},
{
"IP": "fd7a:115c:a1e0::2f01:3c9c/128",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-web": {
"packet_filter_rules": [
{
"SrcIPs": ["100.64.0.0/10", "fd7a:115c:a1e0::/48"],
"DstPorts": [
{
"IP": "100.94.92.91/32",
"Ports": {
"First": 0,
"Last": 65535
}
},
{
"IP": "fd7a:115c:a1e0::ef01:5c81/128",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,200 @@
{
"test_id": "ACL-autogroup_tagged_as_source",
"source": "headscale_adapted",
"parent_test": "Autogroups",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["autogroup:tagged"],
"dst": ["*:*"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.108.74.26/32",
"100.74.60.128/32",
"100.80.238.75/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::2f01:3c9c/128",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::b901:4a87/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.108.74.26/32",
"100.74.60.128/32",
"100.80.238.75/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::2f01:3c9c/128",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::b901:4a87/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-client": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.108.74.26/32",
"100.74.60.128/32",
"100.80.238.75/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::2f01:3c9c/128",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::b901:4a87/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-db": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.108.74.26/32",
"100.74.60.128/32",
"100.80.238.75/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::2f01:3c9c/128",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::b901:4a87/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-web": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.108.74.26/32",
"100.74.60.128/32",
"100.80.238.75/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::2f01:3c9c/128",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::b901:4a87/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,115 @@
{
"test_id": "ACL-autogroup_tagged_plus_all_4_tags_8_4",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["autogroup:tagged", "tag:server", "tag:client", "tag:database", "tag:web"],
"dst": ["autogroup:member:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"tagged-server": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"user1": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.108.74.26/32",
"100.74.60.128/32",
"100.80.238.75/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::2f01:3c9c/128",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::b901:4a87/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "100.90.199.68/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::2d01:c747/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,117 @@
{
"test_id": "ACL-autogroup_tagged_plus_autogroup_member_full_tailnet",
"source": "headscale_adapted",
"parent_test": "MixedSources",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["autogroup:tagged", "autogroup:member"],
"dst": ["tag:server:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.108.74.26/32",
"100.74.60.128/32",
"100.80.238.75/32",
"100.90.199.68/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::2d01:c747/128",
"fd7a:115c:a1e0::2f01:3c9c/128",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::b901:4a87/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,27 @@
{
"test_id": "ACL-autogroup_tagged_to_self_13_6",
"source": "headscale_adapted",
"error": true,
"headscale_differs": true,
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"]
},
"tagOwners": {
"tag:server": ["kratail2tid@"]
},
"acls": [
{
"action": "accept",
"src": ["autogroup:tagged"],
"dst": ["autogroup:self:*"]
}
]
},
"api_response_code": 400,
"api_response_body": {
"message": "autogroup:self can only be used with users, groups, or supported autogroups (400)"
}
}
}

View File

@@ -0,0 +1,27 @@
{
"test_id": "ACL-autogroup_tagged_to_self_6_1",
"source": "headscale_adapted",
"error": true,
"headscale_differs": true,
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"]
},
"tagOwners": {
"tag:server": ["kratail2tid@"]
},
"acls": [
{
"action": "accept",
"src": ["autogroup:tagged"],
"dst": ["autogroup:self:*"]
}
]
},
"api_response_code": 400,
"api_response_body": {
"message": "autogroup:self can only be used with users, groups, or supported autogroups (400)"
}
}
}

View File

@@ -0,0 +1,115 @@
{
"test_id": "ACL-autogroup_tagged_to_user",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["autogroup:tagged"],
"dst": ["kratail2tid@:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"tagged-server": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"user1": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.108.74.26/32",
"100.74.60.128/32",
"100.80.238.75/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::2f01:3c9c/128",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::b901:4a87/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "100.90.199.68/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::2d01:c747/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,117 @@
{
"test_id": "ACL-autogroups_wildcard_port_11_4",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["autogroup:tagged", "autogroup:member"],
"dst": ["tag:server:*"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.108.74.26/32",
"100.74.60.128/32",
"100.80.238.75/32",
"100.90.199.68/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::2d01:c747/128",
"fd7a:115c:a1e0::2f01:3c9c/128",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::b901:4a87/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 0,
"Last": 65535
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,117 @@
{
"test_id": "ACL-both_autogroups_as_sources",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["autogroup:member", "autogroup:tagged"],
"dst": ["tag:server:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.108.74.26/32",
"100.74.60.128/32",
"100.80.238.75/32",
"100.90.199.68/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::2d01:c747/128",
"fd7a:115c:a1e0::2f01:3c9c/128",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::b901:4a87/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,117 @@
{
"test_id": "ACL-both_autogroups_sources_9_3",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["autogroup:member", "autogroup:tagged"],
"dst": ["tag:server:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.108.74.26/32",
"100.74.60.128/32",
"100.80.238.75/32",
"100.90.199.68/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::2d01:c747/128",
"fd7a:115c:a1e0::2f01:3c9c/128",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::b901:4a87/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,27 @@
{
"test_id": "ACL-both_autogroups_to_self_plus_tag_9_5",
"source": "headscale_adapted",
"error": true,
"headscale_differs": true,
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"]
},
"tagOwners": {
"tag:server": ["kratail2tid@"]
},
"acls": [
{
"action": "accept",
"src": ["autogroup:member", "autogroup:tagged"],
"dst": ["autogroup:self:*", "tag:server:22"]
}
]
},
"api_response_code": 400,
"api_response_body": {
"message": "autogroup:self can only be used with users, groups, or supported autogroups (400)"
}
}
}

View File

@@ -0,0 +1,270 @@
{
"test_id": "ACL-both_autogroups_to_wildcard",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["autogroup:tagged"],
"dst": ["*:*"]
},
{
"action": "accept",
"src": ["autogroup:member"],
"dst": ["*:*"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.108.74.26/32",
"100.74.60.128/32",
"100.80.238.75/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::2f01:3c9c/128",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::b901:4a87/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
},
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.108.74.26/32",
"100.74.60.128/32",
"100.80.238.75/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::2f01:3c9c/128",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::b901:4a87/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
},
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-client": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.108.74.26/32",
"100.74.60.128/32",
"100.80.238.75/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::2f01:3c9c/128",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::b901:4a87/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
},
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-db": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.108.74.26/32",
"100.74.60.128/32",
"100.80.238.75/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::2f01:3c9c/128",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::b901:4a87/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
},
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-web": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.108.74.26/32",
"100.74.60.128/32",
"100.80.238.75/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::2f01:3c9c/128",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::b901:4a87/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
},
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,287 @@
{
"test_id": "ACL-both_autogroups_to_wildcard_14_42",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"groups": {
"group:admins": ["kratail2tid@"]
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128"
},
"acls": [
{
"action": "accept",
"src": ["autogroup:tagged"],
"dst": ["*:*"]
},
{
"action": "accept",
"src": ["autogroup:member"],
"dst": ["*:*"]
}
]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.108.74.26/32",
"100.74.60.128/32",
"100.80.238.75/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::2f01:3c9c/128",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::b901:4a87/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
},
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.108.74.26/32",
"100.74.60.128/32",
"100.80.238.75/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::2f01:3c9c/128",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::b901:4a87/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
},
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-client": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.108.74.26/32",
"100.74.60.128/32",
"100.80.238.75/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::2f01:3c9c/128",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::b901:4a87/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
},
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-db": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.108.74.26/32",
"100.74.60.128/32",
"100.80.238.75/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::2f01:3c9c/128",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::b901:4a87/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
},
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-web": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.108.74.26/32",
"100.74.60.128/32",
"100.80.238.75/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::2f01:3c9c/128",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::b901:4a87/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
},
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,99 @@
{
"test_id": "ACL-cidr_as_destination",
"source": "headscale_adapted",
"parent_test": "WildcardACLs",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["*"],
"dst": ["100.64.0.0/12:*"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": [
{
"SrcIPs": ["100.64.0.0/10", "fd7a:115c:a1e0::/48"],
"DstPorts": [
{
"IP": "100.64.0.0/12",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,155 @@
{
"test_id": "ACL-cidr_as_source",
"source": "headscale_adapted",
"parent_test": "WildcardACLs",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["100.64.0.0/16"],
"dst": ["*:*"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": [
{
"SrcIPs": ["100.64.0.0/16"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["100.64.0.0/16"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-client": {
"packet_filter_rules": [
{
"SrcIPs": ["100.64.0.0/16"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-db": {
"packet_filter_rules": [
{
"SrcIPs": ["100.64.0.0/16"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-web": {
"packet_filter_rules": [
{
"SrcIPs": ["100.64.0.0/16"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,85 @@
{
"test_id": "ACL-cidr_host_as_destination_no_matching_nodes",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["tag:client"],
"dst": ["internal:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
}
}
}

View File

@@ -0,0 +1,155 @@
{
"test_id": "ACL-cidr_host_as_source_v1",
"source": "headscale_adapted",
"parent_test": "Hosts",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["internal"],
"dst": ["*:*"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": [
{
"SrcIPs": ["10.0.0.0/8"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["10.0.0.0/8"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-client": {
"packet_filter_rules": [
{
"SrcIPs": ["10.0.0.0/8"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-db": {
"packet_filter_rules": [
{
"SrcIPs": ["10.0.0.0/8"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-web": {
"packet_filter_rules": [
{
"SrcIPs": ["10.0.0.0/8"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,106 @@
{
"test_id": "ACL-cidr_host_as_source_v2",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["internal"],
"dst": ["tag:server:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["10.0.0.0/8"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,85 @@
{
"test_id": "ACL-cidr_host_dest_6_6",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["tag:client"],
"dst": ["internal:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
}
}
}

View File

@@ -0,0 +1,106 @@
{
"test_id": "ACL-cidr_host_plus_tag_as_sources",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["internal", "tag:client"],
"dst": ["tag:server:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["10.0.0.0/8", "100.80.238.75/32", "fd7a:115c:a1e0::7901:ee86/128"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,106 @@
{
"test_id": "ACL-cidr_host_plus_tag_sources_12_1",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["*"],
"dst": ["webserver:22", "database:5432"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["10.0.0.0/8", "100.80.238.75/32", "fd7a:115c:a1e0::7901:ee86/128"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,106 @@
{
"test_id": "ACL-cidr_host_source_6_5",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["internal"],
"dst": ["tag:server:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["10.0.0.0/8"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,106 @@
{
"test_id": "ACL-cidr_plus_tag",
"source": "headscale_adapted",
"parent_test": "MixedSources",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["10.0.0.0/8", "tag:client"],
"dst": ["tag:server:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["10.0.0.0/8", "100.80.238.75/32", "fd7a:115c:a1e0::7901:ee86/128"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,106 @@
{
"test_id": "ACL-cidr_subnet_plus_tag_as_sources_12_3",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["internal", "tag:client"],
"dst": ["tag:server:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["10.0.0.0/8", "100.80.238.75/32", "fd7a:115c:a1e0::7901:ee86/128"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,132 @@
{
"test_id": "ACL-cross_type_separate_rules",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["autogroup:member"],
"dst": ["tag:server:22"]
},
{
"action": "accept",
"src": ["tag:client"],
"dst": ["tag:database:5432"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-db": {
"packet_filter_rules": [
{
"SrcIPs": ["100.80.238.75/32", "fd7a:115c:a1e0::7901:ee86/128"],
"DstPorts": [
{
"IP": "100.74.60.128/32",
"Ports": {
"First": 5432,
"Last": 5432
}
},
{
"IP": "fd7a:115c:a1e0::2f01:3c9c/128",
"Ports": {
"First": 5432,
"Last": 5432
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,153 @@
{
"test_id": "ACL-cross_type_separate_rules_10_1",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["autogroup:member"],
"dst": ["tag:server:22"]
},
{
"action": "accept",
"src": ["tag:client"],
"dst": ["group:admins:80"]
}
]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"user1": {
"packet_filter_rules": [
{
"SrcIPs": ["100.80.238.75/32", "fd7a:115c:a1e0::7901:ee86/128"],
"DstPorts": [
{
"IP": "100.90.199.68/32",
"Ports": {
"First": 80,
"Last": 80
}
},
{
"IP": "fd7a:115c:a1e0::2d01:c747/128",
"Ports": {
"First": 80,
"Last": 80
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,127 @@
{
"test_id": "ACL-dest_order_db_server_5_2b",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["tag:client"],
"dst": ["tag:database:80", "tag:server:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["100.80.238.75/32", "fd7a:115c:a1e0::7901:ee86/128"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-db": {
"packet_filter_rules": [
{
"SrcIPs": ["100.80.238.75/32", "fd7a:115c:a1e0::7901:ee86/128"],
"DstPorts": [
{
"IP": "100.74.60.128/32",
"Ports": {
"First": 80,
"Last": 80
}
},
{
"IP": "fd7a:115c:a1e0::2f01:3c9c/128",
"Ports": {
"First": 80,
"Last": 80
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,127 @@
{
"test_id": "ACL-dest_order_server_db_5_2a",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["tag:client"],
"dst": ["tag:server:22", "tag:database:80"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["100.80.238.75/32", "fd7a:115c:a1e0::7901:ee86/128"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-db": {
"packet_filter_rules": [
{
"SrcIPs": ["100.80.238.75/32", "fd7a:115c:a1e0::7901:ee86/128"],
"DstPorts": [
{
"IP": "100.74.60.128/32",
"Ports": {
"First": 80,
"Last": 80
}
},
{
"IP": "fd7a:115c:a1e0::2f01:3c9c/128",
"Ports": {
"First": 80,
"Last": 80
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,131 @@
{
"test_id": "ACL-diff_srcs_same_dest_14_6_v1",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["tag:client"],
"dst": ["tag:server:22"]
},
{
"action": "accept",
"src": ["tag:web"],
"dst": ["tag:server:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["100.80.238.75/32", "fd7a:115c:a1e0::7901:ee86/128"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
},
{
"SrcIPs": ["100.94.92.91/32", "fd7a:115c:a1e0::ef01:5c81/128"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,152 @@
{
"test_id": "ACL-diff_srcs_same_dest_14_6_v2",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["tag:client"],
"dst": ["tag:server:22"]
},
{
"action": "accept",
"src": ["tag:web"],
"dst": ["tag:server:22"]
}
]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["100.80.238.75/32", "fd7a:115c:a1e0::7901:ee86/128"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
},
{
"SrcIPs": ["100.94.92.91/32", "fd7a:115c:a1e0::ef01:5c81/128"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,156 @@
{
"test_id": "ACL-different_sources_same_destination_separate",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["tag:client"],
"dst": ["tag:server:22"]
},
{
"action": "accept",
"src": ["tag:web"],
"dst": ["tag:server:22"]
},
{
"action": "accept",
"src": ["tag:database"],
"dst": ["tag:server:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["100.80.238.75/32", "fd7a:115c:a1e0::7901:ee86/128"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
},
{
"SrcIPs": ["100.94.92.91/32", "fd7a:115c:a1e0::ef01:5c81/128"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
},
{
"SrcIPs": ["100.74.60.128/32", "fd7a:115c:a1e0::2f01:3c9c/128"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,131 @@
{
"test_id": "ACL-different_srcs_same_dest_two_rules_v1",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["autogroup:member"],
"dst": ["tag:server:22"]
},
{
"action": "accept",
"src": ["tag:client"],
"dst": ["tag:server:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
},
{
"SrcIPs": ["100.80.238.75/32", "fd7a:115c:a1e0::7901:ee86/128"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,131 @@
{
"test_id": "ACL-different_srcs_same_dest_two_rules_v2",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["tag:client"],
"dst": ["tag:server:22"]
},
{
"action": "accept",
"src": ["tag:web"],
"dst": ["tag:server:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["100.80.238.75/32", "fd7a:115c:a1e0::7901:ee86/128"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
},
{
"SrcIPs": ["100.94.92.91/32", "fd7a:115c:a1e0::ef01:5c81/128"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,85 @@
{
"test_id": "ACL-empty_group_produces_no_filter",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["group:empty"],
"dst": ["*:*"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
}
}
}

View File

@@ -0,0 +1,85 @@
{
"test_id": "ACL-empty_group_source_6_3",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["group:empty"],
"dst": ["tag:server:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
}
}
}

View File

@@ -0,0 +1,111 @@
{
"test_id": "ACL-explicit_user_plus_tag",
"source": "headscale_adapted",
"parent_test": "MixedSources",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["kratail2tid@", "tag:client"],
"dst": ["tag:server:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.80.238.75/32",
"100.90.199.68/32",
"fd7a:115c:a1e0::2d01:c747/128",
"fd7a:115c:a1e0::7901:ee86/128"
],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,149 @@
{
"test_id": "ACL-full_autogroups_with_wildcard_and_specific_port",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["autogroup:tagged", "autogroup:member"],
"dst": ["tag:server:*", "tag:database:5432"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.108.74.26/32",
"100.74.60.128/32",
"100.80.238.75/32",
"100.90.199.68/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::2d01:c747/128",
"fd7a:115c:a1e0::2f01:3c9c/128",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::b901:4a87/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 0,
"Last": 65535
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-db": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.108.74.26/32",
"100.74.60.128/32",
"100.80.238.75/32",
"100.90.199.68/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::2d01:c747/128",
"fd7a:115c:a1e0::2f01:3c9c/128",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::b901:4a87/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "100.74.60.128/32",
"Ports": {
"First": 5432,
"Last": 5432
}
},
{
"IP": "fd7a:115c:a1e0::2f01:3c9c/128",
"Ports": {
"First": 5432,
"Last": 5432
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,180 @@
{
"test_id": "ACL-full_wildcard_plus_specific_rule",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["*"],
"dst": ["*:*"]
},
{
"action": "accept",
"src": ["tag:client"],
"dst": ["tag:server:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": [
{
"SrcIPs": ["100.64.0.0/10", "fd7a:115c:a1e0::/48"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["100.64.0.0/10", "fd7a:115c:a1e0::/48"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
},
{
"SrcIPs": ["100.80.238.75/32", "fd7a:115c:a1e0::7901:ee86/128"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-client": {
"packet_filter_rules": [
{
"SrcIPs": ["100.64.0.0/10", "fd7a:115c:a1e0::/48"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-db": {
"packet_filter_rules": [
{
"SrcIPs": ["100.64.0.0/10", "fd7a:115c:a1e0::/48"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-web": {
"packet_filter_rules": [
{
"SrcIPs": ["100.64.0.0/10", "fd7a:115c:a1e0::/48"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,127 @@
{
"test_id": "ACL-group_admins_22_plus_tag_server_80_2_4",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["tag:client"],
"dst": ["group:admins:22", "tag:server:80"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"user1": {
"packet_filter_rules": [
{
"SrcIPs": ["100.80.238.75/32", "fd7a:115c:a1e0::7901:ee86/128"],
"DstPorts": [
{
"IP": "100.90.199.68/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::2d01:c747/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["100.80.238.75/32", "fd7a:115c:a1e0::7901:ee86/128"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 80,
"Last": 80
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 80,
"Last": 80
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,111 @@
{
"test_id": "ACL-group_admins_plus_tag_client_1_3",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["group:admins", "tag:client"],
"dst": ["tag:server:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.80.238.75/32",
"100.90.199.68/32",
"fd7a:115c:a1e0::2d01:c747/128",
"fd7a:115c:a1e0::7901:ee86/128"
],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,106 @@
{
"test_id": "ACL-group_admins_to_webserver_4_3",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["group:admins"],
"dst": ["webserver:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,127 @@
{
"test_id": "ACL-group_and_tag_destinations_distributed",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["tag:client"],
"dst": ["group:admins:22", "tag:server:80"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"user1": {
"packet_filter_rules": [
{
"SrcIPs": ["100.80.238.75/32", "fd7a:115c:a1e0::7901:ee86/128"],
"DstPorts": [
{
"IP": "100.90.199.68/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::2d01:c747/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["100.80.238.75/32", "fd7a:115c:a1e0::7901:ee86/128"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 80,
"Last": 80
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 80,
"Last": 80
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,125 @@
{
"test_id": "ACL-group_and_user_same_person_same_dest",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["group:admins"],
"dst": ["tag:server:22"]
},
{
"action": "accept",
"src": ["kratail2tid@"],
"dst": ["tag:server:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,106 @@
{
"test_id": "ACL-group_as_destination",
"source": "headscale_adapted",
"parent_test": "UsersGroups",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["*"],
"dst": ["group:admins:*"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"tagged-server": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"user1": {
"packet_filter_rules": [
{
"SrcIPs": ["100.64.0.0/10", "fd7a:115c:a1e0::/48"],
"DstPorts": [
{
"IP": "100.90.199.68/32",
"Ports": {
"First": 0,
"Last": 65535
}
},
{
"IP": "fd7a:115c:a1e0::2d01:c747/128",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,155 @@
{
"test_id": "ACL-group_as_source",
"source": "headscale_adapted",
"parent_test": "UsersGroups",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["group:admins"],
"dst": ["*:*"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": [
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-client": {
"packet_filter_rules": [
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-db": {
"packet_filter_rules": [
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-web": {
"packet_filter_rules": [
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,111 @@
{
"test_id": "ACL-group_plus_tag",
"source": "headscale_adapted",
"parent_test": "MixedSources",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["group:admins", "tag:client"],
"dst": ["tag:server:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.80.238.75/32",
"100.90.199.68/32",
"fd7a:115c:a1e0::2d01:c747/128",
"fd7a:115c:a1e0::7901:ee86/128"
],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,125 @@
{
"test_id": "ACL-group_plus_user_same_person_same_dest_14_8",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["group:admins"],
"dst": ["tag:server:22"]
},
{
"action": "accept",
"src": ["kratail2tid@"],
"dst": ["tag:server:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,106 @@
{
"test_id": "ACL-group_to_host_alias",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["group:admins"],
"dst": ["webserver:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,106 @@
{
"test_id": "ACL-group_to_self",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["group:admins"],
"dst": ["autogroup:self:*"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"tagged-server": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"user1": {
"packet_filter_rules": [
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "100.90.199.68/32",
"Ports": {
"First": 0,
"Last": 65535
}
},
{
"IP": "fd7a:115c:a1e0::2d01:c747/128",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,106 @@
{
"test_id": "ACL-group_to_self_13_9",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["group:admins"],
"dst": ["autogroup:self:*"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"tagged-server": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"user1": {
"packet_filter_rules": [
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "100.90.199.68/32",
"Ports": {
"First": 0,
"Last": 65535
}
},
{
"IP": "fd7a:115c:a1e0::2d01:c747/128",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,146 @@
{
"test_id": "ACL-group_user_same_person_same_dest_14_8",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["group:admins"],
"dst": ["tag:server:22"]
},
{
"action": "accept",
"src": ["kratail2tid@"],
"dst": ["tag:server:22"]
}
]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,113 @@
{
"test_id": "ACL-host_as_destination",
"source": "headscale_adapted",
"parent_test": "Hosts",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["*"],
"dst": ["webserver:80"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["100.64.0.0/10", "fd7a:115c:a1e0::/48"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 80,
"Last": 80
}
},
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 80,
"Last": 80
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 80,
"Last": 80
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,155 @@
{
"test_id": "ACL-host_as_source",
"source": "headscale_adapted",
"parent_test": "Hosts",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["webserver"],
"dst": ["*:*"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": [
{
"SrcIPs": ["100.108.74.26/32"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["100.108.74.26/32", "fd7a:115c:a1e0::b901:4a87/128"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-client": {
"packet_filter_rules": [
{
"SrcIPs": ["100.108.74.26/32", "fd7a:115c:a1e0::b901:4a87/128"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-db": {
"packet_filter_rules": [
{
"SrcIPs": ["100.108.74.26/32", "fd7a:115c:a1e0::b901:4a87/128"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-web": {
"packet_filter_rules": [
{
"SrcIPs": ["100.108.74.26/32", "fd7a:115c:a1e0::b901:4a87/128"],
"DstPorts": [
{
"IP": "*",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,106 @@
{
"test_id": "ACL-host_cidr_plus_raw_cidr_same_12_4",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["*"],
"dst": ["webserver:22", "database:5432"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["10.0.0.0/8"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,106 @@
{
"test_id": "ACL-host_plus_tag",
"source": "headscale_adapted",
"parent_test": "MixedSources",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["internal", "tag:client"],
"dst": ["tag:server:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["10.0.0.0/8", "100.80.238.75/32", "fd7a:115c:a1e0::7901:ee86/128"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,111 @@
{
"test_id": "ACL-host_plus_tag_client_1_5",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["webserver", "tag:client"],
"dst": ["tag:database:5432"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.80.238.75/32",
"100.108.74.26/32",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::b901:4a87/128"
],
"DstPorts": [
{
"IP": "100.74.60.128/32",
"Ports": {
"First": 5432,
"Last": 5432
}
},
{
"IP": "fd7a:115c:a1e0::2f01:3c9c/128",
"Ports": {
"First": 5432,
"Last": 5432
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,30 @@
{
"test_id": "ACL-host_to_self_13_13",
"source": "headscale_adapted",
"error": true,
"headscale_differs": true,
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"]
},
"tagOwners": {
"tag:server": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26"
},
"acls": [
{
"action": "accept",
"src": ["webserver"],
"dst": ["autogroup:self:*"]
}
]
},
"api_response_code": 400,
"api_response_body": {
"message": "autogroup:self can only be used with users, groups, or supported autogroups (400)"
}
}
}

View File

@@ -0,0 +1,107 @@
{
"test_id": "ACL-icmp_numeric_protocol",
"source": "headscale_adapted",
"parent_test": "ProtocolsPorts",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["*"],
"proto": "1",
"dst": ["tag:server:*"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["100.64.0.0/10", "fd7a:115c:a1e0::/48"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 0,
"Last": 65535
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [1]
}
]
}
}
}

View File

@@ -0,0 +1,191 @@
{
"test_id": "ACL-many_sources_many_destinations_7_5",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": [
"autogroup:member",
"group:admins",
"kratail2tid@",
"tag:client",
"tag:web",
"100.80.238.75",
"100.94.92.91"
],
"dst": ["tag:server:22", "webserver:80", "100.108.74.26:443", "group:admins:8080", "kratail2tid@:9000"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"user1": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.80.238.75/32",
"100.90.199.68/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::2d01:c747/128",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "100.90.199.68/32",
"Ports": {
"First": 9000,
"Last": 9000
}
},
{
"IP": "fd7a:115c:a1e0::2d01:c747/128",
"Ports": {
"First": 9000,
"Last": 9000
}
},
{
"IP": "100.90.199.68/32",
"Ports": {
"First": 8080,
"Last": 8080
}
},
{
"IP": "fd7a:115c:a1e0::2d01:c747/128",
"Ports": {
"First": 8080,
"Last": 8080
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.80.238.75/32",
"100.90.199.68/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::2d01:c747/128",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 80,
"Last": 80
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 80,
"Last": 80
}
},
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 443,
"Last": 443
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 443,
"Last": 443
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,106 @@
{
"test_id": "ACL-member_to_self_13_5",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["autogroup:member"],
"dst": ["autogroup:self:*"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"tagged-server": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"user1": {
"packet_filter_rules": [
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "100.90.199.68/32",
"Ports": {
"First": 0,
"Last": 65535
}
},
{
"IP": "fd7a:115c:a1e0::2d01:c747/128",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,169 @@
{
"test_id": "ACL-mixed_overlapping_rules",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["tag:client"],
"dst": ["tag:server:22"]
},
{
"action": "accept",
"src": ["tag:client"],
"dst": ["tag:server:80"]
},
{
"action": "accept",
"src": ["tag:web"],
"dst": ["tag:server:22"]
},
{
"action": "accept",
"src": ["tag:web"],
"dst": ["tag:server:443"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["100.80.238.75/32", "fd7a:115c:a1e0::7901:ee86/128"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 80,
"Last": 80
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 80,
"Last": 80
}
}
],
"IPProto": [6, 17, 1, 58]
},
{
"SrcIPs": ["100.94.92.91/32", "fd7a:115c:a1e0::ef01:5c81/128"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 443,
"Last": 443
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 443,
"Last": 443
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,111 @@
{
"test_id": "ACL-mixed_source_order_client_member_5_3b",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["tag:client", "autogroup:member"],
"dst": ["tag:server:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.80.238.75/32",
"100.90.199.68/32",
"fd7a:115c:a1e0::2d01:c747/128",
"fd7a:115c:a1e0::7901:ee86/128"
],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,111 @@
{
"test_id": "ACL-mixed_source_order_member_client_5_3a",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["autogroup:member", "tag:client"],
"dst": ["tag:server:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.80.238.75/32",
"100.90.199.68/32",
"fd7a:115c:a1e0::2d01:c747/128",
"fd7a:115c:a1e0::7901:ee86/128"
],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,139 @@
{
"test_id": "ACL-mixed_sources_comma_ports",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["autogroup:member", "tag:client"],
"dst": ["tag:server:22,80,443"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.80.238.75/32",
"100.90.199.68/32",
"fd7a:115c:a1e0::2d01:c747/128",
"fd7a:115c:a1e0::7901:ee86/128"
],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 80,
"Last": 80
}
},
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 443,
"Last": 443
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 80,
"Last": 80
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 443,
"Last": 443
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,139 @@
{
"test_id": "ACL-mixed_sources_comma_ports_11_1",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["autogroup:member", "tag:client"],
"dst": ["tag:server:22,80,443"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.80.238.75/32",
"100.90.199.68/32",
"fd7a:115c:a1e0::2d01:c747/128",
"fd7a:115c:a1e0::7901:ee86/128"
],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 80,
"Last": 80
}
},
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 443,
"Last": 443
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 80,
"Last": 80
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 443,
"Last": 443
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,137 @@
{
"test_id": "ACL-mixed_sources_in_multiple_rules",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["tag:client", "tag:web"],
"dst": ["tag:server:22"]
},
{
"action": "accept",
"src": ["autogroup:member", "group:admins"],
"dst": ["tag:database:5432"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.80.238.75/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-db": {
"packet_filter_rules": [
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "100.74.60.128/32",
"Ports": {
"First": 5432,
"Last": 5432
}
},
{
"IP": "fd7a:115c:a1e0::2f01:3c9c/128",
"Ports": {
"First": 5432,
"Last": 5432
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,165 @@
{
"test_id": "ACL-mixed_sources_mixed_port_formats_11_3",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["tag:client", "tag:web"],
"dst": ["tag:server:22", "tag:server:80-443", "tag:database:5432,3306"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.80.238.75/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 80,
"Last": 443
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 80,
"Last": 443
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-db": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.80.238.75/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "100.74.60.128/32",
"Ports": {
"First": 5432,
"Last": 5432
}
},
{
"IP": "fd7a:115c:a1e0::2f01:3c9c/128",
"Ports": {
"First": 5432,
"Last": 5432
}
},
{
"IP": "100.74.60.128/32",
"Ports": {
"First": 3306,
"Last": 3306
}
},
{
"IP": "fd7a:115c:a1e0::2f01:3c9c/128",
"Ports": {
"First": 3306,
"Last": 3306
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,132 @@
{
"test_id": "ACL-mixed_sources_multiple_rules_10_5",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["tag:client", "tag:web"],
"dst": ["tag:server:22", "tag:server:80-443", "tag:database:5432,3306"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.80.238.75/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-db": {
"packet_filter_rules": [
{
"SrcIPs": ["100.90.199.68/32", "fd7a:115c:a1e0::2d01:c747/128"],
"DstPorts": [
{
"IP": "100.74.60.128/32",
"Ports": {
"First": 5432,
"Last": 5432
}
},
{
"IP": "fd7a:115c:a1e0::2f01:3c9c/128",
"Ports": {
"First": 5432,
"Last": 5432
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,111 @@
{
"test_id": "ACL-mixed_sources_port_range_11_2",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["group:admins", "webserver"],
"dst": ["tag:server:80-443"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.108.74.26/32",
"100.90.199.68/32",
"fd7a:115c:a1e0::2d01:c747/128",
"fd7a:115c:a1e0::b901:4a87/128"
],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 80,
"Last": 443
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 80,
"Last": 443
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,111 @@
{
"test_id": "ACL-mixed_sources_with_port_range",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["autogroup:member", "tag:client"],
"dst": ["tag:server:80-443"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.80.238.75/32",
"100.90.199.68/32",
"fd7a:115c:a1e0::2d01:c747/128",
"fd7a:115c:a1e0::7901:ee86/128"
],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 80,
"Last": 443
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 80,
"Last": 443
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,111 @@
{
"test_id": "ACL-mixed_sources_with_port_range_11_2",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["group:admins", "webserver"],
"dst": ["tag:server:80-443"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.90.199.68/32",
"100.108.74.26/32",
"fd7a:115c:a1e0::2d01:c747/128",
"fd7a:115c:a1e0::b901:4a87/128"
],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 80,
"Last": 443
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 80,
"Last": 443
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,27 @@
{
"test_id": "ACL-mixed_valid_invalid_sources_to_self_13_25",
"source": "headscale_adapted",
"error": true,
"headscale_differs": true,
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"]
},
"tagOwners": {
"tag:client": ["kratail2tid@"]
},
"acls": [
{
"action": "accept",
"src": ["autogroup:member", "tag:client"],
"dst": ["autogroup:self:*"]
}
]
},
"api_response_code": 400,
"api_response_body": {
"message": "autogroup:self can only be used with users, groups, or supported autogroups (400)"
}
}
}

View File

@@ -0,0 +1,106 @@
{
"test_id": "ACL-multiple_cidr_hosts_as_sources",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["internal", "subnet24"],
"dst": ["tag:server:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["10.0.0.0/8", "192.168.1.0/24"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,106 @@
{
"test_id": "ACL-multiple_cidr_hosts_sources_12_2",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["*"],
"dst": ["webserver:22", "database:5432"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["10.0.0.0/8", "192.168.1.0/24"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,106 @@
{
"test_id": "ACL-multiple_cidr_plus_tag_destinations_12_5",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["*"],
"dst": ["internal:22", "subnet24:80", "tag:server:443"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["100.64.0.0/10", "fd7a:115c:a1e0::/48"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 443,
"Last": 443
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 443,
"Last": 443
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,134 @@
{
"test_id": "ACL-multiple_comma_separated_ports",
"source": "headscale_adapted",
"parent_test": "ProtocolsPorts",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["*"],
"dst": ["tag:server:22,80,443"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["100.64.0.0/10", "fd7a:115c:a1e0::/48"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 80,
"Last": 80
}
},
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 443,
"Last": 443
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 80,
"Last": 80
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 443,
"Last": 443
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,148 @@
{
"test_id": "ACL-multiple_destination_tags",
"source": "headscale_adapted",
"parent_test": "BasicTags",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["tag:client"],
"dst": ["tag:server:22", "tag:database:5432", "tag:web:80"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["100.80.238.75/32", "fd7a:115c:a1e0::7901:ee86/128"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-db": {
"packet_filter_rules": [
{
"SrcIPs": ["100.80.238.75/32", "fd7a:115c:a1e0::7901:ee86/128"],
"DstPorts": [
{
"IP": "100.74.60.128/32",
"Ports": {
"First": 5432,
"Last": 5432
}
},
{
"IP": "fd7a:115c:a1e0::2f01:3c9c/128",
"Ports": {
"First": 5432,
"Last": 5432
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-web": {
"packet_filter_rules": [
{
"SrcIPs": ["100.80.238.75/32", "fd7a:115c:a1e0::7901:ee86/128"],
"DstPorts": [
{
"IP": "100.94.92.91/32",
"Ports": {
"First": 80,
"Last": 80
}
},
{
"IP": "fd7a:115c:a1e0::ef01:5c81/128",
"Ports": {
"First": 80,
"Last": 80
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,127 @@
{
"test_id": "ACL-multiple_destinations_different_ports",
"source": "headscale_adapted",
"parent_test": "UsersGroups",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["tag:client"],
"dst": ["tag:server:22", "tag:database:5432"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["100.80.238.75/32", "fd7a:115c:a1e0::7901:ee86/128"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-db": {
"packet_filter_rules": [
{
"SrcIPs": ["100.80.238.75/32", "fd7a:115c:a1e0::7901:ee86/128"],
"DstPorts": [
{
"IP": "100.74.60.128/32",
"Ports": {
"First": 5432,
"Last": 5432
}
},
{
"IP": "fd7a:115c:a1e0::2f01:3c9c/128",
"Ports": {
"First": 5432,
"Last": 5432
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,127 @@
{
"test_id": "ACL-multiple_host_destinations",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["tag:client"],
"dst": ["webserver:22", "database:5432"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["100.80.238.75/32", "fd7a:115c:a1e0::7901:ee86/128"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
},
"tagged-db": {
"packet_filter_rules": [
{
"SrcIPs": ["100.80.238.75/32", "fd7a:115c:a1e0::7901:ee86/128"],
"DstPorts": [
{
"IP": "100.74.60.128/32",
"Ports": {
"First": 5432,
"Last": 5432
}
},
{
"IP": "fd7a:115c:a1e0::2f01:3c9c/128",
"Ports": {
"First": 5432,
"Last": 5432
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,139 @@
{
"test_id": "ACL-multiple_rules_same_source_merged",
"source": "headscale_adapted",
"parent_test": "ComplexScenarios",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["tag:client"],
"dst": ["tag:server:22"]
},
{
"action": "accept",
"src": ["tag:client"],
"dst": ["tag:server:80,443"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": ["100.80.238.75/32", "fd7a:115c:a1e0::7901:ee86/128"],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 80,
"Last": 80
}
},
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 443,
"Last": 443
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 80,
"Last": 80
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 443,
"Last": 443
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

View File

@@ -0,0 +1,111 @@
{
"test_id": "ACL-multiple_source_tags",
"source": "headscale_adapted",
"parent_test": "BasicTags",
"input": {
"full_policy": {
"groups": {
"group:admins": ["kratail2tid@"],
"group:developers": ["kratail2tid@"],
"group:empty": []
},
"tagOwners": {
"tag:server": ["kratail2tid@"],
"tag:client": ["kratail2tid@"],
"tag:database": ["kratail2tid@"],
"tag:web": ["kratail2tid@"]
},
"hosts": {
"webserver": "100.108.74.26",
"database": "100.74.60.128",
"internal": "10.0.0.0/8",
"subnet24": "192.168.1.0/24"
},
"acls": [
{
"action": "accept",
"src": ["tag:client", "tag:web"],
"dst": ["tag:server:22"]
}
]
}
},
"topology": {
"nodes": {
"user1": {
"hostname": "user1",
"tags": [],
"ipv4": "100.90.199.68",
"ipv6": "fd7a:115c:a1e0::2d01:c747",
"user": "kratail2tid"
},
"tagged-server": {
"hostname": "tagged-server",
"tags": ["tag:server"],
"ipv4": "100.108.74.26",
"ipv6": "fd7a:115c:a1e0::b901:4a87"
},
"tagged-client": {
"hostname": "tagged-client",
"tags": ["tag:client"],
"ipv4": "100.80.238.75",
"ipv6": "fd7a:115c:a1e0::7901:ee86"
},
"tagged-db": {
"hostname": "tagged-db",
"tags": ["tag:database"],
"ipv4": "100.74.60.128",
"ipv6": "fd7a:115c:a1e0::2f01:3c9c"
},
"tagged-web": {
"hostname": "tagged-web",
"tags": ["tag:web"],
"ipv4": "100.94.92.91",
"ipv6": "fd7a:115c:a1e0::ef01:5c81"
}
}
},
"captures": {
"user1": {
"packet_filter_rules": null
},
"tagged-client": {
"packet_filter_rules": null
},
"tagged-db": {
"packet_filter_rules": null
},
"tagged-web": {
"packet_filter_rules": null
},
"tagged-server": {
"packet_filter_rules": [
{
"SrcIPs": [
"100.80.238.75/32",
"100.94.92.91/32",
"fd7a:115c:a1e0::7901:ee86/128",
"fd7a:115c:a1e0::ef01:5c81/128"
],
"DstPorts": [
{
"IP": "100.108.74.26/32",
"Ports": {
"First": 22,
"Last": 22
}
},
{
"IP": "fd7a:115c:a1e0::b901:4a87/128",
"Ports": {
"First": 22,
"Last": 22
}
}
],
"IPProto": [6, 17, 1, 58]
}
]
}
}
}

Some files were not shown because too many files have changed in this diff Show More