\documentclass[12pt,a4paper,titlepage]{article}
\usepackage[spanish]{babel}
\usepackage{hyperref}
\usepackage{graphicx}
\usepackage{subcaption}

\title{Gestión de un Servidor OpenBSD}
\author{Nicolás A. Ortega Froysa}

\begin{document}
\maketitle

\tableofcontents
\pagebreak

\section{Introducción}

En esta práctica vamos a ver cómo es la administración de sistema de un servidor
de {\it OpenBSD}. Los objetivos son los siguientes:

\begin{itemize}
	\item Aprender los comandos básicos del sistema.
	\item Ver en qué se diferencia OpenBSD de un sistema Linux.
	\item Ver cómo cambia la carga del sistema mientras más servicios vayamos
		proveyendo.
\end{itemize}

La instalación en sí no forma parte de este documento, pero generalmente el
instalador guiado es bastante intuitivo.

Lo que caracteriza a OpenBSD especialmente, respecto a otros sistemas UNIX (y
otros sistemas que hemos visto en clase) son dos cosas. Primero, que no es una
distribución de Linux, sino de BSD. Son sistemas completamente distintos, aunque
siguen (generalmente) una filosofía/arquitectura similar, basándose los dos en
UNIX. Segundo, que OpenBSD, entre los otros sistemas BSD, es el más
especializado en seguridad, hasta el punto de sacrificar cualquier otro aspecto
de la computación a favor siempre de la seguridad. Es por este motivo que
deshabilitaron en su momento el {\it hyper-threading} de los procesadores Intel
por miedo a {\it Spectre}.\footnotemark

\footnotetext{\url{https://www.theregister.com/2018/06/20/openbsd\_disables\_intels\_hyperthreading/}}

\section{Configuración Inicial}

Generalmente la configuración de OpenBSD ha sido bastante simple, y la mayoría
de las opciones están en su valor por defecto.  El teclado -- i.e.\ keymap --
usado es el estadounidense, simplemente porque para la informática es la más
cómoda. La máquina lleva el {\it hostname} de {\tt puffy-nortega}.

En cuanto a los usuarios, existe un usuario {\it root} con contraseña {\tt
toor}, y otro usuario {\it nicolas} con contraseña {\tt nicolas}. Durante la
instalación se ha configurado que no sea posible acceder a {\it root} por SSH,
ya que esto hace que el sistema sea más vulnerable -- más todavía con este tipo
de contraseña.

El disco se ha particionado con una sola partición para simplificar este proceso
de instalación. Se podría instalar con más particiones, repartiendo así los
datos y haciendo más fácil el proceso de hacer copias de respaldo (que sean de
una sola partición), pero eso no entra dentro de los objetivos de esta práctica.

Finalmente, en OpenBSD se dividen los archivos de sistema en diferentes {\it
sets}. Éstos se pueden usar para instalar diferentes componentes del sistema,
desde el {\it kernel} hasta algunos juegos de consola. Éstos están los {\it
sets} instalados:

\begin{itemize}
	\item {\tt bsd}: {\it kernel} de BSD ({\bf obligatorio}).
	\item {\tt bsd.mp}: {\it kernel} multi-procesador.
	\item {\tt bsd.rd}: {\it kernel} de uso en memoria.
	\item {\tt base72.tgz}: sistema base o {\it userland} ({\bf obligatorio}).
	\item {\tt comp72.tgz}: colección de compiladores.
	\item {\tt man72.tgz}: páginas de manual.
\end{itemize}

\begin{figure}
	\center
	\includegraphics[width=0.75\textwidth]{imgs/00-initial-load.png}
	\caption{Carga inicial de OpenBSD.}
	\label{fig:initial-load}
\end{figure}

Al inicializar la máquina lleva una carga de sistema extremadamente baja, ya que
está corriendo tan sólo lo mínimo (figura \ref{fig:initial-load}).

\section{Instalación de Paquetes}

Para administrar paquetes en OpenBSD se hace uso de las herramientas de paquete
de OpenBSD. Los comandos se pueden reconocer porque llevan la patrón {\tt
pkg\_*}. En particular, las que nos interesan son tres:

\begin{itemize}
	\item {\tt pkg\_add}: instalar y actualizar.
	\item {\tt pkg\_delete}: eliminar/desinstalar.
	\item {\tt pkg\_info}: buscar información.
\end{itemize}

Para instalar los paquetes que nos interesan vamos a correr el comando siguiente:

\begin{verbatim}
root# pkg_add nginx mariadb-server mariadb-client \
 rsync
\end{verbatim}

\section{Configuración de Servicios}

\subsection{Nginx}

\subsection{MariaDB}

\subsection{Servicio RSync}

\section{Conclusión}

\pagebreak

\section{Derechos de Autor y Licencia}

\noindent
Copyright \copyright\ \the\year\ Nicolás A. Ortega Froysa
<nicolas@ortegas.org> \\
\\
Este documento se distribuye bajo los términos y condiciones de la licencia
Creative Commons Attribution No Derivatives 4.0 International.

\end{document}
