Cita de: ShotgunLogic en 17 Junio 2011, 17:30 PM
Yo en mi router tengo bloqueados todos los puertos(http, ftp, etc..), y de hecho cuando por ejemplo abro el http puedo conectarme desde afuera a un servidor apache que tengo montado. Hasta ahí bien, el router nos bloquea las peticiones que se hagan desde afuera.
No se si te has expresado mal, o no termino de entender la frase, o qué se yo, pero no me cuadra demasiado eso, de cualquier manera allá voy:
Como tu bien dices, con un router puedes bloquear las conexiones remotas INICIADAS desde fuera, cuando el mecanismo de NAT te asigna un puerto efímero el soft del router va a dejar pasar las conexiones que vayan por ese puerto, de ahí el uso de muchas veces "reverse shells".
Por otro lado, esta asignación de puertos, es ajena al Sistema Operativo, de manera que desconoce totalmente estas operaciones. En tu SO aparte de por puertos, se suele trabajar por programas, -tu autorizas a un programa a trabajar "libremente"-. Te permite la conexión, porque el actualizador de java inició la conexión, es decir, desde dentro se le asignó un puerto efímero para la conexión.