Mostrando entradas con la etiqueta servidor. Mostrar todas las entradas
Mostrando entradas con la etiqueta servidor. Mostrar todas las entradas

¿Que es un Proxy?, ¿he de conectarme a uno para aumentar mi seguridad?

En medio de la controversia sobre el bloqueo de acceso a Telegram desde España, se ha hablado mucho sobre los servidores proxy y las redes privadas virtuales (VPN). Vamos a explorar qué es y cómo funciona un servidor proxy. El funcionamiento de las VPN ya fue tratado en un publicación anterior.

¿Necesito una VPN?

¿Pero que es un proxy y cual era su principal función?

 

Los servidores proxy surgieron con la necesidad de simplificar y controlar el acceso a la información en redes informáticas. En los primeros días de Internet, cuando los recursos eran limitados, estos servidores ayudaban a optimizar el uso del ancho de banda mediante el almacenamiento en caché de páginas web frecuentemente solicitadas, hoy en día esta función suele estar implementada en los propios navegadores web. Con el tiempo, los proxies evolucionaron para ofrecer mayor seguridad y privacidad en línea, como filtrado de contenido, control de acceso y anonimato, ocultan nuestra dirección IP.



Ilustración que muestra distintos dispositivos, com ordenadores, portátiles y teléfonos móviles conectados a un servidor Proxy


Un proxy es un intermediario entre tu dispositivo y el servidor al que intentas acceder. 

Imagina que deseas abrir una página web: en lugar de conectarte directamente al servidor donde está alojada, la conexión primero pasa por el proxy y luego llega al destino. En este proceso:


Tu navegador o dispositivo actúa como el cliente.

El servidor web o plataforma en linea a la que intentas acceder es el servidor.

El proxy se encuentra en medio, actuando como intermediario. Y con ello podemos filtrar el tráfico web. Por ejemplo, en una empresa, se pueden configurar proxies para bloquear el acceso a ciertos sitios web o para auditar el uso de Internet de los empleados.

 

Esquema Usuario, Servidor Proxy, Internet


Si el servidor proxy se encuentra fuera de nuestro ámbito geográfico, podemos evitar el bloqueo que se imponga en nuestro país: Los proxies pueden ayudarte a acceder a contenido restringido geográficamente. Por ejemplo, si una página web está bloqueada en tu país, puedes utilizar un proxy para acceder a ella desde una ubicación diferente.


Esquema Usuario, Servidor Proxy, Internet. Mediante un proxy, una VPN o una conexión directa

¿Cual es la principal diferencia entre un servidor proxy y un servidor VPN?

La gran diferencia, entre un servidor proxy y una VPN, es la encriptación de las comunicaciones de este ultimo, entre el cliente y el servidor, algo que no nos proporciona un proxy. Los VPN fueron diseñados para crear redes privadas y seguras utilizando internet que es un medio publico.

Pero igual que ocurre con las VPN, utilizar proxy externos gratuitos, puede comprometer nuestra privacidad, y seguridad 🔓. Si estamos evitando que nos espíen, a lo mejor estamos entregando las llaves de casa al ladrón. Sin embargo si queremos evitar una censura o un bloqueo geográfico, pueden ser una buena alternativa, pero ten en cuenta que si algo es gratis, el producto eres tu, tu privacidad es el precio a pagar.

En resumidas cuentas, un proxy es recomendable como servidor local para acelerar la navegación web, reducir el ancho de banda usado y controlar el contenido que los usuarios de nuestra red soliciten a internet. Es una alternativa para crear un control parental, o evitar que los empleados de una empresa accedan a servicios web que no se encuentren relacionados con la tarea asignada.

Recuerda que los proxies gratuitos en linea pueden ser lentos y menos seguros. 

Home Assistant servidor local domótico

Logo de Home Assistant
Home Assistant es un servidor basado en Linux cuya distribución y utilización es gratuita, nos permite controlar nuestros dispositivos domoticos sin interacción de terceros. Utilizar la nube para interactuar con la domótica de nuestro hogar es ceder nuestros datos a empresas, las cuales no podemos controlar y si estos servicios se caen o desaparecen, nuestros dispositivos LoT perderán su conectividad con nosotros. También nos permite la automatización de nuestro hogar, e incluso si disponemos de de productos de distintas marcas.

