<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Why OpenBSD rocks</title>
    <link>https://why-openbsd.rocks/</link>
    <description>Recent content on Why OpenBSD rocks</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <atom:link href="https://why-openbsd.rocks/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>/etc/examples</title>
      <link>https://why-openbsd.rocks/fact/etc-examples/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/etc-examples/</guid>
      <description>Since most administration is done by editing system configuration files in etc, the /etc/examples directory gives administrators a comprehensive set of example configuration files. At present there are approximately four dozen examples that are designed to be edited and copied into /etc. For example, the file /etc/examples/pf.conf is a more complete and more heavily commented version of the file it can replace, /etc/pf.conf.&#xA;Details:&#xA;pf.conf(8) - OpenBSD manual pages </description>
    </item>
    <item>
      <title>64bit Time</title>
      <link>https://why-openbsd.rocks/fact/64bit-time/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/64bit-time/</guid>
      <description>OpenBSD is one of the first operating systems to be safe from the &amp;ldquo;Year 2038 Problem&amp;rdquo;. 64-bit time was introduced in 2013, so you don&amp;rsquo;t have to worry about the Unix Epoch 32-bit issue.&#xA;Details:&#xA;64-bit Time on OpenBSD OpenBSD 5.5 Changelog Year 2038 problem - Wikipedia </description>
    </item>
    <item>
      <title>About</title>
      <link>https://why-openbsd.rocks/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/about/</guid>
      <description>Every now and then (at conferences, the office, the local hackerspace) people ask:&#xA;&amp;ldquo;You are using OpenBSD? Why?&amp;rdquo;&#xA;There are a bazillion great things about OpenBSD. The people, the philosophy and the technology.&#xA;“The Members of the OpenBSD Community are masters of reducing complexity”&#xA;Michael W. Lucas (Author &amp;ldquo;Absolute OpenBSD&amp;rdquo;)&#xA;This site shows random facts about the great functionality and ideas behind OpenBSD, and explains why people are so enthusiastic about it.</description>
    </item>
    <item>
      <title>acme-client(1)</title>
      <link>https://why-openbsd.rocks/fact/acme-client/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/acme-client/</guid>
      <description>OpenBSD has got its own ACME client, which ships by default in the base system. It has a nice config syntax, sane defaults and is well integrated with the OS.&#xA;Details:&#xA;OpenBSD 6.1 Changelog acme-client(1) - OpenBSD manual pages g2k16 Hackathon Report: Florian Obser on httpd, networking, acme-client, and more </description>
    </item>
    <item>
      <title>afterboot(8)</title>
      <link>https://why-openbsd.rocks/fact/afterboot/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/afterboot/</guid>
      <description>After the first complete boot succeeded to the installation, OpenBSD purposes a complete document to list items for the system administrator to check and set up. The idea is to create a list of items that can be checked off so that you do not forget anything important.&#xA;Details:&#xA;afterboot(8) - OpenBSD manual pages OpenBSD 2.2 Changelog </description>
    </item>
    <item>
      <title>AnonCVS and open source repos</title>
      <link>https://why-openbsd.rocks/fact/anoncvs/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/anoncvs/</guid>
      <description>OpenBSD pioneered anonymous CVS, which allows anyone to extract the full source tree for any version of OpenBSD at any time - no tarball downloads, no user accounts needed.&#xA;In the Fall of 1995 when we started our own open source operating system project called OpenBSD, we decided to use CVS to manage the OpenBSD source tree. Based on our experiences with the previous open source project we were involved with, we recognized the inherent conflict between trying to maintain an open environment while maintaining a private CVS source repository that only privileged users could access.</description>
    </item>
    <item>
      <title>Anti-ROP</title>
      <link>https://why-openbsd.rocks/fact/anti-rop/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/anti-rop/</guid>
      <description>The order of symbols in libc.so are randomized at boot time to prevent &amp;ldquo;Return oriented programming&amp;rdquo;.&#xA;An attacker gains control of the call stack to hijack program control flow and then executes carefully chosen machine instruction sequences that are already present in the machine&amp;rsquo;s memory.&#xA;With randomized symbols, this is not an attack vector anymore.&#xA;Details:&#xA;‘anti-ROP mechanism in libc’ - MARC OpenBSD 6.0 Changelog Return-oriented programming - Wikipedia </description>
    </item>
    <item>
      <title>arc4random(3)</title>
      <link>https://why-openbsd.rocks/fact/arc4random/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/arc4random/</guid>
      <description>OpenBSD has its own cryptographic random number generator.&#xA;Wherever random input is needed, arc4random is used. arc4random is an abstraction layer for currently considered as safe ciphers and produces ChaCha20 ciphers at the moment&#xA;Arc4random is &amp;ldquo;A Replacement Call For Random&amp;rdquo;, to generate very quickly high quality 32-bit pseudo-random numbers.&#xA;Details:&#xA;arc4random(3) - OpenBSD manual pages arc4random(9) - OpenBSD manual pages OpenBSD 2.1 - Changelog OpenBSD 5.5 </description>
    </item>
    <item>
      <title>ASLR</title>
      <link>https://why-openbsd.rocks/fact/aslr/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/aslr/</guid>
      <description>Address Space Layout Randomisation places code, data and stack in randomly selected location in the memory of the OpenBSD Operating System. As a result every execution of a binary ends up in a different layout.&#xA;This makes it hard for an attacker to predict memory addresses and process behaviour.&#xA;Details:&#xA;OpenBSD 3.4 Changelog Address space layout randomization - Wikipedia </description>
    </item>
    <item>
      <title>Audio recording</title>
      <link>https://why-openbsd.rocks/fact/audio/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/audio/</guid>
      <description>For privacy reasons, the OpenBSD team disabled audio recording for all devices by default in the kernel. This can be toggled on/off with a simple sysctl change, without rebooting.&#xA;sysctl kern.audio.record=1 # enable at runtime echo kern.audio.record=1 &amp;gt;&amp;gt; /etc/sysctl.conf # set at boot Details:&#xA;OpenBSD 6.4 sysctl(2) - OpenBSD manual pages Audio recording is now disabled by default in OpenBSD | ZDNet </description>
    </item>
    <item>
      <title>autoinstall(8)</title>
      <link>https://why-openbsd.rocks/fact/autoinstall/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/autoinstall/</guid>
      <description>autoinstall offers system administrators a way to fully automate their OpenBSD Installations in a very simple and efficient way. This functionality is actually built into the Operating System.&#xA;Details:&#xA;autoinstall(8) - OpenBSD manual pages New disklabel(8) templates make for a more flexible autoinstall </description>
    </item>
    <item>
      <title>base system concept</title>
      <link>https://why-openbsd.rocks/fact/base-system-concept/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/base-system-concept/</guid>
      <description>When you install OpenBSD, you get a base system that contains various software.&#xA;For example, sshd, tmux, a HTTP Server, whois , doas, less, make, clang &amp;amp; ftp. Mostly stuff that is needed day to day by a system administrator.&#xA;A base system with default tools and daemons is a fundamentally different concept than packaged software with preinstalled packages.&#xA;Details:&#xA;src/ OpenBSD - Wikipedia </description>
    </item>
    <item>
      <title>carp(4)</title>
      <link>https://why-openbsd.rocks/fact/carp/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/carp/</guid>
      <description>The carp interface is a pseudo-device which implements and controls the CARP protocol. carp allows multiple hosts on the same local network to share a set of IP addresses. Its primary purpose is to ensure that these addresses are always available, but in some configurations carp can also provide load balancing functionality.&#xA;Details:&#xA;The carp device first appeared in OpenBSD 3.5. carp(4) - OpenBSD manual pages hostname.if(5) - OpenBSD manual pages ifconfig(8) - OpenBSD manual pages </description>
    </item>
    <item>
      <title>Chrooted webserver by default</title>
      <link>https://why-openbsd.rocks/fact/chrooted-webserver/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/chrooted-webserver/</guid>
      <description>By default, HTTP daemons are chrooted in /var/www. As an OpenBSD system administrator, you don&amp;rsquo;t need to configure anything to have a secured webserver installation running.&#xA;This is also true for HTTP daemons from packages (apache2, nginx).&#xA;$ getent passwd www www:*:67:67:HTTP Server:/var/www:/sbin/nologin Details:&#xA;httpd.conf(5) - OpenBSD manual pages chroot(2) - OpenBSD manual pages chroot(8) - OpenBSD manual pages </description>
    </item>
    <item>
      <title>Configuration syntax</title>
      <link>https://why-openbsd.rocks/fact/configuration-syntax/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/configuration-syntax/</guid>
      <description>All daemons written by and for OpenBSD have config files following a certain scheme; this scheme is similar to pf. Even though there is no formal specification, the unified and readable syntax and vocabulary make OpenBSDs daemons easy to understand and configure.&#xA;acme-client.conf&#xA;domain why-openbsd.rocks { domain key &amp;#34;/etc/ssl/private/why-openbsd.rocks.key&amp;#34; domain certificate &amp;#34;/etc/ssl/why-openbsd.rocks.crt&amp;#34; domain full chain certificate &amp;#34;/etc/ssl/why-openbsd.rocks.pem&amp;#34; challengedir &amp;#34;/var/www/htdocs/challenges/&amp;#34; sign with letsencrypt } relayd.conf&#xA;http protocol https { match request header append &amp;#34;X-Forwarded-For&amp;#34; value &amp;#34;$REMOTE_ADDR&amp;#34; match request header append &amp;#34;X-Forwarded-By&amp;#34; \ value &amp;#34;$SERVER_ADDR:$SERVER_PORT&amp;#34; match request header set &amp;#34;Connection&amp;#34; value &amp;#34;close&amp;#34; # Various TCP options tcp { sack, backlog 128 } tls { no tlsv1.</description>
    </item>
    <item>
      <title>cron(8)</title>
      <link>https://why-openbsd.rocks/fact/cron/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/cron/</guid>
      <description>OpenBSD’s cron(8) daemon can randomize values (~), and prevent multiple jobs from running concurrently (-s). Super useful additions that all cron implementations should have had forever.&#xA;For example &amp;ldquo;0~30&amp;rdquo; will result in a random value between 0 and 30 inclusive. If either (or both) of the numbers on either side of the &amp;lsquo;~&amp;rsquo; are omitted, the appropriate limit (low or high) for the field will be used.&#xA;Example:&#xA;0~30 1 * * * [-nsq] echo foo These features are included in OpenBSD 6.</description>
    </item>
    <item>
      <title>cwm(1)</title>
      <link>https://why-openbsd.rocks/fact/cwm/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/cwm/</guid>
      <description>Marius Aamodt Eriksen and a few others developed cwm for X11, which contains many features that concentrate on the efficiency and transparency of window management, while maintaining the simplest and most pleasant aesthetic. cwm was released in November 2007 and replaced wm2 in OpenBSD 4.2.&#xA;Details:&#xA;cwm(1) Getting started with cwm OpenBSD 4.2 Release OpenBSD 4.2 Changelog Calm Window Manager - Wikipedia </description>
    </item>
    <item>
      <title>Defined integer overflows</title>
      <link>https://why-openbsd.rocks/fact/defined-integer-overflows/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/defined-integer-overflows/</guid>
      <description>Clang, the default compiler on most architectures, have -fwrapv flag enabled by default. GCC also does not include -fstrict-overflow into -O2 optimization option. This tells the compiler to treat signed integer overflows as defined, preventing optimizations which remove security critical overflow checks. This is another example of sane defaults.&#xA;Details:&#xA;clang-local(1) - OpenBSD manual pages clang(1) - OpenBSD manual pages gcc-local(1) - OpenBSD manual pages gcc(1) - OpenBSD manual pages </description>
    </item>
    <item>
      <title>doas(1)</title>
      <link>https://why-openbsd.rocks/fact/doas/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/doas/</guid>
      <description>doas replaced sudo because of the latter&amp;rsquo;s security flaws and large, complex codebase. doas is easy to configure and use and suits most use cases. Its source code is small and elegant too.&#xA;permit nopass &amp;lt;user&amp;gt; as root permit nopass root Details:&#xA;doas(1) - OpenBSD manual pages doas - dedicated openbsd application subexecutor OpenBSD 5.8 </description>
    </item>
    <item>
      <title>dump(8): incremental filesystem backups</title>
      <link>https://why-openbsd.rocks/fact/dump/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/dump/</guid>
      <description>dump is a program to maintain incremental filesystem backups.&#xA;Created backup could be piped through archiver, encryption tool or ssh.&#xA;Unlike with pax(1), tar(1) and cpio(1) dump can save in backup file with name as long as supported by filesystem.&#xA;Date of the latest filesystem backup and level of that backup kept in /etc/dumpdates file and could be viewed with dump -W.&#xA;A file with nodump flag set will by default be backed up by dump during full backups.</description>
    </item>
    <item>
      <title>Eating your own dogfood</title>
      <link>https://why-openbsd.rocks/fact/dogfood/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/dogfood/</guid>
      <description>OpenBSD developers tend to use OpenBSD on their laptops and in their daily lives, especially while working on OpenBSD itself.&#xA;Chances are very high, if you buy a Thinkpad or the like, everything just works out of the box.&#xA;This results of people actually using their product on their own hardware being challenged by daily life tasks.&#xA;Details:&#xA;Eating your own dog food (Wikipedia) </description>
    </item>
    <item>
      <title>FFS2: Enhanced Fast Filesystem</title>
      <link>https://why-openbsd.rocks/fact/ffs2/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/ffs2/</guid>
      <description>FFS2 (Enhanced Fast Filesystem) is the new filesystem by default on nearly all architectures, since OpenBSD 6.7.&#xA;Benefits:&#xA;FFS2 is faster than its predecessor FFS when creating the filesystem, as well as analyzing it with fsck(8) FFS2 uses 64-bit timestamps and block numbers; so it is not subject to the Y2038 bug. FFS2 supports very large partitions (&amp;gt;= 1TB, since 4.2). Details:&#xA;FFS2 first appeared in OpenBSD 4.2. OpenBSD 4.2 changelog CVS 1.</description>
    </item>
    <item>
      <title>file(1)</title>
      <link>https://why-openbsd.rocks/fact/file/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/file/</guid>
      <description>file is sandboxed and runs as the _file user.&#xA;Think of the following: You download a random file from the internet and analyze it using file. If file has a security hole (local code execution for example) and the downloaded file is configured to exploit this, it can run attacks. That&amp;rsquo;s why the file utility is sandboxed and chrooted by default.&#xA;Details:&#xA;‘CVS: cvs.openbsd.org: src’ - MARC CVS log for src/usr.</description>
    </item>
    <item>
      <title>freezero(3)</title>
      <link>https://why-openbsd.rocks/fact/freezero/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/freezero/</guid>
      <description>The libc function freezero(3) allows programs to free memory that holds sensitive data, and to overwrite it with zeros.&#xA;Details:&#xA;OpenBSD 6.2 freezero(3) manpage </description>
    </item>
    <item>
      <title>Full Disk Encryption</title>
      <link>https://why-openbsd.rocks/fact/fulldiskencryption/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/fulldiskencryption/</guid>
      <description>OpenBSD supports FDE since 5.3 using softraid(4) and bioctl(8).&#xA;Details:&#xA;OpenBSD 5.3 bioctl(8) - OpenBSD manual pages OpenBSD FAQ: Disk Setup </description>
    </item>
    <item>
      <title>Hackathons</title>
      <link>https://why-openbsd.rocks/fact/hackathons/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/hackathons/</guid>
      <description>June 1999 was the first time that a group of OpenBSD developers met in one space to begin working on cryptographic code. Hackathons for OpenBSD now take place three to four times a year and cover a variety of improvements to the codebase.&#xA;Hackathons are open to developers, or by invite only, and are held all over the world.&#xA;Funding for hackathons is made possible by donations from people like you.</description>
    </item>
    <item>
      <title>httpd(8)</title>
      <link>https://why-openbsd.rocks/fact/httpd/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/httpd/</guid>
      <description>For a long time OpenBSD used a patched version of Apache httpd. After that, nginx was imported into base, but even that was still too big for the base system.&#xA;Reyk Floeter and Pierre-Yves Ritschard wrote a minimal HTTP server, which replaced all externally developed http servers in the base system for OpenBSD release 5.6.&#xA;server &amp;#34;www.example.com&amp;#34; { alias &amp;#34;example.com&amp;#34; listen on * port 80 listen on * tls port 443 root &amp;#34;/htdocs/www.</description>
    </item>
    <item>
      <title>Imprint</title>
      <link>https://why-openbsd.rocks/imprint/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/imprint/</guid>
      <description>German law forces me to put this here.&#xA;Imprint Angaben gemäß § 5 TMG:&#xA;Florian Baumann Jakob-Fuchs-Str. 35 95445 Bayreuth mail: flo aett blog domain blog: https://noqqe.de fediverse: https://chaos.social/@noqqe Quelle: eRecht24, Rechtsanwalt für Internetrecht Sören Siebert&#xA;Haftungsausschluss:&#xA;Haftung für Inhalte Die Inhalte unserer Seiten wurden mit größter Sorgfalt erstellt. Für die Richtigkeit, Vollständigkeit und Aktualität der Inhalte können wir jedoch keine Gewähr übernehmen. Als Diensteanbieter sind wir gemäß § 7 Abs.</description>
    </item>
    <item>
      <title>KARL</title>
      <link>https://why-openbsd.rocks/fact/karl/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/karl/</guid>
      <description>At every install, upgrade, and boot a new kernel is generated with randomized addresses. A unique and unpredictable kernel is a huge security improvement. This technique is called Kernel Address Randomized Link (KARL).&#xA;Details:&#xA;‘kernel relinking’ - MARC OpenBSD 6.2 </description>
    </item>
    <item>
      <title>Kernel &amp; Userland</title>
      <link>https://why-openbsd.rocks/fact/kernel-userland/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/kernel-userland/</guid>
      <description>The kernel and userland in OpenBSD are developed together. The same people who introduce new features to the kernel control the userland.&#xA;This way, new features can be implemented very fast into all of parts of the OS. See pledge, for example. As Linux Kernel and GNU Core Utilities are developed independently, it would not be possible to introduce pledge to all the tools that easily.</description>
    </item>
    <item>
      <title>LibreSSL</title>
      <link>https://why-openbsd.rocks/fact/libressl/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/libressl/</guid>
      <description>The unmaintainable and bloated OpenSSL Codebase was forked after Heartbleed was revealed. The code was thoroughly cleaned up, improved and documented. Besides new modern ciphers FRP256v1, RFC 5639 EC Brainpool, ChaCha20, Poly1305, LibreSSL is API compatible with OpenSSL but without the mess. It is actively developed.&#xA;Details:&#xA;LibreSSL: The first 30 days, and what the Future Holds - YouTube origins of libressl LibreSSL </description>
    </item>
    <item>
      <title>License</title>
      <link>https://why-openbsd.rocks/fact/license/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/license/</guid>
      <description>You are free to use the operating system as you want and do business with it according to ISC or Berkeley style licenses. By contract the GPL is not acceptable when adding new code.&#xA;Details:&#xA;OpenBSD: Project Goals OpenBSD: Copyright Policy </description>
    </item>
    <item>
      <title>Malloc leak detection</title>
      <link>https://why-openbsd.rocks/fact/malloc-leak-detection/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/malloc-leak-detection/</guid>
      <description>Since 7.4 -current (04/17/2023), malloc leak detection. It&amp;rsquo;s a tool to detect unsafe behaviors in the OpenBSD code for Team developers. It needs to have debug symbols.&#xA;This tracks memory allocations to free them properly after use.&#xA;Details:&#xA;malloc(3) - OpenBSD manual pages Otto Moerbeek: about leak detection </description>
    </item>
    <item>
      <title>mandoc(1)</title>
      <link>https://why-openbsd.rocks/fact/mandoc/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/mandoc/</guid>
      <description>All man pages are built with the advanced and unified tooling around mandoc. Ingo Schwarze spent a lot of time importing, fixing and improving documentation in general.&#xA;Details:&#xA;BSDCan11 Mandoc Slides mandoc - UNIX Manuals EuroBSDCon 2015 mandoc(1) - OpenBSD manual pages </description>
    </item>
    <item>
      <title>manpages</title>
      <link>https://why-openbsd.rocks/fact/manpages/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/manpages/</guid>
      <description>There is probably no Operating System that is documented more and better than OpenBSD. Every single binary, library, driver or script delivered in the base system has its own manpage.&#xA;The OpenBSD project considers lack of documentation on any function of the system to be a bug.&#xA;man cat # of course, base system binary man vio # the virtual network driver man null # the /dev/null device man daily # the cronjobs that maintain your system man adventure # a game delivered in the base system man hostname.</description>
    </item>
    <item>
      <title>Meltdown &amp; Spectre</title>
      <link>https://why-openbsd.rocks/fact/meltdown-spectre/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/meltdown-spectre/</guid>
      <description>To mitigate the Meltdown and Spectre vulnerabilities, OpenBSD holds separate page tables for the kernel and userland.&#xA;The next generation of Meltdown was mitigated in this way. OpenBSD was no longer affected as memory could not be inappropriately accessed.&#xA;OpenBSD has also disabled Intel’s hyper-threading technology, citing security concerns – seemingly, Spectre-style concerns, with “a new hw.smt sysctl”.&#xA;Details:&#xA;Meltdown fix committed by guenther@ CVS: cvs.openbsd.org: src CVS: cvs.openbsd.org: src </description>
    </item>
    <item>
      <title>Memory allocation randomization</title>
      <link>https://why-openbsd.rocks/fact/malloc-randomization/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/malloc-randomization/</guid>
      <description>malloc allocates areas of memory that programs have requested using system calls. It randomizes memory allocations over the entire address space.&#xA;This makes attacks harder because each run has a different memory layout. It traps bugs (allocations are surrounded by unmapped memory) and allows realloc to grow an allocation without copying in most cases.&#xA;Details:&#xA;malloc(3) - OpenBSD manual pages Otto Moerbeek: about malloc(3) on Twitter </description>
    </item>
    <item>
      <title>mg(1)</title>
      <link>https://why-openbsd.rocks/fact/mg/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/mg/</guid>
      <description>mg is a small, lightweight emacs clone in the base system. Sysadmins who do not like to use vi(1) or ed(1) have an alternative.&#xA;Details:&#xA;mg(1) - OpenBSD manual pages mg (editor) - Wikipedia </description>
    </item>
    <item>
      <title>Multiple platforms</title>
      <link>https://why-openbsd.rocks/fact/multi-plat/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/multi-plat/</guid>
      <description>Maintaining code for multiple platform prevents coding with assumptions. Kernel and libc code needs to be designed platform independent. This really improves operating systems codebase.&#xA;Besides that, it also means you can run OpenBSD on quite a few architectures (partially very old ones like VAX, Loongson, Apple PowerPC).&#xA;Details:&#xA;OpenBSD.org Platforms Secure Portability (djm, 2005) </description>
    </item>
    <item>
      <title>No *-dev packages</title>
      <link>https://why-openbsd.rocks/fact/dashdev/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/dashdev/</guid>
      <description>If you install a library, there is no split between library and header files. There is no zlib-dev package as an addition to zlib. You get everything at once.&#xA;Details:&#xA;OpenBSD FAQ: Package Management OpenBSD Porter’s Handbook </description>
    </item>
    <item>
      <title>noexec</title>
      <link>https://why-openbsd.rocks/fact/noexec/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/noexec/</guid>
      <description>Partitions can be mounted using the noexec mount Flag. This means no binaries located on this mounted path can be executed.&#xA;For example, you can use this option to safely mount a USB stick.&#xA;Details:&#xA;mount(8) - OpenBSD manual pages </description>
    </item>
    <item>
      <title>nsd(8)</title>
      <link>https://why-openbsd.rocks/fact/nsd/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/nsd/</guid>
      <description>nsd(8) is a complete implementation of an authoritative DNS nameserver developed by NLnet Labs and RIPE NCC.&#xA;nsd is lightweight, reliable and shipped within OpenBSD&amp;rsquo;s base system and therefore available out of the box.&#xA;Details:&#xA;nsd(8) - OpenBSD manual pages nsd.conf(5) - OpenBSD manual pages </description>
    </item>
    <item>
      <title>ntpd(8)</title>
      <link>https://why-openbsd.rocks/fact/ntpd/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/ntpd/</guid>
      <description>Since OpenBSD 3.6, the base system ships with its own implementation of ntp. OpenBSD 5.7 introduced HTTPS Constraints, which helps to verify the times received in unauthenticated UDP packets.&#xA;servers pool.ntp.org constraints from &amp;#34;https://www.google.com/&amp;#34; OpenNTPD has become a portable software project and is also available in Linux distributions.&#xA;Details:&#xA;Authenticated TLS &amp;ldquo;contraints&amp;rdquo; in ntpd(8) ntpd(8) - OpenBSD manual pages ntpd.conf Constraints OpenNTPD OpenBSD 3.6 OpenBSD 5.7 </description>
    </item>
    <item>
      <title>OpenBGPD</title>
      <link>https://why-openbsd.rocks/fact/openbgpd/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/openbgpd/</guid>
      <description>OpenBGPD is a FREE implementation of the Border Gateway Protocol, Version 4. It allows ordinary machines to be used as routers exchanging routes with other systems speaking the BGP protocol.&#xA;Started out of dissatisfaction with other implementations, OpenBGPD is a fairly complete BGP implementation, powering many sites. Users often praise its ease of use and high performance, as well as its reliability.&#xA;OpenBGPD&amp;rsquo;s companions, ospfd(8), ospf6d(8), ripd(8) and dvmrpd(8) add support for the respective protocols.</description>
    </item>
    <item>
      <title>openrsync</title>
      <link>https://why-openbsd.rocks/fact/openrsync/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/openrsync/</guid>
      <description>In early 2019 OpenBSD imported openrsync to the base system as a free and open alternative to traditional rsync.&#xA;openrsync has a reduced, simplified set of features, an acceptable license (BSD) while still being compatible with rsync.&#xA;Details:&#xA;the openrsync program first appeared in OpenBSD 6.5. OpenBSD on Tweet about openrsync GitHub - kristapsdz/openrsync: BSD-licensed implementation of rsync </description>
    </item>
    <item>
      <title>OpenSMTPD</title>
      <link>https://why-openbsd.rocks/fact/opensmtpd/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/opensmtpd/</guid>
      <description>The OpenBSD base system contained a working and secured sendmail setup for a long time. It was replaced by OpenSMTPD in OpenBSD 5.3 (2013).&#xA;OpenSMTPD was written by OpenBSD Developers from scratch. A simple mail daemon was needed for the base system of the operating system and there were no suitable alternatives. The goals are simplicity, security and reliability with an acceptable license (ISC).&#xA;table aliases file:/etc/mail/aliases table secrets file:/etc/mail/secrets listen on lo0 action &amp;#34;local&amp;#34; mbox alias &amp;lt;aliases&amp;gt; action &amp;#34;relay&amp;#34; relay host smtp+tls://bob@smtp.</description>
    </item>
    <item>
      <title>OpenSSH</title>
      <link>https://why-openbsd.rocks/fact/openssh/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/openssh/</guid>
      <description>The most popular OpenBSD software is probably OpenSSH. By using OpenBSD you always have the most recent version and features in your sshd.&#xA;It&amp;rsquo;s also enabled and securely configured by default.&#xA;Details:&#xA;OpenSSH ssh(1) - OpenBSD manual pages sshd(8) - OpenBSD manual pages </description>
    </item>
    <item>
      <title>perl(1)</title>
      <link>https://why-openbsd.rocks/fact/perl/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/perl/</guid>
      <description>perl - The Perl 5 language interpreter&#xA;Perl officially stands for Practical Extraction and Report Language, except when it doesn&amp;rsquo;t.&#xA;Perl was originally a language optimized for scanning arbitrary text files, extracting information from those text files, and printing reports based on that information. It quickly became a good language for many system management tasks. Over the years, Perl has grown into a general-purpose programming language. It&amp;rsquo;s widely used for everything from quick &amp;ldquo;one-liners&amp;rdquo; to full-scale application development.</description>
    </item>
    <item>
      <title>pf(4)</title>
      <link>https://why-openbsd.rocks/fact/pf/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/pf/</guid>
      <description>pf is OpenBSD&amp;rsquo;s very own firewall, since 3.0. It is simple and feature-rich and its configuration files are easy to read. It supports the use of variables, lists and tables.&#xA;tcpin = &amp;#34;{ http, https, ssh }&amp;#34; block in all pass out quick on $extif from any to any pass in on $extif proto tcp from any to any port $tcpin In fact, pf was often one of the top selling points for OpenBSD and many commercial firewall appliances are based on it.</description>
    </item>
    <item>
      <title>PID randomization</title>
      <link>https://why-openbsd.rocks/fact/pid/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/pid/</guid>
      <description>OpenBSD spawns each new process with a random, unused PID. This protects the user from attacks that predict new PIDs.&#xA;Details:&#xA;this feature first appeared in OpenBSD 2.1 CVS log for src/sys/kern/kern_fork.c operating systems - Do randomized PIDs bring more security? - Information Security Stack Exchange </description>
    </item>
    <item>
      <title>PIE</title>
      <link>https://why-openbsd.rocks/fact/pie/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/pie/</guid>
      <description>A PIE binary and all of its dependencies are loaded into random locations within virtual memory every time the application is executed.&#xA;This heavy use of randomization makes it hard for an attacker to predict the binary&amp;rsquo;s behaviour.&#xA;Details:&#xA;Position Independent Code AsiaBSDCon2015 PIE Slides OpenBSD 5.8 Changelog </description>
    </item>
    <item>
      <title>ping(8) randomness</title>
      <link>https://why-openbsd.rocks/fact/ping/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/ping/</guid>
      <description>Both ping(8) and ping6(8) obfuscate the transmitted monotonic clock values by offsetting them with a random value.&#xA;ChaCha streams are used to vary every payload. This helps the user to hide the system time from the attacker and prevents OS detection.&#xA;More Details:&#xA;OpenBSD 5.8 Changelog obfuscate the monotonic clock values we put on the wire by offsetting · openbsd/src@08eef1f · GitHub ping(8), ping6(8) - OpenBSD manpages </description>
    </item>
    <item>
      <title>pledge(2)</title>
      <link>https://why-openbsd.rocks/fact/pledge/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/pledge/</guid>
      <description>pledge allows you to limit a program&amp;rsquo;s access to system calls very easily. This is a huge improvement in security: why should cut(1) ever need to open a socket? Just deny it the ability to do so. Even if a binary is compromised, its chances to misbehave are greatly reduced.&#xA;int main(int argc, char *argv[]) { [...] if (pledge(&amp;#34;stdio rpath&amp;#34;, NULL) == -1) err(1, &amp;#34;pledge&amp;#34;); [...] } Within only two releases, the OpenBSD Developers managed to introduce pledge to most of the binaries in the base system.</description>
    </item>
    <item>
      <title>Privilege Separation</title>
      <link>https://why-openbsd.rocks/fact/privilege-separation/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/privilege-separation/</guid>
      <description>OpenBSD runs nearly all of the standard base system daemons with privilege separation. These include smtpd, httpd , snmpd, sshd, and syslogd to name just a few.&#xA;Details:&#xA;Privilege Separation OpenBSD: Innovations </description>
    </item>
    <item>
      <title>Random MAC addresses in ifconfig(8)</title>
      <link>https://why-openbsd.rocks/fact/ifconfig-mac-address/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/ifconfig-mac-address/</guid>
      <description>OpenBSD lets you have randomized MAC addresses via ifconfig(8)&#xA;ifconfig iwm0 lladdr random Randomizing your MAC address improves anonymity while using your Laptop in public wifi or the like.&#xA;Details:&#xA;ifconfig(8) Bryan Steele on Twitter </description>
    </item>
    <item>
      <title>rcctl(8)</title>
      <link>https://why-openbsd.rocks/fact/rcctl/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/rcctl/</guid>
      <description>rcctl is a simple utility to maintain rc.conf.local(8), the system daemon configuration database for OpenBSD.&#xA;Compared to systemd or SysVinit, rcctl is very lightweight, and stable and easy to understand and use.&#xA;Details:&#xA;rcctl(8) - OpenBSD manual pages rc.conf.local(8) - OpenBSD manual pages OpenBSD 5.7 OpenBSD 5.7 - Changelog Heads up: rcctl(8) the rc.conf.local management tool landing in base </description>
    </item>
    <item>
      <title>rdist(1)</title>
      <link>https://why-openbsd.rocks/fact/rdist/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/rdist/</guid>
      <description>rdist is a program to maintain identical copies of files over multiple hosts. It preserves the owner, group, mode, and mtime of files if possible and can update programs that are executing. rdist reads commands from distfile to direct the updating of files and/or directories.&#xA;HOSTS = ( rupdate@ns2.example.com ) FILES = ( /var/nsd ) EXCL = ( nsd.conf *.key *.pem ) ${FILES} -&amp;gt; ${HOSTS} install ; except /var/nsd/db ; except /var/nsd/etc/${EXCL} ; except /var/nsd/run ; special &amp;#34;logger rdist update: $REMFILE&amp;#34; ; cmdspecial &amp;#34;rcctl reload nsd&amp;#34; ; unbound: /var/unbound/etc/unbound.</description>
    </item>
    <item>
      <title>recallocarray(3)</title>
      <link>https://why-openbsd.rocks/fact/recallocarray/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/recallocarray/</guid>
      <description>recallocarray is a libc function that ensures data is discarded before allocating new memory and checks for integer overflow from multiplication. This function appeared in OpenBSD 6.1.&#xA;Details:&#xA;malloc(3) - OpenBSD manual pages reallocarray() in OpenBSD: Integer Overflow Detection for Free - Lawrence Teo OpenBSD 6.1 </description>
    </item>
    <item>
      <title>relayd(8)</title>
      <link>https://why-openbsd.rocks/fact/relayd/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/relayd/</guid>
      <description>The relayd daemon relays and dynamically redirects incoming connections to a target host. It is mainly used as a load-balancer, an application layer gateway, or a transparent proxy.&#xA;The daemon can monitor groups of hosts for availability. This is determined by checking for a specific service common to a host group. When availability is confirmed, layer 3 and/or layer 7 forwarding services are set up by relayd.&#xA;ext_addr=&amp;#34;192.168.1.1&amp;#34; table &amp;lt;webhosts&amp;gt; { $webhost1 $webhost2 } relay www { listen on $ext_addr port http forward to &amp;lt;webhosts&amp;gt; port http loadbalance check http &amp;#34;/&amp;#34; code 200 } Details:</description>
    </item>
    <item>
      <title>Reliable release model</title>
      <link>https://why-openbsd.rocks/fact/release-model/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/release-model/</guid>
      <description>OpenBSD has a reliable release model. Every 6 months a new release of the operating system will be released with new features and stability additions. Only the two most recent OpenBSD releases receive security and reliability fixes for the base system.&#xA;The version scheme is defined 5.8, 5.9, 6.0, 6.1.&#xA;Security fixes will be published as Errata and can be applied using syspatch&#xA;Details:&#xA;OpenBSD version history - Wikipedia OpenBSD version numbers - flak OpenBSD: Errata and Patches </description>
    </item>
    <item>
      <title>Retpoline</title>
      <link>https://why-openbsd.rocks/fact/retpoline/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/retpoline/</guid>
      <description>Retpoline prevents speculative execution (Spectre) by isolating branches using an infinite loop that is never executed to prevent the CPU from speculating on the target of an indirect jump.&#xA;Details:&#xA;Retpoline: a software construct for preventing branch-target-injection - Google Help OpenBSD 6.4 Spectre - Wikipedia </description>
    </item>
    <item>
      <title>rpki-client(8)</title>
      <link>https://why-openbsd.rocks/fact/rpki-client/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/rpki-client/</guid>
      <description>The rpki-client utility queries the RPKI repository system with openrsync(1) to fetch all X.509 certificates, manifests, and revocation lists under a given Trust Anchor.&#xA;rpki-client subsequently validates each Route Origin Authorization (ROA) by constructing and verifying a certification path for the certificate associated with the ROA (including checking relevant CRLs). rpki-client produces lists of the Validated ROA Payloads (VRPs) in various formats.&#xA;Details:&#xA;The rpki-client utility was written by Kristaps Dzonsons rpki-client first appeared in OpenBSD 6.</description>
    </item>
    <item>
      <title>Sane &amp; secure defaults</title>
      <link>https://why-openbsd.rocks/fact/sane-defaults/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/sane-defaults/</guid>
      <description>OpenBSD has sane and secure defaults set in daemons and configurations.&#xA;The system is intended to be secure by default, and many of its security features are either missing or optional in other operating systems.&#xA;This means you don&amp;rsquo;t have to tweak your freshly installed operating system to get services running. There is no hardening process required when you setup sshd(8), for example. Just as for every other daemon or component in the base system.</description>
    </item>
    <item>
      <title>securelevel(7)</title>
      <link>https://why-openbsd.rocks/fact/securelevel/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/securelevel/</guid>
      <description>securelevel is a security mechanism in OpenBSD kernel. It provides four levels of system security, from insecure mode to draconian mode:&#xA;-1 (Permanently insecure mode) Kernel does not try to increase security level. This effectively disables securelevel protections. 0 (Insecure mode) all devices can be read or written and system file flags can be cleared using chflags. 1 (Secure mode) the raw memory devices can not be written to, the raw devices of mounted file systems can not be written to, important kernel variables are locked down - Actually, this is the mode by default.</description>
    </item>
    <item>
      <title>sensorsd(8)</title>
      <link>https://why-openbsd.rocks/fact/sensorsd/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/sensorsd/</guid>
      <description>sensorsd — hardware sensors monitor&#xA;The sensorsd utility retrieves sensor monitoring data like fan speed, temperature, voltage and RAID logical disk status from the sysctl(2) hw.sensors subtree. When the state of any monitored sensor changes, an alert is triggered. Every alert logs a message to syslog(3) using the daemon facility. Optionally, an alert can be configured to execute a command.&#xA;Details:&#xA;The sensorsd program first appeared in OpenBSD 3.5. sensorsd(8) - OpenBSD manual pages sysctl(2) - OpenBSD manual pages syslog(3) - OpenBSD manual pages </description>
    </item>
    <item>
      <title>signify(1)</title>
      <link>https://why-openbsd.rocks/fact/signify/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/signify/</guid>
      <description>signify is a small and elegant tool to cryptographically sign and verify files. It was created to sign OpenBSD releases, since OpenBSD 5.5, and Binary Patches for syspatch. It uses only the Ed25519 algorithm.&#xA;Think of it as an simple, easy replacement for PGP signing.&#xA;Details:&#xA;signify - sign and verify signify(1) - OpenBSD manual pages signify: Securing OpenBSD From Us To You OpenBSD 5.5 Ed25519 </description>
    </item>
    <item>
      <title>slowcgi(8)</title>
      <link>https://why-openbsd.rocks/fact/slowcgi/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/slowcgi/</guid>
      <description>slowcgi — a FastCGI to CGI wrapper server&#xA;slowcgi is a server which implements the FastCGI Protocol to execute CGI scripts. FastCGI was designed to overcome the CGI protocol&amp;rsquo;s scalability and resource sharing limitations. While CGI scripts need to be forked for every request, FastCGI scripts can be kept running and handle many HTTP requests.&#xA;Details:&#xA;The slowcgi server first appeared in OpenBSD 5.4. slowcgi(8) - OpenBSD manual pages httpd(8) - OpenBSD manual pages </description>
    </item>
    <item>
      <title>spamd(8)</title>
      <link>https://why-openbsd.rocks/fact/spamd/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/spamd/</guid>
      <description>The spamd spam deferral daemon rejects fake emails. It is designed for efficiency, so that the receiving host is not slowed down.&#xA;spamd divides sending hosts into three types:&#xA;Blacklisted hosts are diverted to spamd and tarpitted. In other words, they are communicated with very slowly to consume the sender&amp;rsquo;s resources. Mail is rejected with either a 450 or 550 error message. A blacklisted host will not be allowed to talk to a real mail server.</description>
    </item>
    <item>
      <title>Stack</title>
      <link>https://why-openbsd.rocks/fact/stack/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/stack/</guid>
      <description>Aggressive randomisation of the stack location Since 7.3 (03/19/2023), this will put the stack at a random location in the upper 1/4th of the userland virtual address space providing up to 26 additional bits of randomness in the address.&#xA;This aggressive randomisation of the stack location is for all 64-bit architectures except alpha.&#xA;This should make it harder for an attacker to find the stack.&#xA;Details:&#xA;Mark Kettenis: aggresive randomisation of the stack location &amp;lsquo;Aggressively randomize the location of the stack&amp;rsquo; - MARC OpenBSD 7.</description>
    </item>
    <item>
      <title>stack-register checking</title>
      <link>https://why-openbsd.rocks/fact/stack-register-checking/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/stack-register-checking/</guid>
      <description>A memory object should have the fewest permissions possible: typically read, write and execute. OpenBSD introduced a new permission flag known as stack.&#xA;If you want to use memory as a stack, you must mmap it with that flag bit.&#xA;When a system call happens, we check to see if the stack-pointer register points to such a page. If not, the program is killed. The ABI is tighter as a result.</description>
    </item>
    <item>
      <title>strlcpy(3), strlcat(3)</title>
      <link>https://why-openbsd.rocks/fact/strlcpycat/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/strlcpycat/</guid>
      <description>Those libc functions will safely copy/concat strings, an improvement over strncpy(3), strncat(3).&#xA;Details:&#xA;OpenBSD 2.4 Changelog strlcpy(3) - OpenBSD manual pages strncat(3) - OpenBSD manual pages strncpy(3) - OpenBSD manual pages </description>
    </item>
    <item>
      <title>Swap Encryption</title>
      <link>https://why-openbsd.rocks/fact/swapencryption/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/swapencryption/</guid>
      <description>To protect sensitive information such as passwords from leaking to disk, where they can persist for many years, OpenBSD supports encryption of the swap partition. This is enabled by default!&#xA;sysctl vm.swapencrypt.enable=1 Details:&#xA;sysctl(2) - OpenBSD manual pages </description>
    </item>
    <item>
      <title>Syscall From-Verification</title>
      <link>https://why-openbsd.rocks/fact/syscall-from-verification/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/syscall-from-verification/</guid>
      <description>From OpenBSD 6.7 on, the kernel checks if a syscall is executed from the address space where its corresponding process is coming from. If this is not the case, the process gets killed.&#xA;This helps avoiding attackers uploading exploit code containing a raw system call sequence and instructions.&#xA;Details:&#xA;syscall call-from verification - marc.info OpenBSD 6.7 </description>
    </item>
    <item>
      <title>sysmerge(8)</title>
      <link>https://why-openbsd.rocks/fact/sysmerge/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/sysmerge/</guid>
      <description>The sysmerge tool simplifies the migration of your config files during a release upgrade. This includes line-by-line merging using sdiff. It is fully integrated into the upgrade process.&#xA;Details:&#xA;sysmerge(8) - OpenBSD manual pages OpenBSD 4.4 Changelog </description>
    </item>
    <item>
      <title>syspatch(8)</title>
      <link>https://why-openbsd.rocks/fact/syspatch/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/syspatch/</guid>
      <description>It is a common mistake to manually patch and recompile OpenBSD when security updates are required. Since 6.1, OpenBSD has supported binary patches using its own syspatch(8) tooling! Binary updates are available for the current and previous versions of amd64, i386 and arm64.&#xA;Consider subscribing to the announce mailing list to be informed of security updates.&#xA;Details:&#xA;OpenBSD 6.1 syspatch(8) - OpenBSD manual pages Mailing list page </description>
    </item>
    <item>
      <title>sysupgrade(8)</title>
      <link>https://why-openbsd.rocks/fact/sysupgrade/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/sysupgrade/</guid>
      <description>sysupgrade is a utility to upgrade OpenBSD to the next release or a new snapshot if available.&#xA;sysupgrade downloads the necessary files to /home/_sysupgrade, verifies them with signify, and copies bsd.rd to /bsd.upgrade.&#xA;sysupgrade by default then reboots the system. The bootloader will automatically choose /bsd.upgrade, triggering a one-shot upgrade using the files in /home/_sysupgrade.&#xA;Since OpenBSD 6.7, sysupgrade runs fw_update before upgrading.&#xA;Details:&#xA;sysupgrade first appeared in OpenBSD 6.6. sysupgrade(8) - OpenBSD manual pages signify(1) - OpenBSD manual pages fw_update(1) - OpenBSD manual pages OpenBSD 6.</description>
    </item>
    <item>
      <title>tmux(1)</title>
      <link>https://why-openbsd.rocks/fact/tmux/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/tmux/</guid>
      <description>tmux, created by Nicholas Marriott, is an in-base, BSD licensed terminal multiplexer. It enables a number of terminals to be created, accessed, and controlled from a single screen. tmux may be detached from a screen and continue running in the background, then later reattached.&#xA;There is also a portable version of tmux for non-OpenBSD machines.&#xA;Details:&#xA;the tmux program first appeared in OpenBSD 4.6 tmux imported into base - commit tmux imported into base - article Interview with Nicholas+ tmux.</description>
    </item>
    <item>
      <title>unveil(2)</title>
      <link>https://why-openbsd.rocks/fact/unveil/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/unveil/</guid>
      <description>The unveil system call limits the filesystem open call to a given set of paths. It extends the idea of pledge: simply limiting programs to open is insufficient, because open is valid for the the whole filesystem.&#xA;For example, why should a program like passwd(1) have access to your file system beyond /etc/passwd and /etc/shadow?&#xA;If there is a security bug in passwd then effects would be quite limited.&#xA;Details:</description>
    </item>
    <item>
      <title>unwind(8)</title>
      <link>https://why-openbsd.rocks/fact/unwind/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/unwind/</guid>
      <description>unwind — validating DNS resolver&#xA;unwind is a validating DNS resolver. It is intended to run on client machines like workstations or laptops and only listens on localhost. unwind sends DNS queries to nameservers to answer queries and switches to resolvers learned from dhclient(8) if it detects that DNS queries are blocked by the local network. It periodically probes if DNS is no longer blocked and switches back to querying nameservers itself.</description>
    </item>
    <item>
      <title>UTF-8 only</title>
      <link>https://why-openbsd.rocks/fact/utf8/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/utf8/</guid>
      <description>UTF-8 has been supported in libc since 2010, and OpenBSD removed support for all non-UTF-8 locales in 2015! You will never again have to deal with locale charset issues.&#xA;Details:&#xA;OpenBSD FAQ: General Questions ‘CVS: cvs.openbsd.org: src’ - MARC Heads up! OpenBSD now supports multi-byte characters! </description>
    </item>
    <item>
      <title>vmd(8)</title>
      <link>https://why-openbsd.rocks/fact/vmd/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/vmd/</guid>
      <description>vmd is the daemon responsible for execution of virtual machines (VMs) on a host. It is typically started at boot time and is controlled via vmctl(8).&#xA;Details:&#xA;The vmd command first appeared in OpenBSD 5.9. vmd(8) - OpenBSD manual pages vmctl(8) - OpenBSD manual pages vmm(4) - OpenBSD manual pages </description>
    </item>
    <item>
      <title>vxlan(4)</title>
      <link>https://why-openbsd.rocks/fact/vxlan/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/vxlan/</guid>
      <description>The vxlan interface is a tunnelling pseudo-device for overlaying virtualized layer 2 networks over layer 3 networks.&#xA;A vxlan interface can be created using the ifconfig vxlanN create command. Once configured, the interface encapsulates and decapsulates Ethernet frames in UDP datagrams that are exchanged with tunnel endpoints. The default UDP port for VXLAN traffic is 4789.&#xA;Details:&#xA;The vxlan device first appeared in OpenBSD 6.5. vxlan(4) - OpenBSD manual pages hostname.</description>
    </item>
    <item>
      <title>W^X Memory</title>
      <link>https://why-openbsd.rocks/fact/wx/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/wx/</guid>
      <description>Since 2003, memory on OpenBSD can be written to or executed, but not both.&#xA;This is a major security feature that prevents malicious code from producing buffer overflows and executing what has been inserted.&#xA;Details:&#xA;W^X now mandatory in OpenBSD W^X - Wikipedia OpenBSD 3.3 </description>
    </item>
    <item>
      <title>WireGuard</title>
      <link>https://why-openbsd.rocks/fact/wireguard/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/wireguard/</guid>
      <description>OpenBSD has an in-kernel driver for WireGuard VPN communication. Including the WireGuard Protocol in the kernel which improves performance while making it easy to use for everyone in OpenBSD base.&#xA;WireGuard® is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography.&#xA;Details:&#xA;tech@ Thread: WireGuard patchset for OpenBSD Undeadly: WireGuard imported into OpenBSD OpenBSD 6.8 Changelog </description>
    </item>
    <item>
      <title>xenodm: the secure X Display manager</title>
      <link>https://why-openbsd.rocks/fact/xenodm/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/xenodm/</guid>
      <description>xenodm is the X Display Manager, since OpenBSD 6.1!&#xA;xenodm is a simplified fork of xdm, lightweight, more secure, rid of XDMCP support, because of many security vulnerabilities. It support only the BSDauth code used in OpenBSD.&#xA;On OpenBSD 6.5, xenodm is absolutely necessary to start the X server, because it no longer has setuid rights enabled by default.&#xA;Details:&#xA;xenodm - OpenBSD manpage g2k16 Hackathon Report: Matthieu Herrb on xenodm OpenBSD 6.</description>
    </item>
    <item>
      <title>Xserver without root permissions</title>
      <link>https://why-openbsd.rocks/fact/xorg/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://why-openbsd.rocks/fact/xorg/</guid>
      <description>OpenBSD developers have worked hard to enable the non-root execution of an Xserver. Since 2014, X no longer requires special privileges and can be run as a regular user rather than root.&#xA;Details:&#xA;Xorg can now run without privilege on OpenBSD CVS: cvs.openbsd.org: xenocara </description>
    </item>
  </channel>
</rss>
