From charlesreid1

No edit summary
No edit summary
Line 28: Line 28:
output = /var/log/stunnel4/stunnel.log
output = /var/log/stunnel4/stunnel.log
cert = /etc/stunnel/stunnel.fullchain.pem
cert = /etc/stunnel/stunnel.fullchain.pem
key = /etc/stunnel/stunnel.key.pem
pid = /var/run/stunnel4/stunnel.pid
pid = /var/run/stunnel4/stunnel.pid
client  = yes
client  = yes
Line 36: Line 35:
</pre>
</pre>


The client will also need a copy of the server's certificate and key files, which can be securely copied.
The client will also need a copy of the server's certificate file, which can be securely copied from the server.


==Set up server==
==Set up server==
Start by setting up the server configuration file:
<pre>
# server config,
# stunnel server will listen for stunnel clients connecting on port 443
# traffic will be decrypted and forwarded to local port 22
output = /var/log/stunnel4/stunnel.log
cert = /etc/stunnel/stunnel.fullchain.pem
key = /etc/stunnel/stunnel.key.pem
pid = /var/run/stunnel4/stunnel.pid
client = no
[ssh]
accept = 443
connect = 127.0.0.1:22
</pre>





Revision as of 01:04, 31 March 2017

This page explains how to use stunnel in a Docker container to serve up different kinds of traffic over an encrypted SSL connection.

ssh traffic over port 443 using stunnel on docker

Let's start with an example of how to forward SSH traffic from a client to a server over stunnel.

The goal here is to be able to SSH to a local port on the client, and have that connection transparently forwarded to the server:

[client] $ ssh -p 2222 root@localhost

[server ~ via client] $ whoami
root

[server ~ via client] $ whoami

Set up client

Start by setting up the client. The client want s to ssh to local port 2222, so have stunnel listen for traffic on 2222. Next, we want to pass the traffic to the server using port 443, so we will use the notation <server IP>:<server port> to direct traffic to the stunnel server's port 443:

# client config,
# will ssh directly to local port 2222
# ssh -p 2222 root@localhost
# stunnel client connects to remote stunnel server at IP A.B.C.D over external port 443

output 	= /var/log/stunnel4/stunnel.log
cert 	= /etc/stunnel/stunnel.fullchain.pem
pid 	= /var/run/stunnel4/stunnel.pid
client  = yes
[ssh]
accept 	= 2222
connect = A.B.C.D:443

The client will also need a copy of the server's certificate file, which can be securely copied from the server.

Set up server

Start by setting up the server configuration file:

# server config,
# stunnel server will listen for stunnel clients connecting on port 443
# traffic will be decrypted and forwarded to local port 22

output	= /var/log/stunnel4/stunnel.log
cert	= /etc/stunnel/stunnel.fullchain.pem
key		= /etc/stunnel/stunnel.key.pem
pid		= /var/run/stunnel4/stunnel.pid
client	= no
[ssh]
accept	= 443
connect = 127.0.0.1:22