Home Assistant panel de control del hogar


Home Assistant es un software basado en Buildroot para la automatización del hogar diseñado para ser un sistema de control central para dispositivos domésticos inteligentes, con un enfoque en el control local y la privacidad. Se puede acceder a él a través de una interfaz web, o, mediante el uso de aplicaciones basadas en Android e iOS,

Despierta tu hogar

Domótica de código abierto que prioriza el control local y la privacidad. Desarrollado por una comunidad mundial de manitas y entusiastas del bricolaje. Perfecto para ejecutarse en una Raspberry Pi o en un servidor local.

SU SISTEMA DEBE EJECUTARSE EN CASA, NO EN LA NUBE.

La nube es algo mágico. En algún lugar del mundo hay computadoras que recopilan los datos que genera su casa, los prueban con sus reglas de automatización y envían comandos cuando es necesario. La nube recibirá actualizaciones y mejorará con el tiempo para que pueda brindarle un mejor servicio. Hasta que deja de serlo. Hay muchas razones por las que su hogar puede perder su conexión a la nube. Internet puede dejar de funcionar, es posible que una actualización haya salido mal o que los servidores que ejecutan la nube se bloqueen.

Cuando esto sucede, su casa debería poder seguir funcionando. La nube debe tratarse como una extensión de su hogar inteligente en lugar de ejecutarla.

Home Assistant mantiene la integración con miles de marcas que fabrican y/o distribuyen productos domoticos, y su comunidad sigue buscando nuevas interacciones.


Home Assistant integración

Home Assistant control camaras de seguridad


Este servidor no necesita grandes recursos y puede ser instalado en mini-ordenadores, ser virtualizado, o ser instalado en un contenedor como por ejemplo Proxmox:

Home Assistant también nos proporciona un mini ordenador con su sistema ya pre instalado, para que nos resulte más fácil tener nuestro hogar domotico controlado en nuestro hogar. Home Assistant Green su precio actual es de 99$ y por el momento no tiene distribuidor en España.

Home Assistant Green

  • Procesador ARM de cuatro núcleos a 1,8 GHz
  • RAM 4 GB
  • Almacenamiento eMMC 32 GB
  • Dos puertos USB 2.0
  • Un puerto HDMI
  • Un Puerto Gigabit Ethernet
El acceso a nuestro servidor local se hace mediante un interfaz web mediante la dirección:

http://<dirección IP servidor Home Assistant> :8123/
Home Assistant iniciando en VirtualBox

Home Assistant acceso desde el navegador


Podremos configurar el servidor local domótico desde el navegador o desde nuestros dispositivos móviles mediante la aplicación:

Home Assistant aplicación en Google Play

Home Assistant aplicación en App Store


Proxmox Virtual Environment

Proxmox Virtual EnvironmentProxmox VE es un entorno de virtualización de servidores de código abierto, publicado bajo la Licencia Pública General GNU Affero, v3 (GNU AGPLv3). Esto significa que eres libre de usar el software, inspeccionar el código fuente en cualquier momento y contribuir al proyecto usted mismo. Puedes descargar el instalador ISO de Proxmox VE o inspeccionar el código en el repositorio de código público (git). Permite el despliegue y la gestión de máquinas virtuales y contenedores. 

También dispone suscripciones de pago para empresas con distintas modalidades.

Instalación de Proxmox VE

Es una distribución de GNU/Linux basada en Debian, incluye una consola web, incluye versión traducida a español, y una herramientas de línea de comandos, y proporciona una API REST para herramientas de terceros. Permite dos tipos de virtualización: 


Servidor web para configurador de los contenedores

  • Los contenedores basados con LXC
La tecnología de virtualización basada en contenedores es una alternativa ligera a la virtualización completa de máquinas, ya que comparte el kernel del sistema host.

