Setup SSL Tunnel Using Stunnel on Ubuntu

The Stunnel program is designed to work as an SSL encryption wrapper between remote client and server. It can be used to add SSL functionality.

What Stunnel basically does is that it turns any insecure TCP port into a secure encrypted port using OpenSSL package for cryptography.

1.Update & Upgrade Ubuntu

apt-get update && apt-get upgrade

2.Install Stunnel on VPS

apt-get install stunnel4 -y

3.Create SSL Certificate

openssl genrsa -out key.pem 2048
openssl req -new -x509 -key key.pem -out cert.pem -days 1095
cat key.pem cert.pem >> /etc/stunnel/stunnel.pem

4.configure Stunnel on VPS

vim /etc/stunnel/stunnel.conf

So overall the stunnel.conf file must contain the lines below:

client = no
[squid]
accept = 8888
connect = 127.0.0.1:3128
cert = /etc/stunnel/stunnel.pem

Note: The client = no part isn’t necessary, Stunnel by default is set to server mode.

Also, enable Stunnel automatic startup by configuring the “/etc/default/stunnel4” file

ENABLED=1

Finally, restart Stunnel for configuration to take effect, using this command:

/etc/init.d/stunnel4 restart

5.Install Squid Proxy

apt-get install squid3 -y

Configure Stunnel in Client

Using a SFTP client such as Filezilla, connect to your server and download the stunnel.pem file located in “/etc/stunnel/” directory to the client.

Install Stunnel on your choice of OS. Then go to the Stunnel folder and move the downloaded certificate stunnel.pem to Stunnel folder.

So stunnel.conf file in the client should look like this:

cert = stunnel.pem
client = yes
[squid]
accept = 127.0.0.1:8080
connect = [Server’s Public IP]:8888

Save and close the file and run stunnel.exe.

That’s it. Now when we want to connect to Squid proxy on our cloud server, we must configure our client to connect to 127.0.0.1:8080, and Stunnel automatically connects us through a secure tunnel to the service specified for that port.

0 (0)
Article Rating (No Votes)
Rate this article
Attachments
There are no attachments for this article.
Comments
There are no comments for this article. Be the first to post a comment.
Full Name
Email Address
Security Code Security Code
Related Articles RSS Feed
Linux - How to get network speed and statistic of ethernet adapter in Linux
Viewed 2083 times since Fri, Jun 8, 2018
What UUIDs can do for you
Viewed 1727 times since Tue, Jul 17, 2018
How To Use the Linux Auditing System on CentOS 7
Viewed 3848 times since Fri, Apr 5, 2019
Top 25 Best Linux Performance Monitoring and Debugging Tools
Viewed 6893 times since Sun, Sep 30, 2018
OEL 7 – How to disable IPv6 on Oracle Linux 7
Viewed 20221 times since Fri, Aug 3, 2018
CONFIGURE OCFS2
Viewed 7954 times since Sat, Jun 2, 2018
debian Debian/Ubuntu Linux: Find If Installed APT Package Includes a Fix/Patch Via CVE Number
Viewed 9373 times since Sun, Sep 23, 2018
stunnel How To Set Up an SSL Tunnel Using Stunnel on Ubuntu
Viewed 1643 times since Sun, Dec 6, 2020
OCFS2 Cluster File System Setup Guide in Linux
Viewed 7054 times since Sat, Jun 2, 2018
chrt command: Set / Manipulate Real Time Attributes of a Linux Process
Viewed 10923 times since Mon, Feb 17, 2020