“Conocimiento Redes>Voz sobre IP

¿Script de shell para generar que escuche un puerto a través de Internet?

2014/3/24
Un simple script de shell por sí solo no puede escuchar en un puerto a través de Internet. Los scripts de shell son para controlar la ejecución de comandos; No tienen las capacidades de red incorporadas para manejar las conexiones entrantes. Necesita un programa de servidor de red (como `NetCat`,` Socat` o un servidor web dedicado como Apache o Nginx) para eso. El script de shell solo * se lanzará * y quizás * administrar * el proceso del servidor.

Aquí hay algunos ejemplos, cada uno con importantes consideraciones de seguridad:

Ejemplo 1:Uso de NetCat (altamente inseguro para el uso de producción)

Este ejemplo usa `netcat` para escuchar en un puerto. No use esto en un entorno de producción sin mejoras de seguridad significativas. NetCat ofrece una seguridad mínima y es fácilmente vulnerable a los ataques.

`` `Bash

#!/bin/bash

Puerto =8080

Echo "Escuchar en el puerto $ puerto ..."

NC -LVP $ Puerto

`` `` ``

* `NC -LVP $ Port` :Este es el comando central.

* `-L`:Escuche las conexiones entrantes.

* `-V`:modo detallado (muestra los detalles de la conexión).

* `-P $ Port`:Especifica el número de puerto.

Para hacer esto un poco más seguro (pero aún no listo): Puede agregar una regla de firewall para permitir solo conexiones desde direcciones IP específicas. Sin embargo, incluso esto es inadecuado para una solución robusta.

Ejemplo 2:Uso de SOCAT (un poco mejor, pero aún necesita más seguridad)

`Socat` es una utilidad de línea de comandos más versátil que` netcat`, lo que permite más opciones de configuración. Nuevamente, no es adecuado para la producción sin mejoras de seguridad significativas.

`` `Bash

#!/bin/bash

Puerto =8080

Echo "Escuchar en el puerto $ puerto ..."

Socat TCP-Listen:$ Port, Fork Exec:'echo "Conexión recibida!"

`` `` ``

* `SOCAT TCP-LISTEN:$ PORT, FORK EXEC:'echo" Conexión recibida! "':esto escucha en el puerto especificado y tiene un nuevo proceso para cada conexión. La conexión `Exec:'echo" recibida! "` La parte es un comando simple ejecutado para cada conexión. Reemplace esto con el manejo de comandos deseado.

Consideraciones de seguridad importantes:

* firewall: Debe configurar su firewall (por ejemplo, `iptables` en Linux) para permitir solo las conexiones al puerto especificado desde direcciones IP de confianza o redes. De lo contrario, su servidor estará abierto a ataques de cualquier persona en Internet.

* Autenticación y autorización: Estos ejemplos carecen de autenticación o autorización. Cualquiera puede conectarse. Para cualquier cosa más allá de las pruebas simples, necesita mecanismos de autenticación adecuados (por ejemplo, protección de contraseña, cifrado SSL/TLS).

* Validación de entrada: Si su servidor procesa cualquier entrada de los clientes, debe validarla a fondo para evitar ataques de inyección (como inyección de comandos o inyección de SQL).

* Manejo de errores: Los scripts carecen de manejo de errores robustos. Los scripts listos para la producción deben manejar los errores con gracia.

* Gestión de procesos: Considere usar un supervisor de proceso (como Systemd o Supervisord) para administrar el proceso del servidor y asegurarse de que se reinicie automáticamente si se bloquea.

Para entornos de producción: Use un servidor web robusto como Apache o Nginx con configuraciones de seguridad apropiadas (SSL/TLS, autenticación, firewalls, validación de entrada, etc.). Estos servidores están diseñados para operaciones seguras y confiables. Estos ejemplos son solo para fines educativos y no deben usarse en la producción sin mejoras significativas en su seguridad.

Voz sobre IP
El origen de VoIP
Cómo configurar Quintum Tenor
Ventrilo Herramientas
¿Cómo puedo configurar VoIP en Inicio
Cómo utilizar Packet8 VoIP Servicio
Cómo restablecer un Adaptador de Teléfono Linksys
Funciones VoIP
Cómo generar clientes potenciales VoIP
Conocimiento de la computadora © http://www.ordenador.online