Contenedores Linux (LXC)
LXC es un entorno de virtualización a nivel de sistema operativo para ejecutar varios sistemas Linux aislados en un único host de control de Linux. LXC funciona como una interfaz de espacio de usuario para las características de contención del kernel de Linux. Los usuarios pueden crear y administrar fácilmente contenedores de sistemas o aplicaciones con una potente API y herramientas simples.
  • La virtualización con KVM​ (Máquina virtual basada en kernel)
KVM es la tecnología de virtualización Linux líder en la industria para la virtualización completa. Es un módulo del kernel, que se fusiona con el kernel principal de Linux, y se ejecuta con un rendimiento casi nativo en todo el hardware x86 con soporte de virtualización, ya sea Intel VT-x o AMD-V.

Con KVM puede ejecutar tanto Windows como Linux en máquinas virtuales (VM), donde cada VM tiene hardware privado y virtualizado: una tarjeta de red, un disco, un adaptador de gráficos, etc. La ejecución de varias aplicaciones en máquinas virtuales en un solo sistema le permite ahorrar energía y reducir costos y, al mismo tiempo, le brinda la flexibilidad para crear un centro de datos definido por software ágil y escalable que satisfaga las demandas de su negocio.

Podremos realizar una instalación asistida gráfica o en terminal.

Instalación grafica de Proxmox

La instalación es muy sencilla y es muy parecida a otras distribuciones Linux. Como Proxmox es una servidor es esencial que la dirección IP sea estática, y ya en la instalación nos exige que dirección va a tener dentro de nuestra red.

Configurar dirección IP fija

Configuración instalación Promox

Configuración instalación Promox

Una vez realizada la instalación, la gestión del servidor se realizará desde el servidor web, accediendo a la dirección:

https://<direccion del servidor>:8006/

Inicio servidor



Tener en cuenta que el acceso es mediante una conexión segura, pero el certificado no es conocido. Deberemos acceder a Opciones Avanzadas y Acceder a la dirección no segura.

Su conexión no es privada.

Es posible que los atacantes estén intentando robar tu información de 192.168.0.69 (por ejemplo contraseñas, mensajes o tarjetas de crédito).

NET::ERR_CERT_AUTHORITY_INVALID

Este servidor no puede demostrar que es 192.168.0.69; su certificado de seguridad no es de confianza para el sistema operativo de tu equipo. Esto puede deberse a un error de configuración o a que un intruso esté interceptando la conexión.


Continuar a 192.168.0.69 (no seguro)

 

Acceso no seguro

 Ya lo tendremos todo listo para poder virtualizar nuestros sistemas operativos o contenedores.

Instalación ISO

Arranque instalación distribución Trisquel

En este caso he realizado una virtualización de la distribución Trisquel. El potencial de este servidor es enorme, y nos permitirá con una única maquina tener alojados múltiples servidores.

 

¿Necesito una VPN?

Con el pretexto de aumentar nuestra seguridad y privacidad, nos asaltan los anuncios sobre servicios que ofrecen VPN`s bien de forma gratuita o de pago. Pero realmente ¿necesito una VPN?
Cada usuario tiene unas necesidades, para saber si necesitamos una VPN deberemos conocer como funciona y cuales son sus ventajas y sus inconvenientes.

El anagrama V.P.N. (Virtual Private Network) significa Red Privada Virtual. Es una tecnología de encriptación que permite crear una red con acceso limitado utilizando una red publica.


Explicación gráfica del funcionamiento de una VPN

La necesidad de conectar distintas sedes, distantes entre si. Plantea la duda de como conectarlas e integrarlas dentro de la red para compartir entre todas servidores, impresoras, si no es posible crear una red propia. Una de las redes que se pueden utilizar es Internet, pero es una red abierta y accesible a todo el mundo. Una VPN crea una protección y una identificación para que las distintas sedes o equipos realicen sus conexiones de forma privada a través de una red publica, mediante software o hardware.

Torres de alta tensión
En algunos casos los tensores que unen las torres de alta tensión llevan dentro una fibra óptica que permiten la conexión entre los distintos centros de transformación, estos pueden estar a cientos de kilómetros. Con está interconexión entre distintos centros puedes crear una red privada física y no virtual

Repetidor de telefonía móvil
Los repetidores de telefonía móvil, repetidores de televisión etc.. Pueden crear una red interna mediante enlaces de micro-ondas. Esto permite conectarse entre las distintas estaciones en una red privada, no accesible por terceras personas. Si la red fallará tambien se pueden interconectar a través de enlaces satelitales



¿A ti que estas leyendo esto en que te puede ser necesario adquirir una VPN?
  • Si viajas mucho y es habitual que te conectes a Wifi`s publicas es muy probable que debas contratar una VPN para tus dispositivos. Es muy recomendable que tus interacciones con Internet se realicen de forma encriptada para evitar ataques 'man in the middle' . No sabes quien puede estas "escuchando" dentro de una red publica.
Free Wifi


  • Si tienes una pequeña empresa o un hogar en el cual quieres tener acceso a tus servidores locales, NAS, Plex, Home Assistant, Pi-Hole, DLNA..... O quieres añadir más seguridad, controlando y filtrando donde navegan tus empleados o menores mediante un servidor de filtrado parental Y quieres garantizar que tus conexiones son seguras y fiables, trabajando con equipos externos como si te encontraras en la oficina o en tu casa. En este caso tienes la opción de contratar o crear tu propio servidor VPN, por ejemplo con una Raspberry o un viejo ordenador.

  • Muchos, por no decir todos los servicios de contenido audiovisual on-line penalizan la compartición de cuentas. Una de las soluciones puede ser conectarse todos aquellos usuarios que se encuentran compartiendo la misma cuenta a una VPN para crear un "hogar" y que servicio no nos penalice.
  • Evitar filtros de navegación. Ciertas operadoras penalizan el uso de ciertas aplicaciones o servicios p2p como torrent. Para evitar o controlar el uso de grandes cantidades de datos. Al encriptar nuestra navegación, la operadora desconoce que servicios o protocolos estamos utilizando para descargar datos.

  • Puede ser que el contenido al que quieres acceder se encuentre censurado en tu país. Si utilizas la VPN que te ofrecen ciertos navegadores tales como: Opera, Firefox, Edge o Brave, podrás acceder a internet o ser visible en un país distinto de donde te encuentras realmente y sortear el bloqueo geográfico. Recuerda que al utilizar una Red Privada Virtual es como si navegaras por la red de redes en un submarino y solo seras visible cuando emerges después del servidor de la VPN. Por ejemplo, no es posible ver cierto contenido de fútbol en una plataforma en un país latino si es de pago, pero en Alemania esa misma plataforma lo ofrece de forma gratuita. En este caso solo estarán protegidas las conexiones que realices mediante el navegador y no las que realices en otras aplicaciones.
Captura de pantalla Brave VPN

  • Si eres muy celoso de tu intimidad y quieres que no te rastreen. Aunque en este caso se pueden implementar otras medidas para evitar que tengan controlado.

    • Navegar siempre por páginas seguras: https://
Conexión no segura


    • Utilizar la red Tor para ofuscar tu localización real
    • Utilizar navegadores que nos protegerán de rastreadores maliciosos como: Vivaldi o Brave.
    • Realizar conexiones al servidor mediante terminal utilizando el protocolo SSH.
    • Utilizar APP oficiales.
    • Utilizar aplicaciones de mensajería seguras, como Telegram o Signal

Añadir botón apagado encendido Raspberry

Raspberry es un pequeño ordenador, de bajo coste que podemos utilizar como PC  de sobremesa o como servidor, sin necesidad de conectarle ningún periférico (pantalla, teclado, ratón). En este último caso, la labor de apagado solo es posible desconectando la corriente, con el consabido riesgo de pérdida de datos, y creamos archivos corruptos que impidan y/o dificulten su posterior encendido. También es posible que dañemos la tarjeta SD y debemos sustituirla o formatearla y volver a volcar el sistema operativos e instalar servicios que teníamos instalados y configurarlos otra vez.

Una forma de evitar este tedioso proceso es incluir un botón de apagado, que también nos será válido para volver a encenderlo si lo dejamos en stand-by.


Para ello utilizaremos el interfaz I/O del que dispone la Raspberry



El interfaz GPIO dispone de unos terminal macho numerados. Disponiendo las Raspberry en esta posición su disposición sera de izquierda a derecha y de arriba abajo empezando del 1 al 40


En nuestro caso utilizaremos los pines 4 y 6 donde colocaremos nuestro botón para realizar el apagado de nuestro pequeño ordenador. 

Realizaremos un pequeño bricolaje. La manera más sencilla sería con la utilización de dos cables que en una de sus puntas se encuentran una punteras hembras aisladas y en la otra punta de los cables soldar un pequeño pulsador. También podremos utilizar una placa de pruebas para, más adelante poder ampliar nuestros proyectos.


Dependendiendo del sistema operativo que utilicemos, es posible que tengamos que realizar la instalación de ciertas librerías para que los scripts de Python funcionen correctamente

sudo apt-get install python-is-python3

sudo apt-get -y install python3-rpi.gpio

Los siguientes scripts que manejan los eventos provocados por la pulsación del botón colocado entre el pin 5 y 6 han sido copiados de la página 

Soloelectronicos.com

 Crearemos un archivo ejecutable para Python que llamaremos listen-for-shutdown.py

sudo nano listen-for-shutdown.py

Copiaremos el siguiente script el archivo que hemos creado y guardaremos su contenido


#!/usr/bin/env python


import RPi.GPIO as GPIO

import subprocess



GPIO.setmode(GPIO.BCM)

GPIO.setup(3, GPIO.IN, pull_up_down=GPIO.PUD_UP)

GPIO.wait_for_edge(3, GPIO.FALLING)


subprocess.call(['shutdown', '-h', 'now'], shell=False)

 

Seguidamente moveremos el archivo a la carpeta /usr/local/bin/

sudo mv listen-for-shutdown.py /usr/local/bin/

Y le daremos atributos de ejecución

sudo chmod +x /usr/local/bin/listen-for-shutdown.py

Si tenemos nuestra Raspberry en stand-by, bien por que la hemos apagado desde la línea de comandos o desde nuestro botón de apagado. También es posible encenderlo desde el mismo botón, para ello crearemos un nuevo archivo. 

sudo nano listen-for-shutdown.sh

Y copiaremos y guardaremos el siguiente código:


 #! /bin/sh


### BEGIN INIT INFO

# Provides:          listen-for-shutdown.py

# Required-Start:    $remote_fs $syslog

# Required-Stop:     $remote_fs $syslog

# Default-Start:     2 3 4 5

# Default-Stop:      0 1 6

### END INIT INFO


# If you want a command to always run, put it here


# Carry out specific functions when asked to by the system

case "$1" in

  start)

    echo "Starting listen-for-shutdown.py"

    /usr/local/bin/listen-for-shutdown.py &

    ;;

  stop)

    echo "Stopping listen-for-shutdown.py"

    pkill -f /usr/local/bin/listen-for-shutdown.py

    ;;

  *)

    echo "Usage: /etc/init.d/listen-for-shutdown.sh {start|stop}"

    exit 1

    ;;

esac


exit 0

 

Una vez guardado moveremos el archivo a la carpeta  /etc/init.d/

sudo mv listen-for-shutdown.sh /etc/init.d/

Y le concederemos privilegios de ejecución:

 sudo chmod +x /etc/init.d/listen-for-shutdown.sh

Ahora registramos la secuencia de comandos para ejecutar en el arranque y le pasaremos el parámetros de arranque con los dos siguientes comandos.

sudo update-rc.d listen-for-shutdown.sh defaults

sudo /etc/init.d/listen-for-shutdown.sh start

En mi caso tenia instalado Ubuntu Server como sistema operativo. Y es posible que al ejecutar el script te aparezcan uno o varios mensajes de error. Si es asi te dejo los articulos que publique para solucionarlos, y que vuestro botón de apagado funcione correctamente.

Mensaje de error /usr/bin/env: ‘python’: No such file or directory

Mensaje de error import RPi.GPIO as GPIO ModuleNotFoundError: No module named 'RPi'


Como borrar las claves almacenadas ssh de un equipo

Al iniciar la conexión ssh con un nuevo servidor, nos advierte que no es de confianza y si queremos almacenar las claves. Esta asociación es almacenada y nos permitirá encriptar las conexiones con el ordenador que queremos conectarnos.

sudo ssh 192.168.100.2 -l enfaseterminal
The authenticity of host '192.168.0.4 (192.168.100.2)' can't be established.
ECDSA key fingerprint is SHA256:EAM0qnIeDoo4cjNdWxkvbiRpc+5TREn4eaJ6+6WvT0U.
Are you sure you want to continue connecting (yes/no)?

En los siguientes inicios de sesion a traves de ssh no nos pedirá esta confirmación de seguridad, por que la asociación ya ha sido almacenada. 
Pero si en algún momento la confianza entre el servidor y el cliente se corrompe. La conexión no será posible.


@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@                                   WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!                                                              @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.


Por una reinstalación del equipo o una actualización del sistema....., la clave maestra se modificara, y por lo tanto no coincidirá con la que nuestro cliente tiene almacenada, y por lo tanto la conexión ya no será segura, y no se permitirá. Esto requiere por nuestra parte una doble confirmación.
Tendremos que almacenar los datos almacenados de nuestro servidor.

Primero tendremos que borrar de la base de datos la dirección ip y la clave maestra a ella asociada.

sudo ssh-keygen -f "/root/.ssh/known_hosts" -R "192.168.100.2"

Y nos responderá, la dirección ip del servidor ha sido encontrada y borrada del almacén y archivo actulizado. Pero por si fuera necesario se ha guardado una copia del original.

 # Host 192.168.100.2 found: line 2
/root/.ssh/known_hosts updated.
Original contents retained as /root/.ssh/known_hosts.old

Y Segundo, al volver a conectar nos pedirá confirmación para almacenar el servidor SSH  y su clave SHA256.

sudo ssh 192.168.100.2 -l enfaseterminal
The authenticity of host '192.168.0.4 (192.168.100.2)' can't be established.
ECDSA key fingerprint is SHA256:EAM0qnIeDoo4cjNdWxkvbiRpc+5TREn4eaJ6+6WvT0U.
Are you sure you want to continue connecting (yes/no)?

Temas relacionados:


 

Conectar a servidor base de datos MariaDB

Puede ser el caso que además de gestionar una base de datos SQL en local, necesitamos gestionarla en remoto. En la mayoría de los servidores de hospedaje web, no nos permiten conectarnos a la servidor de base de datos en remoto, tenemos que hacerlo en local. Una de las herramientas más utilizadas es PhpMyAdmin. Este caso en concreto he instalado un servidor de base de datos MariaDB Server en una Raspberry. Tengo muy oxidado el lenguaje SQL como para acceder al servidor a través de SSL y realizar todas las tareas de instalación de rablas y mantenimiento desde el cliente de MariaDB. Quiero gestionarla en un entorno más amigable, pero no quiero instalar a mayores un servidor Apache con PHP para poder utilizar PhpMyAdmin.

Logo MariaDBMariaDB  es un sistema de gestión de bases de datos derivado de MySQL con licencia GPL (General Public License). Es desarrollado por Michael (Monty) Widenius —fundador de MySQL—, la fundación MariaDB y la comunidad de desarrolladores de software libre.1​ Introduce dos motores de almacenamiento nuevos, uno llamado Aria —que reemplaza a MyISAM— y otro llamado XtraDB —en sustitución de InnoDB—. Tiene una alta compatibilidad con MySQL ya que posee las mismas órdenes, interfaces, API y bibliotecas, siendo su objetivo poder cambiar un servidor por otro directamente.
Aunque el tutorial es para MariaDB, este puede ser extensible si así fuera un servidor de MySQL.

De forma predeterminada y por seguridad no permiten el acceso remoto, solo se permite acceso atraves de localhost.

Una vez instalada el servidor y el cliente en nuestra distribución. Aseguramos la instalación lanzando el comando:

sudo mysql_secure_installation 

Enter current password for root (enter for none): Pulsa enter
 Introduzca la contraseña actual para root (ingrese para none): Pulse Enter
 Set root password? [Y/n]: Y
 ¿Establecer contraseña del root? [Y/n]: Y
 New password: Enter password
 Nueva contraseña: Introduzca contraseña
 Re-enter new password: Repeat password
 Reescribir nueva contraseña: Repetir contraseña
 Remove anonymous users? [Y/n]: Y
