View this PageEdit this PageUploads to this PageVersions of this PageHomeRecent ChangesSearchHelp Guide

Habilitar un túnel para que se puedan conectar desde una IP determinada de internet a una IP:PUERTO determinado de un equipo de SICO

Hay unas scripts para posibilitar que se pueda hacer una conexión desde una IP concreta de internet a un equipo:puerto concreto de SICO.

El puerto externo que se va a abrir es el vps.sicosoft.es:5910

El forwardeo lo pone el comando del apartado "1." que pongo a continuación y realmente es lo único estrictamente necesario. El resto de las instrucciones son para poder ver qué se está haciendo.

Antes de nada, hay que preguntar a la persona que se va a conectar que desde qué IP se va a conectar para darle acceso. Suponiendo que su IP es la 1.2.3.4 y se quiere dar acceso a la máquina de sico 3.0.1.225:5900 (puerto VNC de la máquina 3.0.1.225), se haría lo siguiente:

1. Desde uiharu, como usuario "dario", se escribe:

ssh root@vps.sicosoft.es -R 5910:3.0.1.225:5900 "./firewall-ip-port.sh 1.2.3.4 5910"


2. Con eso saldrá por pantalla lo siguiente:

Restricted port 5910 to connections from 1.2.3.4
Press ENTER to remove restrictions and exit


3. Para tener trazas de si está conectado o no, se abre otra ventana en uiharu como "dario" y se escribe:

ssh root@vps.sicosoft.es "TERM=vt100 ./connect-watch.sh 5910"


4. Se le dice a la persona en cuestión que ya puede conectarse con un VNC a la dirección vps.sicosoft.es:5910 (en el cliente VNC tiene que usar vps.sicosoft.es:10 )

5. Una vez que has visto que se ha conectado, puedes abrir tú también un VNC contra 3.0.1.225:0 con la opción "Shared" activada para no cerrar su conexión y así ver lo que está haciendo.

6. Cuando haya terminado de usar el VNC, se pulsa ENTER en la primera ventana para cerrar la redirección. Saldrá lo siguiente:

Restricted port 5910 to connections from 1.2.3.4
Press ENTER to remove restrictions and exit

Firewall rules restored to default.



7. Y eso es todo. Todo ha vuelto a la normalidad



Contenido de los scripts en vps.sicosoft.es


 /root/firewall-ip-port.sh
#!/bin/bash
if [ "m$1" == "m" ] || [ "m$1" == "m--help" ] || [ "m$2" == "m" ] ; then
        echo "Syntax: $0 remote-ip local-port"
        echo "Example: $0 83.48.87.215 5910"
        echo "Creates a firewall rule to only accept connections to that local port from the specified remote-ip"
        exit 1
fi
IPTABLES=/sbin/iptables
DEV=ens3
EXT_IP=51.38.32.171

$IPTABLES -A INPUT -i $DEV -p tcp --dport "$2" -s "${1}/32" -j ACCEPT
$IPTABLES -A INPUT -i $DEV -p tcp --dport "$2" -j DROP
echo "Restricted port $2 to connections from ${1}"
echo "Press ENTER to remove restrictions and exit"
redir ${EXT_IP}:${2} 127.0.0.1:${2}
read dummy
ps -efa | grep "re[d]ir ${EXT_IP} ${2} 127.0.0.1 ${2}" | expand | sed "s/  */ /g" | cut -d ' '  -f 2 | xargs kill
bash /etc/default/iptables
echo "Firewall rules restored to default."


 /root/connect-watch.sh
#!/bin/bash
if [ "m$1" == "m" ] || [ "m$1" == "m--help" ] ; then
        echo "Syntax: $0 port-number"
        echo "Uses watch to show connections to the externap IP in the specified port"
        echo "Example: $0 5910"
        echo "NOTE: Use Ctrl+C to exit"
        exit 1
fi
EXT_IP=51.38.32.171
watch "netstat -pan | grep ${EXT_IP}:${1}"