-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Migrate ACLs syntax to new Tailscale format
Implements #617. Tailscale has changed the format of their ACLs to use a more firewall-y terms ("users" & "ports" -> "src" & "dst"). They have also started using all-lowercase tags. This PR applies these changes.
- Loading branch information
Showing
12 changed files
with
126 additions
and
124 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
{ | ||
// Declare static groups of users beyond those in the identity service. | ||
"Groups": { | ||
"groups": { | ||
"group:example": [ | ||
"[email protected]", | ||
"[email protected]", | ||
|
@@ -11,12 +11,12 @@ | |
], | ||
}, | ||
// Declare hostname aliases to use in place of IP addresses or subnets. | ||
"Hosts": { | ||
"hosts": { | ||
"example-host-1": "100.100.100.100", | ||
"example-host-2": "100.100.101.100/24", | ||
}, | ||
// Define who is allowed to use which tags. | ||
"TagOwners": { | ||
"tagOwners": { | ||
// Everyone in the montreal-admins or global-admins group are | ||
// allowed to tag servers as montreal-webserver. | ||
"tag:montreal-webserver": [ | ||
|
@@ -29,17 +29,18 @@ | |
], | ||
}, | ||
// Access control lists. | ||
"ACLs": [ | ||
"acls": [ | ||
// Engineering users, plus the president, can access port 22 (ssh) | ||
// and port 3389 (remote desktop protocol) on all servers, and all | ||
// ports on git-server or ci-server. | ||
{ | ||
"Action": "accept", | ||
"Users": [ | ||
"action": "accept", | ||
"protocol": "tcp", | ||
"src": [ | ||
"group:example2", | ||
"192.168.1.0/24" | ||
], | ||
"Ports": [ | ||
"dst": [ | ||
"*:22,3389", | ||
"git-server:*", | ||
"ci-server:*" | ||
|
@@ -48,22 +49,22 @@ | |
// Allow engineer users to access any port on a device tagged with | ||
// tag:production. | ||
{ | ||
"Action": "accept", | ||
"Users": [ | ||
"action": "accept", | ||
"src": [ | ||
"group:example" | ||
], | ||
"Ports": [ | ||
"dst": [ | ||
"tag:production:*" | ||
], | ||
}, | ||
// Allow servers in the my-subnet host and 192.168.1.0/24 to access hosts | ||
// on both networks. | ||
{ | ||
"Action": "accept", | ||
"Users": [ | ||
"action": "accept", | ||
"src": [ | ||
"example-host-2", | ||
], | ||
"Ports": [ | ||
"dst": [ | ||
"example-host-1:*", | ||
"192.168.1.0/24:*" | ||
], | ||
|
@@ -72,22 +73,22 @@ | |
// Comment out this section if you want to define specific ACL | ||
// restrictions above. | ||
{ | ||
"Action": "accept", | ||
"Users": [ | ||
"action": "accept", | ||
"src": [ | ||
"*" | ||
], | ||
"Ports": [ | ||
"dst": [ | ||
"*:*" | ||
], | ||
}, | ||
// All users in Montreal are allowed to access the Montreal web | ||
// servers. | ||
{ | ||
"Action": "accept", | ||
"Users": [ | ||
"action": "accept", | ||
"src": [ | ||
"example-host-1" | ||
], | ||
"Ports": [ | ||
"dst": [ | ||
"tag:montreal-webserver:80,443" | ||
], | ||
}, | ||
|
@@ -96,30 +97,30 @@ | |
// In contrast, this doesn't grant API servers the right to initiate | ||
// any connections. | ||
{ | ||
"Action": "accept", | ||
"Users": [ | ||
"action": "accept", | ||
"src": [ | ||
"tag:montreal-webserver" | ||
], | ||
"Ports": [ | ||
"dst": [ | ||
"tag:api-server:443" | ||
], | ||
}, | ||
], | ||
// Declare tests to check functionality of ACL rules | ||
"Tests": [ | ||
"tests": [ | ||
{ | ||
"User": "[email protected]", | ||
"Allow": [ | ||
"src": "[email protected]", | ||
"accept": [ | ||
"example-host-1:22", | ||
"example-host-2:80" | ||
], | ||
"Deny": [ | ||
"deny": [ | ||
"exapmle-host-2:100" | ||
], | ||
}, | ||
{ | ||
"User": "[email protected]", | ||
"Allow": [ | ||
"src": "[email protected]", | ||
"accept": [ | ||
"100.60.3.4:22" | ||
], | ||
}, | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.