Vengo de esta pregunta:https://superuser.com/questions/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 básico del 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 con Windows a través de Internet para poder abrir un navegador web y acceder a Internet.
También quiero acceder a este cuadro 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.
Respuesta aceptada:
Comenzaré con los hechos en bruto:
-
Tienes:
A
– su caja de FreeBSD,B
– su enrutador yC
– alguna máquina con acceso a Internet. Así es como se ve:.-----. .-----. .-----. | A | == | B | - - ( Internet ) - - | C | '-----' '-----' '-----' _________ ________/ v `- this is your LAN
Observe cómo su enrutador normalmente funciona:permite conexiones desde máquinas en su LAN a Internet (simplemente hablando). Así que si el
A
(o cualquier otra máquina en LAN) quiere acceder a Internet, se le permitirá (nuevamente, solo hablando de comprensión y configuración básicas):.-----. .-----. .-----. | A | == | B | - - ( Internet ) - - | C | '-----' '-----' '-----' `-->----' `--->--->---^
Y lo siguiente no permitido por defecto:
.-----. .-----. .-----. | A | == | B | - - ( Internet ) - - | C | '-----' '-----' '-----' `--<----' `---<--- - - - - --<---<-----'
(Es decir, el enrutador protege las máquinas en su LAN sean accedidas desde Internet). Observe que el enrutador es la única parte de su LAN que se ve desde Internet.
-
El reenvío de puertos es lo que permite que se lleve a cabo el tercer esquema. Esto consiste en decirle al enrutador qué conexión desde
C
debe ir a que máquina en la LAN. Esto se hace en función de los números de puerto – por eso se llama reenvío de puertos . Usted configura eso instruyendo al enrutador que todas las conexiones provenientes 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áquinaA
:.------. .-------. .-----. | A | == | B | - - ( Internet ) - - | C | | | | | '-----' '-|22|-' ',--|22|' | `--<-22---' `---<---- - - - - - --<-22---'
-
Tales conexiones a través de Internet se producen en función de 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 tienes una conexión a Internet con una estática IP, entonces tendría que saber de alguna manera qué IP está asignada actualmente a su enrutador por el ISP. De lo contrario,
C
no sabrá a qué IP tiene que conectarse para llegar a su enrutador (y más aún, aA
). Para solucionar esto de forma sencilla, puedes utilizar un servicio llamado DNS dinámico . Esto haría que su enrutador envíe información periódicamente 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 comunicarse fácilmente con ellos.
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 puede ser una caja separada.
o cualquier otra máquina con Conexión a Internet.
Ahora lo que quieres:
-
Simplemente permitir el acceso ssh a su máquina desde Internet es una mala idea. Hay miles de bots instalados por crackers que buscan en Internet máquinas con puerto SSH abierto. Por lo general, "tocan" el puerto SSH predeterminado de tantas direcciones IP como pueden y, una vez que encuentran un demonio SSH ejecutándose en algún lugar, intentan obtener fuerza bruta acceso a la máquina. Esto no solo es un riesgo de posible intrusión, sino también de ralentización de la red mientras la máquina está siendo forzada.
-
Si realmente necesita dicho acceso, al menos debería
-
asegúrese de tener fuerte 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
su
osudo
entonces), -
cambie el puerto predeterminado en el que se ejecutaría su servidor SSH,
-
Introducir un mecanismo para rechazar numerosos intentos de inicio de sesión SSH (con un tiempo de espera cada vez mayor para intentos posteriores; no recuerdo cómo se llama exactamente esto; lo tenía habilitado hace algún tiempo en FreeBSD y recuerdo que fue bastante fácil:intente buscando en algunos foros de FreeBSD, etc. sobre cómo proteger SSH y lo encontrará).
-
Si es posible, intente ejecutar ssh daemon solo cuando sepa que accederá a la máquina en un futuro cercano y apáguelo después
-
-
Acostúmbrate a revisar los registros de tu sistema. Si comienza a notar algo sospechoso, introduzca mecanismos de seguridad adicionales como tablas de IP o golpe de puerto .