We are using a cloud server (Debian Squeeze) where public ports on a public IP route traffic to internal servers. We are looking for a way to use IPTables
and ssh where based on some part of
the ssh connection
string (or something along these lines) iptables will reroute
the ssh connection to
the "right" internal server. This would allow us to use one common public port,
and then re-route ssh connections to individual servers.
So, for example we hope to do something like
the following:
user issues ssh connection (public key encryption) such as ssh -X -v -p xxx
[email protected] but maybe adds something into
the string for iptables to use
iptables uses some part of that
string or some means to re-route
the connection to an internal server using something like
iptables -t nat -A PREROUTING ! -s xxx.xxx.xxx.0/24 -m tcp -p tcp --dport $EXTPORT -j DNAT --to-destination $HOST:$INTPORT
....where $HOST
is the internal ip of a server, $EXTPORT
is the common public facing port
and $INTPORT
is the internal server port.
It appears that
the "
string" aspect of iptables does not do
what we want.
We can currently route based on
the IP table syntax we're using, but rely on having a separate public port for each server
and are hoping to use one common public port
and then re-route to specific internal servers based on some part of
the ssh connection
string or some other means.
Any suggestions? Thanks!