¿ Borrar usuarios anónimos? [Y/n]: Y
 Disallow root login remotely? [Y/n]: Y
¿No permitir el acceso al root desde remoto? [Y/n]: Y
 Remove test database and access to it? [Y/n]:  Y
 ¿Borrar Bases de datos Test y su acceso? [Y/n]: Y
 Reload privilege tables now? [Y/n]:  Y
 ¿Recargar privilegios a las tablas ahora? [Y/n]: Y

No vamos a permitir al root acceder desde remoto, no es considerado de una buena praxis de seguridad que el administrador se pueda conectar en remoto. Por el contrario vamos a crear un usuario nuevo y le vamos a dar privilegios de acceso desde remoto. En este caso indicaremos que el usuario se puede conectar desde cualquier equipo de nuestra LAN. Con 192.168.100 indicamos que subred se puede conectar usando el carácter % como comodín para indicarle que cualquier equipo de esta. También podríamos limitar aun más indicando la dirección ip del equipo desde el que únicamente puede acceder en remoto. Creando un entorno aun más seguro

CREATE USER 'nuevo usuario'@'192.168.100.%';
 
GRANT ALL PRIVILEGES ON *.* TO 'nuevo usuario'@'192.168.100.%' IDENTIFIED BY 'nueva contraseña' WITH GRANT OPTION;

Seguidamente configuraremos de forma manual, no solo el acceso en local, si no el acceso en remoto.
Deberemos localizar los archivos de configuración de MySQL o de MariaDB.
  • /etc/my.cnf                         
  • $MYSQL_HOME/my.cnf
  • /etc/mysql/my.cnf                      
  • SYSCONFDIR/my.cnf                     
  • DATADIR\my.ini                           Windows
Editando el archivo de configuración /etc/mysql/my.cnf

sudo nano /etc/mysql/my.cnf
 

# The MariaDB configuration file
#
# The MariaDB/MySQL tools read configuration files in the following order:
# 1. "/etc/mysql/mariadb.cnf" (this file) to set global defaults,
# 2. "/etc/mysql/conf.d/*.cnf" to set global options.
# 3. "/etc/mysql/mariadb.conf.d/*.cnf" to set MariaDB-only options.
# 4. "~/.my.cnf" to set user-specific options.
#
# If the same option is defined multiple times, the last one will apply.
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.

#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]

# Import all .cnf files from configuration directory
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mariadb.conf.d/

Nos indica los directorios donde se encuetra el archivo que estamos buscando para editarlo. 50-server.cnf

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Buscaremos la sección [mysqld]  donde editaremos los valores que nos permitan conexiones externas. Este es un ejemplo real de configuración que me ha permitido conectarme al servidor desde otro equipo.

[mysqld]

#
# * Basic Settings
#
user                    = mysql
pid-file                = /run/mysqld/mysqld.pid
socket                  = /run/mysqld/mysqld.sock
port                    = 3306
basedir                 = /usr
datadir                 = /var/lib/mysql
tmpdir                  = /tmp
lc-messages-dir         = /usr/share/mysql
#skip-external-locking

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address            = 127.0.0.1
bind-address            = 0.0.0.0

.......................................................

 # * Security Features
#
# Read the manual, too, if you want chroot!
#chroot = /var/lib/mysql/
#
# For generating SSL certificates you can use for example the GUI tool "tinyca".
#
#ssl-ca = /etc/mysql/cacert.pem
#ssl-cert = /etc/mysql/server-cert.pem
#ssl-key = /etc/mysql/server-key.pem
#
# Accept only connections using the latest and most secure TLS protocol version.
# ..when MariaDB is compiled with OpenSSL:
ssl-cipher = TLSv1.2
# ..when MariaDB is compiled with YaSSL (default in Debian):
#ssl = on

