Categorías
Debian Linux

Linux no arranca grub_calloc error

En una de las pasadas actualizaciones de Debian 10, había un error que estropeaba el grub2 con lo que el equipo ya no arrancaba y además daba el siguiente error. «symbol ‘grub_calloc’ not found»

El modo de solucionarlo, es sencillo, pero laborioso a la vez, aquí os dejo una guía de como hacerlo.

1.- Debeis arrancar el sistema en modo rescue o un linux en modo live. Normalmente tendreis que utilizar un pen de instalación de Debian u otra distribución. En mi caso como tenia instalado un debian 10, lo hice con el mismo usb de la instalación, pero una vez en el menú de instalación, en vez de elegir la típica instalación, elegís «Advanced options«

2.- Luego la opción «Graphical Rescue Mode«

3.- A continuación os mostrará, varias pantallas para elegir idioma, donde podeis elegir spanish para español (en la imagen está english, debereis bajar más abajo hastallegar a Spanish)

4.- Configuración de ubicación, también elegiremos españa (o el país donde os encontreis, tampoco es muy importante)

5.- Ubicación de teclado, elegiremos español (o la distribución de teclado que realmente tengais)

6.- Lo mejor es quitar el cable, para evitar que el sistema busque la red (ya que no nos va a hacer falta). Sino es posible, elegir la opción de no configurar ahora la red.

Configuración de la red, lo podemos dejar por defecto, no tiene trascendencia ya que es un valor temporal. Lo más normal es que nos ponga algo como debian o similar.

7.- Configuración del reloj, dejamos península o elegimos el que corresponda, no tendrá mayor trascendencia.

8.- Acceder al modo rescate, este paso si es importante, puesto que vamos a elegir el dispositivo (realmente la partición) que se va a utilizar como sistema de ficheros raiz. Deberiamos de saber de antemano cual es pero en la mayoría de casos será el /dev/sda1 por lo que en nuestro caso lo dejaremos por defecto.

9.- Luego abriremos la consola eligiendo «Ejecutar un intérprete de órdenes en /dev/sda1» ya que hemos elegido sda1 como nuestro dispositivo.

10.- Nos mostrará un aviso de que va a montar /dev/sda1 en / y que abrirá allí la consola. Le daremos a continuar.

11.- Ahora viene el meollo del asunto. Debermos escribir el siguiente comando.

grub-install –root-directory=/ /dev/sda

Dicho comando hará lo siguiente: volverá a instalar el grub(encargado del arranque) en el dispositivo sda, y como root directory /. Si todo sale ok, os saldrá un mensaje diciendo «Instalación terminada. No se notificó ningun error«. A continuación ya podeis salir para reiniciar. No lo hagais como yo poniendo reboot(sino os dará ese tonto error 😉), sino que teneis que salir poniendo exit.

12.- Al poner exit os lleva a la última pantalla, donde le podeis dar a «Reiniciar el sistema» (acordaros de quitar el pen usb) y ya podeis reiniciar para que arranque el sistema sin problemas.

Espero que os sirva de ayuda, dejad vuestros comentarios.

Categorías
Debian Linux

Como Configurar TLS para Pureftp en Debian

El servicio FTP es bastante inseguro, sobre todo si lo instalamos en modo «plano», es decir sin encriptar. De este modo, estamos pasando por internet las credenciales (usuario y password), en plano, y por lo tanto cualquier «hacker», nos las podría robar.

Para evitarlo, vamos a dotar a nuestro servidor basado en pureftp de la tecnologia TLS de modo que las credenciales, y los datos, se transmitan en modo encriptado.

En esta entrada, suponemos que tenemos el pureftp ya instalado en nuestro sistema Debian o derivado.

Instalar el OpenSSL

El primer paso seria instalar el openssl(si no lo hemos hecho ya), asi que simplemente habria que escribir desde el terminal

apt-get install openssl

Una vez instalado el openssl, deberemos configurar nuestro servidor pureftp, para que acepte conexiones encriptadas.

Configurar servidor pureftp

Aquí tenemos dos opciones:

Aceptar FTP sin encriptar(plano) y con TLS. De modo que aceptariamos conexiones seguras e inseguras a la vez. Para ello pondriamos en el terminal

echo 1 > /etc/pure-ftpd/conf/TLS

O, la opción mas segura que nuestro server solo acepte conexiones encriptadas.

echo 2 > /etc/pure-ftpd/conf/TLS

Creación del certificado

Para poder establecer las comunicaciones de manera encriptada, necesitaremos un certificado con el cifrar las transmisiones, el modo mas sencillo y economico, es crearnos nuestro propio certificado, ya que es rápido y gratuito.

Primero crearemos el directorio donde lo vamos a alojar(podemos omitir este paso si ya está creado)

mkdir -p /etc/ssl/private/

Ahora ya podemos crear nuestro certificado con la siguiente instrucción

openssl req -x509 -nodes -days 730 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

Con la instrucción anterior hemos creado un certificado en el directorio /etc/ssl/private con el nombre pure-ftpd.pem con validez para 730 dias (2 años). Al ejecutar la instrucción nos hara una serie de preguntas como veremos en la imagen de mas abajo.

Por último, como podreis ver al final de la imagen anterior, solo nos quedara, dar permisos de lectura al propietario con la instrucción

chmod 600 /etc/ssl/private/pure-fptd.pem

Y reiniciar el servicio del FTP para que coja los cambios

/etc/init.d/pure-ftpd restart

Como podreis comprobar si os conectais a vuestro server, ahora las conexiones ya son encriptadas.

Conexión al server FTP mediante TLS

Renovación del certificado

Me han preguntado muchas veces que hacer cuando el certificado ha caducado, puesto que cuando esto ocurre, y nos conectamos al servidor FTP, se muestra un mensaje avisando de que el certificado ha caducado. La conexion seguira encriptandose, pero hace muy mal efecto frente a los demás.

La solución es muy simple, solo habria que crear un nuevo certificado «machacando» el anterior. De modo que las instrucciones serian las siguientes.

openssl req -x509 -nodes -days 730 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

chmod 600 /etc/ssl/private/pure-fptd.pem

/etc/init.d/pure-ftpd restart

Con las tres instrucciones, estamos creando un certificado nuevo, nos aseguramos que es de lectura para el autor y reiniciamos el servicio para que coja el nuevo certificado.

Espero que os haya servido de ayuda. Por favor, dejad comentarios de lo que os ha parecido el artículo.