jueves, 3 de abril de 2025

Montar VPN en Ubuntu Server


Muy buenas a todos, hoy vamos a montar una red VPN con la herramienta OpenVPN en Ubuntu Server. Bueno, para hacer más fácil el manejo del Server voy a utilizar Webmin que es un software que permite a los administradores gestionar su servidor a través de una interfaz gráfica accesible desde un navegador web, eliminando la necesidad de utilizar la línea de comandos para tareas de administración comunes.

Lo primero que necesitamos es loguearnos en Webmin con conexión al Server.
 

El primer pantallazo me ofrece la Dashboard del sistema.
 

 Ahora instalamos la herramienta OpenVPN por medio de la consola de Webmin.
 

Cuando se lanza el script nos irá pidiendo datos...
 
  1. Nos pide es que le asignemos una IP para conectarse, para este caso le asignamos la IP del Ubuntu Server "192.168.1.108".
  2. Seleccionamos un protocolo "UDP".
  3. Puerto el que nos ofrece por defecto "1194".
  4. Elegimos el DNS de Google "2".
  5. Ingresamos un nombre de cliente "niko". 
Al finalizar la instalación nos da la ruta donde se encuentra el fichero de conexión "/home/q3it/niko.ovpn".
 

Si vamos a esa ruta veremos ese fichero.
 

Ahora vamos a verificar que el servicio OpenVPN está corriendo 👍.
 
 
Verificamos que el puerto 1194 está abierto 👍, y algo muy importante es saber que la herramienta nos crea un túnel de red con IP 10.8.0.0/24 para la comunicación Cliente / Servidor.
 
 
Continuamos con la ejecución del fichero niko.ovpn en UbuSer para ver que tipo de errores arroja.
 
 
El único error que nos aparece es que agreguemos al fichero la línea --data-ciphers.
 
 
Añadida esta línea, descargamos el fichero niko.ovpn en la máquina desde la cual nos queremos conectar. ¡OJO! hay que tener cuidado con este fichero ya que el que lo tenga puede conectarse. En la máquina desde donde nos vamos a conectar descargamos el software OpenVPN-Client. Para este caso lo haré desde un Windows 11 con IP 192.168.210.138.
 

Ahora probemos la conexión.
 

Cómo podemos ver cuando hacemos un tracert se conecta a través del túnel con IP 10.8.0.2 y va dando saltos hasta llegar al destino dns.google 8.8.8.8
 
Y con esto termino, nos vemos en la próxima, chao 👋😉.

miércoles, 12 de marzo de 2025

Nginx-Rtmp Servidor de video


Hola qué tal, para continuar con nuestro Servidor de Medios hoy voy a instalar la herramienta FFmpeg y algunas librerías de Nginx para que funciones correctamente. Hay que recordar que en publicaciones pasadas instalé Nginx y por esa razón solo lo voy a configurar. Pero para empezar a entender como funciona un servidor de video streaming tenemos que tener claro que significa RTMP 'Real Time Messaging Protocol'. Éste es un protocolo de comunicación diseñado para transmitir medios en tiempo real y hace referencia a la versión clásica de la tecnología de streaming RTMP. Este protocolo puede adaptarse a la velocidad de Internet, la calidad del vídeo y otras variables. Un flujo RTMP divide un vídeo pregrabado en trozos más pequeños antes de enviarlo de un dispositivo a otro. El tamaño de cada fragmento más pequeño se establece en función de la conexión a Internet disponible en ambos extremos. Teniendo claro la función que cumple el protocolo ahora necesitamos una herramienta que transmita los medios audiovisuales y ahí entra en acción FFmpeg que es la solución ideal para para convertir y transmitir formatos multimedia por medio de línea de comandos.
 
Llegó la hora de ponernos manos a la obra, para empezar ejecutamos una actualización del sistema update && upgrade. Luego instalamos las librerías de Nginx que hacen referencia al protocolo RTMP. "apt install libnginx-mod-rtmp"
 
Luego configuramos el fichero de Nginx que se encuentra en la ruta /etc/nginx/nginx.conf y agregamos al final las siguientes líneas...
 
rtmp {
            server {
                        listen 1935;
                        chunk_size 4096;
                        allow publish 127.0.0.1;
                        deny publish all;
 
                        application live {
                                    live on;
                                    record off;
                        }
            }
}
 
 
Pero vamos a ver que es lo que hace cada cada una de ellas. 
  • listen 1935 --> Escucha por este puerto.
  • chunk_size 4096 --> Enviará bloques de 4 kB.
  • allow y deny publish --> Sólo se publicará desde el servidor y el resto lo deniega.
  • live on --> Habilita el modo en vivo.
  • record off --> Deshabilita que se pueda grabar.
Para estar seguros de que el servidor Nginx tome los cambios lo reiniciamos "systemctl restart nginx" y luego vemos su status.


Ahora, ¡Necesitaremos un video para transmitir!, para solucionar esto descargamos con la herramienta yt-dlp un  video de Youtube llamado 'Historia de la robótica', pero para hacerlo más manejable lo acortamos a robotica.mp4.
 
 
Verificamos que la herramienta ffmpeg esté instalada. 
 
 
Y ya estamos listos para transmitir, ahora ejecutamos la siguiente instrucción ffmpeg -re -i "robotica.mp4" -c:v copy -c:a aac -ar 44100 -ac 1 -f flv rtmp://localhost/live/ubuser.
  • -re --> Velocidad del video.
  • -i --> Input "medio a transmitir".
  • -c:v --> Copiar el formato del video descargado.
  • -c:a --> Copie el tipo de audio.
  • -ar --> Frecuencia en hercios.
  • -f --> Empaquetado flv.
  • rtmp --> Protocolo.
  • ://localhost/live/ --> Dirección de transmisión.
 

