BSD Tips
56 subscribers
12 photos
5 files
80 links
Canal de tips BSD en español con caracter no Oficial.

Grupo: https://t.me/bsdesp

WIkis:
https://wiki.freebsd.org/
https://wiki.netbsd.org/
http://openbsd.org/faq
Download Telegram
BSD Tips
GBDE - GEOM Based Disk Encryption.pdf
GBDE - GEOM Based Disk Encryption

The ever increasing mobility of computers has made protection of data on digital storage media an important requirement in a number of applications and situations. GBDE is a strong cryptographic facility for denying unauthorised access to data stored on a ‘‘cold’’ disk for decades and longer. GBDE operates on the disk(-partition) level allowing any type of file system or database to be protected. A significant focus has been put on the practical aspects in order to make it possible to deploy GBDE in the real world.
Journaling versus Soft Updates: Asynchronous Meta-data Protection in File Systems

The UNIX Fast File System (FFS) is probably the most widely-used file system for performance comparisons. However, such comparisons frequently overlook many of the performance enhancements that have been added over the past decade. In this paper, we explore the two most commonly used approaches for improving the performance of meta-data operations and recovery: journaling and Soft Updates. Journaling systems use an auxiliary log to record meta-data operations and Soft Updates uses ordered writes to ensure meta-data consistency.

The commercial sector has moved en masse to journaling file systems, as evidenced by their presence on nearly every server platform available today: Solaris, AIX, Digital UNIX, HP-UX, Irix, and Windows NT. On all but Solaris, the default file system uses journaling. In the meantime, Soft Updates holds the promise of providing stronger reliability guarantees than journaling, with faster recovery and superior performance in certain boundary cases.

In this paper, we explore the benefits of Soft Updates and journaling, comparing their behavior on both micro-benchmarks and workload-based macrobenchmarks. We find that journaling alone is not sufficient to "solve" the meta-data update problem. If synchronous semantics are required (i.e., meta-data operations are durable once the system call returns), then the journaling systems cannot realize their full potential. Only when this synchronicity requirement is relaxed can journaling systems approach the performance of systems like Soft Updates (which also relaxes this requirement). Our asynchronous journaling and Soft Updates systems perform comparably in most cases. While Soft Updates excels in some meta-data intensive microbenchmarks, the macrobenchmark results are more ambiguous. In three cases Soft Updates and journaling are comparable. In a file intensive news workload, journaling prevails, and in a small ISP workload, Soft Updates prevails.

Paper: https://www.seltzer.com/assets/publications/Journaling-versus-Soft-Updates-Asynchronous-Metadata-Protection-in-File-Systems.html
What every IT person needs to know about OpenBSD

*.- [PART-1]: How it all started
*.- [PART-2]: Why use OpenBSD?
*.- [PART-3]: That packet filter

- - - - - - - - - - - - - - - - -

*.- OpenBSD has been around for more than 25 years (started October 1995).
*.- OpenBSD is proactively secure with only two remote holes in default install in all those years.
*.- OpenBSD pioneered using strong cryptography, the first free system to ship with IPSec (entangling itself in US export regulations in the process).
*.- OpenBSD pioneered and is still leading in code audit, fixing similar bugs tree-wide when found.
*.- OpenBSD has all security enhancements enabled by default, which are hard, going on impossible, to disable.
*.- OpenBSD is open-source, free software and the project actively encourages independent verification of code quality and security.
*.- Today, OpenBSD is used in many network-centric roles, even though it is a general-purpose operating system albeit with a particular emphasis on security.
*.- OpenBSD has a high profile quality image based on actual code quality and proven performance in real-world use.
*.- OpenBSD is the upstream (origin) for several widely used pieces of software such as OpenSSH, OpenBGPD, PF, OpenSMTPd, LibreSSL, iked, mandoc and several others. For a complete list, please see the OpenBSD Innovations page on the OpenBSD website.
*.- OpenBSD has been ‘growing up in the public’ with code generally accessible via anonymous CVS (the first of its kind) since 1995 (transparent process, development discussions on public tech@ mailing list).
*.- Developers would do well to study high quality (mainly) C-source and how the project runs a six-month release cycle like clockwork (with only a few notable exceptions).
Forwarded from OpenBSD
FreeBSD vs OpenBSD: Which is Right for You?

