Alpine Linux (Reducción de Linux)

Preparando mi entorno de Docker para desarrollo y pruebas de pentesting me encontré con que muchas imágenes se basaban en Alpine Linux por lo que empece a investigar y cada vez me sedujo más para esos pequeños laboratorios que preparo con maquinas virtualizadas y contenedores ya que es una distribución de GNU/Linux muy reducida, ideal para crear imágenes de contenedores y montar pequeños servidores con mucha funcionalidad, pero no por eso pobre ya que cuenta con muchos paquetes.

Entre sus principales características tenemos como hemos comentado, así que su sistema de ficheros que usaríamos para montar nuestras imágenes de docker, hablaremos de ellos en otros POST que estamos preparando, ya que no llegarán ni a 10 MB y si lo queremos instalar en disco comentar 300MB con el motor de docker instalados (vamos que con un viejo ordenador podemos montar nuestro pequeños servidor de docker) como se puede ver podemos gracias a su pequeño tamaño instalarlo facilmente en dispositivos comos RaspBerry Pi y montar nuestros pequeños servidores web, firewall, NAS o lo que deseemos.

Características de Alpine Linux

El sistema de inicio “init” que utiliza Alpine Linux es OpenRC, desarrollado en un principio por Gentoo, como podía ser el antiguo SysVinit, SystemD o UpStart por ejemplo. 

Utiliza un gestor de paquetes, para poder instarlar y borrar nuestras aplicaciones, propio llamado apk que seria el apt-get de Debian.

Tiene tres tipos de instalación

  • Sin disco, de forma que lo tenemos en un pequeño USB, en este caso y como alpine se ejecutara en RAM es interesante conocer la herramienta lbu (Alpine Local Backup) que nos permitirá guardar cambios de configuración por ejemplo. 
  • Datos es como el sistema de antes pero se crea una partición de Datos, lo normal es que sea un disco, donde almacenaremos nuestros propios datos. Un ejemplo seria montar un sistema Alpine Linux con una base de datos de forma que solo grabamos en el disco los datos propios de la base de datos.
  • De Sistema, esto es una instalación normal donde todo va en disco y es la que vamos a explicar.
Alpine Linux con motor de Docker

Mejora de seguridad en el Kernel parchedo con PAX que implementa una protección de mínimo privilegio de páginas de memoria lo que reduce la posibilidad de exploits.

Instalando Alpine Linux en una maquina de Virtual Box

Lo primero sera bajarnos lógicamente la imagen de Alpine, disponemos de una especial para maquinas virtuales,

Segundo creamos una sencilla maquina (Otro Linux y arquitectura 32 o 64 según sea nuestra distribución) y el disco que queramos ya hemos visto lo poco que ocupa.

Tipo de Sistema operativo

Configuramos las tarjetas de red de nuestras maquinas virtuales, cargamos la iso como CD y arrancamos la maquina.

Redes (ejemplo una NAT para internet y una para la conexión al Host

Una vez que arranca, muy rápidamente, entramos con root y sin clave y tecleamos “setup-alpine” y empezara la instalación en modo texto preguntándonos los datos típicos de las instalaciones: mapa de teclado (por ejemplo es es), nombre del host, configuración de red, zona horaria (por ejemplo Europe/Madrid), repositorios, configuración de ssh si se desea y lo aconsejo y como no el disco donde lo instalaremos.

Todas estas configuraciones se pueden cambiar luego con script de configuración, podemos encontrar información de ellos en https://wiki.alpinelinux.org/wiki/Alpine_setup_scripts#setup-alpine, despues realizaremos un par de cosas como es instalar los guest de VirtualBox para poder montar discos de nuestro Host.

apk add virtualbox-guest-additions virtualbox-guest-modules-virt