Remoto en la estación de trabajo Linux detrás de un firewall

8

Digamos que tengo una estación de trabajo Linux en el trabajo, detrás de un firewall. Entonces, aunque puedo tener un servidor de acceso remoto configurado en él (como el servidor NoMachine NX más excelente), no puedo acceder desde mi casa.

Mi red doméstica tiene un servidor Linux. ¿Es posible pasar del trabajo a la máquina Linux doméstica y configurar un túnel para que, una vez que esté en casa, pueda ejecutar el cliente NX, apuntarlo a la caja Linux de mi casa en algún puerto como 9000 y tener eso adelante? a través del túnel al puerto 22 en mi trabajo Linux box? ¿Cómo iba a configurar esto?

CaptSaltyJack
fuente
¿Su empresa no proporciona algún tipo de acceso VPN?
Keith

Respuestas:

8

Desde la máquina en el trabajo, cree un túnel para que su máquina ejecute ssh en casa:

randolf@workserver:~$ ssh -vvv randolf@myhomeserver -R 44455:localhost:22

Esto reenviará el puerto remoto 44455 de su servidor doméstico al puerto 22 (o cualquier puerto que ssh esté escuchando) en su máquina de trabajo.

Desde casa, verifique si hay algo escuchando en 44455

randolf@homeserver:~$ netstat -an | grep 44455
tcp        0      0 127.0.0.1:44455         0.0.0.0:*               LISTEN 

Luego, para conectarse desde su hogar a su máquina de trabajo, desde su servidor doméstico:

randolf@homeserver:~$ ssh localhost -p 44455
Password: ******

Desde allí, debe estar conectado a su máquina de trabajo a través de su túnel.

CJ Travis
fuente
Perfecto, exactamente lo que estaba buscando. Entonces puedo usar NX para iniciar sesión de forma remota.
CaptSaltyJack
Impresionante, contento de haber ayudado!
CJ Travis
1

Puede configurar un reenvío de puertos con su firewall, o posiblemente incluso usar una herramienta como "rebote" para redirigir los puertos si hay algunas restricciones sobre lo que puede hacer con su firewall, pero esto es lo que haría si yo fuera tú:

Instale el excelente software gratuito, de código abierto, userland OpenVPN. Configure el servidor de destino como un cliente OpenVPN (y configure reintentos de conexión infinitos), y su servidor Linux doméstico como el servidor OpenVPN. De esta manera, el servidor de destino que ejecuta el cliente OpenVPN se conectará a su servidor Linux doméstico siempre que esté operativo y conectado a Internet: a través de esta conexión VPN, puede tener acceso completo a su servidor de trabajo / destino (ejecutando el cliente OpenVPN) .

  OpenVPN (solución VPN gratuita, de código abierto y de código abierto con todas las funciones)
  http://www.openvpn.net/index.php/open-source.html

Randolf Richardson
fuente
Entonces, solo para asegurarme de que tengo este derecho: ¿mi caja Linux doméstica ejecuta un servidor OpenVPN y mi caja Linux en el trabajo ejecuta un cliente OpenVPN que permanece conectado a la VPN de mi casa Linux? ¿Y eso me permitirá (en casa) acceder remotamente a mi caja de Linux de trabajo?
CaptSaltyJack
@CaptSaltyJack: Sí. El propósito de una VPN es extender la red a otra computadora u otra red de más computadoras, y las comunicaciones pueden ir en ambos sentidos. Puede configurar uno como el servidor VPN (y probablemente sería más útil configurar su trabajo como servidor, pero la forma en que hizo su pregunta me llevó a sugerir lo contrario; realmente no importa de qué manera lo haces sin embargo). La IP privada del servidor OpenVPN será 10.8.0.1 (predeterminada), y el primer cliente OpenVPN será 10.8.0.6 (predeterminado): podrán hacer ping / conectarse entre sí.
Randolf Richardson
@CaptSaltyJack: Sin embargo, el servidor que tiene una dirección IP estática también debería ser el servidor OpenVPN (a menos que tenga un nombre de host que cambie automáticamente con la IP).
Randolf Richardson
Bueno, en el trabajo, la red está configurada de tal manera que todas las computadoras tienen firewall y en el mundo externo tienen una IP. Así que no creo que pueda ejecutar un servidor VPN en mi máquina de trabajo y conectarme a él. Probablemente tendría que conectarlo a la máquina de mi casa.
CaptSaltyJack
@CaptSaltyJack: Justo como sospechaba. De cualquier manera que lo configure (cualquiera que sea el lado del servidor OpenVPN), sus aplicaciones (incluido ssh) no notarán la diferencia.
Randolf Richardson
1

Cómo conectarse a una caja de Linux en el puerto 3389 (RHEL5)

Desafortunadamente, el puerto 22 está bloqueado por muchos firewalls y los túneles pueden abrir agujeros de seguridad, por lo que el mejor enfoque es configurar ssh y NX para escuchar en el puerto 3389 en lugar del estándar 22, lo que puede confundir a la mayoría de los piratas informáticos

Configure OpenBSD para escuchar el puerto 3389

vim /etc/ssh/sshd_config

Port 3389

service sshd restart

Descargue NX Client para Windows en el sitio ftp de RHEL

wget http://64.34.173.142/download/3.5.0/Windows/nxclient-3.5.0-9.exe

Descargar NX Free Edition para Linux

wget http://64.34.173.142/download/3.5.0/Linux/nxclient-3.5.0-7.i386.rpm
wget http://64.34.173.142/download/3.5.0/Linux/nxnode-3.5.0-9.i386.rpm
wget http://64.34.173.142/download/3.5.0/Linux/FE/nxserver-3.5.0-11.i386.rpm

Como root: instale NX en este orden

rpm –ivh nxclient-3.5.0-7.i386.rpm
rpm –ivh nxnode-3.5.0-9.i386.rpm
rpm –ivh nxserver-3.5.0-11.i386.rpm

Configure NX para el puerto 3389

vim /usr/NX/etc /node.cfg
#
# Specify the TCP port where the NX node SSHD daemon is running.
#
SSHDPort = "3389"

vim /usr/NX/etc /server.cfg
#
# Specify the TCP port where the NX server SSHD daemon is running.
#
SSHDPort = "3389"

service nxsensor restart
nxserver --daemon restart
Jorge
fuente