FreeBSD vs OpenBSD. Which is more secure? Which is faster? Which is generally superior? Both have their strengths and weaknesses, and both appeal to different audiences depending on needs.

https://www.ateamsystems.com/tech-blog/freebsd-vs-openbsd-which-is-right-for-you/

#system
Description:

why-openbsd.rocks presents facts about OpenBSD.

Reference:

*.- https://why-openbsd.rocks

Acknowlegments:

*.- @zzzzCsbalx
FreeBSD 13.1-RELEASE Announcement

Some of the highlights:

• OpenSSH has been updated to version v8.8p1.

• OpenSSL has been updated to version 1.1.1o.

• The use of FIDO/U2F hardware authenticators has been enabled in ssh, using the new public key types ecdsa-sk and ed25519-sk, along with corresponding certificate types.

• The ice(4) driver has been updated to 1.34.2-k, adding firmware logging and initial DCB support.

• The iwlwifi(4) driver along with a LinuxKPI 802.11 compatibility layer was added to supplement iwm(4) for newer Intel Wireless chipsets.

• ZFS has been upgraded to OpenZFS release 2.1.4.

• EC2 images are now built by default to boot using UEFI instead of legacy BIOS.

• And much more…​

Reference: https://www.freebsd.org/releases/13.1R/announce
mfsbsd: una derivado de FreeBSD que se ejecuta desde la memoria

mfsBSD es un conjunto de scripts que generan una imagen booteable, un archivo ISO o simplemente archivos de booteo, con la finalidad de crear una instalación mínima y personalizada de FreeBSD la cual es ejecutada completamente en memoria.

mfsBSD es una excelente alternativa a la imagen de FreeBSD completa, no solo por el poco espacio en almacenamiento, no solo porque se ejecuta en la memoria, sino por su alta personalización. mfsBSD nos permite personalizar una imagen sin necesidad de compilarla, aunque también permite hacerlo por si alguien lo desea. Mayormente cuando vemos proyectos de código abierto/software libre derivados tenemos dos problemas frecuentes: o no está actualizado con la rama principal del proyecto, o su principal fuente de atracción se reduce a una perdida de funcionalidad y herramientas imperdonables.

mfsBSD no es así. Si deseas crear una imagen con ciertos paquetes pre-compilados, mfsBSD puede hacerlo por ti. Si deseas hacer un despliegue de múltiples servidores, pero eres tan perezoso que no deseas ejecutar bsdinstall(8), mfsBSD puede hacerlo por ti. Si deseas tener los archivos base como kernel.txz o base.txz en un servidor web o FTP dentro de tu misma red local para ahorrar ancho de banda descargándolo desde la página web oficial, mfsBSD puede hacerlo por ti. Si deseas tener un sistema que solo correrá en memoria con herramientas de diagnostico y reparación, mfsBSD puede hacerlo por ti.

El límite es la imaginación de la persona, y como son sólo un conjunto de scripts escritos en sh o archivos Makefile, su estudio, personalización, y si deseas, contribución, es realmente sencilla.

*.- https://underc0de.org/foro/gnulinux/non-linux-mfsbsd-una-derivado-de-freebsd-que-se-ejecuta-desde-la-memoria

~ DtxdF
Notas de sistemas operativos

Este proyecto está enfocado en preservar información, que generalmente no está presente en la documentación oficial, o, en algunos casos, no está detallada como para resolver un problema muy específico.

La idea principal es tener un espacio o un lugar donde almacenar nuestras notas sobre problemas a los cuales nos hemos enfrentado con determinado sistema operativo, y que le podría servir a la comunidad de Internet.

Actualmente, dado que el proyecto es reciente, tiene algunas notas, como tutoriales y tips de FreeBSD, pero dentro de un futuro cercano se tiene pensado agregar más información sobre FreeBSD y OpenBSD. También se es libre de documentar sobre otro sistema operativo, sea linux, BSD, o cualquier otro.

*.- Índice del proyecto: https://github.com/DtxdF/OS-NOTES
*.- Índice de las notas: https://github.com/DtxdF/OS-NOTES/blob/main/os-notes/index.md

