SSH escuchando en 2 puertos diferentes

Hay veces que es necesario poner un servidor ssh a la escucha en dos puertos diferentes. Léase por ejemplo el caso de un servidor ssh en un equipo de DMZ que interesa que tenga el puerto ssh (por defecto el 22) disponible para la red interna, pero que permita en un puerto no habitual la escucha de ssh para la IP pública.
Después de un intento de realizarlo con IPtables,
shell> iptables -t nat -A PREROUTING \
                -i eth0 -p tcp --dport 2222 \
                -j REDIRECT --to-port 22
Con ello logramos que todo lo que llegue al puerto 2222 se vaya al puerto 22 (ssh), teniendo así un 'fake' de ssh en dos puertos. Sin embargo, la solución es más sencilla que esa y está en la simple ejecución de ssh con el parámetro Port del fichero de configuración duplicado, quedando tal que así
# What ports, IPs and protocols we listen for
Port 2222
Port 22
...
Tras un pequeño restart del servicio, ya estará ssh a la escucha en dos puertos.
shell> netstat -punta | grep ssh
tcp   0   0 0.0.0.0:22     0.0.0.0:*   LISTEN   28580/sshd
tcp   0   0 0.0.0.0:2222   0.0.0.0:*   LISTEN   28580/sshd


2 comentarios :

  1. El defecto de la segunda opción es que todo lo que llega a través de los puertos por encima del 1024 podría ser escuchado (y posteriormente analizado) por un usuario sin privilegios. En el primer caso no, porque NAT de IPFILTER opera justo antes de que los paquetes lleguen al kernel, fuera del alcance de los "curiosos".

    ResponderEliminar

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios