Forward and Encrypt Traffic with SSH
Keep network traffic to arbitrary ports secure with ssh port forwarding.
In addition to providing remote shell access and command execution, OpenSSH can also forward arbitrary TCP ports to the other end of your connection. This can be extremely handy for protecting email, web, or any other traffic that you need to keep private (at least, all the way to the other end of the tunnel).
ssh
accomplishes local forwarding by binding to
a local port, performing encryption, sending the encrypted data to
the remote end of the ssh
connection, then
decrypting it and sending it to the remote host and port you specify.
Start an ssh
tunnel with the
-L
switch (short for Local):
#ssh -f -N -L 110:mailhost:110
user@
mailhost
Naturally, substitute user
with your
username, and mailhost
with your mail
server’s name or IP address. Note that you will have
to be root for this example, since you’ll be binding
to a privileged port (110, the POP3 port). You should also disable
any locally running POP3 daemon (look in
/etc/inetd.conf
) or it will get in the way.
Now, to encrypt all of your POP3 traffic, configure your mail client
to connect to localhost port 110. It will happily talk to mailhost as
if it were connected directly, except that the entire conversation
will be encrypted. Alternatively,
you could tell ssh
to listen on a port above 1024 and eliminate the need to run it as root; however, you would have to configure your email client to also use this port, rather ...
Get Network Security Hacks now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.