OpenBSD

  • ¿Cuáles son las principales diferencias entre los sistemas GNU/Linux y OpenBSD?

    Mientras que OpenBSD es un sistema operativo Unix muy tradicional y resulta muy familiar a aquellos que hayan utilizado otros sistemas operativos de la familia Unix, existen diferencias importantes. Si el único conocimiento de los sistemas Unix se limita a una experiencia con una variante de Linux, seguramente OpenBSD resultará "extraño". Del mismo modo en que Linux resulta extraño a cualquier usuario proveniente de OpenBSD. Si en cambio uno conoce la filosofía Unix y ha extendido su conocimiento más allá de una plataforma en particular, encontrará a OpenBSD muy familiar y un auténtico Unix. Por el contrario, si uno ha aprendido Unix usando la metodología "tipea ésto para hacer aquello" o a través de libros como "Aprende Ubuntu 16.04 en 31.4 horas", y cree que así "sabe" Unix, encontrará a OpenBSD muy diferente.

  • "Temporary Error" al intentar enviar correo en OpenBSD

    Llegué a la oficina y, al revisar los mails que me envían los servidores, descubrí que faltaban los correos de uno de mis servidores OpenBSD. Revisando el log del sistema, las tareas programadas se ejecutaron normalmente pero hubo un problema con el envío de correo.

  • Cómo actualizar los fuentes de OpenBSD con CVS a través de un proxy HTTP

    Tal como mencioné en el artículo ¿Cuáles son las principales diferencias entre los sistemas GNU/Linux y OpenBSD?, OpenBSD utiliza CVS como sistema de control de versiones. Específicamente utiliza CVS anónimo para mantener actualizada una copia local del source tree de OpenBSD, respecto a los cambios hechos en los fuentes actuales de OpenBSD. Este mecanismo es un sistema de control de versiones "tolerante" en el sentido que respeta los cambios realizados en una copia local, y hace el "mejor esfuerzo" para actualizar el source tree completo, más que dejar una lista de problemas a resolver antes de continuar (tal como ocurre con otros sistemas de control de versiones).

  • Cómo buscar paquetes en OpenBSD con pkg_info

    Previamente compartí un artículo extenso dedicado a la gestión de paquetes en OpenBSD. En dicho artículo explicaba que, a fin de buscar un paquete por nombre, simplemente debía buscar el port correspondiente en el árbol de ports utilizando el comando make search key=. Sin embargo, si no hemos instalado el árbol de ports en el sistema, será imposible buscar un paquete (al menos desde línea de comandos, claro está). En este artículo entonces voy a demostrar cómo buscar paquetes correctamente en OpenBSD, sin necesidad de recurrir al árbol de ports.

  • Cómo configurar una interfaz de red en OpenBSD

    En los sistemas OpenBSD, las interfaces de red se configuran a través de archivos hostname.if dentro del directorio /etc.

  • Cómo instalar los fuentes y compilar un sistema OpenBSD

    Este artículo explica cómo compilar un sistema OpenBSD desde sus fuentes. Existen varios pasos a seguir en el proceso de compilación de un sistema OpenBSD: descargar y actualizar los fuentes; compilar e instalar el kernel; y compilar e instalar userland.

  • Cómo instalar OpenBSD

    Este artículo demuestra el sencillo procedimiento de instalación de un sistema OpenBSD 5.9. OpenBSD es un sistema operativo libre multiplataforma perteneciente a la familia Unix, basado en BSD 4.4. Es un descendiente de NetBSD enfocado particularmente en la seguridad.

  • Cómo migrar OpenBSD 5.9 a 6.0

    En 2016 puse mi primer servidor OpenBSD en producción, en la versión 5.9, y el día de hoy llegó el momento de actualizarlo a la versión 6.0. Este artículo explica el procedimiento paso a paso (con mucho mayor detalle que la FAQ oficial).

  • Cómo montar un servidor Web con PHP en OpenBSD

    OpenBSD incluye su propia implementación de servidor Web llamado httpd, basado originalmente en relayd, y que (como todo proyecto relacionado a OpenBSD) apunta a la seguridad y en este caso en particular a la escalabilidad.

    httpd es un servidor Web seguro y minimalista (apunta a evitar la "featuritis" que sufren los servidores Web más importantes, notablemente Apache), que sirve archivos estáticos y soporta FastCGI y TLS. Incorpora algunas características básicas como listado de directorios, logging y autenticación basic. Para conocer la historia completa de httpd y cómo comenzó su desarrollo es recomendable el paper Introducing OpenBSD's new httpd.

    El objetivo de este artículo es montar el clásico servidor Web con soporte para PHP sobre un sistema OpenBSD. Y ya que httpd es el servidor Web por defecto en OpenBSD, se explica la instalación y configuración del mismo, en lugar de instalar Apache o Nginx desde los paquetes o ports.

  • Configuración de NFS en OpenBSD

    El protocolo NFS permite compartir un directorio o sistema de archivos a través de la red. En artículos anteriores expliqué cómo se configura NFS en FreeBSD y cómo se relacionan sus diversos componentes (nfsd, portmap, mountd). En esta ocasión voy a explicar cómo configurar NFS en un servidor OpenBSD para compartir un directorio a través de la red.

  • Configuración de un firewall con PF en OpenBSD

    Este artículo explica el funcionamiento de PF, junto con una configuración de filtrado básica a modo de ejemplo. PF (Packet Filter) es el mecanismo que utiliza por defecto OpenBSD para implementar el filtrado de tráfico TCP/IP y realizar NAT (Network Address Translation). PF también es capaz de normalizar y condicionar tráfico TCP/IP, al igual que proveerpacket shaping y priorización de tráfico.

  • Configuración del proxy en OpenBSD

    En redes corporativas es muy común que el acceso a Internet sea a través de un proxy HTTP. En OpenBSD, la configuración del proxy es exactamente igual a la de los sistemas GNU/Linux, sólo basta con configurar las variables de entorno http_proxy y https_proxy en el perfil de ksh.

  • Configurar el envío de correo a través de un relayhost con autenticación en smtpd (OpenBSD)

    Supongamos que contamos con un servidor OpenBSD y necesitamos enviar correo desde la red local, por ejemplo resúmenes diarios de logwatch o AIDE, a través de un relayhost (servidor de correo para el dominio de la red local) seguro (SMTPS) que requiere autenticación. Este artículo explica cómo configurar smtpd para que reenvíe todo el correo saliente hacia un servidor de correo seguro en la red local sobre TLS con autenticación. De esta forma, todo el correo saliente desde nuestro servidor OpenBSD será reenviado hacia el servidor de correo del dominio, autenticando con una cuenta de correo específica y rescribiendo la cabecera "mail-from" para todos los mensajes salientes. Lo cual corresponde con la típica configuración para un sitio de Internet o servidor simple que requiere enviar correo dentro de un dominio seguro.

  • Gestión de paquetes en OpenBSD

    En el artículo Trabajando con ports en OpenBSD expliqué cómo gestionar software en OpenBSD a través del sistema de ports. Claro está que la instalación de software a través de ports implica, para el caso de aplicaciones grandes y complejas, compilar una gran cantidad de paquetes, lo que puede llegar a insumir una gran cantidad de tiempo y recursos y además dificultar el mantenimiento del sistema.

    Por supuesto instalar desde el sistema de ports tiene sus ventajas. Principalmente, la flexibilidad de disponer de diferentes versiones para un mismo paquete. Por ejemplo, para el caso de PHP se dispone de las versiones 5.4, 5.5, 5.6 y 7.0:

    # ls -l /usr/ports/lang/php/
    total 68
    drwxr-xr-x  5 root  wheel    512 Feb 25 19:59 5.4
    drwxr-xr-x  5 root  wheel    512 Feb 25 19:59 5.5
    drwxr-xr-x  5 root  wheel    512 May 24 15:11 5.6
    drwxr-xr-x  5 root  wheel    512 Feb 25 19:59 7.0
    drwxr-xr-x  2 root  wheel    512 May 24 15:11 CVS
    -rw-r--r--  1 root  wheel    196 Mar 21  2015 Makefile
    -rw-r--r--  1 root  wheel  13759 Feb  1 18:53 Makefile.inc
    drwxr-xr-x  3 root  wheel   1024 Feb 25 19:59 files
    drwxr-xr-x  3 root  wheel    512 Feb 25 19:59 pecl
    -rw-r--r--  1 root  wheel   2102 Feb  1 18:53 php.port.mk
    

    Esto es una gran ventaja cuando se requiere instalar una aplicación ligada a una versión específica de PHP, ya que se puede contar con la versión necesaria mantenida por la comunidad. De esta forma se evita preocuparse por compilar manualmente una versión no disponible desde paquete, verificando sus dependencias y requisitos.

    Sin embargo, en este artículo voy a explicar brevemente cómo trabajar con paquetes, lo cual es recomendable para la mayoría de los casos, y puede ahorrar gran tiempo de compilación y mantenimiento.

  • Hacer que el historial de ksh sea persistente en sistemas OpenBSD

    En OpenBSD, ksh por defecto no guarda el historial de comandos en un archivo al cerrar sesión. Por ende, cada vez que se inicia sesión (por ejemplo a través de SSH), no se dispone de historial alguno:

    # history
    ksh: fc: no history (yet)
    # ll
    ksh: ll: not found
    # history 
    1       history
    2       ll
    # exit
    Connection to obsd59.linuxito.com closed.
    
  • Implementar un acceso SSH como root en FreeBSD/OpenBSD

    Anteriormente demostré cómo era posible implementar un acceso SSH como root, a pesar de que estuviera deshabilitada la opción PermitRootLogin en la configuración del demonio. Ahora voy a demostrar cómo es posible lograr el mismo comportamiento en sistemas FreeBSD y OpenBSD utilizando doas en vez de sudo.

  • Insertar saltos de línea con sed en FreeBSD/OpenBSD

    La versión de sed que incluyen las distribuciones GNU/Linux permite reemplazar cualquier cadena por saltos de línea (enter) utilizando la secuencia de escape \n. Sin embargo, la versión BSD no soporta estas secuencias de escape al momento de reemplazar (sí al momento de buscar, parte izquierda de la secuencia de sustitución).

    En este breve artículo explico cómo lograrlo en FreeBSD y OpenBSD.

  • Instalar Ansible en OpenBSD

    Previamente expliqué cómo instalar Ansible desde los fuentes en FreeBSD, en esta oportunidad me gustaría compartir los pasos necesarios para hacerlo en un sistema OpenBSD 6.0.

  • Listar todos los archivos abiertos por un proceso en FreeBSD

    En los sistemas operativos FreeBSD/OpenBSD, la herramienta fstat permite listar los archivos abiertos por un proceso pasando un PID como parámetro.

  • Migración de un sitio MediaWiki a un nuevo servidor

    En el artículo anterior expliqué cómo montar un servidor Web en OpenBSD utilizando el servidor httpd con PHP-FPM. Mi objetivo al momento de instalar un servidor Web con OpenBSD era migrar un sitio MediaWiki 1.19.1 corriendo actualmente en un servidor Debian 6. Este articulo documenta la experiencia, junto con la actualización del sitio MediaWiki a la última versión estable disponible actualmente (1.26.3).