Te explico de forma más detallada las lineas a editar para un correcto funcionamiento. 

  •  port                    = 3306 Es el puerto por defecto, no es necesario cambiarlo, pero si fuera necesario podríamos especificar otro puerto de accesos.
  • #skip-external-locking Comentamos esta linea para permitir que el servidor sea accesible desde el exterior. Comentamos añadiendo el carácter #
  • #bind-address            = 127.0.0.1 Tambien aañadimso el caracter # para comentar esta linea.
  • bind-address            = 0.0.0.0 Añadiremos una linea con los parametros indicados.
  • ssl-cipher = TLSv1.2 Esta parte hay que tenerla en cuenta si tenemos problemas a la hora de concetar con los certificados. Al utilizar OpenSSL descomentamos esta linea
  • #ssl = on Y comentamos esta otra. Que era la que estaba activa de forma predeterminada pero, que en mi caso no me permitía conectarme.
Una vez modificado las lineas señalas. Guardamos y salimos del editor de textos. Y reiniciamos el servicio.

sudo systemctl restart mariadb.service

Tenemos que tener en cuenta, si en nuestro servidor, tenemos instalado y corriendo un cortafuegos, debemos permitir las conexiones a través del puerto 3306, si lo hemos dejado por defecto, o el puerto que asignemos al servicio. Para añadir el permiso abrir el mencionado puerto utlizando ufw seria:

sudo ufw allow 3306/tcp

Y si solo vamos a permitir el acceso en remoto a un equipo, con una dirección ip en concreto:

 sudo ufw allow from 192.168.100.2 to any port 3306

Servicio multimedia con Plex

Una alternativa para organizar nuestros archivos multimedia es instalando un servidor Plex. Plex es un software privativo, que podremos utilizar de forma gratuita con algunas limitaciones, para embellecer nuestra bibilioteca multimedia y añadir portadas y metadatos, que si utilizamos un servidor DLNA Por ejemplo en el cliente para Smartphone solo nos permite ver un minuto en streaming. En este caso vamos a instalar su servidor en una Raspberry en la que hemos conectado un disco duro, donde se encuentran alojados nuestros archivos. Pero también podremos instalarlo en nuestro ordenador o en un NAS. Esta aplicación es multiplataforma y es posible instalar el servidor y/o su cliente en múltiples dispositivos y plataformas. La APP se encuentra disponible en el catálogo de las principales Smart TV.




Para tener la garantía de que nuestro servidor se encuentre actualizado en todo momento, añadiremos su repositorio en en nuestra lista.

echo deb https://downloads.plex.tv/repo/deb public main | sudo tee /etc/apt/sources.list.d/plexmediaserver.list

Añadiremos las fimras del nuevo repositorio
 
curl https://downloads.plex.tv/plex-keys/PlexSign.key | sudo apt-key add

Refrescaremos las lista de repositorios:

 sudo apt-get update

Y una vez que acabe la operación de actualización realizaremos la instalación de nuestro servidor Plex

 sudo apt-get install plexmediaserver

Instalar Plex server
 
Al final de la instalación nos pedira confirmación para reescribir el archivo que hemos creado al principio donde incluimos donde se encuentra los repositorios de Plex. Confirmaremos la acción por omisión que sera N.

Y ya tendremos  instalado nuestro servidor multimedia. La configuración la realizaremos desde el servicio web creado por le servidor.


En tudireccionip pondremos la dirección ip donde hemos instalado nuestro servidor multimedia Plex.



 La utilización de Plex requiere el registro de una cuenta. Si disponemos de ella podemos vincularlo a nuestro servidor, si no es asi deberemos crear una cuenta nueva.




Nos recuerdan que podremos aumentar las prestaciones si pagamos por el servicio premium.




Daremos nombre a nuestro servidor y añadiremos bibliotecas vinculadas a las carpetas donde se encuentren nuestros archivos mutiltimedia. Caundo más organicemos seamos más elegante será nuestra biblioteca y más facil sera acceder a aquello que queremos reproducir.




Hay muchas opciones de configuración, que resulta muy interesante de investigar para sacarle el maximo rendimiento. Al vincular nuestra cuenta si queremos volver a la configuración de nuestro servidor, podemos volver desde el navegador a través de l a dirección web

 
Ya solo nos quedaría instalar el cliente de Plex en nuestro reporductor multimedia y disfrutar de nuestra biblioteca.