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
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