====== Instalación de Hyperbola GNU/Linux-libre con cifrado de disco completo (incluido /boot) ====== Esta guía explica cómo instalar **Hyperbola GNU/Linux-Libre**, con **cifrado completo del disco**, incluido /boot (el directorio de inicio). En la mayoría de los sistemas, /boot debe dejarse sin cifrar, mientras que las otras particiones están cifradas. Esto es para que GRUB (y por lo tanto el kernel) se pueda cargar y ejecutar, porque la mayoría del firmware no puede abrir un volumen LUKS; sin embargo, con Libreboot, GRUB ya está incluido como una carga útil, por lo que incluso /boot se puede cifrar; esto protege a /boot de la manipulación por parte de alguien con acceso físico al sistema. Esta guía es solo para la carga útil de GRUB. Si usa la carga útil de carga de profundidad, ignore esta sección por completo. Esta guía se ha utilizado para quienes son nuevos en nuestro sistema; consulte [[es:manual:beginners|sección para principiantes]] para obtener una descripción general. ===== Requerimientos Mínimos ===== Puede encontrar los requisitos mínimos para ejecutar **Hyperbola GNU/Linux-libre** en la [[es:project:downloads#requisitos_de_hardware|página de descarga]]. ===== Preparación ===== ==== Descarga la imagen en vivo ==== Para esta guía estamos usando la versión **Milky Way**, la imagen en vivo está disponible en la [[es:project:downloads#imagen_en_vivo_de_hyperbola|página de descarga]]. Nunca debes copiar y pegar ciegamente ningún comando. En esta guía, copiar y pegar es asegurarse de que no se cometan errores al ingresar los comandos, para que no bloquee la instalación de manera efectiva y tenga que comenzar de nuevo. Es importante entender qué hace cada comando antes de usarlo, así que asegúrese de leer la página de manual. Solo elige [[es:project:downloads#imagen_en_vivo_de_hypertalking|Imagen en vivo de Hypertalking]], si eres ciego o tienes una discapacidad visual ==== Elija el dispositivo de instalación ==== Consulte la guía para principiantes, para encontrar y elegir el dispositivo de instalación adecuado, si está utilizando un [[es:manual:beginners#graba_la_imagen_en_tu_disco_optico|disco óptico]], o en una [[es:manual:beginners#escribe_la_imagen_en_tu_usb|unidad USB]]. ==== Iniciar el entorno de instalación de Hyperbola ==== Después de descargar la ISO y crear algún tipo de medio de arranque, deberá iniciar la imagen en vivo. Si no está seguro de cómo hacerlo, consulte [[es:manual:beginners#descarga_y_verifica_la_imagen_en_vivo|cómo iniciar un instalador de GNU/Linux]], y continúe con el siguiente paso; de lo contrario, simplemente vaya al siguiente paso. ===== Configuración de la distribución del teclado ===== Para comenzar la instalación, primero debe seleccionar la [[es:manual:reference_installation#diseno_del_teclado|distribución del teclado]] ===== Establecer una conexión a Internet ===== También deberá [[https://wiki.hyperbola.info/doku.php?id=es:guide:installation#conectar_a_internet|configurar una conexión de red]], para instalar los paquetes. ===== Preparando el dispositivo de almacenamiento para la instalación ===== Debe preparar el dispositivo de almacenamiento que utilizaremos para instalar el sistema operativo. Puede usar el mismo [[es:manual:beginners#escribe_la_imagen_en_tu_usb|nombre del dispositivo]] que usó anteriormente, para determinar el dispositivo de instalación para el ISO. ==== Limpie el dispositivo de almacenamiento ==== Desea asegurarse de que el dispositivo que está utilizando no contiene ninguna copia de texto simple de sus datos personales. Si la unidad es nueva, puede omitir el resto de esta sección; si no es nuevo, entonces hay dos maneras de manejarlo: - Si la unidad no estaba cifrada previamente, bórrela de forma segura con el comando dd; puede elegir rellenarlo con ceros o datos aleatorios; elegí datos aleatorios (por ejemplo, urandom), porque es más seguro. Dependiendo del tamaño de la unidad, esto podría llevar un tiempo completar: #dd if=/dev/urandom of=/dev/sdX; sync - Si la unidad se cifró previamente, todo lo que debe hacer es borrar el encabezado LUKS. El tamaño del encabezado depende del modelo específico del disco duro; Puede encontrar esta información haciendo una investigación en línea. Consulte este [[https://www.lisenet.com/2013/luks-add-keys-backup-and-restore-volume-header/|artículo]], para obtener más información acerca de los encabezados LUKS. Puede rellenar el encabezado con ceros o con datos aleatorios; otra vez, elegí datos aleatorios, usando urandom: # head -c 3145728 /dev/urandom > /dev/sdX; sync Además, si estás usando un SSD, hay dos cosas que debes tener en cuenta: * Hay problemas con TRIM; no está habilitado de forma predeterminada a través de LUKS, y hay problemas de seguridad, si lo habilitas. Consulte [[https://wiki.archlinux.org/index.php/Dm-cryptSpecialties#Discard.2FTRIM_support_for_solid_state_drives_.28SSD.29|esta página]] para obtener más información. * Asegúrese de leer [[https://wiki.archlinux.org/index.php/Solid_State_Drives|este artículo]], para obtener información sobre la gestión de SSD en **Arch GNU/Linux** (la información se aplica a **Hyperbola**, también). ==== Formateo del dispositivo de almacenamiento ==== Ahora que todos los datos personales se han eliminado del disco, es hora de formatearlos. Comenzaremos creando una partición grande y única en ella, y luego encriptándola usando LUKS. === Crear la partición LUKS === Necesitará el módulo de kernel de mapeador de dispositivos durante la instalación; esto nos permitirá configurar nuestro disco cifrado. Para cargarlo, usa el siguiente comando: # modprobe dm-mod Luego debemos seleccionar el **nombre del dispositivo** de la unidad en la que estamos instalando el sistema operativo; vea el método anterior, si es necesario, para averiguar los nombres de los dispositivos. Ahora que tenemos el nombre del dispositivo correcto, necesitamos crear la partición en él. Para esto, usaremos el comando cfdisk: # cfdisk /dev/sdX - Use las teclas de flecha para seleccionar su partición, y si ya hay una partición en la unidad, seleccione **Delete** y luego **New**. - Para el tamaño de la partición, déjelo como predeterminado, que será la unidad completa. - Verá una opción para **Primary** o **Logical**; elija **Primary** y asegúrese de que el tipo de partición sea **Linux (83)**. - Seleccione **Write**; le preguntará si está seguro de que desea sobrescribir la unidad. - Escribe **yes**, y presiona enter. Aparecerá un mensaje en la parte inferior que le indicará que la tabla de particiones se ha modificado. - Seleccione **Quit**, para regresar a la terminal principal. Ahora que ha creado la partición, es el momento de crear el volumen cifrado en ella, utilizando el comando cryptsetup, como este: # cryptsetup -v --cipher serpent-xts-plain64 --key-size 512 --hash whirlpool --iter-time 500 --use-random --verify-passphrase luksFormat /dev/sdXY Estos son solo los valores por defecto recomendados; Si desea utilizar algo más, o para averiguar qué opciones hay, ejecute man cryptsetup. El tiempo de iteración predeterminado es 2000ms (2 segundos), si no se especifica al ejecutar el comando cryptsetup. Debe establecer un tiempo inferior a este; de lo contrario, habrá un retraso de aproximadamente 20 segundos al arrancar el sistema. Recomendamos 500 ms (0,5 segundos), y esto se incluye en el comando de cryptsetup preparado anteriormente. Tenga en cuenta que el tiempo de iteración es por motivos de seguridad (mitiga los ataques de fuerza bruta), por lo que cualquier cosa inferior a 5 segundos probablemente no sea muy segura. Ahora se te pedirá que ingreses una frase de contraseña; asegúrese de hacerlo seguro. Para la seguridad de la contraseña, la longitud es más importante que la complejidad (por ejemplo, **correct-horse-battery-battery** es más seguro que **bf20$3Jhy3**), pero es útil incluir varios tipos diferentes de caracteres (por ejemplo, mayúsculas/minúsculas, números, caracteres especiales). La longitud de la contraseña debe ser tan larga como sea posible de recordar, sin tener que escribirla o almacenarla en cualquier lugar. Se recomienda el uso del método [[http://world.std.com/~reinhold/diceware.html|diceware]] para generar frases de contraseña seguras (en lugar de contraseñas). === Crear el grupo de volúmenes y los volúmenes lógicos === El siguiente paso es crear dos volúmenes lógicos dentro de la partición cifrada LUKS: uno contendrá su instalación principal y el otro contendrá su espacio de intercambio o swap. Crearemos esto utilizando, el [[https://wiki.archlinux.org/index.php/LVM|Gestor de Volumen Lógico (LVM)]]. Primero, necesitamos abrir la partición LUKS, en /dev/mapper/lvm: # cryptsetup luksOpen /dev/sdXY lvm Entonces, creamos la partición LVM: # pvcreate /dev/mapper/lvm Asegúrese de que se creó la partición: # pvdisplay A continuación, creamos el grupo de volúmenes, dentro del cual se crearán los volúmenes lógicos. Para este ejemplo, llamaremos a este grupo **matrix**. Puedes llamar al tuyo como quieras; Solo asegúrate de recordar su nombre: # vgcreate matrix /dev/mapper/lvm Asegúrese de que se creó el grupo: # vgdisplay Por último, necesitamos crear los volúmenes lógicos en sí mismos, dentro del grupo de volúmenes; uno será nuestro swap, hábilmente llamado **swapvol**, y el otro será nuestra partición root, igualmente ingeniosamente nombrada como **rootvol** - Primero crearemos el **swapvol** (nuevamente, elija su propio nombre, si lo desea). Además, asegúrese de [[http://www.linux.com/news/software/applications/8208-all-about-linux-swap-space|escojer un tamaño de intercambio apropiado]] (por ejemplo, **2G** se refiere a dos gigibytes; cambia esto como mejor te parezca):# lvcreate -L 2G matrix -n swapvol - Ahora, crearemos una sola partición grande en el resto del espacio, para **rootvol**:#lvcreate -l +100%FREE matrix -n rootvol También puede ser flexible aquí, por ejemplo, puede especificar un /boot, un /, un /home, un /var, o un volumen /usr. Por ejemplo, si va a ejecutar un servidor web/mail, entonces desea /var (donde se almacenan los registros) en su propia partición, de modo que si se llena de registros, no bloqueará tu home/ de la computadora portátil (caso de uso típico), solo un root y un swap serán suficientes. Verifique que los volúmenes lógicos fueron creados correctamente: # lvdisplay === Prepare las particiones rootvol y swapvol para la instalación === Los últimos pasos para configurar la unidad para la instalación son convertir **swapvol** en una partición de intercambio activa y formatear **rootvol**. Para convertir **swapvol** en una partición de intercambio, ejecutamos el comando mkswap (es decir, crear swap): # mkswap /dev/mapper/matrix-swapvol Active el **swapvol**, permitiendo que ahora se use como intercambio, usando el comando swapon (es decir, active swap) # swapon /dev/matrix/swapvol Ahora tenemos que formatear **rootvol**, para que esté listo para la instalación; lo hacemos con el comando mkfs (es decir, crear el sistema de archivos). Elegimos el sistema de archivos ext4, pero puede usar uno diferente, depende de su uso: # mkfs.ext4 /dev/mapper/matrix-rootvol Por último, necesitamos montar **rootvol**. Afortunadamente, GNU/Linux tiene un directorio para este propósito: /mnt: # mount /dev/matrix/rootvol /mnt === Crear los directorios /boot y /home === Ahora que ha montado **rootvol**, debe crear las dos carpetas más importantes: /boot y /home; estas carpetas contienen sus archivos de arranque, así como los documentos personales, videos, etc. de cada usuario. Ya que montó **rootvol** en /mnt, aquí es donde debe crearlos; lo hará usando mkdir: # mkdir -p /mnt/home # mkdir -p /mnt/boot También puede crear dos particiones separadas para /boot y /home, pero tal configuración sería para usuarios avanzados, y por lo tanto no se trata en esta guía. Para obtener más información sobre cómo hacer esto, consulte la wiki de Arch en [[https://wiki.archlinux.org/index.php/Partitioning|particiones]]. La configuración de la unidad y las particiones ahora están completas; es hora de instalar Hyperbola. ===== Instalar el sistema base ===== Necesitamos instalar las aplicaciones esenciales para que se ejecute su instalación de Hyperbola; consulte [[es:manual:beginners#instalar_el_sistema_base|Instalar el sistema base]], en nuestro wiki. ===== Generar un fstab ===== El siguiente paso en el proceso, es generar un archivo conocido como fstab; el propósito de este archivo es que el sistema operativo identifique el dispositivo de almacenamiento utilizado por su instalación. En [[es:manual:beginners#generar_un_fstab|la guía para principiantes]] está la instrucción para generar ese archivo. ===== Dentro de Chroot y configurar el sistema ===== Ahora, necesita chroot en su nueva instalación, para completar el proceso de instalación y configuración. **Chrooting** se refiere a cambiar el directorio raíz de un sistema operativo por otro diferente; en este caso, significa cambiar su directorio raíz al que creó en los pasos anteriores, para que pueda modificar los archivos e instalar el software en él, como si fuera el sistema operativo host. Para entrar al Chroot, siga las instrucciones de [[es:manual:beginners#chroot_y_configurar_el_sistema_base|la guía para principiantes]]. ==== Coniguración regional ==== La configuración regional se refiere al idioma que usará su sistema operativo, así como a algunas otras consideraciones relacionadas con la región en la que vive. Para configurar esto, siga las instrucciones en [[es:manual:beginners#lugar|la guía para principiantes]]. ==== Configurando la fuente de la terminal y el teclado ==== Esto determinará la distribución del teclado de su nueva instalación; siga las instrucciones en [[es:manual:beginners#kepmap|la guía para principiantes]]. ==== Configuración de la zona horaria ==== Deberá establecer su zona horaria actual en el sistema operativo; esto permitirá que las aplicaciones que requieren un tiempo preciso funcionen correctamente (por ejemplo, el navegador web). Para hacer esto, siga las instrucciones en [[es:manual:beginners#zona_horaria|la guía para principiantes]]. ==== Configuración del reloj de hardware ==== Para asegurarse de que su computadora tenga la hora correcta, tendrá que configurar la hora en el reloj interno de su computadora. Siga las instrucciones en [[es:manual:beginners#reloj_de_hardware|la guía para principiantes]] para hacer eso. ==== Configurando los módulos del kernel ==== Ahora debemos asegurarnos de que el kernel tenga todos los módulos que necesita para iniciar el sistema operativo. Para hacer esto, necesitamos editar un archivo llamado mkinitcpio.conf. Puede encontrar más información sobre este archivo en la [[https://wiki.archlinux.org/index.php/Mkinitcpio|Arch wiki]], pero para esta guía, simplemente debe ejecutar el siguiente comando. # nano /etc/mkinitcpio.conf Hay varias modificaciones que debemos hacer en el archivo: - Cambie el valor de la línea MODULES sin comentarios a i915. * Esto obliga al controlador a cargarse antes, por lo que la fuente de la consola que seleccionó anteriormente no se borra después de iniciar sesión. * Si está utilizando un **Macbook 2,1** también deberá agregar hid-generic, hid, y hid-apple entre comillas, para que el teclado funcione cuando se le solicite ingresar la contraseña de LUKS. Asegúrese de separar cada módulo por un espacio. - Cambie el valor de la línea HOOKS sin comentarios: # nano /etc/mkinitcpio.conf "base udev autodetect modconf block keyboard keymap consolefont encrypt lvm2 filesystems fsck shutdown" Esto es lo que hace cada módulo: * keymap agrega a initramfs el keymap que especificó en /etc/conf.d/keymaps * consolefont agrega a initramfs la fuente que especificó en /etc/conf.d/keymaps * lvm2 agrega soporte LVM a initramfs - necesario para montar las particiones LVM en el momento del arranque * shutdown es necesario según la Arch wiki, para desmontar dispositivos (como LUKS/LVM) durante el apagado Después de modificar el archivo y guardarlo, debemos actualizar el(los) núcleo(s) con la nueva configuración. También instalaremos el paquete [[https://www.hyperbola.info/packages/?q=grub|grub]], que necesitaremos más adelante, para realizar nuestras modificaciones al archivo de configuración de GRUB: # pacman -S grub Luego, actualizamos el núcleo, usando el comando mkinitcpio: # mkinitcpio -p linux-libre-lts ==== Configurando el nombre de host (hostname) ==== Ahora necesitamos configurar el **nombre de host** para el sistema; esto es para que nuestro dispositivo pueda ser identificado por la red. Consulte la sección de nombre de host de la [[archive:en:manual:beginner_installation#nombre_de_host|guía para principiantes]]. Puedes hacer el nombre de host como quieras; por ejemplo, si quisiera elegir el nombre de host hyperbola, ejecutaría el comando echo, de la siguiente manera: # echo hyperbola > /etc/hostname Y luego modificaría /etc/hosts así, agregándole el nombre de host: # nano /etc/hosts # 127.0.0.1 localhost.localdomain localhost hyperbola ::1 localhost.localdomain localhost hyperbola ==== Configurar la red ==== Ahora que tenemos un nombre de host, necesitamos configurar los ajustes para el resto de la red, sugerimos usar [[https://www.hyperbola.info/packages/?q=netifrc|netifrc]] para configurar su conexíon cableado/inalámbrica. Consulte el [[https://wiki.gentoo.org/wiki/Handbook:X86/Full/Networking|Gentoo Handbook]] que explica los scripts de netifrc con un alto nivel de detalle. ==== Establecer la contraseña root ==== La cuenta **root** tiene control sobre todos los archivos en la computadora; por seguridad, debemos protegerlo con una contraseña. Los requisitos de contraseña indicados anteriormente, para la frase de contraseña LUKS, también se aplican aquí. Establecerá esta contraseña con el comando passwd: # passwd ==== Ajustes de seguridad extra ==== Hay algunos cambios finales que podemos hacer en la instalación, para hacerla significativamente más segura; estos se basan en la [[https://wiki.archlinux.org/index.php/Security|sección de securidad]] de la wiki Arch. === Fortalecimiento de claves === Debemos abrir el archivo de configuración para configurar la contraseña y aumentar la solidez de nuestra contraseña **root**: # nano /etc/pam.d/passwd Agregue rounds=65536 al final de la línea de "password" sin comentarios. en términos simples, esto forzará a un atacante a tomarse más tiempo con cada conjetura de contraseña, mitigando la amenaza de ataques de fuerza bruta. === Restringir el acceso a directorios importantes === Puede evitar que cualquier usuario, que no sea el usuario root, acceda a los directorios más importantes del sistema mediante el comando chmod. # chmod 700 /boot /etc/{iptables,arptables} Para obtener más información sobre chmod, ejecute: ~ man chmod === Bloqueo de usuario después de tres intentos fallidos de inicio de sesión === También podemos configurar el sistema para bloquear la cuenta de un usuario, después de tres intentos fallidos de inicio de sesión. Para hacer esto, tendremos que editar el archivo /etc/pam.d/system-login, y comentar esta línea: auth required pam\_tally.so onerr=succeed file=/var/log/faillog*\ También puedes borrarlo. Por encima de ella, ponga la siguiente línea: auth required pam\_tally.so deny=2 unlock\_time=600 onerr=succeed file=/var/log/faillog Esta configuración bloqueará al usuario durante diez minutos. Puede desbloquear la cuenta de un usuario manualmente, utilizando la cuenta **root**, con este comando: # pam_tally --user *theusername* --reset ==== Generar grub.cfg ==== Edit configuration in /etc/default/grub, remembering to use UUID when pointing to mbr/gpt partition. Use blkid to get list of devices with their respective UUIDs. Next generate grub.cfg with: Edite la configuración en /etc/default/grub, recuerde usar UUID cuando señale la partición mbr/gpt. Utilice blkid para obtener una lista de dispositivos con sus UUID respectivos. Luego genere grub.cfg con: # grub-mkconfig -o /boot/grub/grub.cfg Si tiene una partición separada /boot, no olvide agregar el enlace simbólico de arranque que apunta al directorio actual: # cd /boot # ln -s . boot ===== Desmonta todas las particiones y reinicia ===== ¡Felicidades! Ha finalizado la instalación de Hyperbola GNU/Linux-libre. Ahora es el momento de reiniciar el sistema, pero primero, hay varios pasos preliminares: Salga del chroot, usando el comando exit: # exit Desmonte todas las particiones de /mnt, y "apague" el volumen de intercambio (swap): # umount -R /mnt # swapoff -a Desactive los volúmenes lógicos **rootvol** y **swapvol**: # lvchange -an /dev/matrix/rootvol # lvchange -an /dev/matrix/swapvol Bloquee la partición cifrada (es decir, ciérrela): # cryptsetup luksClose lvm Apague la máquina: # openrc-shutdown -p now Una vez que la máquina esté apagada, retire los medios de instalación y enciéndala. ===== Arrancando la instalación manualmente desde el GRUB ===== Cuando olvida configurar o configure incorrectamente grub en su hdd, debe iniciar el sistema manualmente ingresando una serie de comandos en la linea de comandos de GRUB. Después iniciar la computadora, presione **C** para que aparezca la línea de comando de GRUB Aquí están los comandos: grub> cryptomount -a grub> set root='lvm/matrix-rootvol' grub> linux /boot/vmlinuz-linux-libre-lts root=/dev/matrix/rootvol cryptdevice=/dev/sda1:root grub> initrd /boot/initramfs-linux-libre-lts.img grub> boot En las máquinas con sata nativo, durante el arranque, una unidad de disco óptico (defectuosa) (como dvd) puede hacer que el comando cryptomount -a falle o se bloquee, así como el error: AHCI time out out La solución es desconectar la unidad de DVD. ===== Configurar pacman ===== Edite /etc/pacman.conf y configure las opciones de pacman, también habilitando los repositorios que necesita. Consulte [[https://wiki.archlinux.org/index.php/Pacman|Pacman]] y los [[es:project:repositories|Repositorios]] para obtener más información. ===== Actualizar el sistema ===== En este punto debes actualizar tu sistema. Consulte [[https://wiki.archlinux.org/index.php/Pacman#Upgrading packages|Actualizar paquetes]] para obtener instrucciones. ===== Añadir un usuario ===== Finalmente, agregue un usuario normal como se describe en la [[https://wiki.archlinux.org/index.php/Users and Groups#User management|Gestión de usuarios]]. ===== Gestión De Servicios ===== Desde Hyperbola que [[https://www.hyperbola.info/news/end-of-systemd-support/|eliminó todo el soporte de systemd]], le sugerimos que lea sobre [[https://wiki.gentoo.org/wiki/OpenRC|OpenRC]] que es nuestro principal sistema de inicio predeterminado. ===== Conclusión ===== Su nuevo sistema base **Hyperbola GNU/Linux-libre** ahora es un **entorno GNU/Linux funcional**. ===== Licencias ===== Este artículo de wiki se publica bajo la [[https://www.gnu.org/copyleft/fdl.html|Licencia de Documentación Libre de GNU 1.3]] sin secciones invariantes, sin textos de portada y sin contraportada. ===== Créditos ===== Este artículo de wiki se basa en la **[[https://libreboot.org/docs/|documentación de Libreboot]]**.