Información
Actualidad
Aquí encontraras noticias de actualidad sobre Gnu Linux y Open Source.

Además de información sobre la comunidad LiGNUx.
Distribuciones y entornos
Información ordenada sobre los diferenes sistema operativos Gnu Linux y las diferentes opciones de entornos gráficos.
Tutoriales y guías
Todos los pasos e informaciones que puedes desear para tu día a día.
Tutoriales
Tutoriales
Programación
Programación
About Us
Get to know the people behind the code and the mission behind the work
how we handle data
Privacy
Security
Legal

Instalación de Parabola GNU/Linux-libre con énfasis en la privacidad, seguridad y usabilidad.

16 diciembre, 2016

En este tutorial les enseñare a instalar Parabola GNU/Linux-libre totalmente desde 0 solo el puro sistema base, mas adelante intentare hacer otro tutorial instalando el entorno gráfico.

El objetivo de este tutorial es hacer una instalación totalmente libre de blobs binarios y código ofuscado de firmware privativo que tiene por defecto el Kernel GNU/Linux para prevenir esto, Parabola ejecuta el Kernel conocido como Linux-libre (wikipedia).

Ventajas:

  1. Una distribución totalmente libre aprobada por la FSF.
  2. %100 Rolling release con los repositorios de Arch-Linux quitando todo lo que tenga componentes de código cerrado o código ofuscado.
  3. Un repositorio especialmente diseñado para evitar la recolección de información por parte de programas de vigilancia nonprism.
  4. Amplio soporte por parte de la comunidad y aplicaciones modificadas propias como lo es iceweasel-hardened-preferences.

Desventajas (Wikipedia):

La eliminación de controladores privativos del núcleo imposibilita el uso de Linux-libre en hardware que aún no tiene compatibilidad libre, tal como algunas tarjetas de sonido, de vídeo, de red inalámbrica y otros tipos de dispositivos. En los casos en los que sea posible, se incluye controladores libres como substitutos.

Requisitos previos (Hardware):

  • 1 Memoria USB o CD/DVD para grabar la imagen de instalación.
  • 1 Memoria USB mínimo de 500Mb para el archivo mirrorlist.
  • 1 PC funcional con mínimo 3Gb de memoria RAM (64 Bit) o 500Mb de memoria RAM (32 Bit).
  • 1 HDD o SSD funcional de cualquier capacidad.

Comencemos con los pasos previos.

1: Descargar y preparar la imagen del sistema

Para descargar Parabola lo pueden hacer desde su pagina oficial, yo recomiendo que se descargue por P2P (Torrent) esto es debido a que todos los clientes P2P realizan una comprobación de integridad una vez realizada la descarga.

parabola-install-1En este ejemplo yo la descargue con qBittorrent, pero se puede hacer con cualquier cliente P2P jemplo:LibTorrent, Transsmision, uTorent, Ktorrent, etc.
2

Insertamos a nuestra PC las 2 memorias USB que vamos a utilizar.

6

Mientras se descarga la imagen .iso de instalación nosotros entramos a la pagina de Pacman Mirrorlist Generator (Parabola), y generamos una lista como se explica en la siguiente captura, se me olvido poner en la imagen que la IP version debe de ser IPv4.

3

