A secure command line interface is just the beginning of the many ways
SSH can be used. Given the proper amount of bandwidth, X11 sessions can
be directed over an SSH channel. Or, by using TCP/IP forwarding,
previously insecure port connections between systems can be mapped to
specific SSH channels.
18.5.1. X11 Forwarding
Opening an X11 session over an established SSH connection is as easy
as running an X program on a local machine. When an X program is run
from the secure shell prompt, the SSH client and server create a new
secure channel, and the X program data is sent over that channel to
the client machine transparently.
X11 forwarding can be very useful. For example, X11 forwarding can be
used to create a secure, interactive session with
up2date. To do this, connect to the server using
ssh and type:
After supplying the root password for the server, the
Red Hat Update Agent will appear and allow the the remote
user to safely update the remote system.
18.5.2. Port Forwarding
SSH can secure otherwise insecure TCP/IP protocols via port
forwarding. When using this technique, the SSH server becomes an
encrypted conduit to the SSH client.
Port forwarding works by mapping a local port on the client to a
remote port on the server. SSH can map any port from the server to any
port on the client, and the port numbers do not need to match for this
technique to work.
To create a TCP/IP port forwarding channel which listens for
connections on the localhost, use the following command:
ssh -L local-port:remote-hostname:remote-port username@hostname |
| Note |
---|
| Setting up port forwarding to listen on ports below 1024 requires
root access.
|
To check email on a server called mail.example.com using POP through
an encrypted connection, use the following command:
ssh -L 1100:mail.example.com:110 mail.example.com |
Once the port forwarding channel is in place between the client
machine and the mail server, direct a POP mail client to use port 1100
on the localhost to check for new mail. Any requests sent to port 1100
on the client system will be directed securely to the mail.example.com
server.
If mail.example.com is not running an SSH server, but another machine
on the same network is, SSH can still be used to secure part of the
connection. However, a slightly different command is necessary:
ssh -L 1100:mail.example.com:110 other.example.com |
In this example, POP requests from port 1100 on the client machine are
forwarded through the SSH connection on port 22 to the SSH server,
other.example.com. Then,
other.example.com connects to port
110 on mail.example.com to check for
new mail. Note that by using this technique, only the connection
between the client system and
other.example.com SSH server is
secure.
Port forwarding can also be used to get information securely through
network firewalls. If the firewall is configured to allow SSH traffic
via its standard port (22) but blocks access to other ports, a
connection between two hosts using the blocked ports is still possible
by redirecting their communication over an established SSH connection.
| Note |
---|
| Using port forwarding to forward connections in this manner allows
any user on the client system to connect to that service. If the
client system becomes compromised, the attacker will also have
access to forwarded services.
System administrators concerned about port forwarding can disable
this functionality on the server by specifying a
No parameter for the
AllowTcpForwarding line in
/etc/ssh/sshd_config and restarting the
sshd service.
|