~ DtxdF
Recientemente un proyecto de código abierto ha surgido. Uno que busca crear plantillas para desplegar herramientas, normalmente de escritorio, para FreeBSD usando BastilleBSD. El creador, @AyMiYepa, nos dispone de algunas plantillas muy útiles, como por ejemplo:

*.- Android Studio: https://gitlab.com/bastillebsd-apptemplates/android-studio
*.- Brave: https://gitlab.com/bastillebsd-apptemplates/brave
*.- Chromium: https://gitlab.com/bastillebsd-apptemplates/chromium
*.- Y vendrán más.

¿Quieres colaborar?
Forwarded from DtxdF
Instalación de Android Studio en FreeBSD

BastilleBSD es un sistema de código abierto para automatizar el despliegue y manejo de aplicaciones contenedorizadas en FreeBSD. Esta increible herramienta hace uso intensivo de herramientas base de FreeBSD, pero en especial de las jaulas. Más allá de ser un ayudante que nos facilite la administración de las jaulas, él trae con sí una característica muy llamativa: las plantillas.

Las plantillas es un sistema de BastilleBSD que permite aplicar archivos, instalar paquetes, ejecutar comandos dentro del contenedor automáticamente, o básicamente automatiza algunas tareas que simplemente serían repetitivas.

@AyMiYepa nos brinda algunas nuevas plantillas para aquellos que deseamos usar FreeBSD más allá en el entorno de los servidores.

Hoy usaremos una plantilla para instalar y usar fácilmente Android Studio, la cual es posible descargar desde:

*.- https://gitlab.com/bastillebsd-apptemplates/android-studio

Una vez hemos descargado la plantilla, solo hay que proceder a configurar algunas cuestiones. Primero que nada, como root, escribiremos las siguientes reglas para devfs(8):

cat <<EOF >> /etc/devfs.rules
[devfsrules_usb_jail=10]
add include $devfsrules_hide_all
add include $devfsrules_unhide_basic
add include $devfsrules_unhide_login
add path fuse unhide
add path usb* mode 0666 unhide
add path 'usb/*' mode 0666 unhide
add path 'usbctl' mode 660 unhide
add path ugen* mode 0666 unhide
EOF

Ahora, para que Gradle no falle, es necesario asignar una dirección IPv4 en el rango de 127.0.0.1/8:

bastille create TARGET 13.1-RELEASE 127.0.1.2

Realizamos el proceso de bootstraping y aplicamos la plantilla:

bastille bootstrap https://gitlab.com/bastillebsd-apptemplates/android-studio.git 
bastille template TARGET https://gitlab.com/bastillebsd-apptemplates/android-studio.git --arg XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR

Antes de iniciar Android Studio, es necesario permitir conexiones al servidor X usando xhost(1):

xhost +

Ya llegando al final de este tutorial, solo deberemos ejecutar Android Studio:

# USB
bastille cmd TARGET studio
# TCP/IP
bastille cmd TARGET studio YOUR_DEVICE_IP

Un paso adicional pero importante es que debemos cerrar Android Studio y al iniciar nuevamente Gradle nos dirá que no reconoce la plataforma FreeBSD.

Nos dirigamos a build.gradle (Project)

Nota: No confundir con módulo.

En build.gradle, en la parte superior, nos indica lo siguiente:

//Top-level build file where you can add configuration options common to all
sub-projects/modules.

Debemos añadir lo siguiente:

buildscript {
System.setProperty("os.name","Linux")
}

Estos últimos pasos es posible conseguirlos en una nota en OS-NOTES.

————

Hay que observar toda la facilidad y sin perder ni detalle, ni control sobre nuestras jaulas usando BastilleBSD. En pocos pasos hemos logrado iniciar Android Studio con la plantilla que nos brindó @AyMiYepa.

En ese sentido, el sistema de plantillas de BastilleBSD se asemeja en ciertos aspectos a Dockerfile pero el modo de aplicar plantillas y usar las aplicaciones contenedorizadas se asemeja a la facilidad de flatpak, pero sin duda alguna, gracias a la tecnología subyacente de FreeBSD: las jaulas, que ofrecen una mayor seguridad en comparación con ejecutarla directamente desde el host, aparte del aislamiento que disponen, hacen que nuestro entorno real esté limpio disminuyendo los riesgos de seguridad.

