Sslh
sslh is a ssl/ssh multiplexer.
Contents
Installation
Configuration
Default Arch configuration file is located at /etc/sslh.cfg, which supports ssh, openvpn, xmpp, http, ssl, and anyprot protocols.
2 additional configuration files are included in the package:
-
/usr/share/doc/sslh/basic.cfg, which is a basic configuration file that should provide sensible values for "standard" setup. -
/usr/share/doc/sslh/example.cfg, which is provided as documentation to show what is possible. It should not be used as-is, and probably should not be used as a starting point for a working configuration.
Running
Start/enable sslh-fork.service or sslh-select.service.
sslh-fork forks a new process for each incoming connection. It is well-tested and very reliable, but incurs the overhead of many processes.
If you are going to use sslh for a "small" setup (less than a dozen ssh connections and a low-traffic https server) then sslh-fork is probably more suited for you.
sslh-select uses only one thread, which monitors all connections at once. It is more recent and less tested, but only incurs a 16 byte overhead per connection. Also, if it stops, you'll lose all connections, which means you can't upgrade it remotely.
If you are going to use sslh on a "medium" setup (a few thousand ssh connections, and another few thousand ssl connections), sslh-select will be better.
If you have a very large site (tens of thousands of connections), you'll need a vapourware version that would use libevent or something like that.