Copiamos y pegamos el resultado en un archivo de texto como se muestra en la siguiente captura, es importante desmarcar el repositorio (quitar el #) del principio de las lineas donde dice #Server para que estas se tomen como validas, el archivo lo guardaremos con el nombre de mirrorlist dentro de una memoria USB con formato FAT32 para que pueda ser usado durante la instalación.

4Una vez descargado el archivo .iso que contiene la imagen del sistema lo grabamos en la otra USB con el siguiente comando:

Para identificar nuestra memoria USB que vamos a usar para la imagen del sistema:

$ lsblk

Para grabar la imagen del sistema el la USB seleccionada:

$ sudo dd bs=4M if=ARCHIVO.iso of=/dev/DESTINO status=progress && sync

7En mi caso me quedo de este modo.

5

Inicio de la instalación del sistema.

Insertamos en nuestro PC las 2 memorias USB y booteamos desde la USB que contenga la imagen de instalación, lo primero que veremos es la pantalla de bienvenida con un menú de varias opciones, seleccionamos la opción según las especificaciones de nuestro equipo y presionamos la tecla Enter.

8Lo siguiente es seleccionar la distribución de el teclado, en las siguientes imágenes se muestran las variaciones del español mas comunes y su comando de configuración.

esla

Definiendo las particiones del disco:

Para este paso usare cfdisk porque es fácil de usar ingresamos el siguiente comando:

# cfdisk

11

En este caso el tamaño del disco de nuestra maquina virtual es 50Gb y el tamaño de la memoria RAM es de 4Gb.

Seleccionamos con las flechas direccionales del teclado la opción New y asignamos un tamaño a la partición como se muestra en la siguiente imagen y presionamos la tecla Enter.

13Estos 5Gb los voy a destinar para la partición de arranque /boot, pero hay quien dice que 1Gb es un exceso yo les recomiendo que le asignen máximo 1Gb y mínimo 500Mb.

Seleccionamos la opción primary.

14Al tratarse de la partición de arranque /boot seleccionamos la opción Bootable como lo muestra la siguiente imagen.

15Lo siguiente es definir la partición raíz / como se muestra la siguiente imagen, es conveniente que la capacidad mínima no sea inferior a 20-15Gb.

16Después de esta definiremos la partición /home que es donde se almacenan los datos de usuario, el tamaño puede variar de usuario a usuario, por lo que no incluí una captura, pero se recomienda asignar el mayor tamaño, dejando espacio para el siguiente paso.

Lo siguiente en un tema un poco controvertido entre los usuarios de GNU/Linux, el tamaño de la partición SWAP esta partición de intercambio almacena la información que no cabe en la memoria RAM, cuando la memoria RAM esta casi llena y en lugar de que el sistema empiece a matar procesos los almacena en la SWAP para su uso posterior, la partición SWAP es muy útil al utilizar la suspencion del sistema.

Hay quien dice que en equipos con más de 4Gb no se debería sobrepasar los 2Gb de SWAP como mucho, pero una vez estaba trabajando con unos archivos un poco pesados y tenia que salir, para no dejar el PC prendido y lo suspendí, mi equipo tiene 16Gb de memoria RAM y tenia 5Gb de partición SWAP, a regresar y activar el equipo este había perdido parte de la información porque no cabía en la RAM ni en la SWAP, aumente la partición SWAP a 16Gb y ya no tuve mas problemas.

Analizando lo mencionado anteriormente recomiendo que la cantidad de partición SWAP sea igual a la de la memoria RAM.

En este caso la maquina virtual cuenta con 4Gb de memoria RAM, por lo tanto la partición SWAP sera de 4Gb.

17Cuando tengamos que seleccionar una de estas dos opciones seleccionaremos la opción extended esto es debido a que el disco tiene una tabla de particiones MBR que solo soporta 3 particiones primarias.

18Y repetimos el proceso anterior.

19Una vez asignado el tamaño de la partición SWAP seleccionamos la opción Type y a continuación la opción 82 Linux SWAP /Solaris.

2021Seleccionamos la opción Write escribimos en minúsculas yes.

2223Y por ultimo salimos de cfdisk seleccionando la opción Quit.

24Este fue el resultado final de el proceso de partición del disco.

25Formateo de particiones.

En este paso procederemos a formatear las particiones de el disco, en todas las particiones se utilizara el formato ext4 debido a que es el que mejor estabilidad tiene, para formatear una partición ejecutaremos el siguiente comando:

# mkfs -t ext4 /dev/PARTICION

26

Para la partición SWAP utilizaremos el siguiente comando:

# mkswap /dev/PARTICION

27

Procedemos a activar la partición SWAP con el siguiente comando:

28

Comenzamos por montar la partición raíz / de nuestro sistema con el siguiente comando:

# mount /dev/PARTICION /mnt

29

Después procedemos a crear los puntos de montaje de las particiones /home y /boot.

30

Y montamos las particiones.

31

Buscamos con el comando lsblk a nuestra memoria USB donde guardamos el archivo mirrorlist.

# lsblk

32

En este caso nuestra memoria USB es la /dev/sdb, lo que nos interesa es la partición /dev/sdb1, antes de montarla primero tenemos que saber donde estamos así que ejecutamos el siguiente comando:

# pwd

33

Como podemos ver estamos en /root, procedemos a crear un directorio llamado usb y a montar la memoria como se muestra a continuación.

34

Ingresamos a la carpeta usb y revisamos su contenido.

35

Una vez encontrado el archivo mirrorlist que creamos lo procedemos a mover con el siguiente comando:

mv mirrorlist /etc/pacman.d/

Una vez movido el archivo salimos de la carpeta, desmontamos la memoria USB y borramos el directorio.

36

Ingresamos el siguiente comando para editar los repositorios de pacman e incluir el repositorio [nonprism], una vez dentro solo tendremos que desmarquemos el repositorio (quitar el #) guardamos en archivo con Ctrl + o y salimos con Ctrl + x.

# nano /etc/pacman.conf

79

Una vez hecho lo anterior procedemos a probar nuestra conexión cableada ejecutando el siguiente comando:

# ping -c 3 www.duckduckgo.com

40Procedemos a actualizar las firmas de los paquetes para garantizar la protección de estos y que provienen de los desarrolladores y mantenedores oficiales.

# pacman -Sy parabola-keyring

41Una vez echo lo anterior procedemos a instalar el sistema base ejecutando el siguiente comando:

# pacstrap /mnt base

42

Después instalamos los demás componentes básicos ejecutando los siguientes comandos:

43

44 45

Procedemos a transferir los puntos de montaje a nuestro sistema ejecutando el siguiente comando:

# genfstab -U -p /mnt >> /mnt/etc/fstab

46

Configuración inicial del sistema

Procedemos a ejecutar el entorno chroot para configurar el sistema.

# arch-chroot /mnt

47

Procedemos a ponerle un nombre al equipo ejecutando el siguiente comando:

# echo NOMBRE > /etc/hostname

48

Procedemos a configurar nuestra localización con el siguiente comando:

# ln -s /usr/share/zoneinfo/REGION/CIUDAD /etc/localtime

49

Sincronizamos le reloj de nuestro sistema ejecutando el siguiente comando;

# hwclock --systohc

50

Buscamos y desmarcamos el repositorio (quitar el #) de nuestro local, es importante solo elegir el UTF-8, deberemos de apuntarlo y tenerlo cerca, guardamos con Ctrl + o y salimos con Ctrl + x.

# nano /etc/locale.gen

51

52Procedemos a terminar de configurar nuestro local con lo que apuntamos del comando anterior:

# echo LANG=LOCAL.UTF-8 > /etc/locale.conf

54

Generamos nuestro archivo local ejecutando el siguiente comando:

# locale-gen

55

Procedemos a configurar la distribución de nuestro teclado en la consola, KEYMAP= es (Español españa), KEYMAP=la-latin1 (Español Latino América).

KEYMAP=es

56

Lo siguiente es instalar el cargador de arranque Grub con el siguiente comando:

# grub-install /dev/sda

57

Procedemos a ejecutar el siguiente comando para que detecte y configure la imagen de sistema:

# grub-mkconfig -o /boot/grub/grub.cfg

58

Continuamos generando la ramdisk del sistema ejecutando el siguiente comando:

# mkinitcpio -p linux

59

Finalizamos el proceso de instalación y pre-configuracion definiendo un password para el usuario root ejecutando el siguiente comando:

# passwd

60

Salimos del entorno de emulación chroot ejecutando el siguiente comando:

# exit

61

Desmontamos el sistema de archivos ejecutando el siguiente comando:

# umount -R /mnt

62

Por ultimo paso procedemos a reiniciar el sistema ejecutando el siguiente comando:

# reboot

63

Configuración interna del sistema.

Una vez realizada la instalación y pre-configuracion de manera exitosa procederemos a configurar algunos puntos básicos para prevenir vulnerabilidades en nuestro sistema, al iniciar veremos una pantalla de login e ingresaremos el password de root.

64

Procedemos a ejecutar el comando lsblk para asegurarnos de que los puntos de montaje se establecieron de manera correcta:

# lsblk

65

Hardening básico del sistema:

Restringir los accesos al log del Kernel.

Los logs del kernel contienen información importante como hash de contraseñas e información sensible sobre direcciones de memoria generalmente los logs del kernel están disponibles para algunas aplicaciones no root, ya que sirven para detectar errores en Kernel y solucionar problemas, pero lo que vamos a hacer con el siguiente comando es definir que unicamente root pueda acceder a los logs del Kernel:

# echo "kernel.dmesg_restrict = 1" >> /etc/sysctl.d/50-dmesg-restrict.conf

66Reforzar SystemD:

En este paso procederemos a reforzar SystemD en lo que concierne al manejo de logs:

Lo que haremos primero sera establecer un periodo de terminación mas rápido para los procesos ejecutando el siguiente comando:

# echo "DefaultTimeoutStopSec=5s" >> /etc/systemd/system.conf

68Después procedemos a delimitar la cantidad máxima de tamaño que se usara para guardar el registro, con 500Mb debe de ser mas que suficiente:

# echo "SystemMaxUse=500M" >> /etc/systemd/journald.conf

67

Este paso es el mas importante, consiste en deshabilitar el volcado de SystemD, este paso es crucial debido a que un volcado de núcleo contiene datos sobre todo lo que ejecuta el sistema, la ultima vez que revise un volcado de núcleo a mediados del año en curso, me encontré que tenia información sensible e incluso uno que otro password sin cifrar, el volcado de núcleo no es de utilidad para el usuario común, pero esta activo por defecto para uso de los desarrolladores que programan SystemD.

El volcado de núcleo se deshabilita ejecutando el siguiente comando:

69 70

Protección de ataques DOS de ping.

Una de las bromas mas básicas para cortarle el acceso de Internet a una persona es realizar un ataque DOS de ping sobre la red local, para evitar ser victimas procederemos a ejecutar el siguiente comando para ignorar los ping que manden hacia nuestro sistema.

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

Configuración de usuarios:

Para configurar el comando sudo un error de principiante es editar el archivo directamente con nano, incluso cuando el mismo archivo dice explícitamente al inicio que no se edite directamente.

Para editar el archivo sudoers ejecutaremos el comando propio del archivo:

# visudo

71

Desmarcamos la opción de la siguiente imagen situando el cursor sobre el # y después presionando la tecla x y para guardar presionamos la tecla : y escribimos wq, después presionamos la tecla Enter.

72

Procedemos a añadir a nuestro usuario y establecer sus respectivos grupos ejecutando el siguiente comando, el nombre de usuario puede contener números y debe de ser escrito en letras minusculas:

# useradd -m -g users -G wheel,power,storage,,video,audio,lp,optical,scanner,games -s /bin/bash USUARIO

73

Lo siguiente es establecer un password para el usuario ejecutando el siguiente comando:

# passwd USUARIO

74

Después procedemos a configurar la información de finger de usuario ejecutando el siguiente comando:

# chfn USUARIO

75

Aquí les muestro un ejemplo de como rellenar la información.

76

Iniciando el demonio de red y actualizando el sistema.

Para iniciar el demonio de red NeworkManager es necesario ejecutar los siguientes comandos:

77Antes de actualizar el sistema procedemos a configurar los repositorios ejecutando el siguiente comando y desmarcando el siguiente repositorio:

# nano /etc/pacman.conf

78

79

Por ultimo actualizamos el sistema ejecutando el siguiente comando:

# pacman -Syyu

80

Notas finales.

Con esto concluimos la instalación de nuestro sistema %100 libre, este tutorial esta echo para demostrar la configuración básica pero se puede mejorar añadiendo estas opciones:

  • Kernel linux-libre-grsec.
  • Cifrado total de particiones.

Estas opciones mencionadas no fueron añadidas al tutorial por su complejidad y debido a que alargarían mas el presente tutorial, en un un futuro cercano tal vez se haga un nuevo tutorial explicando la implementación de estas opciones.

Esta instalación se realizo en una maquina virtual, pero yo instale este sistema en mi equipo principal que cuenta con las siguientes especificaciones:

Escrito por ZZAZZ

Entidad cibernética demoníaca extra-dimensional, paranoico, crypto-punk, apasionado por la seguridad informática, hacktivista de medio tiempo y usuario de GNU/inux y OpenBSD.

Suscribirse
Notificarme las
guest
10 Comentarios
Los más recientes
Los más antiguos Más votados
Feedbacks en línea
Ver todos los comentarios
LiGNUx trabaja sobre una licencia de Creative Commons Reconocimiento 4.0 Internacional.
cloudflagpaperclipprinterfile-emptyfilm-playcamera-videopicturelaptop-phonebriefcasecrossmenu
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram