- drop
paragonie/constant_time_encoding
dependency - switch to new version of php-cs-fixer
- add Makefile
- switch from PHPUnit to
fkooman/put
- switch from
psr/log
toSysLogger
fromvpn-lib-common
- source formatting
- pull in
lc/openvpn-connection-manager
dependency in the source code, drop it as external dependency and switch to usingSysLogger
fromvpn-lib-common
- fix PHP 8.1 compatibility
- add database index to
connection_log
table to improve performance ofStorage::clientConnect
#64
- switch default key type to ECDSA from RSA to improve VPN client/server key generation performance
- allow configuring the format of the log line written to syslog and also make it possible to log the client's originating IP
- write connect/disconnect events to syslog
- do not rewrite
config.php
files during deployment, it is a terrible idea as it reformats the configuration file and removes the comments. To that end:- remove
bin/update-ip.php
and keep using the default IPs - remove
bin/update-api-secrets.php
and string replace them in depoy script - we do have
bin/suggest-ip.php
if you want to randomly generate nice private IPv4 and IPv6 ranges and transplant them in your configuration file manually
- remove
- remove
tlsProtection
option support,tls-crypt
will always be used - always allow tls-crypt key generation
- update for
ProfileConfig
refactor
- implement changes for updated
Config
API - fix
vpn-server-api-suggest-ip
on CentOS 7 (random_compat)
- implement (experimental) support for
ECDSA
andEdDSA
key types
- restore default CA CN to be
VPN CA
instead ofRoot CA
- make it possible to disable TLS connections to remote VPN daemons
- also expose
client_id
when getting the connection log - fix type errors in
bin/status.php
- add
bin/suggest-ip.php
script to print an IPv4 and IPv6 range as a suggestion to use for your VPN profile configurations - OpenVPN server certs now get the
hostName
configuration option from the profile for theirCN
andsAN
- update for new vpn-ca 3.0.0 CLI API
- remove
bin/random-ip.php
, was never used
- better connect/disconnect logging
- expose connection history of a user through API
- expose
/app_usage
internal API - better error message when trying to issue certificates that expire in the past
- expose CA information through API
- rework stats generation not to require a lot of memory on high-use systems (issue #73)
- do not check
session_expires_at
for guest users that do not login locally
- better logging in case permissions for connecting to VPN are not available
- log user login with updated permissions/expiry times
- enforce
user_update_session_info
to be a time in the future (and log it) - consult
session_expires_at
in database before allowing VPN connection (and log it) - switch to vpn-ca for issuing certificates, drop easy-rsa
- remove issued certificates/keys from disk as they are not needed after initial issuance
- expose
port_client_count
which shows you the number of connections per OpenVPN process throughvpn-server-api-status --json
status
tool now supports JSON output format using--json
status
tool now allows for specifying the--alert
percentage as a parameterstatus
tool now has the option to also list connections using the--connections
flag. Only with--json
and vpn-daemonstatus
tool has--help
flag now
- update for new vpn-ca
- better error capturing when running
vpn-ca
command fromVpnCa
class
- rework
status
tool to list number of connected clients and how close to capacity (available IPv4 addresses) to server is
- update for new
LC/common
- support per profile tls-crypt keys for new deployments. Existing setups will keep one key for all profiles
- update for new vpn-ca, client and server certificates are no longer written in separate directories
- implement VPN Daemon support
- update client connection API for portal
- mention
tlsOneThree
as a configuration option in CONFIG_CHANGES to support requiring client to use TLSv1.3 - updates for vpn-ca changes
- no longer require OpenVPN to generate
tls-crypt
key - add experimental vpn-ca support
- update to
fkooman/otp-verifier
^0.3
- support
dnsSuffix
configuration option - add CONFIG_CHANGES to indicate the changed configuration options since 2.0.0
- fix unit tests
- remove YubiKey support
- remove VOOT support
- remove compression framing support
- remove tls-auth support
- remove "multi instance" support
- rename "entitlement" to "permission"
- add script to disconnect clients with expired certificates
- store all dates in
DateTime::ATOM
format - store user's session expiry in database
- rework firewall configuration
- fix bug where disabling a user would only disconnect the user from the first profile
- remove PHP error suppression
- make sure user exists before checking for "entitlements"
- create API call for
user_last_authenticated_at
- create API call for
get_voot_token
- also mention 16 ports for OpenVPN processes are supported
/add_client_certificate
requires theexpires_at
parameter now indicating when the certificate will expire exactly- add ACL module for "entitlements", enabled by default
- no longer support "display_name" for groups
- deprecate all "backend" ACL / group information retrieval methods
- show examples for routes config
- remove
blockSmb
from config template (it still works if it is set) - extend API to allow restricting the validity (valid to) of issued client certificates
- add
blockLan
to config template
- also cache the entitlements of a particular user together with the last time the user authenticated
- by default take nameservers from
/etc/resolv.conf
when using thebin/update-ip.php
script (on new deploys) - update configuration template
- use
Json
helper class introduced in vpn-lib-common - generate a
/25
by default as we only have 2 OpenVPN processes by default - no longer avoid using
.42
as second octet in generated IP address
- update for new vpn-lib-common API
- cleanup autoloader so Psalm will be able to verify the scripts in web and bin folder
- bind issued certificates/keys to OAuth client ID when requested through API
- use foreign key on
otp
andotp_log
tables that removes OTP information when the user is deleted (issue #71) - add filtering for
/client_connections
byuser_id
andclient_id
- many
vimeo/psalm
fixes - add
psr/log
dependency
- use
fkooman/sqlite-migrate
- small docblock updates
- various small code fixes
- fix OTP validation at VPN connect time
- switch from
christian-riesen/otp
tofkooman/otp-verifier
- certificates are now sorted in reverse order (from newer to older)
- deal with "lost" clients, that disconnected, but didn't get added to the connection log (issue #70)
update-ip
script now assigns a /64 instead of /60 to IPv6 profile address- introduce
last_authenticated_at
to keep track of when the user last authenticated at the portal - remove the ability to disable certificates, only users can be disabled now
- fix unit test with bug fix release of
LC/openvpn-connection-manager
- update dependencies
- fix
status
CLI tool
- use
LC/openvpn-connection-manager
- introduce
tlsProtection
as replacement fortlsCrypt
to make it possible to selecttls-auth
,tls-crypt
(default) orfalse
(notls-crypt
, notls-auth
)
- enable logging in OAuth client
- expose the
valid_from
andvalid_to
values of certificates when providing certificate information
- update default config to use
enableNat4
andenableNat6
instead ofuseNat
to allow separate configuration of NAT for IPv4 and IPv6
- update for
fkooman/oauth2-client
version 7 - add
1.1.1.1
as example in configuration file
- fix test with updated
eduvpn/common
- allow different certificate expiry days for client and server certificates, they will also immediately be used, not requiring a new "init" of the CA. By default server cert expiry will be 365 days, client cert will be 180 days (issue #66)
- introduce
exposedVpnProtoPorts
to allow listing different protocols/ports from what the OpenVPN processes listen on, e.g. fortcp/443
port sharing
- change default expiry of (server/client) certificates to 180 days
- enable
tlsCrypt
dropping 2.3 client support for new deploys, will keep working for existing deploys
- make quad9 the default DNS for new deploys
- split out statistics per profile instead of "global"
- update
eduvpn/common
- fix test for new
christian-riesen/otp
- cleanup autoloading
- update
eduvpn/common
- update embedded easy-rsa
- make YubiKey validating more robust and simplify code
- switch to
cn
attribute to retrieve name of group(s) instead ofdescription
- update
fkooman/oauth-client
to 6.0.0 - update LDAP configuration example
- support Active Directory for retrieving group membership from LDAP
- make it possible to configure binding to LDAP before retrieving group membership
- sort profile config for "Info" page in admin portal
- LDAP ACL Provider
- support disabling compression, disable by default for new deploys
- NOTE changing this with client configurations in the field WILL break them!
- remove
--reject4
and--reject6
arguments fromupdate-ip
script - refactor code to ease RPM/DEB packaging
- handle VOOT error more gracefully now
- remove
fkooman/secookie
requirement - update unit test for new
eduvpn/common
- fix security issue with 2FA where any YubiKey OTP would be accepted to connect to VPN service when user was not enrolled for YubiKey 2FA
- update default range6 config option to be a /64
- increase TOTP attempt count to 60 from 10 per hour (issue #64)
- fix source formatting and method annotations
- another attempt at fixing #62
- fix parsing connections at OpenVPN processes when clients are slow to connect (#62)
- initial release