# OpenBSD

Vamos a instalar [OpenBSD](https://www.openbsd.org/) 7.6 en VirtualBox, y aunque OpenBSD tiene un kernel diferente a Linux vale la pena aprender a instalar y usar este sistema. Es un sistema sumamente liviano, sencillo y seguro; su proceso de instalación es guiada en texto plano ya que no cuenta con instalador gráfico como es el caso de Ubuntu o Debian.

Algo importante antes de proceder con la instalación. Es necesario cambiar la configuración del controlador de **Almacenamiento**, en la opción **Tipo** debemos seleccionar **AHCI**. ya que por defecto está en **PIIX4** y da problemas la conexión **IDE**, debe ser **SATA**.

<figure><img src="https://882054019-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FriPDNy3gWgf2sVXq5Y4L%2Fuploads%2FN95pDTXaT1hbN4sGbPFJ%2FOpenBSD_SATA.png?alt=media&#x26;token=3fdaae9d-ad6f-40a1-bbf7-1c9d38109297" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
En cualquier momento, excepto en el que se solicite la contraseña, puede salir a un shell escribiendo `!`. Las respuestas predeterminadas se muestran entre `[..]` y se seleccionan presionando `ENTER`. Puede salir de este programa en cualquier momento presionando Control-C, pero esto puede dejar su sistema en un estado inconsistente.
{% endhint %}

Vamos a comenzar seleccionando la opción `(I)nstall`. Se puede escribir simplemente `i`.

```
Welcome to the OpenBSD/amd64 7.6 installation program
(I)nstall, (U)pgrade, (A)utoinstall or (S)hell?
```

Vamos a elegir la distribución del teclado, podemos escribir `es` para Español y `la` para Latinoamericano. Si selecciona `[default]` usará el teclado `us` Inglés.

```
Chose your keyboard layout ('?' or 'L' for list) [default]
```

### Sistema y redes

Vamos a elegir el nombre para nuestro host dentro de la red, por ejemplo `openbsd`.

```
System hostname? (short form, e.g. 'foo')
```

El sistema detecta las tarjetas de red instaladas y las reconoce con el nombre `em0`. En este caso solo presionamos `enter`.

```
Network interface to configure? (name, lladdr, '?', or 'done') [em0]
```

Asignaremos una IP, ya que si lo dejamos en `[autoconf]` la IP será signada por DHCP, así que podemos escribir la IP como corresponder `192.168.1.#`.

```
IPv4 address for em0? (or 'autoconf' or 'none') [autoconf]
```

Para las IP /24 podemos elegir la opción predeterminada `[255.255.255.0]`.

```
Netmask for em0? [255.255.255.0]
```

Para configurar la IPv6 podemos hacer el mismo proceso, en este caso voy a seleccionar la opción predeterminada `[none]`.

```
IPv6 address for em0? (or 'autoconf' or 'none') [none]
```

Se nos preguntará si vamos a configurar más tarjetas de red, pero si ya está todo, podemos continuar `[done]`.

```
Network interface to configure? (name, lladdr, '?', or 'done') [done]
```

Asignamos la ruta predeterminada de la red que normalmente es `192.168.1.1`.

```
Default IPv4 route? (IPv4 address or 'none')
```

Si tenemos un nombre para nuestro dominio lo escribimos ahora.

```
DNS domain name? (e.g. 'example.com') [my.domain]
```

Asignamos los servidores DNS, por ejemplo los de Google `8.8.4.4` y `8.8.8.8`.

```
DNS nameservers? (IP address list or 'none') [none]
```

### Usuario root

Ahora signamos la contraseña para el usuario administrador `root`. Mientras la escribes no se mostrará.

```
Password for root account? (will not echo)
```

### SSH

Si queremos que se inicie el servicio `sshd` elegiremos la opción `[yes]`.

```
Start sshd(8) by default? [yes]
```

### Entorno gráfico

¿Espera ejecutar el sistema X Window? Entonces selecciona `[yes]`, pero si queremos que este sea una instalación para servidor escribimos `no`.

```
Do you expect ro run the X Window System? [yes]
```

En el caso de seleccionar un entorno gráfico y querer que se inicie automáticamente escribe `yes`.

```
Do you want the X Window System to be started bt xenodm(1)? [no]
```

### Crear usuario

Ahora podemos crear un usuario estándar, sin privilegios. Debemos escribir el nombre en minúsculas `juan`.

```
Setup a user? (enter a lower-case loginame, or 'no') [no]
```

También podemos asignar un nombre completo para el nuevo usuario, en este caso podemos usar mayúsculas.

```
Full name for user juan? [juan]
```

Ahora asignamos la contraseña para el usuario juan. La contraseña no se mostrará.

```
Password for user juan? (will not echo)
```

**ADVERTENCIA**: el usuario root es el objetivo de ataques de adivinación de contraseñas, las claves públicas son más seguras.&#x20;

```
WARNING: root is targeted by password guessing attacks, pubkeys are safer
Allow root ssh login? (yes, no, prohibit-password) [no]
```

### Zona horaria

Ahora debemos asignar la zona horaria, el sistema la puede reconocer automáticamente o asignar manualmente.

```
What timezone are you in? ('?' for list) [America/Bogota]
```

### Configuración de discos

El sistema reconoce los discos duros como `sd#`. Así que elegiremos el disco en el que vamos a instalar el sistema.

```
Wich disk is the root disk? ('?' for details) [sd0]
```

Si no queremos cifrar el directorio raíz seleccionamos `[no]`.

```
Encrypt the root disk with a (p)assphrase or (k)eydisk? [no]
```

### Arranque

Esto es bastante importante, si nuestro equipo no tiene soporte UEFI, debemos escribir `w` para instalar el arranque en MBR, de lo contrario escribimos `g`.

```
Use (W)hole disk MBR, whole disk (G)PT or (E)dit? [whole]
```

### Partición del disco duro

Yo recomendaría que las particiones se hagan automáticamente con la opción `a` ya que OpenBSD tiene una forma muy distinta de manejar las particiones en comparación con Linux.

```
Use (A)uto layout, (E)dit auto layout, or create (C)ustom layout? [a]
```

### Conjuntos de archivos

Ahora debemos seleccionar desde donde se va a copiar los archivos para la instalación, por defecto usará el medio de instalación que en este caso es el ISO, el `cd0`.

```
Location of sets? (cd0 disk http nfs or 'done') [cd0]
```

El sistema nos preguntará si vamos a copiar los archivos desde el directorio `[7.6/amd64]`.

```
Pathname to the sets? (or 'done') [7.6/amd64]
```

Seleccione los conjuntos ingresando un nombre de conjunto, un patrón de nombre de archivo o "todos". Anule la selección de los conjuntos anteponiendo un "-", por ejemplo: "-game\*". Los conjuntos seleccionados se etiquetan como "\[X]".

```
Select sets by entering a set name, a file name pattern or 'all'. De-select
sets by prepending a '-', e.g.: '-game*'. Selected sets are labelld '[X]'.
    [X] bsd           [X] comp76.tgz    [X] xbase76.tgz   [X] xserv76.tgz
    [X] bsd.rd        [X] man76.tgz     [X] xshare76.tgz
    [X] base76.tgz    [X] game76.tgz    [X] xfont76.tgz
Set name(s)? (or 'abort' or 'done') [done]
```

Ahora el sistema nos preguntará si queremos continuar la instalación sin una verificación SHA256, a lo que responderemos `yes`.

```
Directory does not contain SHA256.fig. Continue without verification? [no]
```

Una vez instalados los archivos del sistema, se nos preguntará desde donde instalar los paquetes y actualizaciones; así que lo dejaremos predeterminado y seleccionamos `[done]`.

```
Location of sets? (cd0 disk http nfs or 'done') [done]
```

### Finalizando instalación

El sistema nos preguntará si la hora parece incorrecta y seleccionamos `[yes]`.

```
Time appears wrong. Set to 'Tue Feb 25 14:04:11 -05 2025'? [yes]
```

Una vez terminada la instalación podemos salir al shell o reiniciar `[reboot]`.

```
Exit to (S)hell, (H)alt or (R)eboot? [reboot]
```
