Foro de elhacker.net

Comunicaciones => Redes => Mensaje iniciado por: lordluisiv en 28 Diciembre 2019, 04:46 am



Título: Puertos
Publicado por: lordluisiv en 28 Diciembre 2019, 04:46 am
Buenas espero que esten bien, la verdad ya no se como buscar asi que vine aqui, lo que pasa es que mi proveedor de internet me da una ip privada en vez de una publica directamente lo que hace que no pueda abrir los puertos de tal ip publica, quisiera saber como puedo hacer para poder abrir los puertos, se me habia ocurrido una idea con una vpn pero lo mas que logre hacer es que el servicio por si mismo me abriera el puerto 80 solamente, y la verdad necesito otros puertos, me podrian ayudar con eso uso linux ubuntu 16.04


Título: Re: Puertos
Publicado por: AlbertoBSD en 28 Diciembre 2019, 06:25 am
Si el proveedor solo te da una IP Privada de esas tipo 10.X.X.X a tu router, realmente no hay mucho que puedas realizar para que alguien externo se pueda conectar a tu red.

De hecho y por seguridad no deberías dejar que se conecten a tu red.

Si lo que quieres es montar algún tipo de servidor y que cualquiera en internet se pueda conectar es que previamente configuren alguna red tipo hamachi para que tanto tu como la otra persona estén en la misma red. Pero es mucho problema.

Realmente no hay forma, solo hablando con tu proveedor a ver si te puede asignar un servicio que le da a tu router una IP Publica directamente.

Saludos!


Título: Re: Puertos
Publicado por: @XSStringManolo en 28 Diciembre 2019, 16:27 pm
Si puedes establecer comunicaciones, tener servidores y prácticamente utilizar cualquier aplicación que necesite puertos abiertos sin abrir puertos. Necesitas un servidor externo/proxy de intermediario. Hay muchas formas de implementarlo depende del tráfico que sea. Una de las más sencillas es tunelar (https://es.m.wikipedia.org/wiki/T%C3%BAnel_(inform%C3%A1tica)) por HTTP (https://es.m.wikipedia.org/wiki/Protocolo_de_transferencia_de_hipertexto) todo el tráfico utilizando base64 (https://es.m.wikipedia.org/wiki/Base64). No es lo más óptimo ya que agrandas el tráfico, pero si lo más sencillo, ya que no te cargas el encapsulado.

Lo más lógico es que mantengas una conexión abierta en vez de el clásico enviar petición cerrar conexión que se usa más asiduamente con este protocolo. Conexión Persistente HTTP (https://en.m.wikipedia.org/wiki/HTTP_persistent_connection)

Depende el tipo de tráfico y lo que necesites puedes usar un hosting gratuito (http://hostingsaurio.com/hosting-gratuito/), o trendrás que usar un VPS (https://www.hostingadvice.com/how-to/free-vps-hosting/) ya que si bien el protocolo HTTP te permite establecer conexiones y dejarlas abiertas, otro software como pueda ser Apache (https://es.m.wikipedia.org/wiki/Apache) o PHP (https://es.m.wikipedia.org/wiki/PHP) cierran las conexiones automáticamente cada 15 y 30 segundos respectivamente para optimizar los servicios. Esto se puede configurar si tu hosting o VPS te lo permiten. Apache Directiva KeepAlive (http://httpd.apache.org/docs/2.2/mod/core.html#keepalive), PHP Tiempo Maximo de Ejecución (https://www.php.net/manual/es/info.configuration.php#ini.max-execution-time).

Si quieres correr un cliente en Android en el background o cualquier app para mantener la conexión vas a tener que pelearte con el Garbage Collector (https://es.m.wikipedia.org/wiki/Recolector_de_basura). El GC de Android (https://dzone.com/articles/understanding-android-gc-logs) te puede cerrar la conexión asique necesitarás manejarlo. Puedes hacer una copia en PHP y en onStop abrir otra instancia que abra una nueva comunicación e informar al PHP para volver a retrasmitir desde el bloque perdido. Hay otras alternativas. Por ejemplo utilizar el modo multiventana o mejor aún un Launcher desde el que hagas intents a tus aplicaciones de uso normal mientras corres el cliente/servidor en la misma instancia.

Técnicamente realizar esta configuración de esta forma es bastante sencillo. No es ni de cerca lo más óptimo que se puede hacer, pero sin tener muchos conocimientos y teniendo tiempo te sirve para salir del paso. También tiene sus ventajas. Puedes procesar el tráfico antes de recibirlo, automatizar cosas, responder automáticamente, un firewall custom para solicitudes no deseadas, bases de datos con el tráfico y no necesitas mostrar la IP. A parte te sirve para todo tipo de tráfico. Puedes alquilarle el servicio a amigos.


Título: Re: Puertos
Publicado por: lordluisiv en 28 Diciembre 2019, 18:25 pm
Vale muchas gracias por sus respuestas, ya me doy la idea, ahora lo que queda es probar.
Iré probando los distintos métodos mencionados gracias.