All Projects → Snawoot → steady-tun

Snawoot / steady-tun

Licence: MIT license
Secure TLS tunnel with pool of prepared upstream connections

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to steady-tun

ptw
Pooling TLS Wrapper
Stars: ✭ 20 (-45.95%)
Mutual labels:  tls, ssl, tcp-proxy, pool-server, tls-tunnel, network-wrapper, tls-proxy, pooling, pooling-utility, ssl-pool
docker-ssl-reverse-proxy
Easy-to-use auto-SSL reverse proxy as a Docker container based on Caddy and Let’s Encrypt
Stars: ✭ 22 (-40.54%)
Mutual labels:  tls, ssl, tls-proxy
Goproxy
🔥 Proxy is a high performance HTTP(S) proxies, SOCKS5 proxies,WEBSOCKET, TCP, UDP proxy server implemented by golang. Now, it supports chain-style proxies,nat forwarding in different lan,TCP/UDP port forwarding, SSH forwarding.Proxy是golang实现的高性能http,https,websocket,tcp,socks5代理服务器,支持内网穿透,链式代理,通讯加密,智能HTTP,SOCKS5代理,黑白名单,限速,限流量,限连接数,跨平台,KCP支持,认证API。
Stars: ✭ 11,334 (+30532.43%)
Mutual labels:  tls, tcp-proxy, tls-proxy
Gobetween
☁️ Modern & minimalistic load balancer for the Сloud era
Stars: ✭ 1,631 (+4308.11%)
Mutual labels:  tls, tcp-proxy, tls-proxy
Go Http Tunnel
Fast and secure tunnels over HTTP/2
Stars: ✭ 2,786 (+7429.73%)
Mutual labels:  tls, tls-tunnel
Terraform Provider Acme Old
ACME (Let's Encrypt) Support for Terraform
Stars: ✭ 211 (+470.27%)
Mutual labels:  tls, ssl
Gmssl
支持国密SM2/SM3/SM4/SM9/ZUC/SSL的OpenSSL分支
Stars: ✭ 2,747 (+7324.32%)
Mutual labels:  tls, ssl
Tls Gen
Generates self-signed x509/TLS/SSL certificates useful for development
Stars: ✭ 196 (+429.73%)
Mutual labels:  tls, ssl
Mitigating Obsolete Tls
Guidance for mitigating obsolete Transport Layer Security configurations. #nsacyber
Stars: ✭ 199 (+437.84%)
Mutual labels:  tls, ssl
Snuffy
Snuffy is a simple command line tool to inspect SSL/TLS data.
Stars: ✭ 236 (+537.84%)
Mutual labels:  tls, ssl
Rustls
A modern TLS library in Rust
Stars: ✭ 3,062 (+8175.68%)
Mutual labels:  tls, ssl
Ssl exporter
Exports Prometheus metrics for SSL certificates
Stars: ✭ 211 (+470.27%)
Mutual labels:  tls, ssl
Yawast
YAWAST ...where a pentest starts. Security Toolkit for Web-based Applications
Stars: ✭ 181 (+389.19%)
Mutual labels:  tls, ssl
Watsontcp
WatsonTcp is the easiest way to build TCP-based clients and servers in C#.
Stars: ✭ 209 (+464.86%)
Mutual labels:  tls, ssl
Badssl.com
🔒 Memorable site for testing clients against bad SSL configs.
Stars: ✭ 2,234 (+5937.84%)
Mutual labels:  tls, ssl
Mutual Tls Ssl
🔐 Tutorial of setting up Security for your API with one way authentication with TLS/SSL and mutual mutual authentication for a java based web server and a client with both Spring Boot. Different clients are provided such as Apache HttpClient, OkHttp, Spring RestTemplate, Spring WebFlux WebClient Jetty and Netty, the old and the new JDK HttpClient, the old and the new Jersey Client, Google HttpClient, Unirest, Retrofit, Feign, Methanol, vertx, Scala client Finagle, Featherbed, Dispatch Reboot, AsyncHttpClient, Sttp, Akka, Requests Scala, Http4s Blaze, Kotlin client Fuel, http4k, Kohttp and ktor. Also other server examples are available such as jersey with grizzly. Also gRPC examples are included
Stars: ✭ 163 (+340.54%)
Mutual labels:  tls, ssl
dheater
D(HE)ater is a proof of concept implementation of the D(HE)at attack (CVE-2002-20001) through which denial-of-service can be performed by enforcing the Diffie-Hellman key exchange.
Stars: ✭ 142 (+283.78%)
Mutual labels:  tls, ssl
Openssl
TLS/SSL and crypto library
Stars: ✭ 17,157 (+46270.27%)
Mutual labels:  tls, ssl
Sslyze
Fast and powerful SSL/TLS scanning library.
Stars: ✭ 2,623 (+6989.19%)
Mutual labels:  tls, ssl
Https Ssl Cert Check Zabbix
Script to check validity and expiration of TLS/SSL certificate on site. May be used with Zabbix or standalone.
Stars: ✭ 162 (+337.84%)
Mutual labels:  tls, ssl

steady-tun

steady-tun

Secure TLS tunnel with pool of prepared upstream connections

Accepts TCP connections on listen port and forwards them, wrapped in TLS, to destination port. steady-tun maintains pool of fresh established TLS connections effectively cancelling delay caused by TLS handshake. Optionally it can be used as just TCP connection pool (option -tls-enabled=false).

steady-tun may serve as drop-in replacement for stunnel or haproxy for purpose of secure tunneling of TCP connections. Thus, it is intended for use with stunnel or haproxy on server side, accepting TLS connections and forwarding them, for example, to SOCKS proxy. In such configuration make sure your server timeouts long enough to allow fit lifetime of idle client TLS sessions (-T option).

steady-tun can be used with custom CAs and/or mutual TLS auth with certificates.


❤️ ❤️ ❤️

You can say thanks to the author by donations to these wallets:

  • ETH: 0xB71250010e8beC90C5f9ddF408251eBA9dD7320e
  • BTC:
    • Legacy: 1N89PRvG1CSsUk9sxKwBwudN6TjTPQ1N8a
    • Segwit: bc1qc0hcyxc000qf0ketv4r44ld7dlgmmu73rtlntw

Features

  • Based on proven TLS security and works with well-known server side daemons for TLS termination like haproxy and stunnel.
  • Firewall- and DPI-proof: connections are indistinguishable from HTTPS traffic.
  • Greater practical performance comparing to other TCP traffic forwading solutions thanks to separate TLS session for each TCP connection.
  • Hides TLS connection delay with connection pooling.
  • Supports TLS SNI (server name indication) spoof - it may be useful to bypass SNI based filters in firewalls.
  • Cross-plaform: runs on Linux, macOS, Windows and other Unix-like systems.

Installation

Pre-built binaries

Pre-built binaries available on releases page.

From source

Alternatively, you may install steady-tun from source:

go get github.com/Snawoot/steady-tun

From Snap Store

Get it from the Snap Store

sudo snap install steady-tun

Docker

docker run -it --rm -v certs:/certs -p 57800:57800 \
    yarmak/steady-tun \
    -dsthost proxy.example.com \
    -dstport 443 \
    -cert /certs/user.pem \
    -key /certs/user.key \
    -cafile /certs/ca.pem \
    -ttl 300s

Usage example

~/go/bin/steady-tun \
    -dsthost proxy.example.com \
    -dstport 443 \
    -cert user.pem \
    -key user.key \
    -cafile ca.pem \
    -ttl 300s

Command in this example will start forwarding TCP connections from default local port 57800 to proxy.example.com:443. Authentication is performed with client certificate and key. Server verification is performed with custom certificate in file ca.pem.

Synopsis

$ ~/go/bin/steady-tun -h
Usage of /home/user/go/bin/steady-tun:
  -backoff duration
    	delay between connection attempts (default 5s)
  -bind-address string
    	bind address (default "127.0.0.1")
  -bind-port uint
    	bind port (default 57800)
  -cafile string
    	override default CA certs by specified in file
  -cert string
    	use certificate for client TLS auth
  -dialers uint
    	concurrency limit for TLS connection attempts (default 2)
  -dsthost string
    	destination server hostname
  -dstport uint
    	destination server port
  -hostname-check
    	check hostname in server cert subject (default true)
  -key string
    	key for TLS certificate
  -pool-size uint
    	connection pool size (default 50)
  -pool-wait duration
    	timeout for acquiring connection from pool (default 15s)
  -timeout duration
    	server connect timeout (default 4s)
  -tls-enabled
    	enable TLS client for pool connections (default true)
  -tls-servername string
    	specifies hostname to expect in server cert
  -tls-session-cache
    	enable TLS session cache (default true)
  -ttl duration
    	lifetime of idle pool connection in seconds (default 30s)
  -verbosity int
    	logging verbosity (10 - debug, 20 - info, 30 - warning, 40 - error, 50 - critical) (default 20)
  -version
    	show program version and exit
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].