v3.33.0

passteque/gluetunv3.33.0Apr 11, 2023by qdm12

AI Summary

Added Wireguard implementation selection (`userspace`/`kernelspace`), upgraded Alpine and OpenVPN, and added various warnings for deprecated services or weak certificates.

Key Highlights

  • Added `WIREGUARD_IMPLEMENTATION` variable (auto, userspace, kernelspace)
  • Alpine upgraded from 3.16 to 3.17
  • OpenVPN upgraded from 2.5.6 to 2.5.8 with OpenSSL 3
  • Added Docker image mirror `gchr.io/qdm12/gluetun`

New Features

  • Wireguard implementation selector
  • OpenVPN transparently upgrades key encryption for DES-CBC
  • Added Docker image mirror
  • Added 2 new 'HK' servers for Surfshark
  • Install Alpine `wget` package

Full Release Notes

## Features

- `WIREGUARD_IMPLEMENTATION` variable which can be `auto` (default), `userspace` or `kernelspace`
- `gchr.io/qdm12/gluetun` Docker image mirror
- Alpine upgraded from 3.16 to 3.17
- OpenVPN upgraded from 2.5.6 to 2.5.8 built with OpenSSL 3
- OpenSSL 1.1.* installed separately to maintain OpenVPN 2.4 working
- Logging:
  - log FAQ Github Wiki URL when the VPN internally restarts
  - Warn Openvpn 2.4 is to be removed in the next release
  - Warn when using SlickVPN or VPN Unlimited due to their weak certificates
  - Warn Hide My Ass is no longer supported (credits to @Fukitsu)
  - OpenVPN `RTNETLINK answers: File exists` changed to warning level with explanation
  - OpenVPN `Linux route add command failed:` changed to warning level with explanation
  - Log IPv6 support at debug level with more information instead of at the info level
- Update servers data: AirVPN, FastestVPN, Mullvad, Surfshark, Private Internet Access
- Netlink: add debug logger (no use yet)
- Surfshark: add 2 new 'HK' servers
- Install Alpine `wget` package (fixes #1260, #1494 due to busybox's buggy wget)
- OpenVPN: transparently upgrade key encryption for DES-CBC encrypted keys (VPN Secure)

## Important fixes

- Exit with code `1` on a program error
- Profiling server: do not run if disabled
- IPv6 detection: inspect each route source and destination for buggy kernels/container runtimes
- iptables detection: better interpret permission denied for buggy kernels/container runtimes
- FastestVPN: update OpenVPN zip file URL for the updater (#1264)
- IPVanish: update OpenVPN zip file URL for the updater (#1449)
- Surfshark: remove 3 servers no longer resolving
- AirVPN:
  - remove commas from API locations
  - remove commas from city names
- VPN Unlimited: lower TLS security level to 0 to allow weak certificates to work with Openvpn 2.5.8+Openssl 3
- SlickVPN
  - explicitely allow `AES-256-GCM` cipher
  - lower TLS security level to 0 to allow SlickVPN's weak certificates to work with Openvpn 2.5.8+Openssl 3
  - All servers support TCP and UDP
  - Precise default TCP port as `443`

## Documentation

- Document new docker image `gchr.io/qdm12/gluetun`
- Add servers updater environment variables (#1393)
- Update Github labels:
  - remove issue category labels
  - Add temporary status labels
  - Add complexity labels

## Minor fixes

- Firewall: remove previously allowed input ports
- HTTP proxy: lower shutdown wait from 2s to 100ms
- Private Internet Access: remove credentials from login error string
- Wireguard:
  - validate Wireguard addresses depending on IPv6 support
  - ignore IPv6 interface addresses if IPv6 is not supported
- Healthcheck client: set unset health settings to defaults
- Print outbound subnets settings correctly
- `github.com/breml/rootcerts` from 0.2.8 to 0.2.10
- Add subprogram name in version check error

## Maintenance

- Development tooling:
  - Go upgraded from 1.19 to 1.20
  - Development container has the same ssh bind mount for all platforms
  - Development container has `openssl` installed
  - `golangci-lint` upgraded from v1.49.0 to v1.51.2
  - `github.com/stretchr/testify` upgraded from 1.8.1 to 1.8.2
- Dependencies
  - `golang.org/x/text` upgraded from 0.4.0 to 0.8.0
  - `github.com/fatih/color` upgraded from 1.13.0 to 1.14.1
  - `golang.org/x/sys` upgraded from 0.3.0 to 0.6.0
  - Remove no longer needed `apk-tools`
- Code health
  - Add comments for OpenVPN settings fields about their base64 DER encoding
  - `internal/openvpn/extract`: simplify `PEM` extraction function
  - Review all error wrappings
    - remove repetitive `cannot` and `failed` prefixes
    - rename `unmarshaling` to `decoding`
- CI
  - `docker/build-push-action` upgraded from 3.2.0 to 4.0.0