%general-entities; ]> $LastChangedBy$ $Date$ Stunnel-&stunnel-version; Stunnel Introduction to <application>Stunnel</application> The Stunnel package contains a program that allows you to encrypt arbitrary TCP connections inside SSL (Secure Sockets Layer) so you can easily communicate with clients over secure channels. Stunnel can be used to add SSL functionality to commonly used Inetd daemons like POP-2, POP-3, and IMAP servers, to standalone daemons like NNTP, SMTP and HTTP, and in tunneling PPP over network sockets without changes to the server package source code. Package information Download (HTTP): Download (FTP): Download size: &stunnel-size; Estimated disk space required: &stunnel-buildsize; Estimated build time: &stunnel-time; <application>Stunnel</application> dependencies Required Optional Installation of <application>Stunnel</application> The stunnel daemon will be run in a chroot jail by an unprivileged user. Create the new user, group and chroot home directory structure using the following commands: groupadd stunnel && useradd -c "Stunnel Daemon" -d /var/lib/stunnel -g stunnel -s /bin/false stunnel && install -d -m 700 -o stunnel -g stunnel /var/lib/stunnel/run A signed SSL Certificate and a Private Key is necessary to run the stunnel daemon. If you own, or have already created a signed SSL Certificate you wish to use, copy it to tools/stunnel.pem in the source directory before starting the build, otherwise you will be prompted to create one. The .pem file must be formatted as shown below: -----BEGIN RSA PRIVATE KEY----- [many encrypted lines of unencrypted key] -----END RSA PRIVATE KEY----- -----BEGIN CERTIFICATE----- [many encrypted lines of certificate] -----END CERTIFICATE----- Install Stunnel by running the following commands: ./configure --prefix=/usr --sysconfdir=/etc \ --localstatedir=/var/lib/stunnel && make && make install Command explanations --sysconfdir=/etc: This parameter forces the configuration directory to /etc instead of /usr/etc. --localstatedir=/var/lib/stunnel: This parameter causes the installation process to create /var/lib/stunnel/stunnel instead of /usr/var/stunnel. make: This command builds the package and, if you did not copy an stunnel.pem file to the source tools/ directory, prompts you for the necessary information to create one. Ensure you reply to the Common Name (FQDN of your server) [localhost]: prompt with the name or IP address you will be using to access the service. Configuring <application>Stunnel</application> Config files /etc/stunnel/stunnel.conf /etc/stunnel/stunnel.conf Configuration Information Create a basic /etc/stunnel/stunnel.conf configuration file using the following commands: cat >/etc/stunnel/stunnel.conf << "EOF" # File: /etc/stunnel/stunnel.conf pid = /run/stunnel.pid chroot = /var/lib/stunnel client = no setuid = stunnel setgid = stunnel EOF Next, you need to add the service you wish to encrypt to the configuration file. The format is as follows: [[service]] accept = [hostname:portnumber] connect = [hostname:portnumber] If you use Stunnel to encrypt a daemon started from [x]inetd, you may need to disable that daemon in the /etc/[x]inetd.conf file and enable a corresponding [service]_stunnel service. You may have to add an appropriate entry in /etc/services as well. For a full explanation of the commands and syntax used in the configuration file, run man stunnel. To see a BLFS example of an actual setup of an stunnel encrypted service, read the SWAT configuration section in the instructions. To automatically start the stunnel daemon when the system is rebooted, install the /etc/rc.d/init.d/stunnel bootscript from the package. stunnel make install-stunnel Contents Installed Programs Installed Library Installed Directories stunnel and stunnel3 libstunnel.so /etc/stunnel, /var/lib/stunnel and /usr/share/doc/stunnel Short Descriptions stunnel is a program designed to work as an SSL encryption wrapper between remote clients and local ([x]inetd-startable) or remote servers. stunnel stunnel3 is a Perl wrapper script to use stunnel 3.x syntax with stunnel >=4.05. stunnel3 libstunnel.so contains the API functions required by Stunnel. libstunnel.so