Skip to content

Commit

Permalink
Merge pull request #34 from sphen13/client_allowed_ips
Browse files Browse the repository at this point in the history
default client allowed ips in server config
  • Loading branch information
vx3r authored Apr 15, 2020
2 parents eecea63 + 260f733 commit 9e4b22d
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 1 deletion.
4 changes: 4 additions & 0 deletions core/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,10 @@ func ReadServer() (*model.Server, error) {
server.Dns = append(server.Dns, "fd9f::10:0:0:2")
server.Dns = append(server.Dns, "10.0.0.2")

server.AllowedIPs = make([]string, 0)
server.AllowedIPs = append(server.AllowedIPs, "0.0.0.0/0")
server.AllowedIPs = append(server.AllowedIPs, "::/0")

server.PersistentKeepalive = 16
server.Mtu = 0
server.PreUp = "echo WireGuard PreUp"
Expand Down
7 changes: 7 additions & 0 deletions model/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ type Server struct {
Endpoint string `json:"endpoint"`
PersistentKeepalive int `json:"persistentKeepalive"`
Dns []string `json:"dns"`
AllowedIPs []string `json:"allowedips"`
PreUp string `json:"preUp"`
PostUp string `json:"postUp"`
PreDown string `json:"preDown"`
Expand Down Expand Up @@ -59,6 +60,12 @@ func (a Server) IsValid() []error {
errs = append(errs, fmt.Errorf("dns %s is invalid", dns))
}
}
// check if the allowedIPs are valid
for _, allowedIP := range a.AllowedIPs {
if !util.IsValidCidr(allowedIP) {
errs = append(errs, fmt.Errorf("allowedIP %s is invalid", allowedIP))
}
}

return errs
}
2 changes: 1 addition & 1 deletion ui/src/components/Clients.vue
Original file line number Diff line number Diff line change
Expand Up @@ -382,7 +382,7 @@
name: "",
email: "",
enable: true,
allowedIPs: ["0.0.0.0/0", "::/0"],
allowedIPs: this.server.allowedips,
address: this.server.address,
}
},
Expand Down
32 changes: 32 additions & 0 deletions ui/src/components/Server.vue
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,26 @@
</v-chip>
</template>
</v-combobox>
<v-combobox
v-model="server.allowedips"
chips
hint="Write IPv4 or IPv6 address and hit enter"
label="Default Allowed IPs for clients"
multiple
dark
>
<template v-slot:selection="{ attrs, item, select, selected }">
<v-chip
v-bind="attrs"
:input-value="selected"
close
@click="select"
@click:close="server.allowedips.splice(server.allowedips.indexOf(item), 1)"
>
<strong>{{ item }}</strong>&nbsp;
</v-chip>
</template>
</v-combobox>
<v-text-field
type="number"
v-model="server.mtu"
Expand Down Expand Up @@ -218,6 +238,18 @@
}
}
// check client AllowedIPs
if (this.server.allowedips.length < 1) {
this.notify('error', 'Please provide at least one valid CIDR address for client allowed IPs');
return;
}
for (let i = 0; i < this.server.allowedips.length; i++){
if (this.$isCidr(this.server.allowedips[i]) === 0) {
this.notify('error', 'Invalid CIDR detected, please correct before submitting');
return
}
}
this.api.patch('/server', this.server).then((res) => {
this.notify('success', "Server successfully updated");
this.server = res;
Expand Down

0 comments on commit 9e4b22d

Please sign in to comment.