No saltó ningún error en la ejecución. Ahora, para ver esta transmisión abrimos la herramienta VLC y en Medios/Red ponemos la dirección de emisión.
 
Y con esto ya tenemos montado nuestro Servidor de Streaming, nos vemos en el próximo post. 👋😉

sábado, 8 de febrero de 2025

Icecast - Servidor de Audio



Hola todos, hoy voy a montar un servidor de audio. La herramienta que voy a implementar se llama Icecast y es un proyecto para streaming de medios mantenido por la fundación Xiph.org. Puede ser utilizado para crear una estación de la radio en internet o para uso privado entre otras cosas. Es muy versátil en que los nuevos formatos se pueden agregar relativamente fácil y soporta estándares abiertos para comunicación e interacción.
 
Lo primero que debemos hacer es actualizar nuestro Ubuntu Server "update && upgrade". Luego procedemos a instalar la herramienta y sus dependencias "icecast2 ices2 vorbis-tools"
 
 
Bueno, en la siguiente imagen nos pide configurar Icecast2, le decimos yes.
 

Nos pide que ingresemos nuestro nombre de dominio.
 

Una contraseña para el servicio.


Ahora empezamos con la configuración, entramos al fichero "/etc/icecast2/icecast.xml" y ponemos los parámetros que nos interesen.
 
 
En los pantallazos anteriores vemos que podemos cambiar la ubicación, el número de clientes, el password, el usuario administrador, etc.

Ahora nos dirigimos a nuestro /home y creamos un directorio llamado /audio, y dentro de este crearemos el fichero lista.txt que va a contener el playlist de reproducción.


Modificamos el fichero que se encuentra en /etc/ices2/ices-playlist.xml.




 
De este archivo modificamos: El nombre, el genero, descripción y la ruta del playlist.
 
A continuación creamos el directorio que va a contener los Logs y le damos todos los permisos.
 
 
Ahora si le hacemos un cat al fichero lista.txt estará vacío, en ese caso necesitaremos pasar la música que va reproducir la herramienta. Para eso copiamos dos canciones que tengo dentro del usuario q3it y se lo ponemos al fichero lista.txt.
 
 
Llegó la prueba! Ejecutamos el siguiente comando ices2 /etc/ices2/ices-playlist.xml &...
 

Verificamos los Logs y parece que todo va bien. Ahora nos vamos al navegador y esto es lo que veremos...
 
 
Un truco bastante chulo, es hacer que tú blog reproduzca Radio-Streaming. En la página principal del blog thequbit.net lo he configurado, espero que os guste, Chao. 👋😉

lunes, 27 de enero de 2025

Asterisk - Telefonía IP



Hola a todos, hoy voy a instalar en Ubuntu Server Asterisk, que es una solución de VoIP de código abierto que proporciona funcionalidades de una centralita telefónica PBX o call center. Una de las mejores ventajas de Asterisk es que puede integrarse bastante bien con la telefonía analógica pues tiene incorporados estándares que van desde FXS hasta SIP.
 
Para empezar debemos tener claro si queremos hacer una instalación desde una iso, que es mucho más fácil o hacerlo sobre un sistema ya montado, que es nuestro caso. 
 
Bueno, lo primero actualizamos el Server con un update && upgrade. Ejecutamos la instalación por consola apt install asterisk.
 
 
Luego echamos un vistazo a la versión que nos instaló y su estado.
 
 
Cómo vemos el servicio corre perfectamente y la versión que nos instaló es la 20.6. Ahora nos dirigimos a la ruta /etc/asterisk y configuramos los siguientes archivos: 
  • sip.conf Permite definir los canales SIP para llamadas entrantes y salientes.
  • extensions.conf Define las reglas de enrutamiento que va a tener una llamada.
Vamos a configurar el primer fichero.
 
 
En este primer fichero eliminé todas las líneas comentadas y vacías. La primer imagen sólo contiene configuración general, donde no se ha tocado nada, pero en la segunda imagen creé una plantilla para registrar los usuarios.
 
Ahora vamos a descargar e instalar la herramienta Zoiper que nos servirá de teléfono local. 
 
 
Abrimos la aplicación y el primer pantallazo que nos pide es, el usuario y su contraseña.
 

 Ahora nos pide el hostname, que es en este caso la IP de la máquina.


Habilitamos la autenticación del usuario ext1.
 

 Cómo vemos en la siguiente imagen nos ha encontrado el protocolo SIP UDP.
 

Y con esto finalizamos la configuración de Zoiper en UbuServer. 


Ahora continuamos con la instalación de Zoiper en un dispositivo móvil.

Nos pide usuario y contraseña.


Nombre del servidor al que nos vamos a conectar.


Nombre de usuario con el que nos vamos a autenticar.


Nos reconoce el protocolo SIP UDP.


Y por último permitimos que Zoiper efectúe llamadas.


Probemos el funcionamiento con un par de llamadas, primero voy a llamar desde el UbuServer a el dispositivo móvil.
 

Y la imagen que nos da el móvil es esta.
 

Ahora llamamos desde el dispositivo móvil.
 
 
Veamos el detalle de la llamada desde el móvil.
 

Ahora desde el Server.
 
 
Echemos un vistazo a la consola para ver que está pasando por detrás.
 
 
En las últimas líneas se ven las conexiones desde la ext1 a la ext2 y viceversa. 
 
Bueno y hasta aquí llegamos con la puesta en marcha de un servicio de VoIP.👋😉