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

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.



Raspberry Pi Imager

Nueva forma para poder instalar en nuestra Raspberry el sistema basado en Debian. U otro sistema operativo compatible con este popular pequeño ordenador.
La nueva forma de implementar nuestro sistema operativo en la tarjeta micro-sd es mucho más sencilla y más limpia que utilizando NOOBS


Instalaremos nuestro instalador de imágenes en nuestro ordenador y montaremos la micro-sd, formateada con el sistema FAT32, sobre la que queremos montarla.

 Raspberry Pi Imager

Elegiremos el sistema operativo dentro del catalogo propios o de terceros. Sin necesidad de realizar ninguna descarga.

Catalogo sistemas operativos

O también podemos instalar otra imagen que nos resulte útil con el formato img compatible con la arquitectura ARM 

Utilidades

El proceso de instalación resulta muy sencillo y efectivo. En pocos minutos tendremos nuestro sistema operativo, servidor corriendo en nuestra Raspberry

Proceso de instalación

Instalación finalizada

Pi-Hole Aumentando nuestra seguridad y privacidad

Un servidor DNS es aquel que nos da información de la dirección ip (números raros, pero fundamentales para la comunicación a través de internet) donde se encuentra el dominio que hemos escrito en nuestro navegador.

ping google.es

En el caso que queramos acceder a www.google.es, nuestro navegador solicitará a un servidor DNS que dirección tiene este dominio y donde se encuentra
Dominio www.google.es Dirección IP 172.217.168.163

 Pi-Hole es: Bloqueo de anuncios en toda la red Pi-hole®

Página web Pi-Hole

La idea es que nuestros dispositivos realicen las peticiones DNS a Pi-Hole y este filtre las direcciones que resulten dañinas y/o contienen publicidad. Y realice la petición de las direcciones a un servidor principal siempre y cuando no se encuentre registrado en su caché acelerando el tiempo de carga de la solicitud.
En definitiva este servidor DNS caché "casero" nos filtrará el contenido publicitario, muchas veces molesto, y acelerará la carga de las páginas que vemos habitualmente en nuestro navegador.

En este caso instalaremos Pi-Hole en una Raspberry para todos los dispositivos que tenemos en casa se conecten a nuestro filtro de publicidad.

Teniendo en cuenta que nuestra Raspberry tenga una dirección estática accederemos a su terminal a través del protocolo ssh y ejecutaremos el comando
curl -sSL https://install.pi-hole.net | bash
Lanzará la instalación

Instalando Pi-Hole



Advertencia instalación


  • Nos advierte que nuestro servidor ha de tener una dirección estática.


Dirección estática servidor Pi-Hole


  • Nuestro servidor ha de solicitar la informador a un DNS primario, en este apartado elegiremos uno de la lista.Yo os recomendaría Quad9. Servidor DNS creado por IBM, que nos ofrece una alta velocidad de resolución de peticiones, no guardará registro y bloqueará direcciones peligrosas


Servidores DNS

En https://firebog.net/ podremos encontrar más catalogos de blacklist. Si nos bloquean el acceso de una pagina y consideramos que no es maliciosa, siempre podremos incluirla en la whitelist.


Servidores listas negras de páginas publicidad

  • Que versión de IP, ipv4 ipv6, queremos que sean filtradas. Lo más normal es dejar marcadas las dos, nos filtrará las direcciones ip antiguas y las que puedan incorporarse en un futuro.


Filtrar ipv4 ipv6

  • ¿Deseamos instalar el interface de administración web? Es recomendable para una administración más visual y nos permite ver estadísticas de páginas permitidas y bloqueadas por cada dispositivo que se conecte a nuestro servidor DNS.


¿Deseamos instalar el interface de administración web?
¿Instalar lighttpd necesario para el interface web?


  • ¿Crear un archivo log con todos los eventos y errores que ocurran?




  • Definir el tipo de privacidad. Puede que no estés interesado en saber o que otras personas sepan qué páginas visitas y las navegaciones queden registradas.


Definir privacidad


  • Información final sobre la dirección DNS, donde se van a guardar el registro de eventos y, en qué dirección se encuentra la administración web del servidor que hemos creado: http://pi.hole/admin y su contraseña inicial que podremos cambiar más adelante.



Ya tendremos nuestro servidor DNS caché instalado. Solo nos quedaría cambiar las direcciones DNS de los dispositivos que queramos proteger y/o filtrar a nuestro recién instalado servidor Pi-Hole


Nuestros equipos quedarán protegidos y mucha de la publicidad que se muestra en páginas web y videos a partir de ahora no se mostrará. En mi caso 9,4% de las peticiones web que se realizan mientras navego han sido bloqueadas, menos publicidad más privacidad.


Bloqueo de anuncios en toda la red Pi-hole®