Tengo varias máquinas en casa a las que me gustaría acceder desde la escuela usando SSH y VNC. Para hacer eso, les di IP estáticas:
- 192.168.1.50: Windows
- 192.168.1.51: Ubuntu
- 192.168.1.52: Raspberry Pi / Raspbian
Sé que SSH usa el puerto 22, por lo que puedo reenviar este puerto a 192.168.1.51:22 en mi enrutador, pero de esta manera no podré SSH a mi Raspberry Pi. ¿Hay alguna forma de que pueda configurar esto para poder acceder a ambas máquinas?
networking
ssh
port-forwarding
acourchesne
fuente
fuente
Respuestas:
Si tiene IPv6, ¡ni siquiera necesita el reenvío de puertos! Simplemente obtenga su dirección IPv6 permanente (basada en su dirección MAC, por lo que se garantiza que permanecerá igual a menos que su ISP no sepa cómo funciona IPv6) y úsela para hacer un túnel. Como su dirección IPv6 es pública y permite que el mundo para acceder a usted sin tener que pasar por su NAT local, no necesita molestarse en habilitar el reenvío de puertos a ningún lado. "Simplemente funcionará".
Sin embargo, tenga en cuenta que IPv6 todavía no es realmente compatible a nivel mundial, y tanto su conexión a Internet doméstica como la conexión a Internet remota deben tener IPv6 totalmente funcional para poder hacerlo.
Sin embargo, si eres como la mayoría de las personas y solo tienes IPv4, ¡todavía hay una manera! Algunos enrutadores le permiten reenviar puertos de origen específicos a puertos de destino específicos, de esta manera:
En este ejemplo, el puerto
22
se pasa directamente a mi máquinasheepdog
, mientras que el puerto292
se reenvía al puerto22
activadocoyote
.Por último, si su enrutador no tiene esta función, puede cambiar el puerto, ya que SSH no se limita a ejecutarse en el puerto
22
. Puede configurarlo para lo que desee (que no se está utilizando).En
/etc/ssh/sshd_config
(necesita raíz para editar, entoncessudo nano /etc/ssh/sshd_config
), hay una línea en la parte superior del archivo:Cambia esto a lo que quieras:
Reinicie el servidor SSH con
sudo service ssh restart
y reenvíe el puerto en el enrutador.Sin embargo, para este caso de uso, consideraría si los túneles SSH son lo correcto. ¿Quizás debería configurar un servidor VPN dedicado en su red doméstica? Esto le permitirá acceder a toda su red doméstica desde cualquier lugar, siempre que tenga las credenciales de seguridad adecuadas que necesita la VPN. Además, hay un poco menos de gastos generales con una VPN; normalmente solo necesitaría reenviar un puerto para una máquina.
fuente
Una manera fácil de resolver este problema es asignar diferentes puertos desde su enrutador al puerto 22 de sus máquinas. Por ejemplo, puede tener las siguientes configuraciones en su enrutador (suponiendo que su enrutador tenga IP
1.2.3.4
)Luego, cuando use ssh, especifique el puerto que desea usar escribiendo
Ahora debería poder conectarse a todas sus máquinas.
fuente
Si sabe que una de sus computadoras siempre está activa, también tiene la posibilidad de usarla como un proxy ssh.
supongamos que tiene una configuración de nombre de dominio para su dirección IP externa (es decir, myhome.dyndns.com o lo que sea), lo que hará es conectarse a una computadora (digamos que la frambuesa siempre está activa y reenvía el puerto desde su enrutador a it), sus conexiones ssh serán:
escuela -> (enrutador, transparente aquí) -> frambuesa -> ubuntu o windows
ahora, en su ~ / .ssh / config en la escuela, agregue las líneas:
Para conectar entonces:
A partir de ahora, si escribe ssh ubuntu, la computadora se conectará primero a la frambuesa y luego iniciará una sesión ssh en la computadora ubuntu.
Le recomiendo, sea cual sea el puerto que elija reenviar, que desactive la contraseña en /etc/sshd.conf para permitir solo iniciar sesión a través de la clave ssh. De esta manera, si configura la clave en la frambuesa y en ubuntu, con el parámetro 'ForwardAgent', solo tendrá que desbloquear la clave y luego no se requiere contraseña para conectarse. De esta manera, incluso si los bots intentan iniciar sesión en su ssh, nunca podrán iniciar sesión ya que no permite el inicio de sesión con contraseña.
Bono, esto también funciona con scp, scp foo ubuntu: / tmp / foo usará la misma configuración sin más parámetros. Bono 2, esta configuración no requiere ningún cambio en el hogar, si mañana usted y otra computadora, simplemente copie / pegue el código en su configuración ssh, cambie el host y la ip, eso es todo, no es necesario abrir un nuevo puerto en el enrutador
fuente
Hago esto: dejo el rpi encendido y enchufado directamente en el enrutador todo el tiempo (ya que es el más barato de ejecutar) y simplemente lo conecto, luego reboto de él a los demás, nunca necesita mucha atención.
También es posible VNC / RDP una GUI a través de una tubería ssh, algo divertido, o reenviar un puerto que le permite navegar a un servidor en su computadora de escritorio mientras lo mantiene privado.
La razón por la que agregué esta respuesta es para darte algunas sugerencias.
1) Use un puerto diferente al 22. Puede dejarlo 22 en el PI, pero cambie el puerto entrante en su enrutador a algo más de 10,000 ... De lo contrario, recibirá decenas a cientos de ataques por día, y una vez que Se sabe que está ejecutando un host SSH en el segundo en que se encuentra un exploit, usted es propietario.
2) Use certificados en lugar de nombre de usuario / contraseña: deshabilite completamente el inicio de sesión de nombre de usuario / contraseña.
3) Si su dirección IP puede cambiar, use un servicio tipo Dyndns para obtener un host DNS (uso noip, es gratis y admite un cliente Linux para actualizar su dirección IP; creo que puede instalarlo) el pi ahora). Todavía hay algunas otras compañías que ofrecen esto de forma gratuita.
4) Mantenga su pi (o lo que sea que le interese) actualizado (sudo apt-get update). Creo que ssh ya está bastante bien examinado, pero también creí que https ...
fuente
Estaba dudando si esto encajaría mejor como un comentario en lugar de una respuesta, pero lo publicaré aquí de todos modos.
Algunas cosas que debes pensar antes de hacer esto:
fuente