Por poner un ejemplo: si tuvieras un servidor web y éste tiene una vulnerabilidad conocida, y estuvieramos en la terrible situación de que gracias a esa vulnerabilidad un atacante logra acceder al sistema, solo estaría dentro de la jaula y no en el host real. Si tuvieramos cientos de jaulas, como microservicios, ninguno afectaría al otro. Aparte de la seguridad, es el manejo de dependencias: si tuvieramos que usar un navegador web, digamos, firefox, éste se instalaría con todas sus dependencias mientras que nuestro entorno real seguiría sin ensuciarse aumentando la estabilidad de nuestro sistema.
Forwarded from OpenBSD
AppJail - Framework para crear, mantener y desplegar jaulas

AppJail es un framework totalmente escrito en sh(1) y C para crear entornos aislados, portables y fáciles de desplegar usando las jaulas de FreeBSD.

Características:

* Fácil de usar.
* Inicio y parada de las jaulas en paralelo.
* Soporte para UFS y ZFS.
* Soporte para RACCT/RCTL para restringir los recursos de una jaula.
* Soporta IPv4 y IPv6.
* Soporta DHCP y SLAAC.
* Redes virtuales para organizar de forma lógica las jaulas.
* Puentes para proveer aislamiento entre jaulas.
* Soporta VNET.
* Despliegue sencillo usando los Makejails.
* Soporta Netgraph.
* Soporta LinuxJails.
* Soporta thin y thick jails.
* TinyJails, una característica experimental para exportar una jaula bastante despojada que es bastante útil para su distribución.
* Control del inicio y parada de las jaulas usando prioridades y el boot flag.
* Soporta las dependencias de jaulas.
* Initscripts, para crear jaulas interactivas.
* Respaldos sencillos con un solo comando.
* Estructura modular, lo cual hace que AppJail sea fácil de mantener: cada archivo tiene una responsabilidad propia.
* La mayoría de comandos tienen una interfaz como una tabla, bastante familiar en varias herramientas de administración de sistemas.
* Sin base de datos, todos los archivos son guardados individualmente en entidades separadas (redes, jaulas, etc.), lo cual hace su respaldo y mantenimiento mucho más sencillo.
* Supervisor - Próximamente ...
* ...

Enlace del proyecto: https://github.com/DtxdF/AppJail
[1/3] Container networking con AppJail: puentes, vnet, virtualnets y mucho más

En una ocasión anterior se brindó una breve introducción a los contenedores en FreeBSD usando AppJail, pero eso solo es una pequeña parte de todo el conjunto. Las redes son un aspecto fundamental cuando se trata de contenedores, ya que son la forma en cómo interactúan los contenedores tanto con los clientes, como con nosotros mismos, los administradores, y también como interactúan entre ellos mismos. No solo es una forma de comunicación, también es una cuestión de organización.

Artículo: https://underc0de.org/foro/redes/13-container-networking-con-appjail-puentes-vnet-virtualnets-y-mucho-mas
[2/3] Container networking con AppJail: DHCP, SLAAC, NAT y port forwarding

En la primera parte se presentó los usos básicos de redes para los contenedores en FreeBSD utilizando AppJail. AppJail puede lidiar con problemas más complejos para poder adaptarse a entornos o necesidades mucho más específicas, como se verá acontinuación.

Artículo: https://underc0de.org/foro/redes/23-container-networking-con-appjail-dhcp-slaac-nat-y-port-forwarding

Otros artículos relacionados:
* Introducción a los contenedores en FreeBSD.
* Container networking: primera parte.
[3/3] Container networking con AppJail: configuraciones complejas

La información que se ha recopilado en la parte uno y dos es valiosa para explicar configuraciones un poco más complejas que se adaptan a aplicaciones más específicas. Afortunadamente, AppJail abstrae todos los procesos necesarios para llevar a cabo las operaciones sin necesidad de que conozcamos los detalles intrinsecos.

Artículo: https://underc0de.org/foro/redes/33-container-networking-con-appjail-configuraciones-complejas

Otros artículos relacionados:
* Introducción a los contenedores en FreeBSD.
* Container networking: primera parte.
* Container networking: segunda parte.