util

package
v0.0.0-...-dba8875 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 6, 2022 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultUsername                        = "admin"
	DefaultPassword                        = "admin"
	DefaultServerAddress                   = "10.252.1.0/24"
	DefaultServerPort                      = 51820
	DefaultDNS                             = "1.1.1.1"
	DefaultMTU                             = 1450
	DefaultPersistentKeepalive             = 15
	DefaultForwardMark                     = "0xca6c"
	DefaultConfigFilePath                  = "/etc/wireguard/wg0.conf"
	UsernameEnvVar                         = "WGUI_USERNAME"
	PasswordEnvVar                         = "WGUI_PASSWORD"
	PasswordHashEnvVar                     = "WGUI_PASSWORD_HASH"
	EndpointAddressEnvVar                  = "WGUI_ENDPOINT_ADDRESS"
	DNSEnvVar                              = "WGUI_DNS"
	MTUEnvVar                              = "WGUI_MTU"
	PersistentKeepaliveEnvVar              = "WGUI_PERSISTENT_KEEPALIVE"
	ForwardMarkEnvVar                      = "WGUI_FORWARD_MARK"
	ConfigFilePathEnvVar                   = "WGUI_CONFIG_FILE_PATH"
	ServerAddressesEnvVar                  = "WGUI_SERVER_INTERFACE_ADDRESSES"
	ServerListenPortEnvVar                 = "WGUI_SERVER_LISTEN_PORT"
	ServerPostUpScriptEnvVar               = "WGUI_SERVER_POST_UP_SCRIPT"
	ServerPostDownScriptEnvVar             = "WGUI_SERVER_POST_DOWN_SCRIPT"
	DefaultClientAllowedIpsEnvVar          = "WGUI_DEFAULT_CLIENT_ALLOWED_IPS"
	DefaultClientExtraAllowedIpsEnvVar     = "WGUI_DEFAULT_CLIENT_EXTRA_ALLOWED_IPS"
	DefaultClientUseServerDNSEnvVar        = "WGUI_DEFAULT_CLIENT_USE_SERVER_DNS"
	DefaultClientEnableAfterCreationEnvVar = "WGUI_DEFAULT_CLIENT_ENABLE_AFTER_CREATION"
)

Variables

View Source
var (
	DisableLogin   bool
	BindAddress    string
	SmtpHostname   string
	SmtpPort       int
	SmtpUsername   string
	SmtpPassword   string
	SmtpNoTLSCheck bool
	SmtpEncryption string
	SmtpAuthType   string
	SendgridApiKey string
	EmailFrom      string
	EmailFromName  string
	EmailSubject   string
	EmailContent   string
	SessionSecret  []byte
	WgConfTemplate string
	BasePath       string
)

Runtime config

Functions

func BuildClientConfig

func BuildClientConfig(client model.Client, server model.Server, setting model.GlobalSetting) string

BuildClientConfig to create wireguard client config string

func ClientDefaultsFromEnv

func ClientDefaultsFromEnv() model.ClientDefaults

Read the default values for creating a new client from the environment or use sane defaults

func GetAllocatedIPs

func GetAllocatedIPs(ignoreClientID string) ([]string, error)

GetAllocatedIPs to get all ip addresses allocated to clients and server

func GetAvailableIP

func GetAvailableIP(cidr string, allocatedList []string) (string, error)

GetAvailableIP get the ip address that can be allocated from an CIDR

func GetBroadcastIP

func GetBroadcastIP(n *net.IPNet) net.IP

GetBroadcastIP func to get the broadcast ip address of a network

func GetIPFromCIDR

func GetIPFromCIDR(cidr string) (string, error)

GetIPFromCIDR get ip from CIDR

func GetInterfaceIPs

func GetInterfaceIPs() ([]model.Interface, error)

GetInterfaceIPs to get local machine's interface ip addresses

func GetPublicIP

func GetPublicIP() (model.Interface, error)

GetPublicIP to get machine's public ip address

func HashPassword

func HashPassword(plaintext string) (string, error)

func LookupEnvOrBool

func LookupEnvOrBool(key string, defaultVal bool) bool

func LookupEnvOrInt

func LookupEnvOrInt(key string, defaultVal int) int

func LookupEnvOrString

func LookupEnvOrString(key string, defaultVal string) string

func LookupEnvOrStrings

func LookupEnvOrStrings(key string, defaultVal []string) []string

func ParseBasePath

func ParseBasePath(basePath string) string

func ValidateAllowedIPs

func ValidateAllowedIPs(cidrs []string) bool

ValidateAllowedIPs to validate allowed ip addresses in CIDR format

func ValidateCIDR

func ValidateCIDR(cidr string) bool

ValidateCIDR to validate a network CIDR

func ValidateCIDRList

func ValidateCIDRList(cidrs []string, allowEmpty bool) bool

ValidateCIDRList to validate a list of network CIDR

func ValidateExtraAllowedIPs

func ValidateExtraAllowedIPs(cidrs []string) bool

ValidateExtraAllowedIPs to validate extra Allowed ip addresses, allowing empty strings

func ValidateIPAddress

func ValidateIPAddress(ip string) bool

ValidateIPAddress to validate the IPv4 and IPv6 address

func ValidateIPAddressList

func ValidateIPAddressList(ips []string) bool

ValidateIPAddressList to validate a list of IPv4 and IPv6 addresses

func ValidateIPAllocation

func ValidateIPAllocation(serverAddresses []string, ipAllocatedList []string, ipAllocationList []string) (bool, error)

ValidateIPAllocation to validate the list of client's ip allocation They must have a correct format and available in serverAddresses space

func ValidateServerAddresses

func ValidateServerAddresses(cidrs []string) bool

ValidateServerAddresses to validate allowed ip addresses in CIDR format

func VerifyHash

func VerifyHash(base64Hash string, plaintext string) (bool, error)

func WriteWireGuardServerConfig

func WriteWireGuardServerConfig(tmplBox *rice.Box, serverConfig model.Server, clientDataList []model.ClientData, globalSettings model.GlobalSetting) error

WriteWireGuardServerConfig to write Wireguard server config. e.g. wg0.conf

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL