Comandos de OpenBSD

La página web OpenBSD Jump Start tiene una guía muy útil de comandos y enlaces de OpenBSD. Así que aquí va una traducción de casi toda la página web, que iré actualizando según vayan saliendo nuevas versiones de la misma. Es muy recomendable visitar la web, que es bastante más agradable a la vista que esta ;-)

Manuales

# ¿Como leer una página de manual, por ejemplo foo(5)?
man 5 foo

O verlo en el navegador visitando la web man.openbsd.org

Hardware soportado

Algunos dmesg

Instalación

Realmente muy simple, listo en 5 minutos (KISS). El correo con el resultado de la instalación es enviado al usuario root en el primer arranque.

Para obtener más información: https://www.openbsd.org/faq/faq4.html

Auto-install

Para una instalación completamente desatendida se puede usar el comando autoinstall(8)

Sistema de archivos

OpenBSD utiliza por defecto FFS2 (Enhanced Fast File System)

Lee más en newfs(8)

Archivos de configuración de red

  • /etc/myname - Hostname por defecto
  • /etc/mygate - Gateway por defecto
  • /etc/hosts - Hosts conocidos de la red
  • /etc/resolv.conf - Configuración de la resolución DNS
  • /etc/hostname.if - Configuración de cada interface de red, por ejemplo /etc/hostname.bge0

Lee más en myname(5), mygate(5), hostname.if(5), resolv.conf(5), hosts(5)

Red

# Muestra la configuración actual de los interfaces de red
ifconfig

# Configura DHCP para el interface 're0'
ifconfig re0 autoconf

# Ejecuta la (re)inicialización de la configuración de la red
sh /etc/netstart

Configuración de red en arranque

Configuración de IP estática para re0

## Archivo: /etc/hostname.re0
inet 192.168.0.58 255.255.255.0

No olvides ejecutar sh /etc/netstart re0 para aplicar los cambios en caliente en el sistema

Configuración de IP dinámica mediante DHCP para bge0

## Archivo: /etc/hostname.bge0
inet autoconf

No olvides ejecutar sh /etc/netstart bge0 para aplicar los cambios en caliente en el sistema

Configuración de la wifi en arranque

# Primero, miramos la lista de redes wifi disponibles
ifconfig iwn0 scan

## Archivo: /etc/hostname.iwn0
nwid ACCESS_POINT_NAME wpakey THE_SECRET_KEY
inet autoconf

# O, para múltiples puntos de acceso
join AT_HOME wpakey THE_SECRET_KEY
join AT_WORK wpakey THE_SECRETKEY
inet autoconf

No olvides ejecutar sh /etc/netstart iwn0 para aplicar los cambios en caliente en el sistema

Rutas

# Muestra la tabla de rutas (ipv4)
route -n show -inet

# Muestra la tabla de rutas (ipv6)
route -n show -inet6

# Borra todos los gateways de la tabla de rutas
route -n flush

Packet Filter (PF)

# Desabilitar PF
pfctl -d

# Comprueba las reglas
pfctl -nf /etc/pf.conf

# Habilita PF y carga las reglas
pfctl -ef /etc/pf.conf

# Carga las reglas (aplica cambios)
pfctl -f /etc/pf.conf

# Lista las reglas cargadas
pfctl -s rules

Lee más en pfctl(8)

Ejemplos de reglas de PF

## Archivo: /etc/pf.conf
# Proteje un portátil (permite sólo ping/ssh desde cualquier lado)

set skip on lo
block log all
pass in on egress inet proto icmp all icmp-type echoreq
pass in on egress inet proto tcp from any to any port ssh
pass out

Lee más en pf.conf(5)

Depurando PF con TCPDUMP

tcpdump -nettti pflog0

Lee más en tcpdump(8)

Manual de usuario de PF

FAQ de OpenBSD PF PF and Networking Tutorial (EuroBSDCon 2023)

Gestión de usuarios

# Manualmente
user [add|del|info|mod] foobar

# Añadir usuarios de forma interactiva
adduser

# Borrar usuarios de forma interactiva
rmuser

Lee más en adduser(8), rmuser(8)

Gestión de grupos

Archivo: /etc/group

group [add|del|info|mod] foobar

Miembros del grupo wheel pueden usar su(1) para ser root.

Lee más group(8), group(5), rmgroup(8)

sudo ha sido reemplazado por doas

## Archivo: /etc/doas.conf
# Permite que el usuario 'marc' reinicie el ordenador
permit nopass marc as root cmd /sbin/reboot
# Marc ahora puede reiniciar la máquina
$ doas reboot

Lee más doas(1), doas.conf(5)

Y prueba doas mastery (blog)

Instalación de paquetes

# Por defecto, el archivo /etc/installurl contiene la URL de un mirror de OpenBSD
https://cdn.openbsd.org/pub/OpenBSD

# Buscar paquetes
pkg_info -Q foobar

# Instalar un paquete, por ejemplo Squid
pkg_add squid

# Actualizar todos los paquetes instalados
pkg_add -u

# Lista los paquetes instalados
pkg_info

# Lista los archivos instalados por un paquete
pkg_info -L foobar

# Lee los mensajes de instalación de un paquete específico
pkg_info -M foobar

# Desinstala un paquete
pkg_delete foobar

# Comprueba dependencias no utilizadas
pkg_delete -an

# Desinstala dependencias no necesarias
pkg_delete -a

# Desinstala todo excepto 'nginx'
pkg_delete -X nginx

Mira en /usr/local/share/doc/pkg-readmes para documentación extra.

Lee más pkg_info(1), pkg_add(1), pkg_delete(1), installurl(5) y packages(7)

Instala paquetes de firmware no-free

fw_update

El firmware es descargado de directorios específicos para cada versión en: http://firmware.openbsd.org/firmware

Lee más fw_update(8)

Administrando daemons y servicios

Archivo /etc/rc.conf.local

rcctl [enable|disable|start|stop|reload|restart] foobar

# Por ejemplo, para iniciar el daemon de apmd para escalado de CPU
rcctl enable apmd
rcctl set apmd flags -A
rcctl start apmd

Lee más rcctl(8), rc.conf(8), rc.conf.local(8)

¿Qué está habilitado en tu sistema?

rcctl ls on

Lee más rcctl(8)

Ejecutando scripts en el encendido

Archivo /etc/rc.local

Lee más rc(8), rc.firsttime(8), rc.local(8), rc.securelevel(8)

Actualizando OpenBSD (-stable)

Todos las correcciones de seguridad y fiabilidad pueden encontrarse en:

https://www.openbsd.org/errata.html

Los parches de errata se generan para las dos últimas versiones (7.3, 7.4).

Herramientas para actualizar OpenBSD (-stable)

Utiliza syspatch(8) para actualizar el kernel y el espacio de nombres, disponible para las dos últimas versiones

# Lista los parches disponibles
syspatch -c

# Instala los parches disponibles
syspatch

Con pkg_add -u actualizas los paquetes instalados.

Actualizando la versión

Para actualizar de 7.2 a 7.4 debes seguir las instrucciones de https://www.openbsd.org/faq/upgrade73.html y luego de https://www.openbsd.org/faq/upgrade74.html

Lista ficheros obsoletos entre actualizaciones de versión

pkg_add sysclean

Ejecuta sysclean para crear una lista de elementos obsoletos. Revisa la lista y borra los ficheros manualmente. Ten cuidado

Filesystem de OpenBSD

/ es el directorio raíz /home es donde están los directorios de usuarios /root es el directorio del usuario root /mnt es donde están los puntos de montaje temporales /etc ficheros y scripts de configuración del sistema /etc/examples ficheros de configuración de ejemplo de daemons del sistema /etc/skel ficheros de configuración para nuevos usuarios /etc/signify ficheros de llave usados por signify(1) /tmp se limpia en cada reinicio /var/tmp enlace simbólico a /tmp /var/log ficheros de log /var/run pid, sockets, utmp, dmesg.boot /var/db archivos de base de datos /var/www directorio base para el servidor httpd /var/www/htdocs repositorio para httpd /usr/local aquí va el software de terceros /usr/src BSD y fuentes locales

Lee más hier(7)

Kernels de OpenBSD

/bsd kernel ejecutable (el sistema operativo lo carga en memoria en el arranque) /bsd.booted kernel ejecutable usado después de la hibernación /obsd kernel anterior, el siguiente arranque usará el kernel de /bsd /bsd.sp kernel ejecutable para máquinas de un sólo procesador /bsd.mp kernel ejecutable para máquinas multiprocesador /bsd.rd kernel de instalación. El disco en memoria de construcción dispone de herramientas que pueden ser ejecutadas sin un filesystem externo, por lo que este kernel es útil para algunas tareas de mantenimiento

Gestión de problemas del kernel

config(8) permite editar el kernel especificado. Los dispositivos pueden ser habilitados, deshabilitados o modificados sin tener que volver a compilar editando el kernel ejecutable. La edición también se puede hacer durante el arranque, usando el editor que proporciona el kernel, como se describe en boot_config(8).

Mantenimiento del sistema

doas pkg_check -F -> comprueba si no hay objetos aleatorios en /usr/local doas dmesg -s -> lee los mensajes de arranque de rc(8) ldd foobar -> lista las dependencias dinámicas de un objeto df -h -> muestra el uso de disco top -s .1 -> comprueba la carga (memoria y cpu) reset -> reinicia tu terminal rcctl ls on -> qué está habilitado en el sistema rcctl ls started -> qué está corriendo en el sistema

Lee pkg_check(8), dmesg(8), ldd(1), ld.so(1), df(1), top(1)