2022-03-31 22:08:56 +02:00
2022-03-23 10:22:44 -04:00
2022-03-31 22:08:56 +02:00
2022-03-18 18:02:32 +01:00
2022-03-23 21:33:45 +01:00
2022-03-19 23:18:29 +01:00
2022-03-18 18:02:32 +01:00
2022-03-18 18:02:32 +01:00
2021-11-07 13:13:05 +01:00
2022-03-18 18:03:58 +01:00
2022-03-31 22:08:56 +02:00
2022-03-31 22:08:56 +02:00
2021-09-27 12:51:37 +02:00
2021-10-28 15:40:40 +02:00
2022-03-18 18:02:32 +01:00
2021-09-27 13:28:21 +02:00
2021-10-28 15:41:09 +02:00
2022-01-20 20:21:12 -07:00
2021-10-02 15:38:22 +02:00
2021-10-02 15:38:22 +02:00
2021-11-11 21:16:37 +01:00
2021-10-02 21:23:17 +02:00
2022-03-19 23:18:29 +01:00
2022-03-18 18:03:58 +01:00
2022-03-18 18:02:32 +01:00
2022-03-18 18:02:32 +01:00

sslh -- A ssl/ssh multiplexer

sslh accepts connections on specified ports, and forwards them further based on tests performed on the first data packet sent by the remote client.

Probes for HTTP, TLS/SSL (including SNI and ALPN), SSH, OpenVPN, tinc, XMPP, SOCKS5, are implemented, and any other protocol that can be tested using a regular expression, can be recognised. A typical use case is to allow serving several services on port 443 (e.g. to connect to SSH from inside a corporate firewall, which almost never block port 443) while still serving HTTPS on that port.

Hence sslh acts as a protocol demultiplexer, or a switchboard. With the SNI and ALPN probe, it makes a good front-end to a virtual host farm hosted behind a single IP address.

sslh has the bells and whistles expected from a mature daemon: privilege and capabilities dropping, inetd support, systemd support, transparent proxying, chroot, logging, IPv4 and IPv6, TCP and UDP, a fork-based and a select-based model, and more.

Install

Please refer to the install guide.

Configuration

Please refer to the configuration guide.

Docker image

How to use


Build docker image

make docker
docker run \
  --rm \
  -it \
  sslh:latest \
  --listen=0.0.0.0:443 \
  --ssh=hostname:22 \
  --tls=hostname:443

docker-compose example

version: "3"

services:
  sslh:
    image: sslh:latest
    hostname: sslh
    ports:
      - 443:443
    command: --listen=0.0.0.0:443 --tls=nginx:443 --openvpn=openvpn:1194
    depends_on:
      - nginx
      - openvpn

  nginx:
    image: nginx

  openvpn:
    image: openvpn

Comments? Questions?

You can subscribe to the sslh mailing list here: https://lists.rutschle.net/mailman/listinfo/sslh

This mailing list should be used for discussion, feature requests, and will be the preferred channel for announcements.

Of course, check the FAQ first!

Description
No description provided
Readme 4 MiB
Languages
C 91.6%
Perl 4.7%
Shell 2.3%
Makefile 0.8%
Scilab 0.3%
Other 0.3%