Commit graph

265 commits

Author SHA1 Message Date
Σrebe - Romain GERARD
6351cd9e52
feat(dns): Add flag to specify if we should prefer IPv4 over IPv6 2024-07-20 10:41:24 +02:00
Ramses
90d378e768
Do DNS queries for both A and AAAA simultaneously (#302)
* Do DNS queries for both A and AAAA simultaneously

We implement a basic version of RFC8305 (happy eyeballs) to establish
the connection afterwards.

* Try to connect to UDP sockets simultaneously
2024-07-10 21:14:20 +02:00
Σrebe - Romain GERARD
4f570dc48b
bump deps 2024-07-09 08:40:58 +02:00
Σrebe - Romain GERARD
d797fa135c
feat(sock5): Add login/passzord support 2024-07-09 08:22:39 +02:00
Σrebe - Romain GERARD
15db9358a0
feat(dns): Use HTTP proxy if configured for Dns over HTTPS/TLS 2024-06-26 13:27:36 +02:00
Σrebe - Romain GERARD
ef1ca16e4a
feat(dns): Add timeout for tcp handshake for Dns over HTTPS/TLS 2024-06-25 20:28:29 +02:00
Σrebe - Romain GERARD
f2404e79e1
bump deps 2024-06-24 20:37:14 +02:00
erebe
7165f328a8
fix dns over TLS and HTTPS 2024-06-24 20:07:24 +02:00
Σrebe - Romain GERARD
fb378d29d5
feat(linux): Add SO_MARK support for DNS request 2024-06-24 20:07:17 +02:00
Σrebe - Romain GERARD
8e4db44744
Bump version v9.6.3-rc1 2024-06-10 13:48:52 +02:00
Σrebe - Romain GERARD
880aa257a1
feat: Allow to specify DNS resolver on client too - fix #290 for windows 2024-06-09 14:57:54 +02:00
Σrebe - Romain GERARD
485a31c5a2
Bump version v9.6.2 2024-06-07 22:32:57 +02:00
Σrebe - Romain GERARD
bb266f6899
fix(#287): Clamp max websocket message size to 32MB 2024-06-07 21:25:05 +02:00
Σrebe - Romain GERARD
0da43e1643
fix(#289): crash due to invalid UDP socks5 packet received 2024-06-07 20:54:13 +02:00
Σrebe - Romain GERARD
2dd99130fa
lint 2024-05-29 19:19:03 +02:00
Σrebe - Romain GERARD
f53081291e
lint 2024-05-25 13:52:33 +02:00
erebe
7a99905793 Improve stdio tunnel on windows 2024-05-25 11:31:30 +02:00
Σrebe - Romain GERARD
689b16b736
Bump dependencies 2024-05-25 10:48:12 +02:00
Σrebe - Romain GERARD
e8a27ea4df
Cleanup exit wstunnel when stdio tunnel terminate 2024-05-25 10:32:30 +02:00
Σrebe - Romain GERARD
ad7d752f98
Exit wstunnel when stdio tunnel terminate 2024-05-24 20:50:30 +02:00
Jasper Siepkes
c09c349610
Add option to map (force) port use on the server for reverse tunnels. (#274)
This change adds a `port_mapping` option to the `ReverseTunnel` definition in the (YAML) restriction file.

It maps ports on the server side from X to Y (X:Y). Where X is the originally requested port by the client and Y is the port which will be used to listen on server-side.

For example with `10001:8080` configured and a client which connects using `-R tcp://10001:localhost:80` the server will listen on port 8080 instead of 10001. The originally requested ports (NOT the mapped ports) still needs to be allowed via the `ports` directive.

This is for example useful when dealing with lots of clients and you don't want to coordinate port use on all the clients but centrally on the server.
2024-05-22 16:13:58 +02:00
Siddhant Kameswar
29f989f71f
Fix logging in client mode (#278) 2024-05-20 09:45:26 +02:00
erebe
9b82006c6e
Improve stdio tunnel on windows
- Handle CTRL+C to exit properly
- Restore terminal mode at exit
- Use logger to stderr
2024-05-18 16:02:28 +02:00
Σrebe - Romain GERARD
0595e23050
lint 2024-05-16 10:49:39 +02:00
Jasper Siepkes
054460ad3e
Mark unsupported configurations as conflicting (#273)
This change marks combining the yaml restrictions file together with arguments such as `--restrict-http-upgrade-path-prefix` as conflicting in clap. Since wstunnel will only use the yaml restrictions file when it is supplied and ignore the other arguments. This change makes this more obvious for users (since wstunnel will exit with an error).

The reason for still allowing the client `--http-upgrade-path-prefix` is that one could be using a proxy server in front of wstunnel which does mTLS. This is a pretty specific corner case though. A warning was added so it's clear to users that this will only work in specific scenarios.
2024-05-16 10:48:24 +02:00
Σrebe - Romain GERARD
246862a6da
Reduce allocation when using client certificate 2024-05-16 09:05:04 +02:00
Jasper Siepkes
ddebdfd3d2
When mTLS is used force path to match client certificate CN (#272)
This change makes the server verify the client's path prefix matches the common name (CN) in the certificate the client presented when mTLS is used. This makes it impossible for the client to spoof the path prefix specified in the `restrictions.yaml` file.
2024-05-16 08:39:30 +02:00
Σrebe - Romain GERARD
562c78187b
Add flag to control max backoff time to connect to the server 2024-05-14 08:32:44 +02:00
Σrebe - Romain GERARD
bf9459b3fc
Bump dependencies 2024-05-09 14:18:38 +02:00
Σrebe - Romain GERARD
1eccb70aab
lint 2024-05-09 12:26:16 +02:00
Σrebe - Romain GERARD
d3476ce716
fix compilation for openbsd 2024-05-09 11:31:39 +02:00
Jasper Siepkes
88e42d3b9f
Allow client certificate CN to be used for upgrade path (#264)
This change causes the wstunnel client to use the common name (CN) of the client's certificate for the upgrade path when mTLS is enabled.
2024-05-06 10:00:08 +02:00
Σrebe - Romain GERARD
69c372490a
feat(server): Add tcp-keepalive on in-coming server connections 2024-05-01 15:13:00 +02:00
Σrebe - Romain GERARD
421a5a230c
feat(restriction): Avoid re-creating a config reload notifier each time 2024-05-01 15:00:46 +02:00
Σrebe - Romain GERARD
5ef14d1a8c
feat(restriction): Auto-reload restriction file 2024-05-01 12:07:18 +02:00
Σrebe - Romain GERARD
368f6657fd
Turn match in restriction config into a list 2024-05-01 09:17:37 +02:00
Σrebe - Romain GERARD
1e07eb7b2a
Add tcp-keepalive to help detect broken reverse tunnel 2024-04-29 18:16:38 +02:00
Σrebe - Romain GERARD
3c84c59a11
Allow multiple ports in restriction file 2024-04-29 08:43:08 +02:00
Σrebe - Romain GERARD
135fcb5127
Increase reverse tunnel timeout to 3min 2024-04-28 00:11:41 +02:00
Σrebe - Romain GERARD
8a228248d7
Add config file for restrictions 2024-04-28 00:07:57 +02:00
Σrebe - Romain GERARD
727e92902c
Add log when closing remote tunnel 2024-04-25 21:22:38 +02:00
Σrebe - Romain GERARD
70b5a216b0
Add support for mTLS 2024-04-19 09:36:14 +02:00
Σrebe - Romain GERARD
94d9a14c81
fix: Avoid stopping accepting new connection on error 2024-03-27 08:30:43 +01:00
Σrebe - Romain GERARD
833e1bc0d2
lint 2024-03-17 10:24:23 +01:00
Σrebe - Romain GERARD
c28fa6d2ff
fix(reverse-tunnel): avoid accumulating log span on error 2024-03-16 23:21:25 +01:00
Σrebe - Romain GERARD
c0f690f273
feat(tls): Support SSLKEYLOGFILE env variable 2024-03-16 22:21:40 +01:00
Σrebe - Romain GERARD
3129fe3219
feat(tls): Add flag to not send SNI during tls handshake 2024-03-16 22:21:35 +01:00
Erèbe - Romain Gerard
1c393afe4f
fix(tls): skip invalid system certificate 2024-03-08 09:00:21 +01:00
Σrebe - Romain GERARD
84d753fa25
fix: auto-reconnect to server after conect failure instead of exiting 2024-03-04 17:06:00 +01:00
Σrebe - Romain GERARD
f4f60efd47
Bump version v9.2.3 2024-02-21 09:22:58 +01:00