Admin Libre - Administración de sistemas y redes

OpenBSD en Exoscale
Por Francisco Gaitán el 31 de Marzo de 2022

Exoscale es un proveedor de alojamiento suizo con centros de datos en distintos puntos de Europa. Aunque ofrecen la posibilidad de instalar OpenBSD desde plantillas proporcionadas por ellos, éstas no están disponibles para los servidores VPS de 10GB de disco. Afortunadamente es posible instalarlo con netboot.xyz.

Qué necesitas

  • Una cuenta Exoscale con una llave IAM API configurada
  • exoscale-cli configurado (disponible como paquete OpenBSD)

Instalación

El proceso se explica en la documentación del modo rescate. Básicamente hay que hacer esto, teniendo en cuenta que para moverte por el menú de netboot necesitarás usar los cursores del teclado numérico con el ratón posicionado sobre el recuadro de la consola:

  1. Crea una nueva instancia Micro y párala tan pronto como puedas
  2. Arranca la instancia en modo rescate para ejecutar netboot.xyz
  3. Elige OpenBSD desde el menú y durante la instalación elige disco GPT
  4. Una vez que la instalación de OpenBSD elige (H)alt y para la instancia
  5. Arranca la instancia normalmente y arrancará desde el disco donde se ha instalado OpenBSD

Este es el comando para añadir netboot al proceso de arranque, siendo tuvps la etiqueta de tu instancia:

$ exo compute instance start --rescue-profile=netboot tuvps 

Actualización a día 27/04/2022: el comando ha cambiado, ahora se hace de esta forma, especificando el ID de la instancia y la zona:

$ exo compute instance start xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --rescue-profile=netboot -z ch-dk-2

Disklabel personalizada

Como el disco de 10 GB es relativamente pequeño usaré un disklabel(8) personalizado para tener las opciones adecuadas de montaje para las distintas particiones. Como la memoria RAM es 2GB he usado un poco más (2055MB) para swap. Nota: Desactivando KARL y ASLR de librerías he conseguido ahorrar un 300% de gasto usando un servidor de 512MB de RAM.

Así es como han quedado las particiones, apurando mucho para mi uso que es un servidor de correo y de páginas web estáticas:

  a:           501.5M          /
  b:          2055.2M          swap
  c:         10240.0M          unused                    
  d:           305.9M          /tmp
  e:           902.1M          /var
  f:          4102.5M          /usr
  h:          1027.6M	       /usr/local
  i:             0.5M          MSDOS                    
  k:          1344.6M	       /home

Cabe mencionar que lo adecuado sería una partición /var lo suficientemente grande como para que haya libre el mismo tamaño que la memoria, aunque en 10GB no me ha resultado posible teniendo en cuenta que la partición /home debe tener espacio para las actualizaciones con sysupgrade(8).

Configuración de IPv6

Lo primero que necesitas es permitir ICMP6 en el cortafuegos de Exoscale y también permitir los siguientes tipos de paquetes en tu pf.conf, de acuerdo al RFC 4890:

# RFC 4890
pass inet6 proto icmp6 all icmp6-type { 1 2 3 4 128 129 133 134 135 136 }

Una vez echo esto configura IPv6 para la interfaz vio0:

# echo "inet6 autoconf -soii -temporary" >> /etc/hostname.vio0
# sh /etc/netstart vio0

Destacado

Misión

Admin Libre promueve el uso de software libre y de calidad tanto en los servidores como en el hardware de red con el objetivo de hacer los sistemas más seguros y auditables.