puerto ssh hacia adelante para acceder a mi máquina doméstica desde cualquier lugar


24

Vengo de esta pregunta: /superuser/359799/how-to-make-freebsd-box-accessible-from-internet

Quiero entender todo este proceso de port forwarding.

Leí muchas cosas, pero no entiendo el concepto muy básico de reenvío de puertos.

Lo que tengo:

Un servidor FreeBSD sentado en mi casa.
enrutador netgear

Esto es lo que estoy tratando de lograr:

para poder acceder al servidor freebsd desde una máquina Windows a través de Internet para poder abrir un navegador web y acceder a Internet.

También quiero acceder a este cuadro de freebsd desde una máquina ubuntu que tengo.

Será genial si alguien puede ayudarme.

Aquí está la configuración del enrutador netgear que hice para el reenvío de puertos.

reenvío de puertos netgear


Por favor, migre si esta es una superuserpregunta.
hari

Necesito un poco más de aclaración. Si la máquina Windows está en algún lugar de Internet y ya tiene acceso a Internet, ¿por qué desea conectarse a la caja de FreeBSD en casa para acceder a Internet?
OldTimer

@OldTimer: No estoy seguro de cuán relevante es su pregunta / inquietud.
hari

Use direcciones ipv6, ya no NAT, sin problemas ;-)
Stéphane Gimenez

1
¡Espere! acabo de decir eso : - /
Stéphane Gimenez

Respuestas:


47

Comenzaré con los hechos crudos:

  1. Usted tiene: A- su caja FreeBSD, B- su enrutador y C- alguna máquina con acceso a Internet. Así es como esto luce:

    .-----.      .-----.                        .-----.
    |  A  |  ==  |  B  |  - - ( Internet ) - -  |  C  |
    '-----'      '-----'                        '-----'
    \_________ ________/
              v
               `- this is your LAN
    

    Observe cómo funciona normalmente su enrutador : permite conexiones desde máquinas en su LAN a Internet (simplemente hablando). Entonces, si la A(o cualquier otra máquina en LAN) quiere acceder a Internet, se permitirá (nuevamente, solo hablando de la comprensión básica y la configuración):

    .-----.      .-----.                        .-----.
    |  A  |  ==  |  B  |  - - ( Internet ) - -  |  C  |
    '-----'      '-----'                        '-----'
          `-->----'  `--->--->---^  
    

    Y lo siguiente no está permitido por defecto:

    .-----.      .-----.                        .-----.
    |  A  |  ==  |  B  |  - - ( Internet ) - -  |  C  |
    '-----'      '-----'                        '-----'
          `--<----'  `---<--- - - - - --<---<-----'
    

    (Es decir, el enrutador protege a las máquinas de su LAN del acceso desde Internet). Observe que el enrutador es la única parte de su LAN que se ve desde Internet 1) .

  2. El reenvío de puertos es lo que permite que tenga lugar el tercer esquema. Esto consiste en decirle al enrutador qué conexión de C2) debe ir a qué máquina en la LAN. Esto se hace en función de los números de puerto , es por eso que se llama reenvío de puertos . Lo configura al indicarle al enrutador que todas las conexiones que provienen de un puerto determinado de Internet deben ir a una determinada máquina en la LAN. Aquí hay un ejemplo para el puerto 22 reenviado a la máquina A:

    .------.     .-------.                        .-----.
    |  A   | ==  |   B   |  - - ( Internet ) - -  |  C  |
    |      |     |       |                        '-----'
    '-|22|-'     ',--|22|'                          |
        `--<-22---'    `---<---- - - - - - --<-22---'
    
  3. Dichas conexiones a través de Internet se producen según las direcciones IP. Entonces, una representación un poco más precisa del ejemplo anterior sería:

    .------.      .-------.                                .-----.
    |  A   |  ==  |   B   | - - - - - ( Internet ) - - - - |  C  |
    |      |      |       |                                '-----'
    '-|22|-'      ',--|22|'                                   |
        `--<-A:22--'    `--<-YourIP:22 - - - - --<-YourIP:22--'
    

    Si no tiene una conexión a Internet con una IP estática , entonces debería saber de qué manera la IP está asignada actualmente a su enrutador por el ISP. De lo contrario, Cno sabrá a qué IP tiene que conectarse para llegar a su enrutador (y, además, a A). Para resolver esto de una manera fácil, puede usar un servicio llamado DNS dinámico . Esto haría que su enrutador envíe periódicamente información a un servidor DNS especial que hará un seguimiento de su IP y le proporcionará un nombre de dominio . Hay bastantes proveedores de DNS dinámicos gratuitos. Muchos enrutadores vienen con opciones de configuración para contactar fácilmente con ellos.

1) Esto es, nuevamente, una simplificación: el dispositivo real que se ve en Internet es el módem, que a menudo se puede integrar con el enrutador, pero también podría ser una caja separada.
2) o cualquier otra máquina con conexión a Internet.


Ahora para lo que quieres:

  1. Simplemente permitir el acceso ssh a su máquina desde Internet es una mala idea. Hay miles de bots configurados por crackers que buscan en Internet máquinas con puerto SSH abierto. Por lo general, "golpean" en el puerto SSH predeterminado de tantas IP como pueden y una vez que encuentran un demonio SSH ejecutándose en algún lugar, intentan obtener acceso de fuerza bruta a la máquina. Esto no es solo un riesgo de posible intrusión, sino también de desaceleración de la red mientras la máquina está siendo forzada.

  2. Si realmente necesita dicho acceso, al menos debería

    • asegurar que usted tiene fuertes contraseñas para todas las cuentas de usuario,

    • no permitir el acceso a la raíz a través de SSH (siempre puede iniciar sesión como usuario normal y / suo sudoluego),

    • cambiar el puerto predeterminado en el que se ejecutaría su servidor SSH,

    • introduje un mecanismo para rechazar numerosos intentos de inicio de sesión SSH (con un tiempo de espera más lento para los intentos posteriores; no recuerdo cómo se llama exactamente esto; lo habilité hace algún tiempo en FreeBSD y recuerdo que fue bastante fácil: intente buscando en algunos foros de FreeBSD, etc. sobre cómo asegurar SSH y lo encontrará).

    • Si es posible, intente ejecutar ssh daemon solo cuando sepa que accederá a la máquina en un futuro próximo y luego apáguela.

  3. Acostúmbrate a revisar los registros de tu sistema. Si comienza a notar algo sospechoso, introduzca mecanismos de seguridad adicionales como tablas IP o interrupción de puertos .


10
Votado por ascii bondad ...
jasonwryan

Gracias por la explicación detallada. Voy a digerir esto en un momento y comentaré.
hari

Entendí tu punto por completo. Mi pregunta es, he configurado (correcto o incorrecto, no estoy seguro) mi enrutador netgear. ¿Qué siguiente necesito hacer?
hari

2
Echa un vistazo a mi edición (abajo) sobre el acceso SSH externo.
rozcietrzewiacz

Gracias por la información. Tengo lo que estás tratando de transmitir. Mi pregunta es, ¿qué debo hacer para que cualquier persona (que tenga acceso) en Internet pueda, por ejemplo, ejecutar el navegador en el cuadro freebsd. ¿Cómo configuro eso?
hari

3

Hay un par de formas de lograr esto. Lo más fácil es probablemente configurar lo que se conoce como DMZ. Sin embargo, la forma más segura es en su enrutador para configurar una ruta estática en el puerto 22 a la IP de su servidor.

Recursos:


Gracias. Hice la parte en el enrutador netgear: configuré el reenvío de puertos de esta manera: servicio: puerto HTTP: IP del servidor 80: 192.168.1.16 - aquí esta ip es la ip de mi cuadro de freebsd. ¿Qué debería hacer después?
hari

Configure una prueba desde fuera de su ubicación, personalmente solo conecto mi teléfono a mi computadora portátil y trato de ingresar mi dirección IP. Supongo que conoce su dirección IP externa. O bien, puede intentar visitar su servidor web.
Mark D

SSH no funciona con mi IP externa. ¿Necesito hacer algo en mi servidor freebsd?
hari

¿Puedes SSH desde tu red interna?
Mark D

Sí. Puedo hacerlo
hari

1

Esto lo puede hacer su enrutador. En algunos enrutadores, esta función se llamaVirtual Server

Ver en la parte inferior de la imagen hay dos ejemplos de reenvío de puertos. Uno es de web y otro es de SSH. En el primer caso, cualquier solicitud en su IP WAN, es decir, la IP de su enrutador con puerto 80se enviará a una IP LAN ( 192.168.2.4en este caso)
Con esta función puede obtener servicios que se ejecutan en su PC / servidor en LAN desde cualquier parte del mundo es decir, esos servicios no se limitan a LAN
Reenvío de puertos o servidor virtual en un enrutador

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.