v3.25.0
passteque/gluetunv3.25.0Sep 28, 2021by qdm12
AI Summary
Adds support for ExpressVPN and WeVPN, improves healthchecks using DNS and ping, and introduces custom configuration support for OpenVPN and Wireguard. Includes a security update removing OpenVPN compression.
Key Highlights
- ExpressVPN and WeVPN support
- Healthcheck improvements (DNS + Ping to github.com)
- Wireguard IPv6 routing support
- Custom OpenVPN/Wireguard configuration support
- Security fix: removal of OpenVPN compression
Breaking Changes
- Removal of NordVPN `SERVER_NAME` filter functionality
- Removal of `CYBERGHOST_GROUP` variable
New Features
- ExpressVPN support
- WeVPN support
- Custom OpenVPN/Wireguard config
- Wireguard IPv6 routing
- Healthcheck improvements
Full Release Notes
## Features
- ExpressVPN support (#623)
- WeVPN support (#591)
- Healthcheck uses DNS and ping to `github.com` instead of only DNS to avoid relying on DNS cache
- `HEALTH_ADDRESS_TO_PING` variable
- Adapt logger prefix to VPN used
- `openvpn: ` for OpenVPN
- `wireguard: ` for Wireguard
- `VPNSP` value `custom` for OpenVPN custom config files (#621)
- `VPNSP` value `custom` for Wireguard custom configuration
- `WIREGUARD_PUBLIC_KEY` variable
- `WIREGUARD_ENDPOINT_IP` variable
- OpenVPN custom configuration file is reloaded on VPN restarts
- OpenVPN custom configuration file is parsed at start to log out valid settings
- Support IPv6 routing for Wireguard
- Log Wireguard server endpoint
- Log Wireguard keys when `LOG_LEVEL=debug`
- Windscribe OpenVPN default cipher set to `aes-256-gcm`
- Update server information built-in
- Cyberghost
- FastestVPN
- Mullvad
- `format-servers` CLI command
## Changes
- `VPNSP=custom` OpenVPN configuration file:
- `up` and `down` options are not filtered out
- `OPENVPN_INTERFACE` overrides the network interface defined in the configuration file
- `PORT` overrides any port found in the configuration file
- Remove NordVPN `SERVER_NAME` filter functionality
- Filter was not effective
- Is to be deprecated in v4 anyway
- Bump NordVPN server model version to `3`
- Remove `Name` field from NordVPN server model
- Remove `CYBERGHOST_GROUP` as it does not make sense anymore with newer server data
## Fixes
- Set non block on TUN device
- Close HTTP client connections when tunnel comes up
- Public IP loop deadlock
- OpenVPN `VPNSP=custom` does not deduplicate lines
- PureVPN remove OpenVPN cipher option `AES-256-CBC`
- Cyberghost OpenVPN cipher option defaults to `aes-128-gcm`
- Repository `servers.json` path for maintainer server update cli
- Add missing HTTP status code check for Windscribe API
- `PIA_ENCRYPTION` default in Go program
- Defaults to `strong` instead of strong certificate string
- No impact on Docker images since variable is set to `strong` in Dockerfile
- Only read `PIA_ENCRYPTION` if service provider is PIA
- (Security) Remove OpenVPN compression option (affects FastestVPN, Hide My Ass, IP Vanish, IVPN, NordVPN, PIA, PrivateVPN, ProtonVPN, Torguard, VPN Unlimited, VyprVPN)
- FastestVPN updated OpenVPN configuration
- HideMyAss: `Cote d'Ivoire` server country name
- Log errors with error level for OpenVPN
- PIA `SERVER_NAME` variable functionality
## Documentation
- Readme
- Update with updated Wiki pages and links
- Add Wireguard in top description
- Add Console Substack interview link
- Remove docker-compose.yml file which is now inlined in readme
- Update Wireguard support list
- Issue templates
- Add `Unraid template issue` contact link to discussion #550
- Add `Wiki issue` yml template
- Replace help issue template by issue contact link to Github discussion
- Update bug issue template to use yml format
- Update feature request issue template to use yml format
- Remove default assignees
- Update maintenance document
## Maintenance
- Rename environment variables with retro-compatibility
- `HEALTH_OPENVPN_DURATION_INITIAL` to `HEALTH_VPN_DURATION_INITIAL`
- `HEALTH_OPENVPN_DURATION_ADDITION` to `HEALTH_VPN_DURATION_ADDITION`
- `WIREGUARD_PORT` to `WIREGUARD_ENDPOINT_PORT`
- `PORT` to `OPENVPN_PORT`
- `PROTOCOL` to `OPENVPN_PROTOCOL`
- `REGION` to `COUNTRY` for Cyberghost
- OpenVPN options
- remove deprecated
- `tun-ipv6` (affects all)
- `keysize`
- `ncp-disable` (affects Cyberghost, PIA, Torguard, Windscribe)
- `keepalive` replaced by `ping*` options
- remove unneeded
- `script-security` (affects Cyberghost, Mullvad, PureVPN, Surfshark, Torguard, Windscribe)
- `ping-timer-rem`
- `route-delay` (affects Cyberghost, PureVPN)
- `route-method` (affects PureVPN)
- `tun-mtu 1500` (affects FastestVPN, NordVPN, ProtonVPN, Surfshark, Torguard)
- `tls-client` (affects FastestVPN)
- `ping-exit` and `ping-restart` (affects all)
- `disable-occ` (affects PIA to match the Wiki)
- add only when running without root:
- `persist-tun`
- `persist-key`
- add `tls-exit` to PIA configuration
- add `explicit-exit-notify` when using UDP
- Dynamically set allowed VPN input ports
- Allow to change VPN type at runtime
- Allow to change interface name at runtime
- Add cleanup method to cleanup VPN loop on a vpn shutdown
- Allow VPN inputs ports only when tunnel is up
- `internal/openvpn/extract` package instead of `internal/openvpn/custom` package
- `internal/openvpn/parse` package
- Parse PEM key data for Cyberghost and VPNUnlimited
- Add more unit tests
- All providers' `BuildConf` method return an error
- Rename `CustomConfig` to `ConfFile` in Settings structures
- Rename Wireguard `CustomPort`
- Use type aliases in `internal/netlink`
- Re-order Dockerfile environment variables
- Improve `internal/configuration/health_test.go` unit test
- Re-order OpenVPN options
- `golangci-lint`:
- Remove `disable-all: true` and enabled by default linters
- Add more linters
- Package-local narrow `Logger` interfaces
- Package-local log levels
- Go program uses `time/tzdata` instead of Alpine's `tzdata`
- Go program uses `github.com/breml/rootcerts` together with Alpine's `ca-certificates`
- Bump github.com/fatih/color from 1.12.0 to 1.13.0 (#635)
- Bump github.com/qdm12/goshutdown from v0.1.0 to v0.3.0