<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" encoding="UTF-8" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:atom="http://www.w3.org/2005/Atom/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:fireside="http://fireside.fm/modules/rss/fireside">
  <channel>
    <fireside:hostname>web01.fireside.fm</fireside:hostname>
    <fireside:genDate>Thu, 05 Mar 2026 19:50:52 -0600</fireside:genDate>
    <generator>Fireside (https://fireside.fm)</generator>
    <title>BSD Now - Episodes Tagged with “Nomadbsd”</title>
    <link>https://www.bsdnow.tv/tags/nomadbsd</link>
    <pubDate>Thu, 17 Jun 2021 03:00:00 -0400</pubDate>
    <description>Created by three guys who love BSD, we cover the latest news and have an extensive series of tutorials, as well as interviews with various people from all areas of the BSD community. It also serves as a platform for support and questions. We love and advocate FreeBSD, OpenBSD, NetBSD, DragonFlyBSD and TrueOS. Our show aims to be helpful and informative for new users that want to learn about them, but still be entertaining for the people who are already pros.
The show airs on Wednesdays at 2:00PM (US Eastern time) and the edited version is usually up the following day. 
</description>
    <language>en-us</language>
    <itunes:type>episodic</itunes:type>
    <itunes:subtitle>A weekly podcast and the place to B...SD</itunes:subtitle>
    <itunes:author>JT Pennington</itunes:author>
    <itunes:summary>Created by three guys who love BSD, we cover the latest news and have an extensive series of tutorials, as well as interviews with various people from all areas of the BSD community. It also serves as a platform for support and questions. We love and advocate FreeBSD, OpenBSD, NetBSD, DragonFlyBSD and TrueOS. Our show aims to be helpful and informative for new users that want to learn about them, but still be entertaining for the people who are already pros.
The show airs on Wednesdays at 2:00PM (US Eastern time) and the edited version is usually up the following day. 
</itunes:summary>
    <itunes:image href="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/c/c91b88f1-e824-4815-bcb8-5227818d6010/cover.jpg?v=4"/>
    <itunes:explicit>no</itunes:explicit>
    <itunes:keywords>berkeley,freebsd,openbsd,netbsd,dragonflybsd,trueos,trident,hardenedbsd,tutorial,howto,guide,bsd,interview</itunes:keywords>
    <itunes:owner>
      <itunes:name>JT Pennington</itunes:name>
      <itunes:email>feedback@bsdnow.tv</itunes:email>
    </itunes:owner>
<itunes:category text="News">
  <itunes:category text="Tech News"/>
</itunes:category>
<itunes:category text="Education">
  <itunes:category text="How To"/>
</itunes:category>
<item>
  <title>407: The jail Detail</title>
  <link>https://www.bsdnow.tv/407</link>
  <guid isPermaLink="false">ffb08bc6-ffde-4b63-bd68-9f70872557ef</guid>
  <pubDate>Thu, 17 Jun 2021 03:00:00 -0400</pubDate>
  <author>JT Pennington</author>
  <enclosure url="https://aphid.fireside.fm/d/1437767933/c91b88f1-e824-4815-bcb8-5227818d6010/ffb08bc6-ffde-4b63-bd68-9f70872557ef.mp3" length="27481848" type="audio/mpeg"/>
  <itunes:episodeType>full</itunes:episodeType>
  <itunes:author>JT Pennington</itunes:author>
  <itunes:subtitle>Confining the omnipotent root, Jails with ZFS and PF on DigitalOcean, NomadBSD 130R is out, KDE Plasma Wayland on FreeBSD, Firefox under FreeBSD with Privacy, Using NetBSD’s pkgsrc everywhere, and more.</itunes:subtitle>
  <itunes:duration>45:29</itunes:duration>
  <itunes:explicit>no</itunes:explicit>
  <itunes:image href="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/c/c91b88f1-e824-4815-bcb8-5227818d6010/cover.jpg?v=4"/>
  <description>Confining the omnipotent root, Jails with ZFS and PF on DigitalOcean, NomadBSD 130R is out, KDE Plasma Wayland on FreeBSD, Firefox under FreeBSD with Privacy, Using NetBSD’s pkgsrc everywhere, and more.
NOTES
This episode of BSDNow is brought to you by Tarsnap (https://www.tarsnap.com/bsdnow)
Headlines
Jails: Confining the omnipotent root (http://phk.freebsd.dk/pubs/sane2000-jail.pdf)
A dramatic reading of portions of the paper: Papers We Love: FreeBSD Jails and Solaris Zones (https://paperswelove.org/2016/video/bryan-cantrill-jails-and-solaris-zones/)
***
### 
Using Jails with ZFS and PF on DigitalOcean (https://medium.com/chris-opperwall/using-jails-with-zfs-and-pf-on-digitalocean-b25b1da82e20)
***
## News Roundup
### NomadBSD 130R is out (https://www.itsfoss.net/nomadbsd-130r-is-now-available-to-download-based-on-freebsd-13-0/)
***
### KDE Plasma Wayland - a week in FreeBSD (https://euroquis.nl//kde/2021/05/09/wayland.html)
***
### Install Firefox under FreeBSD and Set it Up with Privacy (https://danschmid.de/en/blog/install-firefox-under-freebsd-and-set-it-up-with-privacy)
***
Using NetBSD’s pkgsrc everywhere I can (https://rubenerd.com/using-netbsds-pkgsrc-everywhere-i-can/)
***
Tarsnap
This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
Feedback/Questions
Malcolm - restoring a single file (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/407/feedback/Malcolm%20-%20restoring%20a%20single%20file)
Nathan - wireless support (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/407/feedback/Nathan%20-%20wireless%20support)
bluefire - zfs special vdev (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/407/feedback/bluefire%20-%20zfs%20special%20vdev)
Push to next show with Allan
Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv)
***
</description>
  <itunes:keywords>freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, operating system, open source, shell, unix, os, berkeley, software, distribution, release, zfs, zpool, dataset, interview, ports, packages, jail, root, pf, digitalocean, nomadbsd, kde plasma, wayland, firefox, privacy, pkgsrc </itunes:keywords>
  <content:encoded>
    <![CDATA[<p>Confining the omnipotent root, Jails with ZFS and PF on DigitalOcean, NomadBSD 130R is out, KDE Plasma Wayland on FreeBSD, Firefox under FreeBSD with Privacy, Using NetBSD’s pkgsrc everywhere, and more.</p>

<p><strong><em>NOTES</em></strong><br>
This episode of BSDNow is brought to you by <a href="https://www.tarsnap.com/bsdnow" rel="nofollow">Tarsnap</a></p>

<h2>Headlines</h2>

<h3><a href="http://phk.freebsd.dk/pubs/sane2000-jail.pdf" rel="nofollow">Jails: Confining the omnipotent root</a></h3>

<ul>
<li>A dramatic reading of portions of the paper: <a href="https://paperswelove.org/2016/video/bryan-cantrill-jails-and-solaris-zones/" rel="nofollow">Papers We Love: FreeBSD Jails and Solaris Zones</a>
***
### 
<a href="https://medium.com/chris-opperwall/using-jails-with-zfs-and-pf-on-digitalocean-b25b1da82e20" rel="nofollow">Using Jails with ZFS and PF on DigitalOcean</a>
***
## News Roundup
### <a href="https://www.itsfoss.net/nomadbsd-130r-is-now-available-to-download-based-on-freebsd-13-0/" rel="nofollow">NomadBSD 130R is out</a>
***
### <a href="https://euroquis.nl//kde/2021/05/09/wayland.html" rel="nofollow">KDE Plasma Wayland - a week in FreeBSD</a>
***
### <a href="https://danschmid.de/en/blog/install-firefox-under-freebsd-and-set-it-up-with-privacy" rel="nofollow">Install Firefox under FreeBSD and Set it Up with Privacy</a>
***
<a href="https://rubenerd.com/using-netbsds-pkgsrc-everywhere-i-can/" rel="nofollow">Using NetBSD’s pkgsrc everywhere I can</a>
***</li>
</ul>

<h3>Tarsnap</h3>

<ul>
<li>This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.</li>
</ul>

<h2>Feedback/Questions</h2>

<ul>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/407/feedback/Malcolm%20-%20restoring%20a%20single%20file" rel="nofollow">Malcolm - restoring a single file</a></li>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/407/feedback/Nathan%20-%20wireless%20support" rel="nofollow">Nathan - wireless support</a></li>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/407/feedback/bluefire%20-%20zfs%20special%20vdev" rel="nofollow">bluefire - zfs special vdev</a>
Push to next show with Allan</li>
</ul>

<hr>

<ul>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv" rel="nofollow">feedback@bsdnow.tv</a>
***</li>
</ul>]]>
  </content:encoded>
  <itunes:summary>
    <![CDATA[<p>Confining the omnipotent root, Jails with ZFS and PF on DigitalOcean, NomadBSD 130R is out, KDE Plasma Wayland on FreeBSD, Firefox under FreeBSD with Privacy, Using NetBSD’s pkgsrc everywhere, and more.</p>

<p><strong><em>NOTES</em></strong><br>
This episode of BSDNow is brought to you by <a href="https://www.tarsnap.com/bsdnow" rel="nofollow">Tarsnap</a></p>

<h2>Headlines</h2>

<h3><a href="http://phk.freebsd.dk/pubs/sane2000-jail.pdf" rel="nofollow">Jails: Confining the omnipotent root</a></h3>

<ul>
<li>A dramatic reading of portions of the paper: <a href="https://paperswelove.org/2016/video/bryan-cantrill-jails-and-solaris-zones/" rel="nofollow">Papers We Love: FreeBSD Jails and Solaris Zones</a>
***
### 
<a href="https://medium.com/chris-opperwall/using-jails-with-zfs-and-pf-on-digitalocean-b25b1da82e20" rel="nofollow">Using Jails with ZFS and PF on DigitalOcean</a>
***
## News Roundup
### <a href="https://www.itsfoss.net/nomadbsd-130r-is-now-available-to-download-based-on-freebsd-13-0/" rel="nofollow">NomadBSD 130R is out</a>
***
### <a href="https://euroquis.nl//kde/2021/05/09/wayland.html" rel="nofollow">KDE Plasma Wayland - a week in FreeBSD</a>
***
### <a href="https://danschmid.de/en/blog/install-firefox-under-freebsd-and-set-it-up-with-privacy" rel="nofollow">Install Firefox under FreeBSD and Set it Up with Privacy</a>
***
<a href="https://rubenerd.com/using-netbsds-pkgsrc-everywhere-i-can/" rel="nofollow">Using NetBSD’s pkgsrc everywhere I can</a>
***</li>
</ul>

<h3>Tarsnap</h3>

<ul>
<li>This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.</li>
</ul>

<h2>Feedback/Questions</h2>

<ul>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/407/feedback/Malcolm%20-%20restoring%20a%20single%20file" rel="nofollow">Malcolm - restoring a single file</a></li>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/407/feedback/Nathan%20-%20wireless%20support" rel="nofollow">Nathan - wireless support</a></li>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/407/feedback/bluefire%20-%20zfs%20special%20vdev" rel="nofollow">bluefire - zfs special vdev</a>
Push to next show with Allan</li>
</ul>

<hr>

<ul>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv" rel="nofollow">feedback@bsdnow.tv</a>
***</li>
</ul>]]>
  </itunes:summary>
</item>
<item>
  <title>395: Tracing ARM’s history</title>
  <link>https://www.bsdnow.tv/395</link>
  <guid isPermaLink="false">9e4b924f-7f9c-49b4-81b7-b28ade7904b3</guid>
  <pubDate>Thu, 25 Mar 2021 03:00:00 -0400</pubDate>
  <author>JT Pennington</author>
  <enclosure url="https://aphid.fireside.fm/d/1437767933/c91b88f1-e824-4815-bcb8-5227818d6010/9e4b924f-7f9c-49b4-81b7-b28ade7904b3.mp3" length="23944248" type="audio/mpeg"/>
  <itunes:episodeType>full</itunes:episodeType>
  <itunes:author>JT Pennington</itunes:author>
  <itunes:subtitle>Tracing the History of ARM and FreeBSD, Make ‘less’ more friendly, NomadBSD 1.4 Release, Create an Ubuntu Linux jail on FreeBSD 12.2, OPNsense 21.1.2 released, Midnight BSD and BastilleBSD, and more.</itunes:subtitle>
  <itunes:duration>37:59</itunes:duration>
  <itunes:explicit>no</itunes:explicit>
  <itunes:image href="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/c/c91b88f1-e824-4815-bcb8-5227818d6010/cover.jpg?v=4"/>
  <description>Tracing the History of ARM and FreeBSD, Make ‘less’ more friendly, NomadBSD 1.4 Release, Create an Ubuntu Linux jail on FreeBSD 12.2, OPNsense 21.1.2 released, Midnight BSD and BastilleBSD, and more.
NOTES
This episode of BSDNow is brought to you by Tarsnap (https://www.tarsnap.com/bsdnow)
Headlines
Tracing the History of ARM and FreeBSD (https://klarasystems.com/articles/tracing-the-history-of-arm-and-freebsd/)
When we think of computers, we generally think of laptops and desktops. Each one of these systems is powered by an Intel or AMD chip based on the x86 architecture. It might feel like you spend all day interacting with these kinds of systems, but you would be wrong.
Unix Tip: Make ‘less’ more friendly (https://ascending.wordpress.com/2011/02/11/unix-tip-make-less-more-friendly/)
You probably know about less: it is a standard tool that allows scrolling up and down in documents that do not fit on a single screen. Less has a very handy feature, which can be turned on by invoking it with the -i flag. This causes less to ignore case when searching. For example, ‘udf’ will find ‘udf’, ‘UDF’, ‘UdF’, and any other combination of upper-case and lower-case. If you’re used to searching in a web browser, this is probably what you want. But less is even more clever than that. If your search pattern contains upper-case letters, the ignore-case feature will be disabled. So if you’re looking for ‘QXml’, you will not be bothered by matches for the lower-case ‘qxml’. (This is equivalent to ignorecase + smartcase in vim.)
News Roundup
NomadBSD 1.4 Release (https://www.itsfoss.net/nomadbsd-1-4-release/)
Version 1.4 of NomadBSD, a persistent live system for USB flash drives based on FreeBSD and featuring a graphical user interface built around Openbox, has been released: “We are pleased to present the release of NomadBSD 1.4.
Create an Ubuntu Linux jail on FreeBSD 12.2 (https://hackacad.net/post/2021-01-23-create-a-ubuntu-linux-jail-on-freebsd/)
OPNsense 21.1.2 released (https://opnsense.org/opnsense-21-1-2-released/)
Work has so far been focused on the firmware update process to ensure its safety around edge cases and recovery methods for the worst case. To that end 21.1.3 will likely receive the full revamp including API and GUI changes for a swift transition after thorough testing of the changes now available in the development package of this release.
Midnight BSD and BastilleBSD (https://www.justjournal.com/users/mbsd/entry/33869)
We recently added a new port, mports/sysutils/bastille that allows you to manage containers. This is a port of a project that originally targetted FreeBSD, but also works on HardenedBSD. 
Tarsnap
This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
Feedback/Questions
Brad - monitoring with Grafana (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/395/feedback/Brad%20-%20monitoring%20with%20Grafana)
Dennis - a few questions (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/395/feedback/Dennis%20-%20a%20few%20questions)
Paul - FreeBSD 13 (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/395/feedback/Paul%20-%20FreeBSD%2013)
Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv)
***
</description>
  <itunes:keywords>freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, operating system, open source, shell, unix, os, berkeley, software, distribution, release, zfs, zpool, dataset, arm, tracing, nomadbsd, Ubuntu jail, Linux jail, opnsense, midnightbsd, bastillebsd </itunes:keywords>
  <content:encoded>
    <![CDATA[<p>Tracing the History of ARM and FreeBSD, Make ‘less’ more friendly, NomadBSD 1.4 Release, Create an Ubuntu Linux jail on FreeBSD 12.2, OPNsense 21.1.2 released, Midnight BSD and BastilleBSD, and more.</p>

<p><strong><em>NOTES</em></strong><br>
This episode of BSDNow is brought to you by <a href="https://www.tarsnap.com/bsdnow" rel="nofollow">Tarsnap</a></p>

<h2>Headlines</h2>

<h3><a href="https://klarasystems.com/articles/tracing-the-history-of-arm-and-freebsd/" rel="nofollow">Tracing the History of ARM and FreeBSD</a></h3>

<blockquote>
<p>When we think of computers, we generally think of laptops and desktops. Each one of these systems is powered by an Intel or AMD chip based on the x86 architecture. It might feel like you spend all day interacting with these kinds of systems, but you would be wrong.</p>

<hr>

<h3><a href="https://ascending.wordpress.com/2011/02/11/unix-tip-make-less-more-friendly/" rel="nofollow">Unix Tip: Make ‘less’ more friendly</a></h3>

<p>You probably know about less: it is a standard tool that allows scrolling up and down in documents that do not fit on a single screen. Less has a very handy feature, which can be turned on by invoking it with the -i flag. This causes less to ignore case when searching. For example, ‘udf’ will find ‘udf’, ‘UDF’, ‘UdF’, and any other combination of upper-case and lower-case. If you’re used to searching in a web browser, this is probably what you want. But less is even more clever than that. If your search pattern contains upper-case letters, the ignore-case feature will be disabled. So if you’re looking for ‘QXml’, you will not be bothered by matches for the lower-case ‘qxml’. (This is equivalent to ignorecase + smartcase in vim.)</p>
</blockquote>

<hr>

<h2>News Roundup</h2>

<h3><a href="https://www.itsfoss.net/nomadbsd-1-4-release/" rel="nofollow">NomadBSD 1.4 Release</a></h3>

<blockquote>
<p>Version 1.4 of NomadBSD, a persistent live system for USB flash drives based on FreeBSD and featuring a graphical user interface built around Openbox, has been released: “We are pleased to present the release of NomadBSD 1.4.</p>

<hr>

<h3><a href="https://hackacad.net/post/2021-01-23-create-a-ubuntu-linux-jail-on-freebsd/" rel="nofollow">Create an Ubuntu Linux jail on FreeBSD 12.2</a></h3>

<hr>

<h3><a href="https://opnsense.org/opnsense-21-1-2-released/" rel="nofollow">OPNsense 21.1.2 released</a></h3>

<p>Work has so far been focused on the firmware update process to ensure its safety around edge cases and recovery methods for the worst case. To that end 21.1.3 will likely receive the full revamp including API and GUI changes for a swift transition after thorough testing of the changes now available in the development package of this release.</p>

<hr>

<h3><a href="https://www.justjournal.com/users/mbsd/entry/33869" rel="nofollow">Midnight BSD and BastilleBSD</a></h3>

<p>We recently added a new port, mports/sysutils/bastille that allows you to manage containers. This is a port of a project that originally targetted FreeBSD, but also works on HardenedBSD. </p>

<hr>
</blockquote>

<h3>Tarsnap</h3>

<ul>
<li>This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.</li>
</ul>

<h2>Feedback/Questions</h2>

<ul>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/395/feedback/Brad%20-%20monitoring%20with%20Grafana" rel="nofollow">Brad - monitoring with Grafana</a></li>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/395/feedback/Dennis%20-%20a%20few%20questions" rel="nofollow">Dennis - a few questions</a></li>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/395/feedback/Paul%20-%20FreeBSD%2013" rel="nofollow">Paul - FreeBSD 13</a></li>
</ul>

<hr>

<ul>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv" rel="nofollow">feedback@bsdnow.tv</a>
***</li>
</ul>]]>
  </content:encoded>
  <itunes:summary>
    <![CDATA[<p>Tracing the History of ARM and FreeBSD, Make ‘less’ more friendly, NomadBSD 1.4 Release, Create an Ubuntu Linux jail on FreeBSD 12.2, OPNsense 21.1.2 released, Midnight BSD and BastilleBSD, and more.</p>

<p><strong><em>NOTES</em></strong><br>
This episode of BSDNow is brought to you by <a href="https://www.tarsnap.com/bsdnow" rel="nofollow">Tarsnap</a></p>

<h2>Headlines</h2>

<h3><a href="https://klarasystems.com/articles/tracing-the-history-of-arm-and-freebsd/" rel="nofollow">Tracing the History of ARM and FreeBSD</a></h3>

<blockquote>
<p>When we think of computers, we generally think of laptops and desktops. Each one of these systems is powered by an Intel or AMD chip based on the x86 architecture. It might feel like you spend all day interacting with these kinds of systems, but you would be wrong.</p>

<hr>

<h3><a href="https://ascending.wordpress.com/2011/02/11/unix-tip-make-less-more-friendly/" rel="nofollow">Unix Tip: Make ‘less’ more friendly</a></h3>

<p>You probably know about less: it is a standard tool that allows scrolling up and down in documents that do not fit on a single screen. Less has a very handy feature, which can be turned on by invoking it with the -i flag. This causes less to ignore case when searching. For example, ‘udf’ will find ‘udf’, ‘UDF’, ‘UdF’, and any other combination of upper-case and lower-case. If you’re used to searching in a web browser, this is probably what you want. But less is even more clever than that. If your search pattern contains upper-case letters, the ignore-case feature will be disabled. So if you’re looking for ‘QXml’, you will not be bothered by matches for the lower-case ‘qxml’. (This is equivalent to ignorecase + smartcase in vim.)</p>
</blockquote>

<hr>

<h2>News Roundup</h2>

<h3><a href="https://www.itsfoss.net/nomadbsd-1-4-release/" rel="nofollow">NomadBSD 1.4 Release</a></h3>

<blockquote>
<p>Version 1.4 of NomadBSD, a persistent live system for USB flash drives based on FreeBSD and featuring a graphical user interface built around Openbox, has been released: “We are pleased to present the release of NomadBSD 1.4.</p>

<hr>

<h3><a href="https://hackacad.net/post/2021-01-23-create-a-ubuntu-linux-jail-on-freebsd/" rel="nofollow">Create an Ubuntu Linux jail on FreeBSD 12.2</a></h3>

<hr>

<h3><a href="https://opnsense.org/opnsense-21-1-2-released/" rel="nofollow">OPNsense 21.1.2 released</a></h3>

<p>Work has so far been focused on the firmware update process to ensure its safety around edge cases and recovery methods for the worst case. To that end 21.1.3 will likely receive the full revamp including API and GUI changes for a swift transition after thorough testing of the changes now available in the development package of this release.</p>

<hr>

<h3><a href="https://www.justjournal.com/users/mbsd/entry/33869" rel="nofollow">Midnight BSD and BastilleBSD</a></h3>

<p>We recently added a new port, mports/sysutils/bastille that allows you to manage containers. This is a port of a project that originally targetted FreeBSD, but also works on HardenedBSD. </p>

<hr>
</blockquote>

<h3>Tarsnap</h3>

<ul>
<li>This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.</li>
</ul>

<h2>Feedback/Questions</h2>

<ul>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/395/feedback/Brad%20-%20monitoring%20with%20Grafana" rel="nofollow">Brad - monitoring with Grafana</a></li>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/395/feedback/Dennis%20-%20a%20few%20questions" rel="nofollow">Dennis - a few questions</a></li>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/395/feedback/Paul%20-%20FreeBSD%2013" rel="nofollow">Paul - FreeBSD 13</a></li>
</ul>

<hr>

<ul>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv" rel="nofollow">feedback@bsdnow.tv</a>
***</li>
</ul>]]>
  </itunes:summary>
</item>
<item>
  <title>391:  i386 tear shedding</title>
  <link>https://www.bsdnow.tv/391</link>
  <guid isPermaLink="false">3105d37c-fc28-49e0-983d-1ac767b72f76</guid>
  <pubDate>Thu, 25 Feb 2021 03:00:00 -0500</pubDate>
  <author>JT Pennington</author>
  <enclosure url="https://aphid.fireside.fm/d/1437767933/c91b88f1-e824-4815-bcb8-5227818d6010/3105d37c-fc28-49e0-983d-1ac767b72f76.mp3" length="39165456" type="audio/mpeg"/>
  <itunes:episodeType>full</itunes:episodeType>
  <itunes:author>JT Pennington</itunes:author>
  <itunes:subtitle>Follow-up about FreeBSD jail advantages, Install Prometheus, Node Exporter and Grafana, Calibrate your touch-screen on OpenBSD, OPNsense 21.1 Marvelous Meerkat Released, NomadBSD 1.4-RC1, Lets all shed a Tear for 386, find mostly doesn't need xargs today on modern Unixes, OpenBSD KDE Status Report, and more.</itunes:subtitle>
  <itunes:duration>38:55</itunes:duration>
  <itunes:explicit>no</itunes:explicit>
  <itunes:image href="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/c/c91b88f1-e824-4815-bcb8-5227818d6010/cover.jpg?v=4"/>
  <description>Follow-up about FreeBSD jail advantages, Install Prometheus, Node Exporter and Grafana, Calibrate your touch-screen on OpenBSD, OPNsense 21.1 Marvelous Meerkat Released, NomadBSD 1.4-RC1, Lets all shed a Tear for 386, find mostly doesn't need xargs today on modern Unixes, OpenBSD KDE Status Report, and more.
NOTES
This episode of BSDNow is brought to you by Tarsnap (https://www.tarsnap.com/bsdnow)
Headlines
Follow-up about FreeBSD jail advantages (https://rubenerd.com/follow-up-about-freebsd-jail-advantages/)
I’ll admit I ran a lot of justifications together into a single paragraph because I wanted to get to configuring the jails themselves. They’re also, by and large, not specific to FreeBSD’s flavour of containerisation, though I still think it’s easily the most elegant implementation. Sometimes the simplest solution really is the best one.
History of FreeBSD part 4: TCP/IP (https://klarasystems.com/articles/history-of-freebsd-part-4-bsd-and-tcp-ip/)
How TCP/IP evolved and BSDs special contribution to the history of the Internet
***
FreeBSD: Install Prometheus, Node Exporter and Grafana (https://blog.andreev.it/?p=5289)
FreeBSD comes out of the box with three great tools for monitoring. If you need more info about how these tools work, please read the official documentation. I’ll explain the installation only and creating a simple dashboard.
News Roundup
Calibrate your touch-screen on OpenBSD (https://www.tumfatig.net/20210122/calibrate-your-touch-screen-on-openbsd/)
I didn’t expected it but my refurbished T460s came with a touch-screen. It is recognized by default on OpenBSD and not well calibrated as-is. But that’s really simple to solve.
Lets all shed a Tear for 386 (https://lists.freebsd.org/pipermail/freebsd-announce/2021-January/002006.html)
FreeBSD is designating i386 as a Tier 2 architecture starting with FreeBSD 13.0.  The Project will continue to provide release images, binary updates, and pre-built packages for the 13.x branch.  However, i386-specific issues (including SAs) may not be addressed in 13.x. The i386 platform will remain Tier 1 on FreeBSD 11.x and 12.x.
OPNsense 21.1 Marvelous Meerkat Released (https://opnsense.org/opnsense-21-1-marvelous-meerkat-released/)
For more than 6 years, OPNsense is driving innovation through modularising and hardening the open source firewall, with simple and reliable firmware upgrades, multi-language support, HardenedBSD security, fast adoption of upstream software updates as well as clear and stable 2-Clause BSD licensing.
NomadBSD 1.4-RC1 (https://nomadbsd.org/index.html#1.4-RC1)
We are pleased to present the first release candidate of NomadBSD 1.4.
find mostly doesn't need xargs today on modern Unixes (https://utcc.utoronto.ca/~cks/space/blog/unix/FindWithoutXargsToday)
I've been using Unix for long enough that 'find | xargs' is a reflex. When I started and for a long time afterward, xargs was your only choice for efficiently executing a command over a bunch of find results.
OpenBSD KDE Status Report (https://undeadly.org/cgi?action=article;sid=20210124113220)
OpenBSD has managed to drop KDE3 and KDE4 in the 6.8 -&amp;gt; 6.9 release cycle. That makes me very happy because it was a big piece of work and long discussions. This of course brings questions: Kde Plasma 5 package missing.
After half a year of work, I managed to successfully update the Qt5 stack to the last LTS version 5.15.2. On the whole, the most work was updating QtWebengine. What a monster! With my CPU power at home, I can build it 1-2 times a day which makes testing a little bit annoying and time intensive.
Tarsnap
This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
Feedback/Questions
Karl - Firefox webcam audio solution (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/391/feedback/Karl%20-%20Firefox%20webcam%20audio%20solution.md)
Michal - openzfs (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/391/feedback/Michal%20-%20openzfs.md)
Dave - bufferbloat (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/391/feedback/Dave%20-%20bufferbloat.md)
Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv)
***
</description>
  <itunes:keywords>freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, operating system, shell, unix, os, berkeley, software, distribution, release, zfs, zpool, dataset, interview, jail, advantages, prometheus, grafana, node-exporter, touch screen, opnsense, marvelous meerkat, nomadbsd, i386, xargs, KDE, signal, proxy, pdf, annotation</itunes:keywords>
  <content:encoded>
    <![CDATA[<p>Follow-up about FreeBSD jail advantages, Install Prometheus, Node Exporter and Grafana, Calibrate your touch-screen on OpenBSD, OPNsense 21.1 Marvelous Meerkat Released, NomadBSD 1.4-RC1, Lets all shed a Tear for 386, find mostly doesn&#39;t need xargs today on modern Unixes, OpenBSD KDE Status Report, and more.</p>

<p><strong><em>NOTES</em></strong><br>
This episode of BSDNow is brought to you by <a href="https://www.tarsnap.com/bsdnow" rel="nofollow">Tarsnap</a></p>

<h2>Headlines</h2>

<h3><a href="https://rubenerd.com/follow-up-about-freebsd-jail-advantages/" rel="nofollow">Follow-up about FreeBSD jail advantages</a></h3>

<blockquote>
<p>I’ll admit I ran a lot of justifications together into a single paragraph because I wanted to get to configuring the jails themselves. They’re also, by and large, not specific to FreeBSD’s flavour of containerisation, though I still think it’s easily the most elegant implementation. Sometimes the simplest solution really is the best one.</p>

<hr>

<h3><a href="https://klarasystems.com/articles/history-of-freebsd-part-4-bsd-and-tcp-ip/" rel="nofollow">History of FreeBSD part 4: TCP/IP</a></h3>

<ul>
<li>How TCP/IP evolved and BSDs special contribution to the history of the Internet
***</li>
</ul>
</blockquote>

<h3><a href="https://blog.andreev.it/?p=5289" rel="nofollow">FreeBSD: Install Prometheus, Node Exporter and Grafana</a></h3>

<blockquote>
<p>FreeBSD comes out of the box with three great tools for monitoring. If you need more info about how these tools work, please read the official documentation. I’ll explain the installation only and creating a simple dashboard.</p>

<hr>
</blockquote>

<h2>News Roundup</h2>

<h3><a href="https://www.tumfatig.net/20210122/calibrate-your-touch-screen-on-openbsd/" rel="nofollow">Calibrate your touch-screen on OpenBSD</a></h3>

<blockquote>
<p>I didn’t expected it but my refurbished T460s came with a touch-screen. It is recognized by default on OpenBSD and not well calibrated as-is. But that’s really simple to solve.</p>

<hr>

<h3><a href="https://lists.freebsd.org/pipermail/freebsd-announce/2021-January/002006.html" rel="nofollow">Lets all shed a Tear for 386</a></h3>

<p>FreeBSD is designating i386 as a Tier 2 architecture starting with FreeBSD 13.0.  The Project will continue to provide release images, binary updates, and pre-built packages for the 13.x branch.  However, i386-specific issues (including SAs) may not be addressed in 13.x. The i386 platform will remain Tier 1 on FreeBSD 11.x and 12.x.</p>

<hr>
</blockquote>

<h3><a href="https://opnsense.org/opnsense-21-1-marvelous-meerkat-released/" rel="nofollow">OPNsense 21.1 Marvelous Meerkat Released</a></h3>

<blockquote>
<p>For more than 6 years, OPNsense is driving innovation through modularising and hardening the open source firewall, with simple and reliable firmware upgrades, multi-language support, HardenedBSD security, fast adoption of upstream software updates as well as clear and stable 2-Clause BSD licensing.</p>

<hr>

<h3><a href="https://nomadbsd.org/index.html#1.4-RC1" rel="nofollow">NomadBSD 1.4-RC1</a></h3>

<p>We are pleased to present the first release candidate of NomadBSD 1.4.</p>

<hr>
</blockquote>

<h3><a href="https://utcc.utoronto.ca/%7Ecks/space/blog/unix/FindWithoutXargsToday" rel="nofollow">find mostly doesn&#39;t need xargs today on modern Unixes</a></h3>

<blockquote>
<p>I&#39;ve been using Unix for long enough that &#39;find | xargs&#39; is a reflex. When I started and for a long time afterward, xargs was your only choice for efficiently executing a command over a bunch of find results.</p>

<hr>

<h3><a href="https://undeadly.org/cgi?action=article;sid=20210124113220" rel="nofollow">OpenBSD KDE Status Report</a></h3>

<p>OpenBSD has managed to drop KDE3 and KDE4 in the 6.8 -&gt; 6.9 release cycle. That makes me very happy because it was a big piece of work and long discussions. This of course brings questions: Kde Plasma 5 package missing.<br>
After half a year of work, I managed to successfully update the Qt5 stack to the last LTS version 5.15.2. On the whole, the most work was updating QtWebengine. What a monster! With my CPU power at home, I can build it 1-2 times a day which makes testing a little bit annoying and time intensive.</p>

<hr>
</blockquote>

<h3>Tarsnap</h3>

<ul>
<li>This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.</li>
</ul>

<h2>Feedback/Questions</h2>

<ul>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/391/feedback/Karl%20-%20Firefox%20webcam%20audio%20solution.md" rel="nofollow">Karl - Firefox webcam audio solution</a></li>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/391/feedback/Michal%20-%20openzfs.md" rel="nofollow">Michal - openzfs</a></li>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/391/feedback/Dave%20-%20bufferbloat.md" rel="nofollow">Dave - bufferbloat</a></li>
</ul>

<hr>

<ul>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv" rel="nofollow">feedback@bsdnow.tv</a>
***</li>
</ul>]]>
  </content:encoded>
  <itunes:summary>
    <![CDATA[<p>Follow-up about FreeBSD jail advantages, Install Prometheus, Node Exporter and Grafana, Calibrate your touch-screen on OpenBSD, OPNsense 21.1 Marvelous Meerkat Released, NomadBSD 1.4-RC1, Lets all shed a Tear for 386, find mostly doesn&#39;t need xargs today on modern Unixes, OpenBSD KDE Status Report, and more.</p>

<p><strong><em>NOTES</em></strong><br>
This episode of BSDNow is brought to you by <a href="https://www.tarsnap.com/bsdnow" rel="nofollow">Tarsnap</a></p>

<h2>Headlines</h2>

<h3><a href="https://rubenerd.com/follow-up-about-freebsd-jail-advantages/" rel="nofollow">Follow-up about FreeBSD jail advantages</a></h3>

<blockquote>
<p>I’ll admit I ran a lot of justifications together into a single paragraph because I wanted to get to configuring the jails themselves. They’re also, by and large, not specific to FreeBSD’s flavour of containerisation, though I still think it’s easily the most elegant implementation. Sometimes the simplest solution really is the best one.</p>

<hr>

<h3><a href="https://klarasystems.com/articles/history-of-freebsd-part-4-bsd-and-tcp-ip/" rel="nofollow">History of FreeBSD part 4: TCP/IP</a></h3>

<ul>
<li>How TCP/IP evolved and BSDs special contribution to the history of the Internet
***</li>
</ul>
</blockquote>

<h3><a href="https://blog.andreev.it/?p=5289" rel="nofollow">FreeBSD: Install Prometheus, Node Exporter and Grafana</a></h3>

<blockquote>
<p>FreeBSD comes out of the box with three great tools for monitoring. If you need more info about how these tools work, please read the official documentation. I’ll explain the installation only and creating a simple dashboard.</p>

<hr>
</blockquote>

<h2>News Roundup</h2>

<h3><a href="https://www.tumfatig.net/20210122/calibrate-your-touch-screen-on-openbsd/" rel="nofollow">Calibrate your touch-screen on OpenBSD</a></h3>

<blockquote>
<p>I didn’t expected it but my refurbished T460s came with a touch-screen. It is recognized by default on OpenBSD and not well calibrated as-is. But that’s really simple to solve.</p>

<hr>

<h3><a href="https://lists.freebsd.org/pipermail/freebsd-announce/2021-January/002006.html" rel="nofollow">Lets all shed a Tear for 386</a></h3>

<p>FreeBSD is designating i386 as a Tier 2 architecture starting with FreeBSD 13.0.  The Project will continue to provide release images, binary updates, and pre-built packages for the 13.x branch.  However, i386-specific issues (including SAs) may not be addressed in 13.x. The i386 platform will remain Tier 1 on FreeBSD 11.x and 12.x.</p>

<hr>
</blockquote>

<h3><a href="https://opnsense.org/opnsense-21-1-marvelous-meerkat-released/" rel="nofollow">OPNsense 21.1 Marvelous Meerkat Released</a></h3>

<blockquote>
<p>For more than 6 years, OPNsense is driving innovation through modularising and hardening the open source firewall, with simple and reliable firmware upgrades, multi-language support, HardenedBSD security, fast adoption of upstream software updates as well as clear and stable 2-Clause BSD licensing.</p>

<hr>

<h3><a href="https://nomadbsd.org/index.html#1.4-RC1" rel="nofollow">NomadBSD 1.4-RC1</a></h3>

<p>We are pleased to present the first release candidate of NomadBSD 1.4.</p>

<hr>
</blockquote>

<h3><a href="https://utcc.utoronto.ca/%7Ecks/space/blog/unix/FindWithoutXargsToday" rel="nofollow">find mostly doesn&#39;t need xargs today on modern Unixes</a></h3>

<blockquote>
<p>I&#39;ve been using Unix for long enough that &#39;find | xargs&#39; is a reflex. When I started and for a long time afterward, xargs was your only choice for efficiently executing a command over a bunch of find results.</p>

<hr>

<h3><a href="https://undeadly.org/cgi?action=article;sid=20210124113220" rel="nofollow">OpenBSD KDE Status Report</a></h3>

<p>OpenBSD has managed to drop KDE3 and KDE4 in the 6.8 -&gt; 6.9 release cycle. That makes me very happy because it was a big piece of work and long discussions. This of course brings questions: Kde Plasma 5 package missing.<br>
After half a year of work, I managed to successfully update the Qt5 stack to the last LTS version 5.15.2. On the whole, the most work was updating QtWebengine. What a monster! With my CPU power at home, I can build it 1-2 times a day which makes testing a little bit annoying and time intensive.</p>

<hr>
</blockquote>

<h3>Tarsnap</h3>

<ul>
<li>This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.</li>
</ul>

<h2>Feedback/Questions</h2>

<ul>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/391/feedback/Karl%20-%20Firefox%20webcam%20audio%20solution.md" rel="nofollow">Karl - Firefox webcam audio solution</a></li>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/391/feedback/Michal%20-%20openzfs.md" rel="nofollow">Michal - openzfs</a></li>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/391/feedback/Dave%20-%20bufferbloat.md" rel="nofollow">Dave - bufferbloat</a></li>
</ul>

<hr>

<ul>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv" rel="nofollow">feedback@bsdnow.tv</a>
***</li>
</ul>]]>
  </itunes:summary>
</item>
<item>
  <title>343: FreeBSD, Corona: Fight!</title>
  <link>https://www.bsdnow.tv/343</link>
  <guid isPermaLink="false">1752e8c2-3d6e-40dc-8bd9-5c7654660b15</guid>
  <pubDate>Thu, 26 Mar 2020 08:00:00 -0400</pubDate>
  <author>JT Pennington</author>
  <enclosure url="https://aphid.fireside.fm/d/1437767933/c91b88f1-e824-4815-bcb8-5227818d6010/1752e8c2-3d6e-40dc-8bd9-5c7654660b15.mp3" length="28131915" type="audio/mp3"/>
  <itunes:episodeType>full</itunes:episodeType>
  <itunes:author>JT Pennington</itunes:author>
  <itunes:subtitle>Fighting the Coronavirus with FreeBSD, Wireguard VPN Howto in OPNsense, NomadBSD 1.3.1 available, fresh GhostBSD 20.02, New FuryBSD XFCE and KDE images, pf-badhost 0.3 released, and more.</itunes:subtitle>
  <itunes:duration>39:04</itunes:duration>
  <itunes:explicit>no</itunes:explicit>
  <itunes:image href="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/c/c91b88f1-e824-4815-bcb8-5227818d6010/cover.jpg?v=4"/>
  <description>Fighting the Coronavirus with FreeBSD, Wireguard VPN Howto in OPNsense, NomadBSD 1.3.1 available, fresh GhostBSD 20.02, New FuryBSD XFCE and KDE images, pf-badhost 0.3 released, and more.
Headlines
Fighting the Coronavirus with FreeBSD (https://www.leidinger.net/blog/2020/03/19/fighting-the-coronavirus-with-freebsd-foldinghome/)
Here is a quick HOWTO for those who want to provide some FreeBSD based compute resources to help finding vaccines.
UPDATE 2020-03-22: 0mp@ made a port out of this, it is in “biology/linux-foldingathome”.
Per default it will now pick up some SARS-CoV‑2 (COVID-19) related folding tasks. There are some more config options (e.g. how much of the system resources are used). Please refer to the official Folding@Home site for more information about that. Be also aware that there is a big rise in compute resources donated to Folding@Home, so the pool of available work units may be empty from time to time, but they are working on adding more work units. Be patient.
How to configure the Wireguard VPN in OPNsense (https://homenetworkguy.com/how-to/configure-wireguard-opnsense/)
WireGuard is a modern designed VPN that uses the latest cryptography for stronger security, is very lightweight, and is relatively easy to set up (mostly). I say ‘mostly’ because I found setting up WireGuard in OPNsense to be more difficult than I anticipated. The basic setup of the WireGuard VPN itself was as easy as the authors claim on their website, but I came across a few gotcha's. The gotcha's occur with functionality that is beyond the scope of the WireGuard protocol so I cannot fault them for that. My greatest struggle was configuring WireGuard to function similarly to my OpenVPN server. I want the ability to connect remotely to my home network from my iPhone or iPad, tunnel all traffic through the VPN, have access to certain devices and services on my network, and have the VPN devices use my home's Internet connection.
WireGuard behaves more like a SSH server than a typical VPN server. With WireGuard, devices which have shared their cryptographic keys with each other are able to connect via an encrypted tunnel (like a SSH server configured to use keys instead of passwords). The devices that are connecting to one another are referred to as “peer” devices. When the peer device is an OPNsense router with WireGuard installed, for instance, it can be configured to allow access to various resources on your network. It becomes a tunnel into your network similar to OpenVPN (with the appropriate firewall rules enabled). I will refer to the WireGuard installation on OPNsense as the server rather than a “peer” to make it more clear which device I am configuring unless I am describing the user interface because that is the terminology used interchangeably by WireGuard.
The documentation I found on WireGuard in OPNsense is straightforward and relatively easy to understand, but I had to wrestle with it for a little while to gain a better understanding on how it should be configured. I believe it was partially due to differing end goals – I was trying to achieve something a little different than the authors of other wiki/blog/forum posts. Piecing together various sources of information, I finally ended up with a configuration that met the goals stated above.
News Roundup
NomadBSD 1.3.1 (https://nomadbsd.org/index.html#1.3.1)
NomadBSD 1.3.1 has recently been made available. NomadBSD is a lightweight and portable FreeBSD distribution, designed to run on live on a USB flash drive, allowing you to plug, test, and play on different hardware. They have also started a forum as of yesterday, where you can ask questions and mingle with the NomadBSD community. Notable changes in 1.3.1 are base system upgraded to FreeBSD 12.1-p2. automatic network interface setup improved, image size increased to over 4GB, Thunderbird, Zeroconf, and some more listed below.
GhostBSD 20.02 (https://ghostbsd.org/20.02_release_announcement)
Eric Turgeon, main developer of GhostBSD, has announced version 20.02 of the FreeBSD based operating system. Notable changes are ZFS partition into the custom partition editor installer, allowing you to install alongside with Windows, Linux, or macOS. Other changes are force upgrade all packages on system upgrade, improved update station, and powerd by default for laptop battery performance.
New FuryBSD XFCE and KDE images (https://www.furybsd.org/new-furybsd-12-1-based-images-are-available-for-xfce-and-kde/)
This new release is now based on FreeBSD 12.1 with the latest FreeBSD quarterly packages. This brings XFCE up to 4.14, and KDE up to 5.17. In addition to updates this new ISO mostly addresses community bugs, community enhancement requests, and community pull requests. Due to the overwhelming amount of reports with GitHub hosting all new releases are now being pushed to SourceForge only for the time being. Previous releases will still be kept for archive purposes.
pf-badhost 0.3 Released (https://www.geoghegan.ca/pfbadhost.html)
pf-badhost is a simple, easy to use badhost blocker that uses the power of the pf firewall to block many of the internet's biggest irritants. Annoyances such as SSH and SMTP bruteforcers are largely eliminated. Shodan scans and bots looking for webservers to abuse are stopped dead in their tracks. When used to filter outbound traffic, pf-badhost blocks many seedy, spooky malware containing and/or compromised webhosts.
Beastie Bits
DragonFly i915 drm update (https://www.dragonflydigest.com/2020/03/23/24324.html)
CShell is punk rock (http://blog.snailtext.com/posts/cshell-is-punk-rock.html)
The most surprising Unix programs (https://minnie.tuhs.org/pipermail/tuhs/2020-March/020664.html)
Feedback/Questions
Master One - Torn between OpenBSD and FreeBSD (http://dpaste.com/102HKF5#wrap)
Brad - Follow up to Linus ZFS story (http://dpaste.com/1VXQA2Y#wrap)
Filipe Carvalho - Call for Portuguese BSD User Groups (http://dpaste.com/2H7S8YP)
Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv)

    
    Your browser does not support the HTML5 video tag.
 
</description>
  <itunes:keywords>freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, corona, corona virus, covid-19, foldingathome, folding at home, wireguard, vpn, opnsense, nomadbsd, ghostbsd, furybsd, xfce, kde, pf, pf-badhost </itunes:keywords>
  <content:encoded>
    <![CDATA[<p>Fighting the Coronavirus with FreeBSD, Wireguard VPN Howto in OPNsense, NomadBSD 1.3.1 available, fresh GhostBSD 20.02, New FuryBSD XFCE and KDE images, pf-badhost 0.3 released, and more.</p>

<h2>Headlines</h2>

<h3><a href="https://www.leidinger.net/blog/2020/03/19/fighting-the-coronavirus-with-freebsd-foldinghome/" rel="nofollow">Fighting the Coronavirus with FreeBSD</a></h3>

<blockquote>
<p>Here is a quick HOWTO for those who want to provide some FreeBSD based compute resources to help finding vaccines.</p>

<p>UPDATE 2020-03-22: 0mp@ made a port out of this, it is in “biology/linux-foldingathome”.</p>

<p>Per default it will now pick up some SARS-CoV‑2 (COVID-19) related folding tasks. There are some more config options (e.g. how much of the system resources are used). Please refer to the official Folding@Home site for more information about that. Be also aware that there is a big rise in compute resources donated to Folding@Home, so the pool of available work units may be empty from time to time, but they are working on adding more work units. Be patient.</p>
</blockquote>

<hr>

<h3><a href="https://homenetworkguy.com/how-to/configure-wireguard-opnsense/" rel="nofollow">How to configure the Wireguard VPN in OPNsense</a></h3>

<blockquote>
<p>WireGuard is a modern designed VPN that uses the latest cryptography for stronger security, is very lightweight, and is relatively easy to set up (mostly). I say ‘mostly’ because I found setting up WireGuard in OPNsense to be more difficult than I anticipated. The basic setup of the WireGuard VPN itself was as easy as the authors claim on their website, but I came across a few gotcha&#39;s. The gotcha&#39;s occur with functionality that is beyond the scope of the WireGuard protocol so I cannot fault them for that. My greatest struggle was configuring WireGuard to function similarly to my OpenVPN server. I want the ability to connect remotely to my home network from my iPhone or iPad, tunnel all traffic through the VPN, have access to certain devices and services on my network, and have the VPN devices use my home&#39;s Internet connection.</p>

<p>WireGuard behaves more like a SSH server than a typical VPN server. With WireGuard, devices which have shared their cryptographic keys with each other are able to connect via an encrypted tunnel (like a SSH server configured to use keys instead of passwords). The devices that are connecting to one another are referred to as “peer” devices. When the peer device is an OPNsense router with WireGuard installed, for instance, it can be configured to allow access to various resources on your network. It becomes a tunnel into your network similar to OpenVPN (with the appropriate firewall rules enabled). I will refer to the WireGuard installation on OPNsense as the server rather than a “peer” to make it more clear which device I am configuring unless I am describing the user interface because that is the terminology used interchangeably by WireGuard.</p>

<p>The documentation I found on WireGuard in OPNsense is straightforward and relatively easy to understand, but I had to wrestle with it for a little while to gain a better understanding on how it should be configured. I believe it was partially due to differing end goals – I was trying to achieve something a little different than the authors of other wiki/blog/forum posts. Piecing together various sources of information, I finally ended up with a configuration that met the goals stated above.</p>
</blockquote>

<hr>

<h2>News Roundup</h2>

<h3><a href="https://nomadbsd.org/index.html#1.3.1" rel="nofollow">NomadBSD 1.3.1</a></h3>

<blockquote>
<p>NomadBSD 1.3.1 has recently been made available. NomadBSD is a lightweight and portable FreeBSD distribution, designed to run on live on a USB flash drive, allowing you to plug, test, and play on different hardware. They have also started a forum as of yesterday, where you can ask questions and mingle with the NomadBSD community. Notable changes in 1.3.1 are base system upgraded to FreeBSD 12.1-p2. automatic network interface setup improved, image size increased to over 4GB, Thunderbird, Zeroconf, and some more listed below.</p>
</blockquote>

<hr>

<h3><a href="https://ghostbsd.org/20.02_release_announcement" rel="nofollow">GhostBSD 20.02</a></h3>

<blockquote>
<p>Eric Turgeon, main developer of GhostBSD, has announced version 20.02 of the FreeBSD based operating system. Notable changes are ZFS partition into the custom partition editor installer, allowing you to install alongside with Windows, Linux, or macOS. Other changes are force upgrade all packages on system upgrade, improved update station, and powerd by default for laptop battery performance.</p>
</blockquote>

<hr>

<h3><a href="https://www.furybsd.org/new-furybsd-12-1-based-images-are-available-for-xfce-and-kde/" rel="nofollow">New FuryBSD XFCE and KDE images</a></h3>

<blockquote>
<p>This new release is now based on FreeBSD 12.1 with the latest FreeBSD quarterly packages. This brings XFCE up to 4.14, and KDE up to 5.17. In addition to updates this new ISO mostly addresses community bugs, community enhancement requests, and community pull requests. Due to the overwhelming amount of reports with GitHub hosting all new releases are now being pushed to SourceForge only for the time being. Previous releases will still be kept for archive purposes.</p>
</blockquote>

<hr>

<h3><a href="https://www.geoghegan.ca/pfbadhost.html" rel="nofollow">pf-badhost 0.3 Released</a></h3>

<blockquote>
<p>pf-badhost is a simple, easy to use badhost blocker that uses the power of the pf firewall to block many of the internet&#39;s biggest irritants. Annoyances such as SSH and SMTP bruteforcers are largely eliminated. Shodan scans and bots looking for webservers to abuse are stopped dead in their tracks. When used to filter outbound traffic, pf-badhost blocks many seedy, spooky malware containing and/or compromised webhosts.</p>
</blockquote>

<hr>

<h2>Beastie Bits</h2>

<ul>
<li><a href="https://www.dragonflydigest.com/2020/03/23/24324.html" rel="nofollow">DragonFly i915 drm update</a></li>
<li><a href="http://blog.snailtext.com/posts/cshell-is-punk-rock.html" rel="nofollow">CShell is punk rock</a></li>
<li><a href="https://minnie.tuhs.org/pipermail/tuhs/2020-March/020664.html" rel="nofollow">The most surprising Unix programs</a></li>
</ul>

<hr>

<h2>Feedback/Questions</h2>

<ul>
<li>Master One - <a href="http://dpaste.com/102HKF5#wrap" rel="nofollow">Torn between OpenBSD and FreeBSD</a></li>
<li>Brad - <a href="http://dpaste.com/1VXQA2Y#wrap" rel="nofollow">Follow up to Linus ZFS story</a></li>
<li>Filipe Carvalho - <a href="http://dpaste.com/2H7S8YP" rel="nofollow">Call for Portuguese BSD User Groups</a></li>
</ul>

<hr>

<ul>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv" rel="nofollow">feedback@bsdnow.tv</a></li>
</ul>

<hr>

<video controls preload="metadata" style=" width:426px;  height:240px;">
    <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0343.mp4" type="video/mp4">
    Your browser does not support the HTML5 video tag.
</video>]]>
  </content:encoded>
  <itunes:summary>
    <![CDATA[<p>Fighting the Coronavirus with FreeBSD, Wireguard VPN Howto in OPNsense, NomadBSD 1.3.1 available, fresh GhostBSD 20.02, New FuryBSD XFCE and KDE images, pf-badhost 0.3 released, and more.</p>

<h2>Headlines</h2>

<h3><a href="https://www.leidinger.net/blog/2020/03/19/fighting-the-coronavirus-with-freebsd-foldinghome/" rel="nofollow">Fighting the Coronavirus with FreeBSD</a></h3>

<blockquote>
<p>Here is a quick HOWTO for those who want to provide some FreeBSD based compute resources to help finding vaccines.</p>

<p>UPDATE 2020-03-22: 0mp@ made a port out of this, it is in “biology/linux-foldingathome”.</p>

<p>Per default it will now pick up some SARS-CoV‑2 (COVID-19) related folding tasks. There are some more config options (e.g. how much of the system resources are used). Please refer to the official Folding@Home site for more information about that. Be also aware that there is a big rise in compute resources donated to Folding@Home, so the pool of available work units may be empty from time to time, but they are working on adding more work units. Be patient.</p>
</blockquote>

<hr>

<h3><a href="https://homenetworkguy.com/how-to/configure-wireguard-opnsense/" rel="nofollow">How to configure the Wireguard VPN in OPNsense</a></h3>

<blockquote>
<p>WireGuard is a modern designed VPN that uses the latest cryptography for stronger security, is very lightweight, and is relatively easy to set up (mostly). I say ‘mostly’ because I found setting up WireGuard in OPNsense to be more difficult than I anticipated. The basic setup of the WireGuard VPN itself was as easy as the authors claim on their website, but I came across a few gotcha&#39;s. The gotcha&#39;s occur with functionality that is beyond the scope of the WireGuard protocol so I cannot fault them for that. My greatest struggle was configuring WireGuard to function similarly to my OpenVPN server. I want the ability to connect remotely to my home network from my iPhone or iPad, tunnel all traffic through the VPN, have access to certain devices and services on my network, and have the VPN devices use my home&#39;s Internet connection.</p>

<p>WireGuard behaves more like a SSH server than a typical VPN server. With WireGuard, devices which have shared their cryptographic keys with each other are able to connect via an encrypted tunnel (like a SSH server configured to use keys instead of passwords). The devices that are connecting to one another are referred to as “peer” devices. When the peer device is an OPNsense router with WireGuard installed, for instance, it can be configured to allow access to various resources on your network. It becomes a tunnel into your network similar to OpenVPN (with the appropriate firewall rules enabled). I will refer to the WireGuard installation on OPNsense as the server rather than a “peer” to make it more clear which device I am configuring unless I am describing the user interface because that is the terminology used interchangeably by WireGuard.</p>

<p>The documentation I found on WireGuard in OPNsense is straightforward and relatively easy to understand, but I had to wrestle with it for a little while to gain a better understanding on how it should be configured. I believe it was partially due to differing end goals – I was trying to achieve something a little different than the authors of other wiki/blog/forum posts. Piecing together various sources of information, I finally ended up with a configuration that met the goals stated above.</p>
</blockquote>

<hr>

<h2>News Roundup</h2>

<h3><a href="https://nomadbsd.org/index.html#1.3.1" rel="nofollow">NomadBSD 1.3.1</a></h3>

<blockquote>
<p>NomadBSD 1.3.1 has recently been made available. NomadBSD is a lightweight and portable FreeBSD distribution, designed to run on live on a USB flash drive, allowing you to plug, test, and play on different hardware. They have also started a forum as of yesterday, where you can ask questions and mingle with the NomadBSD community. Notable changes in 1.3.1 are base system upgraded to FreeBSD 12.1-p2. automatic network interface setup improved, image size increased to over 4GB, Thunderbird, Zeroconf, and some more listed below.</p>
</blockquote>

<hr>

<h3><a href="https://ghostbsd.org/20.02_release_announcement" rel="nofollow">GhostBSD 20.02</a></h3>

<blockquote>
<p>Eric Turgeon, main developer of GhostBSD, has announced version 20.02 of the FreeBSD based operating system. Notable changes are ZFS partition into the custom partition editor installer, allowing you to install alongside with Windows, Linux, or macOS. Other changes are force upgrade all packages on system upgrade, improved update station, and powerd by default for laptop battery performance.</p>
</blockquote>

<hr>

<h3><a href="https://www.furybsd.org/new-furybsd-12-1-based-images-are-available-for-xfce-and-kde/" rel="nofollow">New FuryBSD XFCE and KDE images</a></h3>

<blockquote>
<p>This new release is now based on FreeBSD 12.1 with the latest FreeBSD quarterly packages. This brings XFCE up to 4.14, and KDE up to 5.17. In addition to updates this new ISO mostly addresses community bugs, community enhancement requests, and community pull requests. Due to the overwhelming amount of reports with GitHub hosting all new releases are now being pushed to SourceForge only for the time being. Previous releases will still be kept for archive purposes.</p>
</blockquote>

<hr>

<h3><a href="https://www.geoghegan.ca/pfbadhost.html" rel="nofollow">pf-badhost 0.3 Released</a></h3>

<blockquote>
<p>pf-badhost is a simple, easy to use badhost blocker that uses the power of the pf firewall to block many of the internet&#39;s biggest irritants. Annoyances such as SSH and SMTP bruteforcers are largely eliminated. Shodan scans and bots looking for webservers to abuse are stopped dead in their tracks. When used to filter outbound traffic, pf-badhost blocks many seedy, spooky malware containing and/or compromised webhosts.</p>
</blockquote>

<hr>

<h2>Beastie Bits</h2>

<ul>
<li><a href="https://www.dragonflydigest.com/2020/03/23/24324.html" rel="nofollow">DragonFly i915 drm update</a></li>
<li><a href="http://blog.snailtext.com/posts/cshell-is-punk-rock.html" rel="nofollow">CShell is punk rock</a></li>
<li><a href="https://minnie.tuhs.org/pipermail/tuhs/2020-March/020664.html" rel="nofollow">The most surprising Unix programs</a></li>
</ul>

<hr>

<h2>Feedback/Questions</h2>

<ul>
<li>Master One - <a href="http://dpaste.com/102HKF5#wrap" rel="nofollow">Torn between OpenBSD and FreeBSD</a></li>
<li>Brad - <a href="http://dpaste.com/1VXQA2Y#wrap" rel="nofollow">Follow up to Linus ZFS story</a></li>
<li>Filipe Carvalho - <a href="http://dpaste.com/2H7S8YP" rel="nofollow">Call for Portuguese BSD User Groups</a></li>
</ul>

<hr>

<ul>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv" rel="nofollow">feedback@bsdnow.tv</a></li>
</ul>

<hr>

<video controls preload="metadata" style=" width:426px;  height:240px;">
    <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0343.mp4" type="video/mp4">
    Your browser does not support the HTML5 video tag.
</video>]]>
  </itunes:summary>
</item>
<item>
  <title>330: Happy Holidays, All(an)</title>
  <link>https://www.bsdnow.tv/330</link>
  <guid isPermaLink="false">af84425c-c562-4d3b-b28c-cce7a148a3ad</guid>
  <pubDate>Thu, 26 Dec 2019 08:00:00 -0500</pubDate>
  <author>JT Pennington</author>
  <enclosure url="https://aphid.fireside.fm/d/1437767933/c91b88f1-e824-4815-bcb8-5227818d6010/af84425c-c562-4d3b-b28c-cce7a148a3ad.mp3" length="54074955" type="audio/mp3"/>
  <itunes:episodeType>full</itunes:episodeType>
  <itunes:author>JT Pennington</itunes:author>
  <itunes:subtitle>Authentication Vulnerabilities in OpenBSD, NetBSD 9.0 RC1 is available, Running FreeNAS on a DigitalOcean droplet, NomadBSD 1.3 is here, at e2k19 nobody can hear you scream, and more.</itunes:subtitle>
  <itunes:duration>1:15:06</itunes:duration>
  <itunes:explicit>no</itunes:explicit>
  <itunes:image href="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/c/c91b88f1-e824-4815-bcb8-5227818d6010/cover.jpg?v=4"/>
  <description>Authentication Vulnerabilities in OpenBSD, NetBSD 9.0 RC1 is available, Running FreeNAS on a DigitalOcean droplet, NomadBSD 1.3 is here, at e2k19 nobody can hear you scream, and more.
Headlines
Authentication vulnerabilities in OpenBSD (https://www.openwall.com/lists/oss-security/2019/12/04/5)
We discovered an authentication-bypass vulnerability in OpenBSD's authentication system: this vulnerability is remotely exploitable in smtpd, ldapd, and radiusd, but its real-world impact should be studied on a case-by-case basis. For example, sshd is not exploitable thanks to its defense-in-depth mechanisms.
From the manual page of login.conf:
OpenBSD uses BSD Authentication, which is made up of a variety of authentication styles.  The authentication styles currently provided are:
         passwd     Request a password and check it against the password in the master.passwd file.  See loginpasswd(8).
         skey       Send a challenge and request a response, checking it with S/Key (tm) authentication.  See loginskey(8).
         yubikey    Authenticate using a Yubico YubiKey token.  See loginyubikey(8).
         For any given style, the program /usr/libexec/auth/loginstyle is used to
         perform the authentication.  The synopsis of this program is:
         /usr/libexec/auth/login_style [-v name=value] [-s service] username class
This is the first piece of the puzzle: if an attacker specifies a username of the form "-option", they can influence the behavior of the authentication program in unexpected ways.
 login_passwd [-s service] [-v wheel=yes|no] [-v lastchance=yes|no] user [class] The service argument specifies which protocol to use with the invoking program.  The allowed protocols are login, challenge, and response.  (The challenge protocol is silently ignored but will report success as passwd-style authentication is not challenge-response based).
This is the second piece of the puzzle: if an attacker specifies the username "-schallenge" (or "-schallenge:passwd" to force a passwd-style authentication), then the authentication is automatically successful and therefore bypassed.
Case study: smtpd
Case study: ldapd
Case study: radiusd
Case study: sshd
Acknowledgments: We thank Theo de Raadt and the OpenBSD developers for their incredibly quick response: they published patches for these vulnerabilities less than 40 hours after our initial contact. We also thank MITRE's CVE Assignment Team.
First release candidate for NetBSD 9.0 available! (https://blog.netbsd.org/tnf/entry/first_release_candidate_for_netbsd)
Since the start of the release process four months ago a lot of improvements went into the branch - more than 500 pullups were processed!
This includes usbnet (a common framework for usb ethernet drivers), aarch64 stability enhancements and lots of new hardware support, installer/sysinst fixes and changes to the NVMM (hardware virtualization) interface.
We hope this will lead to the best NetBSD release ever (only to be topped by NetBSD 10 next year).
Here are a few highlights of the new release:
Support for Arm AArch64 (64-bit Armv8-A) machines, including "Arm ServerReady"
compliant machines (SBBR+SBSA)
Enhanced hardware support for Armv7-A
Updated GPU drivers (e.g. support for Intel Kabylake)
Enhanced virtualization support
Support for hardware-accelerated virtualization (NVMM)
Support for Performance Monitoring Counters
Support for Kernel ASLR
Support several kernel sanitizers (KLEAK, KASAN, KUBSAN)
Support for userland sanitizers
Audit of the network stack
Many improvements in NPF
Updated ZFS
Reworked error handling and NCQ support in the SATA subsystem
Support a common framework for USB Ethernet drivers (usbnet)
More information on the RC can be found on the NetBSD 9 release page (https://www.netbsd.org/releases/formal-9/NetBSD-9.0.html)
News Roundup
Running FreeNAS on a Digitalocean droplet (https://www.shlomimarco.com/post/running-freenas-on-a-digitalocean-droplet)
ZFS is awesome. FreeBSD even more so. FreeNAS is the battle-tested, enterprise-ready-yet-home-user-friendly software defined storage solution which is cooler then deep space, based on FreeBSD and makes heavy use of ZFS. This is what I (and soooooo many others) use for just about any storage-related task. I can go on and on and on about what makes it great, but if you're here, reading this, you probably know all that already and we can skip ahead.
I've needed an offsite FreeNAS setup to replicate things to, to run some things, to do some stuff, basically, my privately-owned, tightly-controlled NAS appliance in the cloud, one I control from top to bottom and with support for whatever crazy thing I'm trying to do. Since I'm using DigitalOcean as my main VPS provider, it seemed logical to run FreeNAS there, however, you can't. While DO supports many many distos and pre-setup applications (e.g OpenVPN), FreeNAS isn't a supported feature, at least not in the traditional way :)
Before we begin, here's the gist of what we're going to do:
Base of a FreeBSD droplet, we'll re-image our boot block device with FreeNAS iso. We'll then install FreeNAS on the second block device. Once done we're going to do the ol' switcheroo: we're going to re-image our original boot block device using the now FreeNAS-installed second block device. 
Part 1: re-image our boot block device to boot FreeNAS install media.
Part 2: Install FreeNAS on the second block-device
Part 3: Re-image the boot block device using the FreeNAS-installed block device
NomadBSD 1.3 is now available (https://nomadbsd.org/)
From the release notes:
The base system has been changed to FreeBSD 12.1-RELEASE-p1
 Due to a deadlock problem, FreeBSD's unionfs has been replaced by unionfs-fuse
 The GPT layout has been changed to MBR. This prevents problems with Lenovo
 systems that refuse to boot from GPT if "lenovofix" is not set, and systems that
 hang on boot if "lenovofix" is set.
 Support for ZFS installations has been added to the NomadBSD installer.
 The rc-script for setting up the network interfaces has been fixed and improved.
 Support for setting the country code for the wlan device has been added.
 Auto configuration for running in VirtualBox has been added.
 A check for the default display has been added to the graphics configuration scripts. This fixes problems where users with Optimus have their NVIDIA card disabled, and use the integrated graphics chip instead.
 NVIDIA driver version 440 has been added.
 nomadbsd-dmconfig, a Qt tool for selecting the display manager theme, setting the
default user and autologin has been added.
 nomadbsd-adduser, a Qt tool for added preconfigured user accounts to the system has been added.
 Martin Orszulik added Czech translations to the setup and installation wizard.
 The NomadBSD logo, designed by Ian Grindley, has been changed.
 Support for localized error messages has been added.
 Support for localizing the password prompts has been added.
 Some templates for starting other DEs have been added to ~/.xinitrc.
 The interfaces of nomadbsd-setup-gui and nomadbsd-install-gui have been improved.
 A script that helps users to configure a multihead systems has been added.
 The Xorg driver for newer Intel GPUs has been changed from "intel" to "modesetting".
 /proc has been added to /etc/fstab
 A D-Bus session issue has been fixed which prevented thunar from accessing  samba shares.
 DSBBg which allows users to change and manage wallpapers has been added.
 The latest version of update_obmenu now supports auto-updating the Openbox menu. Manually updating the Openbox menu after packet (de)installation is therefore no longer needed.
Support for multiple keyboard layouts has been added.
 www/palemoon has been removed.
 mail/thunderbird has been removed.
 audio/audacity has been added.
 deskutils/orage has been added.
 the password manager fpm2 has been replaced by KeePassXC
 mail/sylpheed has been replaced by mail/claws-mail
 multimedia/simplescreenrecorder has been added.
 DSBMC has been changed to DSBMC-Qt
 Many small improvements and bug fixes.
At e2k19 nobody can hear you scream (https://undeadly.org/cgi?action=article;sid=20191204170908)
After 2 years it was once again time to pack skis and snowshoes, put a satellite dish onto a sledge and hike through the snowy rockies to the Elk Lakes hut.
I did not really have much of a plan what I wanted to work on but there were a few things I wanted to look into. One of them was rpki-client and the fact that it was so incredibly slow. Since Bob beck@ was around I started to ask him innocent X509 questions ... as if there are innocent X509 questions! Mainly about the abuse of the X509STORE in rpki-client. Pretty soon it was clear that rpki-client did it all wrong and most of the X509 verification had to be rewritten. Instead of only storing the root certificates in the store and passing the intermediate certs as a chain to the verification function rpki-client threw everything into it. The X509STORE is just not built for such an abuse and so it was no wonder that this was slow.
Lucky me I pulled benno@ with me into this dark hole of libcrypto code. He managed to build up an initial diff to pass the chains as a STACKOF(X509) and together we managed to get it working. A big thanks goes to ingo@ who documented most of the functions we had to use. Have a look at STACKOF(3) and skpopfree(3) to understand why benno@ and I slowly turned crazy.
Our next challenge was to only load the necessary certificate revocation list into the X509STORECTX. While doing those changes it became obvious that some of the data structures needed better lookup functions. Looking up certificates was done using a linear lookup and so we replaced the internal certificate and CRL tables with RB trees for fast lookups. deraadt@ also joined the rpki-client commit fest and changed the output code to use rename(2) so that files are replaced in an atomic operation. Thanks to this rpki-client can now be safely run from cron (there is an example in the default crontab).
I did not plan to spend most of my week hacking on rpki-client but in the end I'm happy that I did and the result is fairly impressive. Working with libcrypto code and especially X509 was less than pleasant. Our screams of agony died away in the snowy rocky mountains and made Bob deep dive into UVM with a smile since he knew that benno@ and I had it worse.
In case you wonder thanks to all changes at e2k19 rpki-client improved from over 20min run time to validate all VRPS to roughly 1min to do the same job. A factor 20 improvement!
Thanks to Theo, Bob and Howie to make this possible. To all the cooks for the great food and to Xplornet for providing us with Internet at the hut.
Beastie Bits
FOSDEM 2020 BSD Devroom schedule (https://fosdem.org/2020/schedule/track/bsd/)
Easy Minecraft Server on FreeBSD Howto (https://www.freebsdfoundation.org/freebsd/how-to-guides/easy-minecraft-server-on-freebsd/)
stats(3) framework in the TCP stack (https://svnweb.freebsd.org/base?view=revision&amp;amp;revision=355304)
4017 days of uptime (https://twitter.com/EdwinKremer/status/1203071684535889921)
sysget - A front-end for every package manager (https://github.com/emilengler/sysget)
PlayOnBSD’s Cross-BSD Shopping Guide (https://www.playonbsd.com/shopping_guide/)
Feedback/Questions
Pat asks about the proper disk drive type for ZFS (http://dpaste.com/2FDN26X#wrap)
Brad asks about a ZFS rosetta stone (http://dpaste.com/2X8PBMC#wrap)
Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv)

    
    Your browser does not support the HTML5 video tag.
 Special Guest: Mariusz Zaborski.
</description>
  <itunes:keywords>freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, Authentication, vulnerabilities, release candidate, digitalocean, droplet, freenas, nomadbsd, e2k19, hackathon</itunes:keywords>
  <content:encoded>
    <![CDATA[<p>Authentication Vulnerabilities in OpenBSD, NetBSD 9.0 RC1 is available, Running FreeNAS on a DigitalOcean droplet, NomadBSD 1.3 is here, at e2k19 nobody can hear you scream, and more.</p>

<h2>Headlines</h2>

<h3><a href="https://www.openwall.com/lists/oss-security/2019/12/04/5" rel="nofollow">Authentication vulnerabilities in OpenBSD</a></h3>

<ul>
<li>We discovered an authentication-bypass vulnerability in OpenBSD&#39;s authentication system: this vulnerability is remotely exploitable in smtpd, ldapd, and radiusd, but its real-world impact should be studied on a case-by-case basis. For example, sshd is not exploitable thanks to its defense-in-depth mechanisms.</li>
<li>From the manual page of login.conf:</li>
</ul>

<blockquote>
<p>OpenBSD uses BSD Authentication, which is made up of a variety of authentication styles.  The authentication styles currently provided are:<br>
         passwd     Request a password and check it against the password in the master.passwd file.  See login_passwd(8).<br>
         skey       Send a challenge and request a response, checking it with S/Key (tm) authentication.  See login_skey(8).<br>
         yubikey    Authenticate using a Yubico YubiKey token.  See login_yubikey(8).<br>
         For any given style, the program /usr/libexec/auth/login_style is used to<br>
         perform the authentication.  The synopsis of this program is:<br>
         /usr/libexec/auth/login_style [-v name=value] [-s service] username class</p>
</blockquote>

<ul>
<li>This is the first piece of the puzzle: if an attacker specifies a username of the form &quot;-option&quot;, they can influence the behavior of the authentication program in unexpected ways.</li>
</ul>

<blockquote>
<pre><code> login_passwd [-s service] [-v wheel=yes|no] [-v lastchance=yes|no] user [class] The service argument specifies which protocol to use with the invoking program.  The allowed protocols are login, challenge, and response.  (The challenge protocol is silently ignored but will report success as passwd-style authentication is not challenge-response based).
</code></pre>
</blockquote>

<ul>
<li>This is the second piece of the puzzle: if an attacker specifies the username &quot;-schallenge&quot; (or &quot;-schallenge:passwd&quot; to force a passwd-style authentication), then the authentication is automatically successful and therefore bypassed.</li>
<li>Case study: smtpd</li>
<li>Case study: ldapd</li>
<li>Case study: radiusd</li>
<li>Case study: sshd</li>
<li>Acknowledgments: We thank Theo de Raadt and the OpenBSD developers for their incredibly quick response: they published patches for these vulnerabilities less than 40 hours after our initial contact. We also thank MITRE&#39;s CVE Assignment Team.</li>
</ul>

<hr>

<h3><a href="https://blog.netbsd.org/tnf/entry/first_release_candidate_for_netbsd" rel="nofollow">First release candidate for NetBSD 9.0 available!</a></h3>

<ul>
<li>Since the start of the release process four months ago a lot of improvements went into the branch - more than 500 pullups were processed!</li>
<li>This includes usbnet (a common framework for usb ethernet drivers), aarch64 stability enhancements and lots of new hardware support, installer/sysinst fixes and changes to the NVMM (hardware virtualization) interface.</li>
<li>We hope this will lead to the best NetBSD release ever (only to be topped by NetBSD 10 next year).</li>
<li><p>Here are a few highlights of the new release:</p>

<blockquote>
<p>Support for Arm AArch64 (64-bit Armv8-A) machines, including &quot;Arm ServerReady&quot;<br>
compliant machines (SBBR+SBSA)<br>
Enhanced hardware support for Armv7-A<br>
Updated GPU drivers (e.g. support for Intel Kabylake)<br>
Enhanced virtualization support<br>
Support for hardware-accelerated virtualization (NVMM)<br>
Support for Performance Monitoring Counters<br>
Support for Kernel ASLR<br>
Support several kernel sanitizers (KLEAK, KASAN, KUBSAN)<br>
Support for userland sanitizers<br>
Audit of the network stack<br>
Many improvements in NPF<br>
Updated ZFS<br>
Reworked error handling and NCQ support in the SATA subsystem<br>
Support a common framework for USB Ethernet drivers (usbnet)</p>
</blockquote></li>
<li><p>More information on the RC can be found on the <a href="https://www.netbsd.org/releases/formal-9/NetBSD-9.0.html" rel="nofollow">NetBSD 9 release page</a></p></li>
</ul>

<hr>

<h2>News Roundup</h2>

<h3><a href="https://www.shlomimarco.com/post/running-freenas-on-a-digitalocean-droplet" rel="nofollow">Running FreeNAS on a Digitalocean droplet</a></h3>

<ul>
<li>ZFS is awesome. FreeBSD even more so. FreeNAS is the battle-tested, enterprise-ready-yet-home-user-friendly software defined storage solution which is cooler then deep space, based on FreeBSD and makes heavy use of ZFS. This is what I (and soooooo many others) use for just about any storage-related task. I can go on and on and on about what makes it great, but if you&#39;re here, reading this, you probably know all that already and we can skip ahead.</li>
<li>I&#39;ve needed an offsite FreeNAS setup to replicate things to, to run some things, to do some stuff, basically, my privately-owned, tightly-controlled NAS appliance in the cloud, one I control from top to bottom and with support for whatever crazy thing I&#39;m trying to do. Since I&#39;m using DigitalOcean as my main VPS provider, it seemed logical to run FreeNAS there, however, you can&#39;t. While DO supports many many distos and pre-setup applications (e.g OpenVPN), FreeNAS isn&#39;t a supported feature, at least not in the traditional way :)</li>
<li>Before we begin, here&#39;s the gist of what we&#39;re going to do:</li>
</ul>

<blockquote>
<p>Base of a FreeBSD droplet, we&#39;ll re-image our boot block device with FreeNAS iso. We&#39;ll then install FreeNAS on the second block device. Once done we&#39;re going to do the ol&#39; switcheroo: we&#39;re going to re-image our original boot block device using the now FreeNAS-installed second block device. </p>
</blockquote>

<ul>
<li>Part 1: re-image our boot block device to boot FreeNAS install media.</li>
<li>Part 2: Install FreeNAS on the second block-device</li>
<li>Part 3: Re-image the boot block device using the FreeNAS-installed block device</li>
</ul>

<hr>

<h3><a href="https://nomadbsd.org/" rel="nofollow">NomadBSD 1.3 is now available</a></h3>

<ul>
<li>From the release notes:</li>
</ul>

<blockquote>
<p>The base system has been changed to FreeBSD 12.1-RELEASE-p1<br>
 Due to a deadlock problem, FreeBSD&#39;s unionfs has been replaced by unionfs-fuse<br>
 The GPT layout has been changed to MBR. This prevents problems with Lenovo<br>
 systems that refuse to boot from GPT if &quot;lenovofix&quot; is not set, and systems that<br>
 hang on boot if &quot;lenovofix&quot; is set.<br>
 Support for ZFS installations has been added to the NomadBSD installer.<br>
 The rc-script for setting up the network interfaces has been fixed and improved.<br>
 Support for setting the country code for the wlan device has been added.<br>
 Auto configuration for running in VirtualBox has been added.<br>
 A check for the default display has been added to the graphics configuration scripts. This fixes problems where users with Optimus have their NVIDIA card disabled, and use the integrated graphics chip instead.<br>
 NVIDIA driver version 440 has been added.<br>
 nomadbsd-dmconfig, a Qt tool for selecting the display manager theme, setting the<br>
default user and autologin has been added.<br>
 nomadbsd-adduser, a Qt tool for added preconfigured user accounts to the system has been added.<br>
 Martin Orszulik added Czech translations to the setup and installation wizard.<br>
 The NomadBSD logo, designed by Ian Grindley, has been changed.<br>
 Support for localized error messages has been added.<br>
 Support for localizing the password prompts has been added.<br>
 Some templates for starting other DEs have been added to ~/.xinitrc.<br>
 The interfaces of nomadbsd-setup-gui and nomadbsd-install-gui have been improved.<br>
 A script that helps users to configure a multihead systems has been added.<br>
 The Xorg driver for newer Intel GPUs has been changed from &quot;intel&quot; to &quot;modesetting&quot;.<br>
 /proc has been added to /etc/fstab<br>
 A D-Bus session issue has been fixed which prevented thunar from accessing  samba shares.<br>
 DSBBg which allows users to change and manage wallpapers has been added.<br>
 The latest version of update_obmenu now supports auto-updating the Openbox menu. Manually updating the Openbox menu after packet (de)installation is therefore no longer needed.</p>

<p>Support for multiple keyboard layouts has been added.<br>
 www/palemoon has been removed.<br>
 mail/thunderbird has been removed.<br>
 audio/audacity has been added.<br>
 deskutils/orage has been added.<br>
 the password manager fpm2 has been replaced by KeePassXC<br>
 mail/sylpheed has been replaced by mail/claws-mail<br>
 multimedia/simplescreenrecorder has been added.<br>
 DSBMC has been changed to DSBMC-Qt<br>
 Many small improvements and bug fixes.</p>
</blockquote>

<hr>

<h3><a href="https://undeadly.org/cgi?action=article;sid=20191204170908" rel="nofollow">At e2k19 nobody can hear you scream</a></h3>

<ul>
<li>After 2 years it was once again time to pack skis and snowshoes, put a satellite dish onto a sledge and hike through the snowy rockies to the Elk Lakes hut.</li>
<li>I did not really have much of a plan what I wanted to work on but there were a few things I wanted to look into. One of them was rpki-client and the fact that it was so incredibly slow. Since Bob beck@ was around I started to ask him innocent X509 questions ... as if there are innocent X509 questions! Mainly about the abuse of the X509_STORE in rpki-client. Pretty soon it was clear that rpki-client did it all wrong and most of the X509 verification had to be rewritten. Instead of only storing the root certificates in the store and passing the intermediate certs as a chain to the verification function rpki-client threw everything into it. The X509_STORE is just not built for such an abuse and so it was no wonder that this was slow.</li>
<li>Lucky me I pulled benno@ with me into this dark hole of libcrypto code. He managed to build up an initial diff to pass the chains as a STACK_OF(X509) and together we managed to get it working. A big thanks goes to ingo@ who documented most of the functions we had to use. Have a look at STACK_OF(3) and sk_pop_free(3) to understand why benno@ and I slowly turned crazy.</li>
<li>Our next challenge was to only load the necessary certificate revocation list into the X509_STORE_CTX. While doing those changes it became obvious that some of the data structures needed better lookup functions. Looking up certificates was done using a linear lookup and so we replaced the internal certificate and CRL tables with RB trees for fast lookups. deraadt@ also joined the rpki-client commit fest and changed the output code to use rename(2) so that files are replaced in an atomic operation. Thanks to this rpki-client can now be safely run from cron (there is an example in the default crontab).</li>
<li>I did not plan to spend most of my week hacking on rpki-client but in the end I&#39;m happy that I did and the result is fairly impressive. Working with libcrypto code and especially X509 was less than pleasant. Our screams of agony died away in the snowy rocky mountains and made Bob deep dive into UVM with a smile since he knew that benno@ and I had it worse.</li>
<li>In case you wonder thanks to all changes at e2k19 rpki-client improved from over 20min run time to validate all VRPS to roughly 1min to do the same job. A factor 20 improvement!</li>
<li>Thanks to Theo, Bob and Howie to make this possible. To all the cooks for the great food and to Xplornet for providing us with Internet at the hut.</li>
</ul>

<hr>

<h2>Beastie Bits</h2>

<ul>
<li><a href="https://fosdem.org/2020/schedule/track/bsd/" rel="nofollow">FOSDEM 2020 BSD Devroom schedule</a></li>
<li><a href="https://www.freebsdfoundation.org/freebsd/how-to-guides/easy-minecraft-server-on-freebsd/" rel="nofollow">Easy Minecraft Server on FreeBSD Howto</a></li>
<li><a href="https://svnweb.freebsd.org/base?view=revision&revision=355304" rel="nofollow">stats(3) framework in the TCP stack</a></li>
<li><a href="https://twitter.com/EdwinKremer/status/1203071684535889921" rel="nofollow">4017 days of uptime</a></li>
<li><a href="https://github.com/emilengler/sysget" rel="nofollow">sysget - A front-end for every package manager</a></li>
<li><a href="https://www.playonbsd.com/shopping_guide/" rel="nofollow">PlayOnBSD’s Cross-BSD Shopping Guide</a></li>
</ul>

<hr>

<h2>Feedback/Questions</h2>

<ul>
<li><a href="http://dpaste.com/2FDN26X#wrap" rel="nofollow">Pat asks about the proper disk drive type for ZFS</a></li>
<li><a href="http://dpaste.com/2X8PBMC#wrap" rel="nofollow">Brad asks about a ZFS rosetta stone</a></li>
</ul>

<hr>

<ul>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv" rel="nofollow">feedback@bsdnow.tv</a></li>
</ul>

<hr>

<video controls preload="metadata" style=" width:426px;  height:240px;">
    <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0330.mp4" type="video/mp4">
    Your browser does not support the HTML5 video tag.
</video><p>Special Guest: Mariusz Zaborski.</p>]]>
  </content:encoded>
  <itunes:summary>
    <![CDATA[<p>Authentication Vulnerabilities in OpenBSD, NetBSD 9.0 RC1 is available, Running FreeNAS on a DigitalOcean droplet, NomadBSD 1.3 is here, at e2k19 nobody can hear you scream, and more.</p>

<h2>Headlines</h2>

<h3><a href="https://www.openwall.com/lists/oss-security/2019/12/04/5" rel="nofollow">Authentication vulnerabilities in OpenBSD</a></h3>

<ul>
<li>We discovered an authentication-bypass vulnerability in OpenBSD&#39;s authentication system: this vulnerability is remotely exploitable in smtpd, ldapd, and radiusd, but its real-world impact should be studied on a case-by-case basis. For example, sshd is not exploitable thanks to its defense-in-depth mechanisms.</li>
<li>From the manual page of login.conf:</li>
</ul>

<blockquote>
<p>OpenBSD uses BSD Authentication, which is made up of a variety of authentication styles.  The authentication styles currently provided are:<br>
         passwd     Request a password and check it against the password in the master.passwd file.  See login_passwd(8).<br>
         skey       Send a challenge and request a response, checking it with S/Key (tm) authentication.  See login_skey(8).<br>
         yubikey    Authenticate using a Yubico YubiKey token.  See login_yubikey(8).<br>
         For any given style, the program /usr/libexec/auth/login_style is used to<br>
         perform the authentication.  The synopsis of this program is:<br>
         /usr/libexec/auth/login_style [-v name=value] [-s service] username class</p>
</blockquote>

<ul>
<li>This is the first piece of the puzzle: if an attacker specifies a username of the form &quot;-option&quot;, they can influence the behavior of the authentication program in unexpected ways.</li>
</ul>

<blockquote>
<pre><code> login_passwd [-s service] [-v wheel=yes|no] [-v lastchance=yes|no] user [class] The service argument specifies which protocol to use with the invoking program.  The allowed protocols are login, challenge, and response.  (The challenge protocol is silently ignored but will report success as passwd-style authentication is not challenge-response based).
</code></pre>
</blockquote>

<ul>
<li>This is the second piece of the puzzle: if an attacker specifies the username &quot;-schallenge&quot; (or &quot;-schallenge:passwd&quot; to force a passwd-style authentication), then the authentication is automatically successful and therefore bypassed.</li>
<li>Case study: smtpd</li>
<li>Case study: ldapd</li>
<li>Case study: radiusd</li>
<li>Case study: sshd</li>
<li>Acknowledgments: We thank Theo de Raadt and the OpenBSD developers for their incredibly quick response: they published patches for these vulnerabilities less than 40 hours after our initial contact. We also thank MITRE&#39;s CVE Assignment Team.</li>
</ul>

<hr>

<h3><a href="https://blog.netbsd.org/tnf/entry/first_release_candidate_for_netbsd" rel="nofollow">First release candidate for NetBSD 9.0 available!</a></h3>

<ul>
<li>Since the start of the release process four months ago a lot of improvements went into the branch - more than 500 pullups were processed!</li>
<li>This includes usbnet (a common framework for usb ethernet drivers), aarch64 stability enhancements and lots of new hardware support, installer/sysinst fixes and changes to the NVMM (hardware virtualization) interface.</li>
<li>We hope this will lead to the best NetBSD release ever (only to be topped by NetBSD 10 next year).</li>
<li><p>Here are a few highlights of the new release:</p>

<blockquote>
<p>Support for Arm AArch64 (64-bit Armv8-A) machines, including &quot;Arm ServerReady&quot;<br>
compliant machines (SBBR+SBSA)<br>
Enhanced hardware support for Armv7-A<br>
Updated GPU drivers (e.g. support for Intel Kabylake)<br>
Enhanced virtualization support<br>
Support for hardware-accelerated virtualization (NVMM)<br>
Support for Performance Monitoring Counters<br>
Support for Kernel ASLR<br>
Support several kernel sanitizers (KLEAK, KASAN, KUBSAN)<br>
Support for userland sanitizers<br>
Audit of the network stack<br>
Many improvements in NPF<br>
Updated ZFS<br>
Reworked error handling and NCQ support in the SATA subsystem<br>
Support a common framework for USB Ethernet drivers (usbnet)</p>
</blockquote></li>
<li><p>More information on the RC can be found on the <a href="https://www.netbsd.org/releases/formal-9/NetBSD-9.0.html" rel="nofollow">NetBSD 9 release page</a></p></li>
</ul>

<hr>

<h2>News Roundup</h2>

<h3><a href="https://www.shlomimarco.com/post/running-freenas-on-a-digitalocean-droplet" rel="nofollow">Running FreeNAS on a Digitalocean droplet</a></h3>

<ul>
<li>ZFS is awesome. FreeBSD even more so. FreeNAS is the battle-tested, enterprise-ready-yet-home-user-friendly software defined storage solution which is cooler then deep space, based on FreeBSD and makes heavy use of ZFS. This is what I (and soooooo many others) use for just about any storage-related task. I can go on and on and on about what makes it great, but if you&#39;re here, reading this, you probably know all that already and we can skip ahead.</li>
<li>I&#39;ve needed an offsite FreeNAS setup to replicate things to, to run some things, to do some stuff, basically, my privately-owned, tightly-controlled NAS appliance in the cloud, one I control from top to bottom and with support for whatever crazy thing I&#39;m trying to do. Since I&#39;m using DigitalOcean as my main VPS provider, it seemed logical to run FreeNAS there, however, you can&#39;t. While DO supports many many distos and pre-setup applications (e.g OpenVPN), FreeNAS isn&#39;t a supported feature, at least not in the traditional way :)</li>
<li>Before we begin, here&#39;s the gist of what we&#39;re going to do:</li>
</ul>

<blockquote>
<p>Base of a FreeBSD droplet, we&#39;ll re-image our boot block device with FreeNAS iso. We&#39;ll then install FreeNAS on the second block device. Once done we&#39;re going to do the ol&#39; switcheroo: we&#39;re going to re-image our original boot block device using the now FreeNAS-installed second block device. </p>
</blockquote>

<ul>
<li>Part 1: re-image our boot block device to boot FreeNAS install media.</li>
<li>Part 2: Install FreeNAS on the second block-device</li>
<li>Part 3: Re-image the boot block device using the FreeNAS-installed block device</li>
</ul>

<hr>

<h3><a href="https://nomadbsd.org/" rel="nofollow">NomadBSD 1.3 is now available</a></h3>

<ul>
<li>From the release notes:</li>
</ul>

<blockquote>
<p>The base system has been changed to FreeBSD 12.1-RELEASE-p1<br>
 Due to a deadlock problem, FreeBSD&#39;s unionfs has been replaced by unionfs-fuse<br>
 The GPT layout has been changed to MBR. This prevents problems with Lenovo<br>
 systems that refuse to boot from GPT if &quot;lenovofix&quot; is not set, and systems that<br>
 hang on boot if &quot;lenovofix&quot; is set.<br>
 Support for ZFS installations has been added to the NomadBSD installer.<br>
 The rc-script for setting up the network interfaces has been fixed and improved.<br>
 Support for setting the country code for the wlan device has been added.<br>
 Auto configuration for running in VirtualBox has been added.<br>
 A check for the default display has been added to the graphics configuration scripts. This fixes problems where users with Optimus have their NVIDIA card disabled, and use the integrated graphics chip instead.<br>
 NVIDIA driver version 440 has been added.<br>
 nomadbsd-dmconfig, a Qt tool for selecting the display manager theme, setting the<br>
default user and autologin has been added.<br>
 nomadbsd-adduser, a Qt tool for added preconfigured user accounts to the system has been added.<br>
 Martin Orszulik added Czech translations to the setup and installation wizard.<br>
 The NomadBSD logo, designed by Ian Grindley, has been changed.<br>
 Support for localized error messages has been added.<br>
 Support for localizing the password prompts has been added.<br>
 Some templates for starting other DEs have been added to ~/.xinitrc.<br>
 The interfaces of nomadbsd-setup-gui and nomadbsd-install-gui have been improved.<br>
 A script that helps users to configure a multihead systems has been added.<br>
 The Xorg driver for newer Intel GPUs has been changed from &quot;intel&quot; to &quot;modesetting&quot;.<br>
 /proc has been added to /etc/fstab<br>
 A D-Bus session issue has been fixed which prevented thunar from accessing  samba shares.<br>
 DSBBg which allows users to change and manage wallpapers has been added.<br>
 The latest version of update_obmenu now supports auto-updating the Openbox menu. Manually updating the Openbox menu after packet (de)installation is therefore no longer needed.</p>

<p>Support for multiple keyboard layouts has been added.<br>
 www/palemoon has been removed.<br>
 mail/thunderbird has been removed.<br>
 audio/audacity has been added.<br>
 deskutils/orage has been added.<br>
 the password manager fpm2 has been replaced by KeePassXC<br>
 mail/sylpheed has been replaced by mail/claws-mail<br>
 multimedia/simplescreenrecorder has been added.<br>
 DSBMC has been changed to DSBMC-Qt<br>
 Many small improvements and bug fixes.</p>
</blockquote>

<hr>

<h3><a href="https://undeadly.org/cgi?action=article;sid=20191204170908" rel="nofollow">At e2k19 nobody can hear you scream</a></h3>

<ul>
<li>After 2 years it was once again time to pack skis and snowshoes, put a satellite dish onto a sledge and hike through the snowy rockies to the Elk Lakes hut.</li>
<li>I did not really have much of a plan what I wanted to work on but there were a few things I wanted to look into. One of them was rpki-client and the fact that it was so incredibly slow. Since Bob beck@ was around I started to ask him innocent X509 questions ... as if there are innocent X509 questions! Mainly about the abuse of the X509_STORE in rpki-client. Pretty soon it was clear that rpki-client did it all wrong and most of the X509 verification had to be rewritten. Instead of only storing the root certificates in the store and passing the intermediate certs as a chain to the verification function rpki-client threw everything into it. The X509_STORE is just not built for such an abuse and so it was no wonder that this was slow.</li>
<li>Lucky me I pulled benno@ with me into this dark hole of libcrypto code. He managed to build up an initial diff to pass the chains as a STACK_OF(X509) and together we managed to get it working. A big thanks goes to ingo@ who documented most of the functions we had to use. Have a look at STACK_OF(3) and sk_pop_free(3) to understand why benno@ and I slowly turned crazy.</li>
<li>Our next challenge was to only load the necessary certificate revocation list into the X509_STORE_CTX. While doing those changes it became obvious that some of the data structures needed better lookup functions. Looking up certificates was done using a linear lookup and so we replaced the internal certificate and CRL tables with RB trees for fast lookups. deraadt@ also joined the rpki-client commit fest and changed the output code to use rename(2) so that files are replaced in an atomic operation. Thanks to this rpki-client can now be safely run from cron (there is an example in the default crontab).</li>
<li>I did not plan to spend most of my week hacking on rpki-client but in the end I&#39;m happy that I did and the result is fairly impressive. Working with libcrypto code and especially X509 was less than pleasant. Our screams of agony died away in the snowy rocky mountains and made Bob deep dive into UVM with a smile since he knew that benno@ and I had it worse.</li>
<li>In case you wonder thanks to all changes at e2k19 rpki-client improved from over 20min run time to validate all VRPS to roughly 1min to do the same job. A factor 20 improvement!</li>
<li>Thanks to Theo, Bob and Howie to make this possible. To all the cooks for the great food and to Xplornet for providing us with Internet at the hut.</li>
</ul>

<hr>

<h2>Beastie Bits</h2>

<ul>
<li><a href="https://fosdem.org/2020/schedule/track/bsd/" rel="nofollow">FOSDEM 2020 BSD Devroom schedule</a></li>
<li><a href="https://www.freebsdfoundation.org/freebsd/how-to-guides/easy-minecraft-server-on-freebsd/" rel="nofollow">Easy Minecraft Server on FreeBSD Howto</a></li>
<li><a href="https://svnweb.freebsd.org/base?view=revision&revision=355304" rel="nofollow">stats(3) framework in the TCP stack</a></li>
<li><a href="https://twitter.com/EdwinKremer/status/1203071684535889921" rel="nofollow">4017 days of uptime</a></li>
<li><a href="https://github.com/emilengler/sysget" rel="nofollow">sysget - A front-end for every package manager</a></li>
<li><a href="https://www.playonbsd.com/shopping_guide/" rel="nofollow">PlayOnBSD’s Cross-BSD Shopping Guide</a></li>
</ul>

<hr>

<h2>Feedback/Questions</h2>

<ul>
<li><a href="http://dpaste.com/2FDN26X#wrap" rel="nofollow">Pat asks about the proper disk drive type for ZFS</a></li>
<li><a href="http://dpaste.com/2X8PBMC#wrap" rel="nofollow">Brad asks about a ZFS rosetta stone</a></li>
</ul>

<hr>

<ul>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv" rel="nofollow">feedback@bsdnow.tv</a></li>
</ul>

<hr>

<video controls preload="metadata" style=" width:426px;  height:240px;">
    <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0330.mp4" type="video/mp4">
    Your browser does not support the HTML5 video tag.
</video><p>Special Guest: Mariusz Zaborski.</p>]]>
  </itunes:summary>
</item>
<item>
  <title>298: BSD On The Road</title>
  <link>https://www.bsdnow.tv/298</link>
  <guid isPermaLink="false">85a43874-a080-4a57-9fb0-2a0210e9718e</guid>
  <pubDate>Wed, 15 May 2019 23:00:00 -0400</pubDate>
  <author>JT Pennington</author>
  <enclosure url="https://aphid.fireside.fm/d/1437767933/c91b88f1-e824-4815-bcb8-5227818d6010/85a43874-a080-4a57-9fb0-2a0210e9718e.mp3" length="31937689" type="audio/mp3"/>
  <itunes:episodeType>full</itunes:episodeType>
  <itunes:author>JT Pennington</itunes:author>
  <itunes:subtitle>36 year old UFS bug fixed, a BSD for the road, automatic upgrades with OpenBSD, DTrace ext2fs support in FreeBSD, Dedicated SSH tunnel user, upgrading VMM VMs to OpenBSD 6.5, and more.</itunes:subtitle>
  <itunes:duration>52:22</itunes:duration>
  <itunes:explicit>no</itunes:explicit>
  <itunes:image href="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/c/c91b88f1-e824-4815-bcb8-5227818d6010/cover.jpg?v=4"/>
  <description>36 year old UFS bug fixed, a BSD for the road, automatic upgrades with OpenBSD, DTrace ext2fs support in FreeBSD, Dedicated SSH tunnel user, upgrading VMM VMs to OpenBSD 6.5, and more.
&lt;h2&gt;Headlines&lt;/h2&gt;

&lt;h3&gt;&lt;a href="https://svnweb.freebsd.org/base?view=revision&amp;amp;revision=347066"&gt;36+ year old bug in FFS/UFS discovered and patched &lt;/a&gt;&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;This update eliminates a kernel stack disclosure bug in UFS/FFS directory entries that is caused by uninitialized directory entry padding written to the disk.&lt;/p&gt;
  
  &lt;ul&gt;
  &lt;li&gt;When the directory entry is written to disk, it is written as a full 32bit entry, and the unused bytes were not initialized, so could possibly contain sensitive data from the kernel stack
  It can be viewed by any user with read access to that directory. Up to 3 bytes of kernel stack are disclosed per file entry, depending on the the amount of padding the kernel needs to pad out the entry to a 32 bit boundary. The offset in the kernel stack that is disclosed is a function of the filename size. Furthermore, if the user can create files in a directory, this 3 byte window can be expanded 3 bytes at a time to a 254 byte window with 75% of the data in that window exposed. The additional exposure is done by removing the entry, creating a new entry with a 4-byte longer name, extracting 3 more bytes by reading the directory, and repeating until a 252 byte name is created.
  This exploit works in part because the area of the kernel stack that is being disclosed is in an area that typically doesn't change that often (perhaps a few times a second on a lightly loaded system), and these file creates and unlinks themselves don't overwrite the area of kernel stack being disclosed.
  It appears that this bug originated with the creation of the Fast File System in 4.1b-BSD (Circa 1982, more than 36 years ago!), and is likely present in every Unix or Unix-like system that uses UFS/FFS. Amazingly, nobody noticed until now.
  This update also adds the -z flag to fsck_ffs to have it scrub the leaked information in the name padding of existing directories. It only needs to be run once on each UFS/FFS filesystem after a patched kernel is installed and running.
  Submitted by: David G. Lawrence &lt;a href="mailto:dg@dglawrence.com"&gt;dg@dglawrence.com&lt;/a&gt;
&lt;/li&gt;
  
  &lt;li&gt;So a patched kernel will no longer leak this data, and running the &lt;code&gt;fsck_ffs -z&lt;/code&gt; command will erase any leaked data that may exist on your system&lt;/li&gt;
  
  &lt;li&gt;
&lt;a href="https://marc.info/?l=openbsd-cvs&amp;amp;m=155699268122858&amp;amp;w=2"&gt;OpenBSD commit with additional detail on mitigations&lt;/a&gt;
  The impact on OpenBSD is very limited:
  1 - such stack bytes can be found in raw-device reads, from group operator. If you can read the raw disks you can undertake other more powerful actions.
  2 - read(2) upon directory fd was disabled July 1997 because I didn't like how grep * would display garbage and mess up the tty, and applying vis(3) for just directory reads seemed silly.  read(2) was changed to return 0 (EOF).  Sep 2016 this was further changed to EISDIR, so you still cannot see the bad bytes.
  3 - In 2013 when guenther adapted the getdents(2) directory-reading system call to 64-bit ino_t, the userland data format changed to 8-byte-alignment, making it incompatible with the 4-byte-alignment UFS on-disk format.  As a result of code refactoring the bad bytes were not copied to userland. Bad bytes will remain in old directories on old filesystems, but nothing makes those bytes user visible.
  There will be no errata or syspatch issued.  I urge other systems which do expose the information to userland to issue errata quickly, since this is a 254 byte infoleak of the stack which is great for ROP-chain building to attack some other bug. Especially if the kernel has no layout/link-order randomization ...&lt;/li&gt;
  &lt;/ul&gt;
  
  &lt;hr&gt;
&lt;/blockquote&gt;

&lt;h3&gt;&lt;a href="https://itsfoss.com/nomadbsd/"&gt;NomadBSD, a BSD for the Road&lt;/a&gt;&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;As regular It’s FOSS readers should know, I like diving into the world of BSDs. Recently, I came across an interesting BSD that is designed to live on a thumb drive. Let’s take a look at NomadBSD.
  NomadBSD is different than most available BSDs. NomadBSD is a live system based on FreeBSD. It comes with automatic hardware detection and an initial config tool. NomadBSD is designed to “be used as a desktop system that works out of the box, but can also be used for data recovery, for educational purposes, or to test FreeBSD’s hardware compatibility.”
  This German BSD comes with an OpenBox-based desktop with the Plank application dock. NomadBSD makes use of the DSB project. DSB stands for “Desktop Suite (for) (Free)BSD” and consists of a collection of programs designed to create a simple and working environment without needing a ton of dependencies to use one tool. DSB is created by Marcel Kaiser one of the lead devs of NomadBSD.
  Just like the original BSD projects, you can contact the NomadBSD developers via a mailing list.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Version 1.2 Released&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;NomadBSD recently released version 1.2 on April 21, 2019. This means that NomadBSD is now based on FreeBSD 12.0-p3. TRIM is now enabled by default. One of the biggest changes is that the initial command-line setup was replaced with a Qt graphical interface. They also added a Qt5 tool to install NomadBSD to your hard drive. A number of fixes were included to improve graphics support. They also added support for creating 32-bit images.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Thoughts on NomadBSD&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;I first discovered NomadBSD back in January when they released 1.2-RC1. At the time, I had been unable to install Project Trident on my laptop and was very frustrated with BSDs. I downloaded NomadBSD and tried it out. I initially ran into issues reaching the desktop, but RC2 fixed that issue. However, I was unable to get on the internet, even though I had an Ethernet cable plugged in. Luckily, I found the wifi manager in the menu and was able to connect to my wifi.
  Overall, my experience with NomadBSD was pleasant. Once I figured out a few things, I was good to go. I hope that NomadBSD is the first of a new generation of BSDs that focus on mobility and ease of use. BSD has conquered the server world, it’s about time they figured out how to be more user-friendly.&lt;/p&gt;
  
  &lt;hr&gt;
&lt;/blockquote&gt;

&lt;h2&gt;News Roundup&lt;/h2&gt;

&lt;h3&gt;[OpenBSD automatic&lt;/h3&gt;

&lt;p&gt;upgrade](https://www.tumfatig.net/20190426/openbsd-automatic-upgrade/)&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;OpenBSD 6.5 advertises for an installer improvement: rdsetroot(8) (a build-time tool) is now available for general use. Used in combination with autoinstall.8, it is now really easy to do automatic upgrades of your OpenBSD instances.
  I first manually upgraded my OpenBSD sandbox to 6.5. Once that was done, I could use the stock rdsetroot(8) tool. The plan is quite simple: write an unattended installation response file, insert it to a bsd.rd 6.5 installation image and reboot my other OpenBSD instances using that image.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Extra notes&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;There must be a way to run onetime commands (in the manner of fw_update) to automatically run sysmerge and packages upgrades. As for now, I’d rather do it manually.
  This worked like a charm on two Synology KVM instances using a single sd0 disk, on my Thinkpad X260 using Encrypted root with Keydisk and on a Vultr instance using Encrypted root with passphrase. And BTW, the upgrade on the X260 used the (iwn0) wireless connection.
  I just read that florian@ has released the sysupgrade(8) utility which should be released with OpenBSD 6.6. That will make upgrades even easier! Until then, happy upgrading.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr&gt;
&lt;h3&gt;&lt;a href="https://reviews.freebsd.org/D19848"&gt;FreeBSD Dtrace ext2fs Support&lt;/a&gt;&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Which logs were replaced by dtrace-probes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Misc printf's under DEBUG macro in the blocks allocation path.&lt;/li&gt;

&lt;li&gt;Different on-disk structures validation errors, now the filesystem will silently return EIO's.&lt;/li&gt;

&lt;li&gt;Misc checksum errors, same as above.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;

&lt;li&gt;&lt;p&gt;The only debug macro, which was leaved is EXT2FS&lt;em&gt;PRINT&lt;/em&gt;EXTENTS.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;It is impossible to replace it by dtrace-probes, because the additional logic is required to walk thru file extents.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;The user still be able to see mount errors in the dmesg in case of:&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Filesystem features incompatibility.&lt;/li&gt;

&lt;p&gt;&lt;/p&gt;
&lt;li&gt;Superblock checksum error.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h3&gt;&lt;a href="https://dataswamp.org/~solene/2019-04-17-ssh-tunneling.html"&gt;Create a dedicated user for ssh tunneling only&lt;/a&gt;&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;I use ssh tunneling A LOT, for everything. Yesterday, I removed the public access of my IMAP server, it’s now only available through ssh tunneling to access the daemon listening on localhost. I have plenty of daemons listening only on localhost that I can only reach through a ssh tunnel. If you don’t want to bother with ssh and redirect ports you need, you can also make a VPN (using ssh, openvpn, iked, tinc…) between your system and your server. I tend to avoid setting up VPN for the current use case as it requires more work and more maintenance than running ssh server and a ssh client.
  The last change, for my IMAP server, added an issue. I want my phone to access the IMAP server but I don’t want to connect to my main account from my phone for security reasons. So, I need a dedicated user that will only be allowed to forward ports.
  This is done very easily on OpenBSD.
  The steps are: 1. generate ssh keys for the new user 2. add an user with no password 3. allow public key for port forwarding
  Obviously, you must allow users (or only this one) to make port forwarding in your sshd_config.&lt;/p&gt;
  
  &lt;hr&gt;
&lt;/blockquote&gt;

&lt;h3&gt;&lt;a href="https://openbsd.amsterdam/upgrade.html"&gt;That was easy. Some info on upgrading VMM VMs to 6.5&lt;/a&gt;&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;We're running dedicated vmm(4)/vmd(8) servers to host opinionated VMs.
  OpenBSD 6.5 is released! There are two ways you can upgrade your VM.
  Either do a manual upgrade or leverage autoinstall(8). You can take care of it via the console with vmctl(8).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Upgrade yourself&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;To get connected to the console you need to have access to the host your VM is running on. The same username and public SSH key, as provided for the VM, are used to create a local user on the host.
  When this is done you can use vmctl(8) to manage your VM. The options you have are:&lt;/p&gt;
&lt;/blockquote&gt;

&lt;pre&gt;&lt;code class="$ vmctl console id``` language-$ vmctl console id```"&gt;```$ vmctl start id [-c]```
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;$ vmctl stop id [-fw]```&lt;/p&gt;

&lt;pre&gt;&lt;code class="-f Forcefully stop the VM without attempting a graceful shutdown.``` language--f Forcefully stop the VM without attempting a graceful shutdown.```"&gt;```-w Wait until the VM has been terminated.```
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;-c Automatically connect to the VM console.```&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;See the Article for the rest of the guide&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;
&lt;h2&gt;Beastie Bits&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://inks.tedunangst.com/l/3791"&gt;powerpc64 architecture support in FreeBSD ports&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://twitter.com/ribalinux/status/1117856218251517956"&gt;GhostBSD 19.04 overview&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://twitter.com/lattera/status/1119018409575026688"&gt;HardenedBSD will have two user selectable ASLR implementations&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=S_aTzXVRRlM&amp;amp;feature=youtu.be"&gt;NYCBUG 2016 Talk Shell-Fu Uploaded&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="http://blog.zarfhome.com/2019/04/what-is-zil-anyway.html"&gt;What is ZIL anyway?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;
&lt;h2&gt;Feedback/Questions&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Quentin - &lt;a href="http://dpaste.com/0K9PQW9#wrap"&gt;Organize an Ada/BSD interview&lt;/a&gt;
&lt;/li&gt;

&lt;li&gt;DJ - &lt;a href="http://dpaste.com/3KTQ45G#wrap"&gt;Update&lt;/a&gt;
&lt;/li&gt;

&lt;li&gt;Patrick - &lt;a href="http://dpaste.com/07V6ZJN"&gt;Bhyve frontends&lt;/a&gt;
&lt;/li&gt;

&lt;li&gt;A small programming note: After BSDNow episode 300, the podcast will switch to audio-only, using a new higher quality recording and production system. The live stream will likely still include video.&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;
&lt;ul&gt;
&lt;li&gt;Send questions, comments, show ideas/topics, or stories you want mentioned on the show to &lt;a href="mailto:feedback@bsdnow.tv"&gt;feedback@bsdnow.tv&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

    
    Your browser does not support the HTML5 video tag.
 
</description>
  <itunes:keywords>freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, ssh, nomadbsd, dtrace, ext2, unleashed, vmm</itunes:keywords>
  <content:encoded>
    <![CDATA[<p>36 year old UFS bug fixed, a BSD for the road, automatic upgrades with OpenBSD, DTrace ext2fs support in FreeBSD, Dedicated SSH tunnel user, upgrading VMM VMs to OpenBSD 6.5, and more.</p>

<h2 id="headlines">Headlines</h2>

<h3 id="36yearoldbuginffsufsdiscoveredandpatchedhttpssvnwebfreebsdorgbaseviewrevisionrevision347066"><a href="https://svnweb.freebsd.org/base?view=revision&amp;revision=347066">36+ year old bug in FFS/UFS discovered and patched </a></h3>

<blockquote>
  <p>This update eliminates a kernel stack disclosure bug in UFS/FFS directory entries that is caused by uninitialized directory entry padding written to the disk.</p>
  
  <ul>
  <li>When the directory entry is written to disk, it is written as a full 32bit entry, and the unused bytes were not initialized, so could possibly contain sensitive data from the kernel stack
  It can be viewed by any user with read access to that directory. Up to 3 bytes of kernel stack are disclosed per file entry, depending on the the amount of padding the kernel needs to pad out the entry to a 32 bit boundary. The offset in the kernel stack that is disclosed is a function of the filename size. Furthermore, if the user can create files in a directory, this 3 byte window can be expanded 3 bytes at a time to a 254 byte window with 75% of the data in that window exposed. The additional exposure is done by removing the entry, creating a new entry with a 4-byte longer name, extracting 3 more bytes by reading the directory, and repeating until a 252 byte name is created.
  This exploit works in part because the area of the kernel stack that is being disclosed is in an area that typically doesn't change that often (perhaps a few times a second on a lightly loaded system), and these file creates and unlinks themselves don't overwrite the area of kernel stack being disclosed.
  It appears that this bug originated with the creation of the Fast File System in 4.1b-BSD (Circa 1982, more than 36 years ago!), and is likely present in every Unix or Unix-like system that uses UFS/FFS. Amazingly, nobody noticed until now.
  This update also adds the -z flag to fsck_ffs to have it scrub the leaked information in the name padding of existing directories. It only needs to be run once on each UFS/FFS filesystem after a patched kernel is installed and running.
  Submitted by: David G. Lawrence <a href="&#109;a&#105;&#108;&#116;&#111;:&#x64;&#x67;&#64;&#100;&#103;&#x6c;&#97;&#x77;&#x72;&#101;n&#x63;&#101;&#x2e;&#x63;&#x6f;&#109;">&#x64;&#x67;&#64;&#100;&#103;&#x6c;&#97;&#x77;&#x72;&#101;n&#x63;&#101;&#x2e;&#x63;&#x6f;&#109;</a></li>
  
  <li>So a patched kernel will no longer leak this data, and running the <code>fsck_ffs -z</code> command will erase any leaked data that may exist on your system</li>
  
  <li><a href="https://marc.info/?l=openbsd-cvs&amp;m=155699268122858&amp;w=2">OpenBSD commit with additional detail on mitigations</a>
  The impact on OpenBSD is very limited:
  1 - such stack bytes can be found in raw-device reads, from group operator. If you can read the raw disks you can undertake other more powerful actions.
  2 - read(2) upon directory fd was disabled July 1997 because I didn't like how grep * would display garbage and mess up the tty, and applying vis(3) for just directory reads seemed silly.  read(2) was changed to return 0 (EOF).  Sep 2016 this was further changed to EISDIR, so you still cannot see the bad bytes.
  3 - In 2013 when guenther adapted the getdents(2) directory-reading system call to 64-bit ino_t, the userland data format changed to 8-byte-alignment, making it incompatible with the 4-byte-alignment UFS on-disk format.  As a result of code refactoring the bad bytes were not copied to userland. Bad bytes will remain in old directories on old filesystems, but nothing makes those bytes user visible.
  There will be no errata or syspatch issued.  I urge other systems which do expose the information to userland to issue errata quickly, since this is a 254 byte infoleak of the stack which is great for ROP-chain building to attack some other bug. Especially if the kernel has no layout/link-order randomization ...</li>
  </ul>
  
  <hr />
</blockquote>

<h3 id="nomadbsdabsdfortheroadhttpsitsfosscomnomadbsd"><a href="https://itsfoss.com/nomadbsd/">NomadBSD, a BSD for the Road</a></h3>

<blockquote>
  <p>As regular It’s FOSS readers should know, I like diving into the world of BSDs. Recently, I came across an interesting BSD that is designed to live on a thumb drive. Let’s take a look at NomadBSD.
  NomadBSD is different than most available BSDs. NomadBSD is a live system based on FreeBSD. It comes with automatic hardware detection and an initial config tool. NomadBSD is designed to “be used as a desktop system that works out of the box, but can also be used for data recovery, for educational purposes, or to test FreeBSD’s hardware compatibility.”
  This German BSD comes with an OpenBox-based desktop with the Plank application dock. NomadBSD makes use of the DSB project. DSB stands for “Desktop Suite (for) (Free)BSD” and consists of a collection of programs designed to create a simple and working environment without needing a ton of dependencies to use one tool. DSB is created by Marcel Kaiser one of the lead devs of NomadBSD.
  Just like the original BSD projects, you can contact the NomadBSD developers via a mailing list.</p>
</blockquote>

<ul>
<li>Version 1.2 Released</li>
</ul>

<blockquote>
  <p>NomadBSD recently released version 1.2 on April 21, 2019. This means that NomadBSD is now based on FreeBSD 12.0-p3. TRIM is now enabled by default. One of the biggest changes is that the initial command-line setup was replaced with a Qt graphical interface. They also added a Qt5 tool to install NomadBSD to your hard drive. A number of fixes were included to improve graphics support. They also added support for creating 32-bit images.</p>
</blockquote>

<ul>
<li>Thoughts on NomadBSD</li>
</ul>

<blockquote>
  <p>I first discovered NomadBSD back in January when they released 1.2-RC1. At the time, I had been unable to install Project Trident on my laptop and was very frustrated with BSDs. I downloaded NomadBSD and tried it out. I initially ran into issues reaching the desktop, but RC2 fixed that issue. However, I was unable to get on the internet, even though I had an Ethernet cable plugged in. Luckily, I found the wifi manager in the menu and was able to connect to my wifi.
  Overall, my experience with NomadBSD was pleasant. Once I figured out a few things, I was good to go. I hope that NomadBSD is the first of a new generation of BSDs that focus on mobility and ease of use. BSD has conquered the server world, it’s about time they figured out how to be more user-friendly.</p>
  
  <hr />
</blockquote>

<h2 id="newsroundup">News Roundup</h2>

<h3 id="openbsdautomatic">[OpenBSD automatic</h3>

<p>upgrade](https://www.tumfatig.net/20190426/openbsd-automatic-upgrade/)</p>

<blockquote>
  <p>OpenBSD 6.5 advertises for an installer improvement: rdsetroot(8) (a build-time tool) is now available for general use. Used in combination with autoinstall.8, it is now really easy to do automatic upgrades of your OpenBSD instances.
  I first manually upgraded my OpenBSD sandbox to 6.5. Once that was done, I could use the stock rdsetroot(8) tool. The plan is quite simple: write an unattended installation response file, insert it to a bsd.rd 6.5 installation image and reboot my other OpenBSD instances using that image.</p>
</blockquote>

<ul>
<li>Extra notes</li>
</ul>

<blockquote>
  <p>There must be a way to run onetime commands (in the manner of fw_update) to automatically run sysmerge and packages upgrades. As for now, I’d rather do it manually.
  This worked like a charm on two Synology KVM instances using a single sd0 disk, on my Thinkpad X260 using Encrypted root with Keydisk and on a Vultr instance using Encrypted root with passphrase. And BTW, the upgrade on the X260 used the (iwn0) wireless connection.
  I just read that florian@ has released the sysupgrade(8) utility which should be released with OpenBSD 6.6. That will make upgrades even easier! Until then, happy upgrading.</p>
</blockquote>

<p><hr /></p>

<h3 id="freebsddtraceext2fssupporthttpsreviewsfreebsdorgd19848"><a href="https://reviews.freebsd.org/D19848">FreeBSD Dtrace ext2fs Support</a></h3>

<ul>
<li><p>Which logs were replaced by dtrace-probes:</p>

<ul>
<li>Misc printf's under DEBUG macro in the blocks allocation path.</li>

<li>Different on-disk structures validation errors, now the filesystem will silently return EIO's.</li>

<li>Misc checksum errors, same as above.</li></ul></li>

<li><p>The only debug macro, which was leaved is EXT2FS<em>PRINT</em>EXTENTS.</p></li>

<li><p>It is impossible to replace it by dtrace-probes, because the additional logic is required to walk thru file extents.</p></li>

<li><p>The user still be able to see mount errors in the dmesg in case of:</p>

<p><ul>
<li>Filesystem features incompatibility.</li></p>

<p><li>Superblock checksum error.</li></ul>

<p></p></li>
</ul></p>

<hr />

<h3 id="createadedicateduserforsshtunnelingonlyhttpsdataswamporgtsolene20190417sshtunnelinghtml"><a href="https://dataswamp.org/~solene/2019-04-17-ssh-tunneling.html">Create a dedicated user for ssh tunneling only</a></h3>

<blockquote>
  <p>I use ssh tunneling A LOT, for everything. Yesterday, I removed the public access of my IMAP server, it’s now only available through ssh tunneling to access the daemon listening on localhost. I have plenty of daemons listening only on localhost that I can only reach through a ssh tunnel. If you don’t want to bother with ssh and redirect ports you need, you can also make a VPN (using ssh, openvpn, iked, tinc…) between your system and your server. I tend to avoid setting up VPN for the current use case as it requires more work and more maintenance than running ssh server and a ssh client.
  The last change, for my IMAP server, added an issue. I want my phone to access the IMAP server but I don’t want to connect to my main account from my phone for security reasons. So, I need a dedicated user that will only be allowed to forward ports.
  This is done very easily on OpenBSD.
  The steps are: 1. generate ssh keys for the new user 2. add an user with no password 3. allow public key for port forwarding
  Obviously, you must allow users (or only this one) to make port forwarding in your sshd_config.</p>
  
  <hr />
</blockquote>

<h3 id="thatwaseasysomeinfoonupgradingvmmvmsto65httpsopenbsdamsterdamupgradehtml"><a href="https://openbsd.amsterdam/upgrade.html">That was easy. Some info on upgrading VMM VMs to 6.5</a></h3>

<blockquote>
  <p>We're running dedicated vmm(4)/vmd(8) servers to host opinionated VMs.
  OpenBSD 6.5 is released! There are two ways you can upgrade your VM.
  Either do a manual upgrade or leverage autoinstall(8). You can take care of it via the console with vmctl(8).</p>
</blockquote>

<ul>
<li>Upgrade yourself</li>
</ul>

<blockquote>
  <p>To get connected to the console you need to have access to the host your VM is running on. The same username and public SSH key, as provided for the VM, are used to create a local user on the host.
  When this is done you can use vmctl(8) to manage your VM. The options you have are:</p>
</blockquote>

<pre><code class="$ vmctl console id``` language-$ vmctl console id```">```$ vmctl start id [-c]```
</code></pre>

<p>$ vmctl stop id [-fw]```</p>

<pre><code class="-f Forcefully stop the VM without attempting a graceful shutdown.``` language--f Forcefully stop the VM without attempting a graceful shutdown.```">```-w Wait until the VM has been terminated.```
</code></pre>

<p>-c Automatically connect to the VM console.```</p>

<ul>
<li>See the Article for the rest of the guide</li>
</ul>

<p><hr /></p>

<h2 id="beastiebits">Beastie Bits</h2>

<ul>
<li><a href="https://inks.tedunangst.com/l/3791">powerpc64 architecture support in FreeBSD ports</a></li>

<li><a href="https://twitter.com/ribalinux/status/1117856218251517956">GhostBSD 19.04 overview</a></li>

<li><a href="https://twitter.com/lattera/status/1119018409575026688">HardenedBSD will have two user selectable ASLR implementations</a></li>

<li><a href="https://www.youtube.com/watch?v=S_aTzXVRRlM&amp;feature=youtu.be">NYCBUG 2016 Talk Shell-Fu Uploaded</a></li>

<li><a href="http://blog.zarfhome.com/2019/04/what-is-zil-anyway.html">What is ZIL anyway?</a></li>
</ul>

<p><hr /></p>

<h2 id="feedbackquestions">Feedback/Questions</h2>

<ul>
<li>Quentin - <a href="http://dpaste.com/0K9PQW9#wrap">Organize an Ada/BSD interview</a></li>

<li>DJ - <a href="http://dpaste.com/3KTQ45G#wrap">Update</a></li>

<li>Patrick - <a href="http://dpaste.com/07V6ZJN">Bhyve frontends</a></li>

<li>A small programming note: After BSDNow episode 300, the podcast will switch to audio-only, using a new higher quality recording and production system. The live stream will likely still include video.</li>
</ul>

<p><hr /></p>

<ul>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li>
</ul>

<p><hr /></p>

<video controls preload="metadata" style=" width:426px;  height:240px;">
    <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0298.mp4" type="video/mp4">
    Your browser does not support the HTML5 video tag.
</video>]]>
  </content:encoded>
  <itunes:summary>
    <![CDATA[<p>36 year old UFS bug fixed, a BSD for the road, automatic upgrades with OpenBSD, DTrace ext2fs support in FreeBSD, Dedicated SSH tunnel user, upgrading VMM VMs to OpenBSD 6.5, and more.</p>

<h2 id="headlines">Headlines</h2>

<h3 id="36yearoldbuginffsufsdiscoveredandpatchedhttpssvnwebfreebsdorgbaseviewrevisionrevision347066"><a href="https://svnweb.freebsd.org/base?view=revision&amp;revision=347066">36+ year old bug in FFS/UFS discovered and patched </a></h3>

<blockquote>
  <p>This update eliminates a kernel stack disclosure bug in UFS/FFS directory entries that is caused by uninitialized directory entry padding written to the disk.</p>
  
  <ul>
  <li>When the directory entry is written to disk, it is written as a full 32bit entry, and the unused bytes were not initialized, so could possibly contain sensitive data from the kernel stack
  It can be viewed by any user with read access to that directory. Up to 3 bytes of kernel stack are disclosed per file entry, depending on the the amount of padding the kernel needs to pad out the entry to a 32 bit boundary. The offset in the kernel stack that is disclosed is a function of the filename size. Furthermore, if the user can create files in a directory, this 3 byte window can be expanded 3 bytes at a time to a 254 byte window with 75% of the data in that window exposed. The additional exposure is done by removing the entry, creating a new entry with a 4-byte longer name, extracting 3 more bytes by reading the directory, and repeating until a 252 byte name is created.
  This exploit works in part because the area of the kernel stack that is being disclosed is in an area that typically doesn't change that often (perhaps a few times a second on a lightly loaded system), and these file creates and unlinks themselves don't overwrite the area of kernel stack being disclosed.
  It appears that this bug originated with the creation of the Fast File System in 4.1b-BSD (Circa 1982, more than 36 years ago!), and is likely present in every Unix or Unix-like system that uses UFS/FFS. Amazingly, nobody noticed until now.
  This update also adds the -z flag to fsck_ffs to have it scrub the leaked information in the name padding of existing directories. It only needs to be run once on each UFS/FFS filesystem after a patched kernel is installed and running.
  Submitted by: David G. Lawrence <a href="&#109;a&#105;&#108;&#116;&#111;:&#x64;&#x67;&#64;&#100;&#103;&#x6c;&#97;&#x77;&#x72;&#101;n&#x63;&#101;&#x2e;&#x63;&#x6f;&#109;">&#x64;&#x67;&#64;&#100;&#103;&#x6c;&#97;&#x77;&#x72;&#101;n&#x63;&#101;&#x2e;&#x63;&#x6f;&#109;</a></li>
  
  <li>So a patched kernel will no longer leak this data, and running the <code>fsck_ffs -z</code> command will erase any leaked data that may exist on your system</li>
  
  <li><a href="https://marc.info/?l=openbsd-cvs&amp;m=155699268122858&amp;w=2">OpenBSD commit with additional detail on mitigations</a>
  The impact on OpenBSD is very limited:
  1 - such stack bytes can be found in raw-device reads, from group operator. If you can read the raw disks you can undertake other more powerful actions.
  2 - read(2) upon directory fd was disabled July 1997 because I didn't like how grep * would display garbage and mess up the tty, and applying vis(3) for just directory reads seemed silly.  read(2) was changed to return 0 (EOF).  Sep 2016 this was further changed to EISDIR, so you still cannot see the bad bytes.
  3 - In 2013 when guenther adapted the getdents(2) directory-reading system call to 64-bit ino_t, the userland data format changed to 8-byte-alignment, making it incompatible with the 4-byte-alignment UFS on-disk format.  As a result of code refactoring the bad bytes were not copied to userland. Bad bytes will remain in old directories on old filesystems, but nothing makes those bytes user visible.
  There will be no errata or syspatch issued.  I urge other systems which do expose the information to userland to issue errata quickly, since this is a 254 byte infoleak of the stack which is great for ROP-chain building to attack some other bug. Especially if the kernel has no layout/link-order randomization ...</li>
  </ul>
  
  <hr />
</blockquote>

<h3 id="nomadbsdabsdfortheroadhttpsitsfosscomnomadbsd"><a href="https://itsfoss.com/nomadbsd/">NomadBSD, a BSD for the Road</a></h3>

<blockquote>
  <p>As regular It’s FOSS readers should know, I like diving into the world of BSDs. Recently, I came across an interesting BSD that is designed to live on a thumb drive. Let’s take a look at NomadBSD.
  NomadBSD is different than most available BSDs. NomadBSD is a live system based on FreeBSD. It comes with automatic hardware detection and an initial config tool. NomadBSD is designed to “be used as a desktop system that works out of the box, but can also be used for data recovery, for educational purposes, or to test FreeBSD’s hardware compatibility.”
  This German BSD comes with an OpenBox-based desktop with the Plank application dock. NomadBSD makes use of the DSB project. DSB stands for “Desktop Suite (for) (Free)BSD” and consists of a collection of programs designed to create a simple and working environment without needing a ton of dependencies to use one tool. DSB is created by Marcel Kaiser one of the lead devs of NomadBSD.
  Just like the original BSD projects, you can contact the NomadBSD developers via a mailing list.</p>
</blockquote>

<ul>
<li>Version 1.2 Released</li>
</ul>

<blockquote>
  <p>NomadBSD recently released version 1.2 on April 21, 2019. This means that NomadBSD is now based on FreeBSD 12.0-p3. TRIM is now enabled by default. One of the biggest changes is that the initial command-line setup was replaced with a Qt graphical interface. They also added a Qt5 tool to install NomadBSD to your hard drive. A number of fixes were included to improve graphics support. They also added support for creating 32-bit images.</p>
</blockquote>

<ul>
<li>Thoughts on NomadBSD</li>
</ul>

<blockquote>
  <p>I first discovered NomadBSD back in January when they released 1.2-RC1. At the time, I had been unable to install Project Trident on my laptop and was very frustrated with BSDs. I downloaded NomadBSD and tried it out. I initially ran into issues reaching the desktop, but RC2 fixed that issue. However, I was unable to get on the internet, even though I had an Ethernet cable plugged in. Luckily, I found the wifi manager in the menu and was able to connect to my wifi.
  Overall, my experience with NomadBSD was pleasant. Once I figured out a few things, I was good to go. I hope that NomadBSD is the first of a new generation of BSDs that focus on mobility and ease of use. BSD has conquered the server world, it’s about time they figured out how to be more user-friendly.</p>
  
  <hr />
</blockquote>

<h2 id="newsroundup">News Roundup</h2>

<h3 id="openbsdautomatic">[OpenBSD automatic</h3>

<p>upgrade](https://www.tumfatig.net/20190426/openbsd-automatic-upgrade/)</p>

<blockquote>
  <p>OpenBSD 6.5 advertises for an installer improvement: rdsetroot(8) (a build-time tool) is now available for general use. Used in combination with autoinstall.8, it is now really easy to do automatic upgrades of your OpenBSD instances.
  I first manually upgraded my OpenBSD sandbox to 6.5. Once that was done, I could use the stock rdsetroot(8) tool. The plan is quite simple: write an unattended installation response file, insert it to a bsd.rd 6.5 installation image and reboot my other OpenBSD instances using that image.</p>
</blockquote>

<ul>
<li>Extra notes</li>
</ul>

<blockquote>
  <p>There must be a way to run onetime commands (in the manner of fw_update) to automatically run sysmerge and packages upgrades. As for now, I’d rather do it manually.
  This worked like a charm on two Synology KVM instances using a single sd0 disk, on my Thinkpad X260 using Encrypted root with Keydisk and on a Vultr instance using Encrypted root with passphrase. And BTW, the upgrade on the X260 used the (iwn0) wireless connection.
  I just read that florian@ has released the sysupgrade(8) utility which should be released with OpenBSD 6.6. That will make upgrades even easier! Until then, happy upgrading.</p>
</blockquote>

<p><hr /></p>

<h3 id="freebsddtraceext2fssupporthttpsreviewsfreebsdorgd19848"><a href="https://reviews.freebsd.org/D19848">FreeBSD Dtrace ext2fs Support</a></h3>

<ul>
<li><p>Which logs were replaced by dtrace-probes:</p>

<ul>
<li>Misc printf's under DEBUG macro in the blocks allocation path.</li>

<li>Different on-disk structures validation errors, now the filesystem will silently return EIO's.</li>

<li>Misc checksum errors, same as above.</li></ul></li>

<li><p>The only debug macro, which was leaved is EXT2FS<em>PRINT</em>EXTENTS.</p></li>

<li><p>It is impossible to replace it by dtrace-probes, because the additional logic is required to walk thru file extents.</p></li>

<li><p>The user still be able to see mount errors in the dmesg in case of:</p>

<p><ul>
<li>Filesystem features incompatibility.</li></p>

<p><li>Superblock checksum error.</li></ul>

<p></p></li>
</ul></p>

<hr />

<h3 id="createadedicateduserforsshtunnelingonlyhttpsdataswamporgtsolene20190417sshtunnelinghtml"><a href="https://dataswamp.org/~solene/2019-04-17-ssh-tunneling.html">Create a dedicated user for ssh tunneling only</a></h3>

<blockquote>
  <p>I use ssh tunneling A LOT, for everything. Yesterday, I removed the public access of my IMAP server, it’s now only available through ssh tunneling to access the daemon listening on localhost. I have plenty of daemons listening only on localhost that I can only reach through a ssh tunnel. If you don’t want to bother with ssh and redirect ports you need, you can also make a VPN (using ssh, openvpn, iked, tinc…) between your system and your server. I tend to avoid setting up VPN for the current use case as it requires more work and more maintenance than running ssh server and a ssh client.
  The last change, for my IMAP server, added an issue. I want my phone to access the IMAP server but I don’t want to connect to my main account from my phone for security reasons. So, I need a dedicated user that will only be allowed to forward ports.
  This is done very easily on OpenBSD.
  The steps are: 1. generate ssh keys for the new user 2. add an user with no password 3. allow public key for port forwarding
  Obviously, you must allow users (or only this one) to make port forwarding in your sshd_config.</p>
  
  <hr />
</blockquote>

<h3 id="thatwaseasysomeinfoonupgradingvmmvmsto65httpsopenbsdamsterdamupgradehtml"><a href="https://openbsd.amsterdam/upgrade.html">That was easy. Some info on upgrading VMM VMs to 6.5</a></h3>

<blockquote>
  <p>We're running dedicated vmm(4)/vmd(8) servers to host opinionated VMs.
  OpenBSD 6.5 is released! There are two ways you can upgrade your VM.
  Either do a manual upgrade or leverage autoinstall(8). You can take care of it via the console with vmctl(8).</p>
</blockquote>

<ul>
<li>Upgrade yourself</li>
</ul>

<blockquote>
  <p>To get connected to the console you need to have access to the host your VM is running on. The same username and public SSH key, as provided for the VM, are used to create a local user on the host.
  When this is done you can use vmctl(8) to manage your VM. The options you have are:</p>
</blockquote>

<pre><code class="$ vmctl console id``` language-$ vmctl console id```">```$ vmctl start id [-c]```
</code></pre>

<p>$ vmctl stop id [-fw]```</p>

<pre><code class="-f Forcefully stop the VM without attempting a graceful shutdown.``` language--f Forcefully stop the VM without attempting a graceful shutdown.```">```-w Wait until the VM has been terminated.```
</code></pre>

<p>-c Automatically connect to the VM console.```</p>

<ul>
<li>See the Article for the rest of the guide</li>
</ul>

<p><hr /></p>

<h2 id="beastiebits">Beastie Bits</h2>

<ul>
<li><a href="https://inks.tedunangst.com/l/3791">powerpc64 architecture support in FreeBSD ports</a></li>

<li><a href="https://twitter.com/ribalinux/status/1117856218251517956">GhostBSD 19.04 overview</a></li>

<li><a href="https://twitter.com/lattera/status/1119018409575026688">HardenedBSD will have two user selectable ASLR implementations</a></li>

<li><a href="https://www.youtube.com/watch?v=S_aTzXVRRlM&amp;feature=youtu.be">NYCBUG 2016 Talk Shell-Fu Uploaded</a></li>

<li><a href="http://blog.zarfhome.com/2019/04/what-is-zil-anyway.html">What is ZIL anyway?</a></li>
</ul>

<p><hr /></p>

<h2 id="feedbackquestions">Feedback/Questions</h2>

<ul>
<li>Quentin - <a href="http://dpaste.com/0K9PQW9#wrap">Organize an Ada/BSD interview</a></li>

<li>DJ - <a href="http://dpaste.com/3KTQ45G#wrap">Update</a></li>

<li>Patrick - <a href="http://dpaste.com/07V6ZJN">Bhyve frontends</a></li>

<li>A small programming note: After BSDNow episode 300, the podcast will switch to audio-only, using a new higher quality recording and production system. The live stream will likely still include video.</li>
</ul>

<p><hr /></p>

<ul>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li>
</ul>

<p><hr /></p>

<video controls preload="metadata" style=" width:426px;  height:240px;">
    <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0298.mp4" type="video/mp4">
    Your browser does not support the HTML5 video tag.
</video>]]>
  </itunes:summary>
</item>
<item>
  <title>Episode 273: A Thoughtful Episode | BSD Now 273</title>
  <link>https://www.bsdnow.tv/273</link>
  <guid isPermaLink="false">http://feed.jupiter.zone/bsdnow#entry-2927</guid>
  <pubDate>Fri, 23 Nov 2018 02:00:00 -0500</pubDate>
  <author>JT Pennington</author>
  <enclosure url="https://aphid.fireside.fm/d/1437767933/c91b88f1-e824-4815-bcb8-5227818d6010/19a116b3-098d-40a2-bf74-28c99f8023e1.mp3" length="44912747" type="audio/mp3"/>
  <itunes:episodeType>full</itunes:episodeType>
  <itunes:author>JT Pennington</itunes:author>
  <itunes:subtitle>Thoughts on NetBSD 8.0, Monitoring love for a GigaBit OpenBSD firewall, cat’s source history, X.org root permission bug, thoughts on OpenBSD as a desktop, and NomadBSD review.</itunes:subtitle>
  <itunes:duration>1:14:32</itunes:duration>
  <itunes:explicit>no</itunes:explicit>
  <itunes:image href="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/c/c91b88f1-e824-4815-bcb8-5227818d6010/cover.jpg?v=4"/>
  <description>Thoughts on NetBSD 8.0, Monitoring love for a GigaBit OpenBSD firewall, cat’s source history, X.org root permission bug, thoughts on OpenBSD as a desktop, and NomadBSD review.
&lt;p&gt;##Headlines&lt;br&gt;
&lt;a href="https://distrowatch.com/weekly.php?issue=20181119#netbsd"&gt;Some thoughts on NetBSD 8.0&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;NetBSD is a highly portable operating system which can be run on dozens of different hardware architectures. The operating system’s clean and minimal design allow it to be run in all sorts of environments, ranging from embedded devices, to servers, to workstations. While the base operating system is minimal, NetBSD users have access to a large repository of binary packages and a ports tree which I will touch upon later.&lt;br&gt;
I last tried NetBSD 7.0 about three years ago and decided it was time to test drive the operating system again. In the past three years NetBSD has introduced a few new features, many of them security enhancements. For example, NetBSD now supports write exclusive-or execute (W^X) protection and address space layout randomization (ASLR) to protect programs against common attacks. NetBSD 8.0 also includes USB3 support and the ability to work with ZFS storage volumes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Early impressions&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Since I had set up NetBSD with a Full install and enabled xdm during the setup process, the operating system booted to a graphical login screen. From here we can sign into our account. The login screen does not provide options to shut down or restart the computer. Logging into our account brings up the twm window manager and provides a virtual terminal, courtesy of xterm. There is a panel that provides a method for logging out of the window manager. The twm environment is sparse, fast and devoid of distractions.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Software management&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;NetBSD ships with a fairly standard collection of command line tools and manual pages, but otherwise it is a fairly minimal platform. If we want to run network services, have access to a web browser, or use a word processor we are going to need to install more software. There are two main approaches to installing new packages. The first, and easier approach, is to use the pkgin package manager. The pkgin utility works much the same way APT or DNF work in the Linux world, or as pkg works on FreeBSD. We can search for software by name, install or remove items. I found pkgin worked well, though its output can be terse. My only complaint with pkgin is that it does not handle “close enough” package names. For example, if I tried to run “pkgin install vlc” or “pkgin install firefox” I would quickly be told these items did not exist. But a more forgiving package manager will realize items like vlc2 or firefox45 are available and offer to install those.&lt;br&gt;
The pkgin tool installs new programs in the /usr/pkg/bin directory. Depending on your configuration and shell, this location may not be in your user’s path, and it will be helpful to adjust your PATH variable accordingly.&lt;br&gt;
The other common approach to acquiring new software is to use the pkgsrc framework. I have talked about using pkgsrc before and I will skip the details. Basically, we can download a collection of recipes for building popular open source software and run a command to download and install these items from their source code. Using pkgsrc basically gives us the same software as using pkgin would, but with some added flexibility on the options we use.&lt;br&gt;
Once new software has been installed, it may need to be enabled and activated, particularly if it uses (or is) a background service. New items can be enabled in the /etc/rc.conf file and started or stopped using the service command. This works about the same as the service command on FreeBSD and most non-systemd Linux distributions.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Hardware&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;I found that, when logged into the twm environment, NetBSD used about 130MB of RAM. This included kernel memory and all active memory. A fresh, Full install used up 1.5GB of disk space. I generally found NetBSD ran well in both VirtualBox and on my desktop computer. The system was quick and stable. I did have trouble getting a higher screen resolution in both environments. NetBSD does not offer VirtualBox add-on modules. There are NetBSD patches for VirtualBox out there, but there is some manual work involved in getting them working. When running on my desktop computer I think the resolution issue was one of finding and dealing with the correct video driver. Screen resolution aside, NetBSD performed well and detected all my hardware.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Personal projects&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Since NetBSD provides users with a small, core operating system without many utilities if we want to use NetBSD for something we need to have a project in mind. I had four mini projects in mind I wanted to try this week: install a desktop environment, enable file sharing for computers on the local network, test multimedia (video, audio and YouTube capabilities), and set up a ZFS volume for storage.&lt;br&gt;
I began with the desktop. Specifically, I followed the same tutorial I used three years ago to try to set up the Xfce desktop. While Xfce and its supporting services installed, I was unable to get a working desktop out of the experience. I could get the Xfce window manager working, but not the entire session. This tutorial worked beautifully with NetBSD 7.0, but not with version 8.0. Undeterred, I switched gears and installed Fluxbox instead. This gave me a slightly more powerful graphical environment than what I had before with twm while maintaining performance. Fluxbox ran without any problems, though its application menu was automatically populated with many programs which were not actually installed.&lt;br&gt;
Next, I tried installing a few multimedia applications to play audio and video files. Here I ran into a couple of interesting problems. I found the music players I installed would play audio files, but the audio was quite slow. It always sounded like a cassette tape dragging. When I tried to play a video, the entire graphical session would crash, taking me back to the login screen. When I installed Firefox, I found I could play YouTube videos, and the video played smoothly, but again the audio was unusually slow.&lt;br&gt;
I set up two methods of sharing files on the local network: OpenSSH and FTP. NetBSD basically gives us OpenSSH for free at install time and I added an FTP server through the pkgin package manager which worked beautifully with its default configuration.&lt;br&gt;
I experimented with ZFS support a little, just enough to confirm I could create and access ZFS volumes. ZFS seems to work on NetBSD just as well, and with the same basic features, as it does on FreeBSD and mainstream Linux distributions. I think this is a good feature for the portable operating system to have since it means we can stick NetBSD on nearly any networked computer and use it as a NAS.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Conclusions&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;NetBSD, like its close cousins (FreeBSD and OpenBSD) does not do a lot of hand holding or automation. It offers a foundation that will run on most CPUs and we can choose to build on that foundation. I mention this because, on its own, NetBSD does not do much. If we want to get something out of it, we need to be willing to build on its foundation - we need a project. This is important to keep in mind as I think going into NetBSD and thinking, “Oh I’ll just explore around and expand on this as I go,” will likely lead to disappointment. I recommend figuring out what you want to do before installing NetBSD and making sure the required tools are available in the operating system’s repositories.&lt;br&gt;
Some of the projects I embarked on this week (using ZFS and setting up file sharing) worked well. Others, like getting multimedia support and a full-featured desktop, did not. Given more time, I’m sure I could find a suitable desktop to install (along with the required documentation to get it and its services running), or customize one based on one of the available window managers. However, any full featured desktop is going to require some manual work. Media support was not great. The right players and codecs were there, but I was not able to get audio to play smoothly.&lt;br&gt;
My main complaint with NetBSD relates to my struggle to get some features working to my satisfaction: the documentation is scattered. There are four different sections of the project’s website for documentation (FAQs, The Guide, manual pages and the wiki). Whatever we are looking for is likely to be in one of those, but which one? Or, just as likely, the tutorial we want is not there, but is on a forum or blog somewhere. I found that the documentation provided was often thin, more of a quick reference to remind people how something works rather than a full explanation.&lt;br&gt;
As an example, I found a couple of documents relating to setting up a firewall. One dealt with networking NetBSD on a LAN, another explored IPv6 support, but neither gave an overview on syntax or a basic guide to blocking all but one or two ports. It seemed like that information should already be known, or picked up elsewhere.&lt;br&gt;
Newcomers are likely to be a bit confused by software management guides for the same reason. Some pages refer to using a tool called pkg_add, others use pkgsrc and its make utility, others mention pkgin. Ultimately, these tools each give approximately the same result, but work differently and yet are mentioned almost interchangeably. I have used NetBSD before a few times and could stumble through these guides, but new users are likely to come away confused.&lt;br&gt;
One quirk of NetBSD, which may be a security feature or an inconvenience, depending on one’s point of view, is super user programs are not included in regular users’ paths. This means we need to change our path if we want to be able to run programs typically used by root. For example, shutdown and mount are not in regular users’ paths by default. This made checking some things tricky for me.&lt;br&gt;
Ultimately though, NetBSD is not famous for its convenience or features so much as its flexibility. The operating system will run on virtually any processor and should work almost identically across multiple platforms. That gives NetBSD users a good deal of consistency across a range of hardware and the chance to experiment with a member of the Unix family on hardware that might not be compatible with Linux or the other BSDs.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;###&lt;a href="https://tech.mangot.com/blog/2018/11/08/showing-a-gigabit-openbsd-firewall-some-monitoring-love/"&gt;Showing a Gigabit OpenBSD Firewall Some Monitoring Love&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I have a pretty long history of running my home servers or firewalls on “exotic” hardware. At first, it was Sun Microsystem hardware, then it moved to the excellent Soekris line, with some cool single board computers thrown in the mix. Recently I’ve been running OpenBSD Octeon on the Ubiquiti Edge Router Lite, an amazing little piece of kit at an amazing price point.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade Time!&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;This setup has served me for some time and I’ve been extremely happy with it. But, in the #firstworldproblems category, I recently upgraded the household to the amazing Gigabit fibre offering from Sonic. A great problem to have, but also too much of a problem for the little Edge Router Lite (ERL).&lt;br&gt;
The way the OpenBSD PF firewall works, it’s only able to process packets on a single core. Not a problem for the dual-core 500 MHz ERL when you’re pushing under ~200 Mbps, but more of a problem when you’re trying to push 1000 Mbps.&lt;br&gt;
I needed something that was faster on a per core basis but still satisfied my usual firewall requirements. Loosely:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;small form factor&lt;/li&gt;
&lt;li&gt;fan-less&lt;/li&gt;
&lt;li&gt;multiple Intel Ethernet ports (good driver support)&lt;/li&gt;
&lt;li&gt;low power consumption&lt;/li&gt;
&lt;li&gt;not your regular off-the-shelf kit&lt;/li&gt;
&lt;li&gt;relatively inexpensive&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;After evaluating a LOT of different options I settled on the Protectli Vault FW2B. With the specs required for the firewall (2 GB RAM and 8 GB drive) it comes in at a mere $239 USD! Installation of OpenBSD 6.4 was pretty straight forward, with the only problem I had was Etcher did not want to recognize the ‘.fs’ extension on the install image as bootable image. I quickly fixed this with good old Unix dd(1) on the Mac. Everything else was incredibly smooth.&lt;br&gt;
After loading the same rulesets on my new install, the results were fantastic!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Monitoring&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Now that the machine was up and running (and fast!), I wanted to know what it was doing. Over the years, I’ve always relied on the venerable pfstat software to give me an overview of my traffic, blocked packets, etc. It looks like this:&lt;br&gt;
As you can see it’s based on RRDtool, which was simply incredible in its time. Having worked on monitoring almost continuously for almost the past decade, I wanted to see if we could re-implement the same functionality using more modern tools as RRDtool and pfstat definitely have their limitations. This might be an opportunity to learn some new things as well.&lt;br&gt;
I came across pf-graphite which seemed to be a great start! He had everything I needed and I added a few more stats from the detailed interface statistics and the ability for the code to exit for running from cron(8), which is a bit more OpenBSD style. I added code for sending to some SaaS metrics platforms but ultimately stuck with straight Graphite. One important thing to note was to use the Graphite pickle port (2004) instead of the default plaintext port for submission. Also you will need to set a loginterface in your ‘pf.conf’.&lt;br&gt;
A bit of tweaking with Graphite and Grafana, and I had a pretty darn good recreation of my original PF stats dashboard!&lt;br&gt;
As you can see it’s based on RRDtool, which was simply incredible in its time. Having worked on monitoring almost continuously for almost the past decade, I wanted to see if we could re-implement the same functionality using more modern tools as RRDtool and pfstat definitely have their limitations. This might be an opportunity to learn some new things as well.&lt;br&gt;
I came across pf-graphite which seemed to be a great start! He had everything I needed and I added a few more stats from the detailed interface statistics and the ability for the code to exit for running from cron(8), which is a bit more OpenBSD style. I added code for sending to some SaaS metrics platforms but ultimately stuck with straight Graphite. One important thing to note was to use the Graphite pickle port (2004) instead of the default plaintext port for submission. Also you will need to set a loginterface in your ‘pf.conf’.&lt;br&gt;
A bit of tweaking with Graphite and Grafana, and I had a pretty darn good recreation of my original PF stats dashboard!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;###&lt;a href="https://twobithistory.org/2018/11/12/cat.html"&gt;The Source History of Cat&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I once had a debate with members of my extended family about whether a computer science degree is a degree worth pursuing. I was in college at the time and trying to decide whether I should major in computer science. My aunt and a cousin of mine believed that I shouldn’t. They conceded that knowing how to program is of course a useful and lucrative thing, but they argued that the field of computer science advances so quickly that everything I learned would almost immediately be outdated. Better to pick up programming on the side and instead major in a field like economics or physics where the basic principles would be applicable throughout my lifetime.&lt;br&gt;
I knew that my aunt and cousin were wrong and decided to major in computer science. (Sorry, aunt and cousin!) It is easy to see why the average person might believe that a field like computer science, or a profession like software engineering, completely reinvents itself every few years. We had personal computers, then the web, then phones, then machine learning… technology is always changing, so surely all the underlying principles and techniques change too. Of course, the amazing thing is how little actually changes. Most people, I’m sure, would be stunned to know just how old some of the important software on their computer really is. I’m not talking about flashy application software, admittedly—my copy of Firefox, the program I probably use the most on my computer, is not even two weeks old. But, if you pull up the manual page for something like grep, you will see that it has not been updated since 2010 (at least on MacOS). And the original version of grep was written in 1974, which in the computing world was back when dinosaurs roamed Silicon Valley. People (and programs) still depend on grep every day.&lt;br&gt;
My aunt and cousin thought of computer technology as a series of increasingly elaborate sand castles supplanting one another after each high tide clears the beach. The reality, at least in many areas, is that we steadily accumulate programs that have solved problems. We might have to occasionally modify these programs to avoid software rot, but otherwise they can be left alone.  grep is a simple program that solves a still-relevant problem, so it survives. Most application programming is done at a very high level, atop a pyramid of much older code solving much older problems. The ideas and concepts of 30 or 40 years ago, far from being obsolete today, have in many cases been embodied in software that you can still find installed on your laptop.&lt;br&gt;
I thought it would be interesting to take a look at one such old program and see how much it had changed since it was first written. cat is maybe the simplest of all the Unix utilities, so I’m going to use it as my example. Ken Thompson wrote the original implementation of cat in 1969. If I were to tell somebody that I have a program on my computer from 1969, would that be accurate? How much has cat really evolved over the decades? How old is the software on our computers?&lt;br&gt;
Thanks to repositories like this one, we can see exactly how cat has evolved since 1969. I’m going to focus on implementations of cat that are ancestors of the implementation I have on my Macbook. You will see, as we trace cat from the first versions of Unix down to the cat in MacOS today, that the program has been rewritten more times than you might expect—but it ultimately works more or less the same way it did fifty years ago.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Research Unix&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Ken Thompson and Dennis Ritchie began writing Unix on a PDP 7. This was in 1969, before C, so all of the early Unix software was written in PDP 7 assembly. The exact flavor of assembly they used was unique to Unix, since Ken Thompson wrote his own assembler that added some features on top of the assembler provided by DEC, the PDP 7’s manufacturer. Thompson’s changes are all documented in the original Unix Programmer’s Manual under the entry for as, the assembler.&lt;br&gt;
The first implementation of cat is thus in PDP 7 assembly. I’ve added comments that try to explain what each instruction is doing, but the program is still difficult to follow unless you understand some of the extensions Thompson made while writing his assembler. There are two important ones. First, the ; character can be used to separate multiple statements on the same line. It appears that this was used most often to put system call arguments on the same line as the sys instruction. Second, Thompson added support for “temporary labels” using the digits 0 through 9. These are labels that can be reused throughout a program, thus being, according to the Unix Programmer’s Manual, “less taxing both on the imagination of the programmer and on the symbol space of the assembler.” From any given instruction, you can refer to the next or most recent temporary label n using nf and nb respectively. For example, if you have some code in a block labeled 1:, you can jump back to that block from further down by using the instruction jmp 1b. (But you cannot jump forward to that block from above without using jmp 1f instead.)&lt;br&gt;
The most interesting thing about this first version of cat is that it contains two names we should recognize. There is a block of instructions labeled getc and a block of instructions labeled putc, demonstrating that these names are older than the C standard library. The first version of cat actually contained implementations of both functions. The implementations buffered input so that reads and writes were not done a character at a time.&lt;br&gt;
The first version of cat did not last long. Ken Thompson and Dennis Ritchie were able to persuade Bell Labs to buy them a PDP 11 so that they could continue to expand and improve Unix. The PDP 11 had a different instruction set, so cat had to be rewritten. I’ve marked up this second version of cat with comments as well. It uses new assembler mnemonics for the new instruction set and takes advantage of the PDP 11’s various addressing modes. (If you are confused by the parentheses and dollar signs in the source code, those are used to indicate different addressing modes.) But it also leverages the  ; character and temporary labels just like the first version of cat, meaning that these features must have been retained when as was adapted for the PDP 11.&lt;br&gt;
The second version of cat is significantly simpler than the first. It is also more “Unix-y” in that it doesn’t just expect a list of filename arguments—it will, when given no arguments, read from stdin, which is what cat still does today. You can also give this version of cat an argument of - to indicate that it should read from stdin.&lt;br&gt;
In 1973, in preparation for the release of the Fourth Edition of Unix, much of Unix was rewritten in C. But cat does not seem to have been rewritten in C until a while after that. The first C implementation of cat only shows up in the Seventh Edition of Unix. This implementation is really fun to look through because it is so simple. Of all the implementations to follow, this one most resembles the idealized cat used as a pedagogic demonstration in K&amp;amp;R C. The heart of the program is the classic two-liner:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;code&gt;while ((c = getc(fi)) != EOF)&lt;/code&gt;&lt;br&gt;
&lt;code&gt;putchar(c);&lt;/code&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;There is of course quite a bit more code than that, but the extra code is mostly there to ensure that you aren’t reading and writing to the same file. The other interesting thing to note is that this implementation of cat only recognized one flag, -u. The -u flag could be used to avoid buffering input and output, which cat would otherwise do in blocks of 512 bytes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;BSD&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;After the Seventh Edition, Unix spawned all sorts of derivatives and offshoots. MacOS is built on top of Darwin, which in turn is derived from the Berkeley Software Distribution (BSD), so BSD is the Unix offshoot we are most interested in. BSD was originally just a collection of useful programs and add-ons for Unix, but it eventually became a complete operating system. BSD seems to have relied on the original cat implementation up until the fourth BSD release, known as 4BSD, when support was added for a whole slew of new flags. The 4BSD implementation of cat is clearly derived from the original implementation, though it adds a new function to implement the behavior triggered by the new flags. The naming conventions already used in the file were adhered to—the fflg variable, used to mark whether input was being read from stdin or a file, was joined by nflg, bflg, vflg, sflg, eflg, and  tflg, all there to record whether or not each new flag was supplied in the invocation of the program. These were the last command-line flags added to  cat; the man page for cat today lists these flags and no others, at least on Mac OS. 4BSD was released in 1980, so this set of flags is 38 years old.&lt;br&gt;
cat would be entirely rewritten a final time for BSD Net/2, which was, among other things, an attempt to avoid licensing issues by replacing all AT&amp;amp;T Unix-derived code with new code. BSD Net/2 was released in 1991. This final rewrite of cat was done by Kevin Fall, who graduated from Berkeley in 1988 and spent the next year working as a staff member at the Computer Systems Research Group (CSRG). Fall told me that a list of Unix utilities still implemented using AT&amp;amp;T code was put up on a wall at CSRG and staff were told to pick the utilities they wanted to reimplement. Fall picked cat and  mknod. The cat implementation bundled with MacOS today is built from a source file that still bears his name at the very top. His version of cat, even though it is a relatively trivial program, is today used by millions.&lt;br&gt;
Fall’s original implementation of cat is much longer than anything we have seen so far. Other than support for a -? help flag, it adds nothing in the way of new functionality. Conceptually, it is very similar to the 4BSD implementation. It is only longer because Fall separates the implementation into a “raw” mode and a “cooked” mode. The “raw” mode is cat classic; it prints a file character for character. The “cooked” mode is cat with all the 4BSD command-line options. The distinction makes sense but it also pads out the implementation so that it seems more complex at first glance than it actually is. There is also a fancy error handling function at the end of the file that further adds to its length.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;MacOS&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;The very first release of Mac OS X thus includes an implementation of cat pulled from the NetBSD project. So the first Mac OS X implementation of cat is Kevin Fall’s cat. The only thing that had changed over the intervening decade was that Fall’s error-handling function err() was removed and the err() function made available by err.h was used in its place. err.h is a BSD extension to the C standard library.&lt;br&gt;
The NetBSD implementation of cat was later swapped out for FreeBSD’s implementation of cat. According to Wikipedia, Apple began using FreeBSD instead of NetBSD in Mac OS X 10.3 (Panther). But the Mac OS X implementation of cat, according to Apple’s own open source releases, was not replaced until Mac OS X 10.5 (Leopard) was released in 2007. The FreeBSD implementation that Apple swapped in for the Leopard release is the same implementation on Apple computers today. As of 2018, the implementation has not been updated or changed at all since 2007.&lt;br&gt;
So the Mac OS cat is old. As it happens, it is actually two years older than its 2007 appearance in MacOS X would suggest. This 2005 change, which is visible in FreeBSD’s Github mirror, was the last change made to FreeBSD’s cat before Apple pulled it into Mac OS X. So the Mac OS X cat implementation, which has not been kept in sync with FreeBSD’s cat implementation, is officially 13 years old. There’s a larger debate to be had about how much software can change before it really counts as the same software; in this case, the source file has not changed at all since 2005.&lt;br&gt;
The cat implementation used by Mac OS today is not that different from the implementation that Fall wrote for the 1991 BSD Net/2 release. The biggest difference is that a whole new function was added to provide Unix domain socket support. At some point, a FreeBSD developer also seems to have decided that Fall’s rawargs() function and cookargs() should be combined into a single function called scanfiles(). Otherwise, the heart of the program is still Fall’s code.&lt;br&gt;
I asked Fall how he felt about having written the cat implementation now used by millions of Apple users, either directly or indirectly through some program that relies on cat being present. Fall, who is now a consultant and a co-author of the most recent editions of TCP/IP Illustrated, says that he is surprised when people get such a thrill out of learning about his work on cat. Fall has had a long career in computing and has worked on many high-profile projects, but it seems that many people still get most excited about the six months of work he put into rewriting cat in 1989.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;The Hundred-Year-Old Program&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;In the grand scheme of things, computers are not an old invention. We’re used to hundred-year-old photographs or even hundred-year-old camera footage. But computer programs are in a different category—they’re high-tech and new. At least, they are now. As the computing industry matures, will we someday find ourselves using programs that approach the hundred-year-old mark?&lt;br&gt;
Computer hardware will presumably change enough that we won’t be able to take an executable compiled today and run it on hardware a century from now. Perhaps advances in programming language design will also mean that nobody will understand C in the future and cat will have long since been rewritten in another language. (Though C has already been around for fifty years, and it doesn’t look like it is about to be replaced any time soon.) But barring all that, why not just keep using the cat we have forever?&lt;br&gt;
I think the history of cat shows that some ideas in computer science are in fact very durable. Indeed, with cat, both the idea and the program itself are old. It may not be accurate to say that the cat on my computer is from 1969. But I could make a case for saying that the cat on my computer is from 1989, when Fall wrote his implementation of cat. Lots of other software is just as ancient. So maybe we shouldn’t think of computer science and software development primarily as fields that disrupt the status quo and invent new things. Our computer systems are built out of historical artifacts. At some point, we may all spend more time trying to understand and maintain those historical artifacts than we spend writing new code.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;##News Roundup&lt;br&gt;
&lt;a href="https://www.bleepingcomputer.com/news/security/trivial-bug-in-xorg-gives-root-permission-on-linux-and-bsd-systems/"&gt;Trivial Bug in X.Org Gives Root Permission on Linux and BSD Systems&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A vulnerability that is trivial to exploit allows privilege escalation to root level on Linux and BSD distributions using &lt;a href="http://X.Org"&gt;X.Org&lt;/a&gt; server, the open source implementation of the X Window System that offers the graphical environment.&lt;br&gt;
The flaw is now identified as CVE-2018-14665 (credited to security researcher Narendra Shinde). It has been present in xorg-server for two years, since version 1.19.0 and is exploitable by a limited user as long as the X server runs with elevated permissions.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Privilege escalation and arbitrary file overwrite&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;An advisory on Thursday describes the problem as an “incorrect command-line parameter validation” that also allows an attacker to overwrite arbitrary files.&lt;br&gt;
Privilege escalation can be accomplished via the -modulepath argument by setting an insecure path to modules loaded by the &lt;a href="http://X.org"&gt;X.org&lt;/a&gt; server. Arbitrary file overwrite is possible through the -logfile argument, because of improper verification when parsing the option.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Bug could have been avoided in OpenBSD 6.4&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;OpenBSD, the free and open-source operating system with a strong focus on security, uses xorg. On October 18, the project released version 6.4 of the OS, affected by CVE-2018-14665. This could have been avoided, though.&lt;br&gt;
Theo de Raadt, founder and leader of the OpenBSD project, says that X maintainer knew about the problem since at least October 11. For some reason, the OpenBSD developers received the message one hour before the public announcement this Thursday, a week after their new OS release.&lt;br&gt;
“As yet we don’t have answers about why our X maintainer (on the X security team) and his team provided information to other projects (some who don’t even ship with this new X server) but chose to not give us a heads-up which could have saved all the new 6.4 users a lot of grief,” Raadt says.&lt;br&gt;
Had OpenBSD developers known about the bug before the release, they could have taken steps to mitigate the problem or delay the launch for a week or two.&lt;br&gt;
To remedy the problem, the OpenBSD project provides a source code patch, which requires compiling and rebuilding the X server.&lt;br&gt;
As a temporary solution, users can disable the Xorg binary by running the following command:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;code&gt;chmod u-s /usr/X11R6/bin/Xorg&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Trivial exploitation&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;CVE-2018-14665 does not help compromise systems, but it is useful in the following stages of an attack.&lt;br&gt;
Leveraging it after gaining access to a vulnerable machine is fairly easy. Matthew Hickey, co-founder, and head of Hacker House security outfit created and published an exploit, saying that it can be triggered from a remote SSH session.&lt;br&gt;
Three hours after the public announcement of the security gap, Daemon Security CEO Michael Shirk replied with one line that overwrote shadow files on the system. Hickey did one better and fit the entire local privilege escalation exploit in one line.&lt;br&gt;
Apart from OpenBSD, other operating systems affected by the bug include Debian and Ubuntu, Fedora and its downstream distro  Red Hat Enterprise Linux along with its community-supported counterpart CentOS.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;###&lt;a href="https://blog.gsora.xyz/openbsd-on-the-desktop-some-thoughts/"&gt;OpenBSD on the Desktop: some thoughts&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I’ve been using OpenBSD on my ThinkPad X230 for some weeks now, and the experience has been peculiar in some ways.&lt;br&gt;
The OS itself in my opinion is not ready for widespread desktop usage, and the development team is not trying to push it in the throat of anybody who wants a Windows or macOS alternative.&lt;br&gt;
You need to understand a little bit of how *NIX systems work, because you’ll use CLI more than UI.&lt;br&gt;
That’s not necessarily bad, and I’m sure I learned a trick or two that could translate easily to Linux or macOS.&lt;br&gt;
Their development process is purely based on developers that love to contribute and hack around, just because it’s fun.&lt;br&gt;
Even the mailing list is a cool place to hang on!&lt;br&gt;
Code correctness and security are a must, nothing gets committed if it doesn’t get reviewed thoroughly first - nowadays the first two properties should be enforced in every major operating system.&lt;br&gt;
I like the idea of a platform that continually evolves.&lt;br&gt;
pledge(2) and unveil(2) are the proof that with a little effort, you can secure existing software better than ever.&lt;br&gt;
I like the “sensible defaults” approach, having an OS ready to be used - UI included if you selected it during the setup process - is great.&lt;br&gt;
Just install a browser and you’re ready to go.&lt;br&gt;
Manual pages on OpenBSD are real manuals, not an extension of the “–help” command found in most CLI softwares.&lt;br&gt;
They help you understand inner workings of the operating system, no internet connection needed.&lt;br&gt;
There are some trade-offs, too.&lt;br&gt;
Performance is not first-class, mostly because of all the security mitigations and checks done at runtime3.&lt;br&gt;
I write Go code in neovim, and sometimes you can feel a slight slowdown when you’re compiling and editing multiple files at the same time, but usually I can’t notice any meaningful difference.&lt;br&gt;
Browsers are a different matter though, you can definitely feel something differs from the experience you can have on mainstream operating systems.&lt;br&gt;
But again, trade-offs.&lt;br&gt;
To use OpenBSD on the desktop you must be ready to sacrifice some of the goodies of mainstream OSes, but if you’re searching for a zen place to do your computing stuff, it’s the best you can get right now.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;###&lt;a href="https://distrowatch.com/weekly.php?issue=20180813#nomadbsd"&gt;Review: NomadBSD 1.1&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;One of the most recent additions to the DistroWatch database is NomadBSD. According to the NomadBSD website: “NomadBSD is a 64-bit live system for USB flash drives, based on FreeBSD. Together with automatic hardware detection and setup, it is configured to be used as a desktop system that works out of the box, but can also be used for data recovery.”&lt;br&gt;
The latest release of NomadBSD (or simply “Nomad”, as I will refer to the project in this review) is version 1.1. It is based on FreeBSD 11.2 and is offered in two builds, one for generic personal computers and one for Macbooks. The release announcement mentions version 1.1 offers improved video driver support for Intel and AMD cards. The operating system ships with Octopkg for graphical package management and the system should automatically detect, and work with, VirtualBox environments.&lt;br&gt;
Nomad 1.1 is available as a 2GB download, which we then decompress to produce a 4GB file which can be written to a USB thumb drive. There is no optical media build of Nomad as it is designed to be run entirely from the USB drive, and write data persistently to the drive, rather than simply being installed from the USB media.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Initial setup&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Booting from the USB drive brings up a series of text-based menus which ask us to configure key parts of the operating system. We are asked to select our time zone, keyboard layout, keyboard model, keyboard mapping and our preferred language. While we can select options from a list, the options tend to be short and cryptic. Rather than “English (US)”, for example, we might be given “enUS”. We are also asked to create a password for the root user account and another one for a regular user which is called “nomad”. We can then select which shell nomad will use. The default is zsh, but there are plenty of other options, including csh and bash. We have the option of encrypting our user’s home directory.&lt;br&gt;
I feel it is important to point out that these settings, and nomad’s home directory, are stored on the USB drive. The options and settings we select will not be saved to our local hard drive and our configuration choices will not affect other operating systems already installed on our computer. At the end, the configuration wizard asks if we want to run the BSDstats service. This option is not explained at all, but it contacts BSDstats to provide some basic statistics on BSD users.&lt;br&gt;
The system then takes a few minutes to apply its changes to the USB drive and automatically reboots the computer. While running the initial setup wizard, I had nearly identical experiences when running Nomad on a physical computer and running the operating system in a VirtualBox virtual machine. However, after the initial setup process was over, I had quite different experiences depending on the environment so I want to divide my experiences into two different sections.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Physical desktop computer&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;At first, Nomad failed to boot on my desktop computer. From the operating system’s boot loader, I enabled Safe Mode which allowed Nomad to boot. At that point, Nomad was able to start up, but would only display a text console. The desktop environment failed to start when running in Safe Mode.&lt;br&gt;
Networking was also disabled by default and I had to enable a network interface and DHCP address assignment to connect to the Internet. Instructions for enabling networking can be found in FreeBSD’s Handbook. Once we are on-line we can use the pkg command line package manager to install and update software. Had the desktop environment worked then the Octopkg graphical package manager would also be available to make browsing and installing software a point-n-click experience.&lt;br&gt;
Had I been able to run the desktop for prolonged amounts of time I could have made use of such pre-installed items as the Firefox web browser, the VLC media player, LibreOffice and Thunderbird. Nomad offers a fairly small collection of desktop applications, but what is there is mostly popular, capable software.&lt;br&gt;
When running the operating system I noted that, with one user logged in, Nomad only runs 15 processes with the default configuration. These processes require less than 100MB of RAM, and the whole system fits comfortably on a 4GB USB drive.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Conclusions&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Ultimately using Nomad was not a practical option for me. The operating system did not work well with my hardware, or the virtual environment. In the virtual machine, Nomad crashed consistently after just a few minutes of uptime. On the desktop computer, I could not get a desktop environment to run. The command line tools worked well, and the system performed tasks very quickly, but a command line only environment is not well suited to my workflow.&lt;br&gt;
I like the idea of what NomadBSD is offering. There are not many live desktop flavours of FreeBSD, apart from GhostBSD. It was nice to see developers trying to make a FreeBSD-based, plug-and-go operating system that would offer a desktop and persistent storage. I suspect the system would work and perform its stated functions on different hardware, but in my case my experiment was necessarily short lived.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;##Beastie Bits&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://oshogbo.vexillium.org/blog/50/"&gt;FreeBSD lockless algorithm - seq&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/bob-beck/libtls/blob/master/TUTORIAL.md"&gt;Happy Bob’s Libtls tutorial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://chown.me/blog/locking-openbsd-when-sleeping.html"&gt;Locking OpenBSD when it’s sleeping&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.geoghegan.ca/serviio.html"&gt;iio - The OpenBSD Way&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://bsdboy.ml/blog/installing-hugo-and-hosting-on-openbsd.html"&gt;Installing Hugo and Hosting Website on OpenBSD Server&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.osorio.me/post.php?idpost=1"&gt;Fosdem 2019 reminder: BSD devroom CfP&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=4gOoPxGKKjA&amp;amp;feature=youtu.be"&gt;OpenBGPD, gotta go fast! - Claudio Jeker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://project-trident.org/post/2018-11-10rc3-available/"&gt;Project Trident RC3 available&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lists.freebsd.org/pipermail/freebsd-announce/2018-November/001849.html"&gt;FreeBSD 10.4 EOL&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://bsd.network/@ephemeris/101073578346815313"&gt;Play “Crazy Train” through your APU2 speaker&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;##Feedback/Questions&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tobias - &lt;a href="http://dpaste.com/174WGEY#wrap"&gt;Satisfying my storage hunger and wallet pains&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Lasse - &lt;a href="http://dpaste.com/1QBMH73"&gt;Question regarding FreeBSD backups&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://twitter.com/dlangille"&gt;https://twitter.com/dlangille&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dan.langille.org/"&gt;https://dan.langille.org/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;ul&gt;
&lt;li&gt;Send questions, comments, show ideas/topics, or stories you want mentioned on the show to &lt;a href="mailto:feedback@bsdnow.tv"&gt;feedback@bsdnow.tv&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt; 
</description>
  <itunes:keywords>freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, cat, Firewall, x.org, vulnerability, nomadbsd, OpenBGPD, Hugo, Fosdem, iio</itunes:keywords>
  <content:encoded>
    <![CDATA[<p>Thoughts on NetBSD 8.0, Monitoring love for a GigaBit OpenBSD firewall, cat’s source history, X.org root permission bug, thoughts on OpenBSD as a desktop, and NomadBSD review.</p>

<p>##Headlines<br>
###<a href="https://distrowatch.com/weekly.php?issue=20181119#netbsd">Some thoughts on NetBSD 8.0</a></p>

<blockquote>
<p>NetBSD is a highly portable operating system which can be run on dozens of different hardware architectures. The operating system’s clean and minimal design allow it to be run in all sorts of environments, ranging from embedded devices, to servers, to workstations. While the base operating system is minimal, NetBSD users have access to a large repository of binary packages and a ports tree which I will touch upon later.<br>
I last tried NetBSD 7.0 about three years ago and decided it was time to test drive the operating system again. In the past three years NetBSD has introduced a few new features, many of them security enhancements. For example, NetBSD now supports write exclusive-or execute (W^X) protection and address space layout randomization (ASLR) to protect programs against common attacks. NetBSD 8.0 also includes USB3 support and the ability to work with ZFS storage volumes.</p>
</blockquote>

<ul>
<li>Early impressions</li>
</ul>

<blockquote>
<p>Since I had set up NetBSD with a Full install and enabled xdm during the setup process, the operating system booted to a graphical login screen. From here we can sign into our account. The login screen does not provide options to shut down or restart the computer. Logging into our account brings up the twm window manager and provides a virtual terminal, courtesy of xterm. There is a panel that provides a method for logging out of the window manager. The twm environment is sparse, fast and devoid of distractions.</p>
</blockquote>

<ul>
<li>Software management</li>
</ul>

<blockquote>
<p>NetBSD ships with a fairly standard collection of command line tools and manual pages, but otherwise it is a fairly minimal platform. If we want to run network services, have access to a web browser, or use a word processor we are going to need to install more software. There are two main approaches to installing new packages. The first, and easier approach, is to use the pkgin package manager. The pkgin utility works much the same way APT or DNF work in the Linux world, or as pkg works on FreeBSD. We can search for software by name, install or remove items. I found pkgin worked well, though its output can be terse. My only complaint with pkgin is that it does not handle “close enough” package names. For example, if I tried to run “pkgin install vlc” or “pkgin install firefox” I would quickly be told these items did not exist. But a more forgiving package manager will realize items like vlc2 or firefox45 are available and offer to install those.<br>
The pkgin tool installs new programs in the /usr/pkg/bin directory. Depending on your configuration and shell, this location may not be in your user’s path, and it will be helpful to adjust your PATH variable accordingly.<br>
The other common approach to acquiring new software is to use the pkgsrc framework. I have talked about using pkgsrc before and I will skip the details. Basically, we can download a collection of recipes for building popular open source software and run a command to download and install these items from their source code. Using pkgsrc basically gives us the same software as using pkgin would, but with some added flexibility on the options we use.<br>
Once new software has been installed, it may need to be enabled and activated, particularly if it uses (or is) a background service. New items can be enabled in the /etc/rc.conf file and started or stopped using the service command. This works about the same as the service command on FreeBSD and most non-systemd Linux distributions.</p>
</blockquote>

<ul>
<li>Hardware</li>
</ul>

<blockquote>
<p>I found that, when logged into the twm environment, NetBSD used about 130MB of RAM. This included kernel memory and all active memory. A fresh, Full install used up 1.5GB of disk space. I generally found NetBSD ran well in both VirtualBox and on my desktop computer. The system was quick and stable. I did have trouble getting a higher screen resolution in both environments. NetBSD does not offer VirtualBox add-on modules. There are NetBSD patches for VirtualBox out there, but there is some manual work involved in getting them working. When running on my desktop computer I think the resolution issue was one of finding and dealing with the correct video driver. Screen resolution aside, NetBSD performed well and detected all my hardware.</p>
</blockquote>

<ul>
<li>Personal projects</li>
</ul>

<blockquote>
<p>Since NetBSD provides users with a small, core operating system without many utilities if we want to use NetBSD for something we need to have a project in mind. I had four mini projects in mind I wanted to try this week: install a desktop environment, enable file sharing for computers on the local network, test multimedia (video, audio and YouTube capabilities), and set up a ZFS volume for storage.<br>
I began with the desktop. Specifically, I followed the same tutorial I used three years ago to try to set up the Xfce desktop. While Xfce and its supporting services installed, I was unable to get a working desktop out of the experience. I could get the Xfce window manager working, but not the entire session. This tutorial worked beautifully with NetBSD 7.0, but not with version 8.0. Undeterred, I switched gears and installed Fluxbox instead. This gave me a slightly more powerful graphical environment than what I had before with twm while maintaining performance. Fluxbox ran without any problems, though its application menu was automatically populated with many programs which were not actually installed.<br>
Next, I tried installing a few multimedia applications to play audio and video files. Here I ran into a couple of interesting problems. I found the music players I installed would play audio files, but the audio was quite slow. It always sounded like a cassette tape dragging. When I tried to play a video, the entire graphical session would crash, taking me back to the login screen. When I installed Firefox, I found I could play YouTube videos, and the video played smoothly, but again the audio was unusually slow.<br>
I set up two methods of sharing files on the local network: OpenSSH and FTP. NetBSD basically gives us OpenSSH for free at install time and I added an FTP server through the pkgin package manager which worked beautifully with its default configuration.<br>
I experimented with ZFS support a little, just enough to confirm I could create and access ZFS volumes. ZFS seems to work on NetBSD just as well, and with the same basic features, as it does on FreeBSD and mainstream Linux distributions. I think this is a good feature for the portable operating system to have since it means we can stick NetBSD on nearly any networked computer and use it as a NAS.</p>
</blockquote>

<ul>
<li>Conclusions</li>
</ul>

<blockquote>
<p>NetBSD, like its close cousins (FreeBSD and OpenBSD) does not do a lot of hand holding or automation. It offers a foundation that will run on most CPUs and we can choose to build on that foundation. I mention this because, on its own, NetBSD does not do much. If we want to get something out of it, we need to be willing to build on its foundation - we need a project. This is important to keep in mind as I think going into NetBSD and thinking, “Oh I’ll just explore around and expand on this as I go,” will likely lead to disappointment. I recommend figuring out what you want to do before installing NetBSD and making sure the required tools are available in the operating system’s repositories.<br>
Some of the projects I embarked on this week (using ZFS and setting up file sharing) worked well. Others, like getting multimedia support and a full-featured desktop, did not. Given more time, I’m sure I could find a suitable desktop to install (along with the required documentation to get it and its services running), or customize one based on one of the available window managers. However, any full featured desktop is going to require some manual work. Media support was not great. The right players and codecs were there, but I was not able to get audio to play smoothly.<br>
My main complaint with NetBSD relates to my struggle to get some features working to my satisfaction: the documentation is scattered. There are four different sections of the project’s website for documentation (FAQs, The Guide, manual pages and the wiki). Whatever we are looking for is likely to be in one of those, but which one? Or, just as likely, the tutorial we want is not there, but is on a forum or blog somewhere. I found that the documentation provided was often thin, more of a quick reference to remind people how something works rather than a full explanation.<br>
As an example, I found a couple of documents relating to setting up a firewall. One dealt with networking NetBSD on a LAN, another explored IPv6 support, but neither gave an overview on syntax or a basic guide to blocking all but one or two ports. It seemed like that information should already be known, or picked up elsewhere.<br>
Newcomers are likely to be a bit confused by software management guides for the same reason. Some pages refer to using a tool called pkg_add, others use pkgsrc and its make utility, others mention pkgin. Ultimately, these tools each give approximately the same result, but work differently and yet are mentioned almost interchangeably. I have used NetBSD before a few times and could stumble through these guides, but new users are likely to come away confused.<br>
One quirk of NetBSD, which may be a security feature or an inconvenience, depending on one’s point of view, is super user programs are not included in regular users’ paths. This means we need to change our path if we want to be able to run programs typically used by root. For example, shutdown and mount are not in regular users’ paths by default. This made checking some things tricky for me.<br>
Ultimately though, NetBSD is not famous for its convenience or features so much as its flexibility. The operating system will run on virtually any processor and should work almost identically across multiple platforms. That gives NetBSD users a good deal of consistency across a range of hardware and the chance to experiment with a member of the Unix family on hardware that might not be compatible with Linux or the other BSDs.</p>
</blockquote>

<p><hr></p>

<p>###<a href="https://tech.mangot.com/blog/2018/11/08/showing-a-gigabit-openbsd-firewall-some-monitoring-love/">Showing a Gigabit OpenBSD Firewall Some Monitoring Love</a></p>

<blockquote>
<p>I have a pretty long history of running my home servers or firewalls on “exotic” hardware. At first, it was Sun Microsystem hardware, then it moved to the excellent Soekris line, with some cool single board computers thrown in the mix. Recently I’ve been running OpenBSD Octeon on the Ubiquiti Edge Router Lite, an amazing little piece of kit at an amazing price point.</p>
</blockquote>

<ul>
<li>Upgrade Time!</li>
</ul>

<blockquote>
<p>This setup has served me for some time and I’ve been extremely happy with it. But, in the #firstworldproblems category, I recently upgraded the household to the amazing Gigabit fibre offering from Sonic. A great problem to have, but also too much of a problem for the little Edge Router Lite (ERL).<br>
The way the OpenBSD PF firewall works, it’s only able to process packets on a single core. Not a problem for the dual-core 500 MHz ERL when you’re pushing under ~200 Mbps, but more of a problem when you’re trying to push 1000 Mbps.<br>
I needed something that was faster on a per core basis but still satisfied my usual firewall requirements. Loosely:</p>
</blockquote>

<ul>
<li>small form factor</li>
<li>fan-less</li>
<li>multiple Intel Ethernet ports (good driver support)</li>
<li>low power consumption</li>
<li>not your regular off-the-shelf kit</li>
<li>relatively inexpensive</li>
</ul>

<blockquote>
<p>After evaluating a LOT of different options I settled on the Protectli Vault FW2B. With the specs required for the firewall (2 GB RAM and 8 GB drive) it comes in at a mere $239 USD! Installation of OpenBSD 6.4 was pretty straight forward, with the only problem I had was Etcher did not want to recognize the ‘.fs’ extension on the install image as bootable image. I quickly fixed this with good old Unix dd(1) on the Mac. Everything else was incredibly smooth.<br>
After loading the same rulesets on my new install, the results were fantastic!</p>
</blockquote>

<ul>
<li>Monitoring</li>
</ul>

<blockquote>
<p>Now that the machine was up and running (and fast!), I wanted to know what it was doing. Over the years, I’ve always relied on the venerable pfstat software to give me an overview of my traffic, blocked packets, etc. It looks like this:<br>
As you can see it’s based on RRDtool, which was simply incredible in its time. Having worked on monitoring almost continuously for almost the past decade, I wanted to see if we could re-implement the same functionality using more modern tools as RRDtool and pfstat definitely have their limitations. This might be an opportunity to learn some new things as well.<br>
I came across pf-graphite which seemed to be a great start! He had everything I needed and I added a few more stats from the detailed interface statistics and the ability for the code to exit for running from cron(8), which is a bit more OpenBSD style. I added code for sending to some SaaS metrics platforms but ultimately stuck with straight Graphite. One important thing to note was to use the Graphite pickle port (2004) instead of the default plaintext port for submission. Also you will need to set a loginterface in your ‘pf.conf’.<br>
A bit of tweaking with Graphite and Grafana, and I had a pretty darn good recreation of my original PF stats dashboard!<br>
As you can see it’s based on RRDtool, which was simply incredible in its time. Having worked on monitoring almost continuously for almost the past decade, I wanted to see if we could re-implement the same functionality using more modern tools as RRDtool and pfstat definitely have their limitations. This might be an opportunity to learn some new things as well.<br>
I came across pf-graphite which seemed to be a great start! He had everything I needed and I added a few more stats from the detailed interface statistics and the ability for the code to exit for running from cron(8), which is a bit more OpenBSD style. I added code for sending to some SaaS metrics platforms but ultimately stuck with straight Graphite. One important thing to note was to use the Graphite pickle port (2004) instead of the default plaintext port for submission. Also you will need to set a loginterface in your ‘pf.conf’.<br>
A bit of tweaking with Graphite and Grafana, and I had a pretty darn good recreation of my original PF stats dashboard!</p>
</blockquote>

<p>###<a href="https://twobithistory.org/2018/11/12/cat.html">The Source History of Cat</a></p>

<blockquote>
<p>I once had a debate with members of my extended family about whether a computer science degree is a degree worth pursuing. I was in college at the time and trying to decide whether I should major in computer science. My aunt and a cousin of mine believed that I shouldn’t. They conceded that knowing how to program is of course a useful and lucrative thing, but they argued that the field of computer science advances so quickly that everything I learned would almost immediately be outdated. Better to pick up programming on the side and instead major in a field like economics or physics where the basic principles would be applicable throughout my lifetime.<br>
I knew that my aunt and cousin were wrong and decided to major in computer science. (Sorry, aunt and cousin!) It is easy to see why the average person might believe that a field like computer science, or a profession like software engineering, completely reinvents itself every few years. We had personal computers, then the web, then phones, then machine learning… technology is always changing, so surely all the underlying principles and techniques change too. Of course, the amazing thing is how little actually changes. Most people, I’m sure, would be stunned to know just how old some of the important software on their computer really is. I’m not talking about flashy application software, admittedly—my copy of Firefox, the program I probably use the most on my computer, is not even two weeks old. But, if you pull up the manual page for something like grep, you will see that it has not been updated since 2010 (at least on MacOS). And the original version of grep was written in 1974, which in the computing world was back when dinosaurs roamed Silicon Valley. People (and programs) still depend on grep every day.<br>
My aunt and cousin thought of computer technology as a series of increasingly elaborate sand castles supplanting one another after each high tide clears the beach. The reality, at least in many areas, is that we steadily accumulate programs that have solved problems. We might have to occasionally modify these programs to avoid software rot, but otherwise they can be left alone.  grep is a simple program that solves a still-relevant problem, so it survives. Most application programming is done at a very high level, atop a pyramid of much older code solving much older problems. The ideas and concepts of 30 or 40 years ago, far from being obsolete today, have in many cases been embodied in software that you can still find installed on your laptop.<br>
I thought it would be interesting to take a look at one such old program and see how much it had changed since it was first written. cat is maybe the simplest of all the Unix utilities, so I’m going to use it as my example. Ken Thompson wrote the original implementation of cat in 1969. If I were to tell somebody that I have a program on my computer from 1969, would that be accurate? How much has cat really evolved over the decades? How old is the software on our computers?<br>
Thanks to repositories like this one, we can see exactly how cat has evolved since 1969. I’m going to focus on implementations of cat that are ancestors of the implementation I have on my Macbook. You will see, as we trace cat from the first versions of Unix down to the cat in MacOS today, that the program has been rewritten more times than you might expect—but it ultimately works more or less the same way it did fifty years ago.</p>
</blockquote>

<ul>
<li>Research Unix</li>
</ul>

<blockquote>
<p>Ken Thompson and Dennis Ritchie began writing Unix on a PDP 7. This was in 1969, before C, so all of the early Unix software was written in PDP 7 assembly. The exact flavor of assembly they used was unique to Unix, since Ken Thompson wrote his own assembler that added some features on top of the assembler provided by DEC, the PDP 7’s manufacturer. Thompson’s changes are all documented in the original Unix Programmer’s Manual under the entry for as, the assembler.<br>
The first implementation of cat is thus in PDP 7 assembly. I’ve added comments that try to explain what each instruction is doing, but the program is still difficult to follow unless you understand some of the extensions Thompson made while writing his assembler. There are two important ones. First, the ; character can be used to separate multiple statements on the same line. It appears that this was used most often to put system call arguments on the same line as the sys instruction. Second, Thompson added support for “temporary labels” using the digits 0 through 9. These are labels that can be reused throughout a program, thus being, according to the Unix Programmer’s Manual, “less taxing both on the imagination of the programmer and on the symbol space of the assembler.” From any given instruction, you can refer to the next or most recent temporary label n using nf and nb respectively. For example, if you have some code in a block labeled 1:, you can jump back to that block from further down by using the instruction jmp 1b. (But you cannot jump forward to that block from above without using jmp 1f instead.)<br>
The most interesting thing about this first version of cat is that it contains two names we should recognize. There is a block of instructions labeled getc and a block of instructions labeled putc, demonstrating that these names are older than the C standard library. The first version of cat actually contained implementations of both functions. The implementations buffered input so that reads and writes were not done a character at a time.<br>
The first version of cat did not last long. Ken Thompson and Dennis Ritchie were able to persuade Bell Labs to buy them a PDP 11 so that they could continue to expand and improve Unix. The PDP 11 had a different instruction set, so cat had to be rewritten. I’ve marked up this second version of cat with comments as well. It uses new assembler mnemonics for the new instruction set and takes advantage of the PDP 11’s various addressing modes. (If you are confused by the parentheses and dollar signs in the source code, those are used to indicate different addressing modes.) But it also leverages the  ; character and temporary labels just like the first version of cat, meaning that these features must have been retained when as was adapted for the PDP 11.<br>
The second version of cat is significantly simpler than the first. It is also more “Unix-y” in that it doesn’t just expect a list of filename arguments—it will, when given no arguments, read from stdin, which is what cat still does today. You can also give this version of cat an argument of - to indicate that it should read from stdin.<br>
In 1973, in preparation for the release of the Fourth Edition of Unix, much of Unix was rewritten in C. But cat does not seem to have been rewritten in C until a while after that. The first C implementation of cat only shows up in the Seventh Edition of Unix. This implementation is really fun to look through because it is so simple. Of all the implementations to follow, this one most resembles the idealized cat used as a pedagogic demonstration in K&amp;R C. The heart of the program is the classic two-liner:</p>
</blockquote>

<p><code>while ((c = getc(fi)) != EOF)</code><br>
<code>putchar(c);</code></p>

<blockquote>
<p>There is of course quite a bit more code than that, but the extra code is mostly there to ensure that you aren’t reading and writing to the same file. The other interesting thing to note is that this implementation of cat only recognized one flag, -u. The -u flag could be used to avoid buffering input and output, which cat would otherwise do in blocks of 512 bytes.</p>
</blockquote>

<ul>
<li>BSD</li>
</ul>

<blockquote>
<p>After the Seventh Edition, Unix spawned all sorts of derivatives and offshoots. MacOS is built on top of Darwin, which in turn is derived from the Berkeley Software Distribution (BSD), so BSD is the Unix offshoot we are most interested in. BSD was originally just a collection of useful programs and add-ons for Unix, but it eventually became a complete operating system. BSD seems to have relied on the original cat implementation up until the fourth BSD release, known as 4BSD, when support was added for a whole slew of new flags. The 4BSD implementation of cat is clearly derived from the original implementation, though it adds a new function to implement the behavior triggered by the new flags. The naming conventions already used in the file were adhered to—the fflg variable, used to mark whether input was being read from stdin or a file, was joined by nflg, bflg, vflg, sflg, eflg, and  tflg, all there to record whether or not each new flag was supplied in the invocation of the program. These were the last command-line flags added to  cat; the man page for cat today lists these flags and no others, at least on Mac OS. 4BSD was released in 1980, so this set of flags is 38 years old.<br>
cat would be entirely rewritten a final time for BSD Net/2, which was, among other things, an attempt to avoid licensing issues by replacing all AT&amp;T Unix-derived code with new code. BSD Net/2 was released in 1991. This final rewrite of cat was done by Kevin Fall, who graduated from Berkeley in 1988 and spent the next year working as a staff member at the Computer Systems Research Group (CSRG). Fall told me that a list of Unix utilities still implemented using AT&amp;T code was put up on a wall at CSRG and staff were told to pick the utilities they wanted to reimplement. Fall picked cat and  mknod. The cat implementation bundled with MacOS today is built from a source file that still bears his name at the very top. His version of cat, even though it is a relatively trivial program, is today used by millions.<br>
Fall’s original implementation of cat is much longer than anything we have seen so far. Other than support for a -? help flag, it adds nothing in the way of new functionality. Conceptually, it is very similar to the 4BSD implementation. It is only longer because Fall separates the implementation into a “raw” mode and a “cooked” mode. The “raw” mode is cat classic; it prints a file character for character. The “cooked” mode is cat with all the 4BSD command-line options. The distinction makes sense but it also pads out the implementation so that it seems more complex at first glance than it actually is. There is also a fancy error handling function at the end of the file that further adds to its length.</p>
</blockquote>

<ul>
<li>MacOS</li>
</ul>

<blockquote>
<p>The very first release of Mac OS X thus includes an implementation of cat pulled from the NetBSD project. So the first Mac OS X implementation of cat is Kevin Fall’s cat. The only thing that had changed over the intervening decade was that Fall’s error-handling function err() was removed and the err() function made available by err.h was used in its place. err.h is a BSD extension to the C standard library.<br>
The NetBSD implementation of cat was later swapped out for FreeBSD’s implementation of cat. According to Wikipedia, Apple began using FreeBSD instead of NetBSD in Mac OS X 10.3 (Panther). But the Mac OS X implementation of cat, according to Apple’s own open source releases, was not replaced until Mac OS X 10.5 (Leopard) was released in 2007. The FreeBSD implementation that Apple swapped in for the Leopard release is the same implementation on Apple computers today. As of 2018, the implementation has not been updated or changed at all since 2007.<br>
So the Mac OS cat is old. As it happens, it is actually two years older than its 2007 appearance in MacOS X would suggest. This 2005 change, which is visible in FreeBSD’s Github mirror, was the last change made to FreeBSD’s cat before Apple pulled it into Mac OS X. So the Mac OS X cat implementation, which has not been kept in sync with FreeBSD’s cat implementation, is officially 13 years old. There’s a larger debate to be had about how much software can change before it really counts as the same software; in this case, the source file has not changed at all since 2005.<br>
The cat implementation used by Mac OS today is not that different from the implementation that Fall wrote for the 1991 BSD Net/2 release. The biggest difference is that a whole new function was added to provide Unix domain socket support. At some point, a FreeBSD developer also seems to have decided that Fall’s raw_args() function and cook_args() should be combined into a single function called scanfiles(). Otherwise, the heart of the program is still Fall’s code.<br>
I asked Fall how he felt about having written the cat implementation now used by millions of Apple users, either directly or indirectly through some program that relies on cat being present. Fall, who is now a consultant and a co-author of the most recent editions of TCP/IP Illustrated, says that he is surprised when people get such a thrill out of learning about his work on cat. Fall has had a long career in computing and has worked on many high-profile projects, but it seems that many people still get most excited about the six months of work he put into rewriting cat in 1989.</p>
</blockquote>

<ul>
<li>The Hundred-Year-Old Program</li>
</ul>

<blockquote>
<p>In the grand scheme of things, computers are not an old invention. We’re used to hundred-year-old photographs or even hundred-year-old camera footage. But computer programs are in a different category—they’re high-tech and new. At least, they are now. As the computing industry matures, will we someday find ourselves using programs that approach the hundred-year-old mark?<br>
Computer hardware will presumably change enough that we won’t be able to take an executable compiled today and run it on hardware a century from now. Perhaps advances in programming language design will also mean that nobody will understand C in the future and cat will have long since been rewritten in another language. (Though C has already been around for fifty years, and it doesn’t look like it is about to be replaced any time soon.) But barring all that, why not just keep using the cat we have forever?<br>
I think the history of cat shows that some ideas in computer science are in fact very durable. Indeed, with cat, both the idea and the program itself are old. It may not be accurate to say that the cat on my computer is from 1969. But I could make a case for saying that the cat on my computer is from 1989, when Fall wrote his implementation of cat. Lots of other software is just as ancient. So maybe we shouldn’t think of computer science and software development primarily as fields that disrupt the status quo and invent new things. Our computer systems are built out of historical artifacts. At some point, we may all spend more time trying to understand and maintain those historical artifacts than we spend writing new code.</p>
</blockquote>

<p><hr></p>

<p>##News Roundup<br>
###<a href="https://www.bleepingcomputer.com/news/security/trivial-bug-in-xorg-gives-root-permission-on-linux-and-bsd-systems/">Trivial Bug in X.Org Gives Root Permission on Linux and BSD Systems</a></p>

<blockquote>
<p>A vulnerability that is trivial to exploit allows privilege escalation to root level on Linux and BSD distributions using <a href="http://X.Org">X.Org</a> server, the open source implementation of the X Window System that offers the graphical environment.<br>
The flaw is now identified as CVE-2018-14665 (credited to security researcher Narendra Shinde). It has been present in xorg-server for two years, since version 1.19.0 and is exploitable by a limited user as long as the X server runs with elevated permissions.</p>
</blockquote>

<ul>
<li>Privilege escalation and arbitrary file overwrite</li>
</ul>

<blockquote>
<p>An advisory on Thursday describes the problem as an “incorrect command-line parameter validation” that also allows an attacker to overwrite arbitrary files.<br>
Privilege escalation can be accomplished via the -modulepath argument by setting an insecure path to modules loaded by the <a href="http://X.org">X.org</a> server. Arbitrary file overwrite is possible through the -logfile argument, because of improper verification when parsing the option.</p>
</blockquote>

<ul>
<li>Bug could have been avoided in OpenBSD 6.4</li>
</ul>

<blockquote>
<p>OpenBSD, the free and open-source operating system with a strong focus on security, uses xorg. On October 18, the project released version 6.4 of the OS, affected by CVE-2018-14665. This could have been avoided, though.<br>
Theo de Raadt, founder and leader of the OpenBSD project, says that X maintainer knew about the problem since at least October 11. For some reason, the OpenBSD developers received the message one hour before the public announcement this Thursday, a week after their new OS release.<br>
“As yet we don’t have answers about why our X maintainer (on the X security team) and his team provided information to other projects (some who don’t even ship with this new X server) but chose to not give us a heads-up which could have saved all the new 6.4 users a lot of grief,” Raadt says.<br>
Had OpenBSD developers known about the bug before the release, they could have taken steps to mitigate the problem or delay the launch for a week or two.<br>
To remedy the problem, the OpenBSD project provides a source code patch, which requires compiling and rebuilding the X server.<br>
As a temporary solution, users can disable the Xorg binary by running the following command:</p>
</blockquote>

<p><code>chmod u-s /usr/X11R6/bin/Xorg</code></p>

<ul>
<li>Trivial exploitation</li>
</ul>

<blockquote>
<p>CVE-2018-14665 does not help compromise systems, but it is useful in the following stages of an attack.<br>
Leveraging it after gaining access to a vulnerable machine is fairly easy. Matthew Hickey, co-founder, and head of Hacker House security outfit created and published an exploit, saying that it can be triggered from a remote SSH session.<br>
Three hours after the public announcement of the security gap, Daemon Security CEO Michael Shirk replied with one line that overwrote shadow files on the system. Hickey did one better and fit the entire local privilege escalation exploit in one line.<br>
Apart from OpenBSD, other operating systems affected by the bug include Debian and Ubuntu, Fedora and its downstream distro  Red Hat Enterprise Linux along with its community-supported counterpart CentOS.</p>
</blockquote>

<p><hr></p>

<p>###<a href="https://blog.gsora.xyz/openbsd-on-the-desktop-some-thoughts/">OpenBSD on the Desktop: some thoughts</a></p>

<blockquote>
<p>I’ve been using OpenBSD on my ThinkPad X230 for some weeks now, and the experience has been peculiar in some ways.<br>
The OS itself in my opinion is not ready for widespread desktop usage, and the development team is not trying to push it in the throat of anybody who wants a Windows or macOS alternative.<br>
You need to understand a little bit of how *NIX systems work, because you’ll use CLI more than UI.<br>
That’s not necessarily bad, and I’m sure I learned a trick or two that could translate easily to Linux or macOS.<br>
Their development process is purely based on developers that love to contribute and hack around, just because it’s fun.<br>
Even the mailing list is a cool place to hang on!<br>
Code correctness and security are a must, nothing gets committed if it doesn’t get reviewed thoroughly first - nowadays the first two properties should be enforced in every major operating system.<br>
I like the idea of a platform that continually evolves.<br>
pledge(2) and unveil(2) are the proof that with a little effort, you can secure existing software better than ever.<br>
I like the “sensible defaults” approach, having an OS ready to be used - UI included if you selected it during the setup process - is great.<br>
Just install a browser and you’re ready to go.<br>
Manual pages on OpenBSD are real manuals, not an extension of the “–help” command found in most CLI softwares.<br>
They help you understand inner workings of the operating system, no internet connection needed.<br>
There are some trade-offs, too.<br>
Performance is not first-class, mostly because of all the security mitigations and checks done at runtime3.<br>
I write Go code in neovim, and sometimes you can feel a slight slowdown when you’re compiling and editing multiple files at the same time, but usually I can’t notice any meaningful difference.<br>
Browsers are a different matter though, you can definitely feel something differs from the experience you can have on mainstream operating systems.<br>
But again, trade-offs.<br>
To use OpenBSD on the desktop you must be ready to sacrifice some of the goodies of mainstream OSes, but if you’re searching for a zen place to do your computing stuff, it’s the best you can get right now.</p>
</blockquote>

<p><hr></p>

<p>###<a href="https://distrowatch.com/weekly.php?issue=20180813#nomadbsd">Review: NomadBSD 1.1</a></p>

<blockquote>
<p>One of the most recent additions to the DistroWatch database is NomadBSD. According to the NomadBSD website: “NomadBSD is a 64-bit live system for USB flash drives, based on FreeBSD. Together with automatic hardware detection and setup, it is configured to be used as a desktop system that works out of the box, but can also be used for data recovery.”<br>
The latest release of NomadBSD (or simply “Nomad”, as I will refer to the project in this review) is version 1.1. It is based on FreeBSD 11.2 and is offered in two builds, one for generic personal computers and one for Macbooks. The release announcement mentions version 1.1 offers improved video driver support for Intel and AMD cards. The operating system ships with Octopkg for graphical package management and the system should automatically detect, and work with, VirtualBox environments.<br>
Nomad 1.1 is available as a 2GB download, which we then decompress to produce a 4GB file which can be written to a USB thumb drive. There is no optical media build of Nomad as it is designed to be run entirely from the USB drive, and write data persistently to the drive, rather than simply being installed from the USB media.</p>
</blockquote>

<ul>
<li>Initial setup</li>
</ul>

<blockquote>
<p>Booting from the USB drive brings up a series of text-based menus which ask us to configure key parts of the operating system. We are asked to select our time zone, keyboard layout, keyboard model, keyboard mapping and our preferred language. While we can select options from a list, the options tend to be short and cryptic. Rather than “English (US)”, for example, we might be given “en_US”. We are also asked to create a password for the root user account and another one for a regular user which is called “nomad”. We can then select which shell nomad will use. The default is zsh, but there are plenty of other options, including csh and bash. We have the option of encrypting our user’s home directory.<br>
I feel it is important to point out that these settings, and nomad’s home directory, are stored on the USB drive. The options and settings we select will not be saved to our local hard drive and our configuration choices will not affect other operating systems already installed on our computer. At the end, the configuration wizard asks if we want to run the BSDstats service. This option is not explained at all, but it contacts BSDstats to provide some basic statistics on BSD users.<br>
The system then takes a few minutes to apply its changes to the USB drive and automatically reboots the computer. While running the initial setup wizard, I had nearly identical experiences when running Nomad on a physical computer and running the operating system in a VirtualBox virtual machine. However, after the initial setup process was over, I had quite different experiences depending on the environment so I want to divide my experiences into two different sections.</p>
</blockquote>

<ul>
<li>Physical desktop computer</li>
</ul>

<blockquote>
<p>At first, Nomad failed to boot on my desktop computer. From the operating system’s boot loader, I enabled Safe Mode which allowed Nomad to boot. At that point, Nomad was able to start up, but would only display a text console. The desktop environment failed to start when running in Safe Mode.<br>
Networking was also disabled by default and I had to enable a network interface and DHCP address assignment to connect to the Internet. Instructions for enabling networking can be found in FreeBSD’s Handbook. Once we are on-line we can use the pkg command line package manager to install and update software. Had the desktop environment worked then the Octopkg graphical package manager would also be available to make browsing and installing software a point-n-click experience.<br>
Had I been able to run the desktop for prolonged amounts of time I could have made use of such pre-installed items as the Firefox web browser, the VLC media player, LibreOffice and Thunderbird. Nomad offers a fairly small collection of desktop applications, but what is there is mostly popular, capable software.<br>
When running the operating system I noted that, with one user logged in, Nomad only runs 15 processes with the default configuration. These processes require less than 100MB of RAM, and the whole system fits comfortably on a 4GB USB drive.</p>
</blockquote>

<ul>
<li>Conclusions</li>
</ul>

<blockquote>
<p>Ultimately using Nomad was not a practical option for me. The operating system did not work well with my hardware, or the virtual environment. In the virtual machine, Nomad crashed consistently after just a few minutes of uptime. On the desktop computer, I could not get a desktop environment to run. The command line tools worked well, and the system performed tasks very quickly, but a command line only environment is not well suited to my workflow.<br>
I like the idea of what NomadBSD is offering. There are not many live desktop flavours of FreeBSD, apart from GhostBSD. It was nice to see developers trying to make a FreeBSD-based, plug-and-go operating system that would offer a desktop and persistent storage. I suspect the system would work and perform its stated functions on different hardware, but in my case my experiment was necessarily short lived.</p>
</blockquote>

<p><hr></p>

<p>##Beastie Bits</p>

<ul>
<li><a href="https://oshogbo.vexillium.org/blog/50/">FreeBSD lockless algorithm - seq</a></li>
<li><a href="https://github.com/bob-beck/libtls/blob/master/TUTORIAL.md">Happy Bob’s Libtls tutorial</a></li>
<li><a href="https://chown.me/blog/locking-openbsd-when-sleeping.html">Locking OpenBSD when it’s sleeping</a></li>
<li><a href="https://www.geoghegan.ca/serviio.html">iio - The OpenBSD Way</a></li>
<li><a href="https://bsdboy.ml/blog/installing-hugo-and-hosting-on-openbsd.html">Installing Hugo and Hosting Website on OpenBSD Server</a></li>
<li><a href="http://blog.osorio.me/post.php?idpost=1">Fosdem 2019 reminder: BSD devroom CfP</a></li>
<li><a href="https://www.youtube.com/watch?v=4gOoPxGKKjA&amp;feature=youtu.be">OpenBGPD, gotta go fast! - Claudio Jeker</a></li>
<li><a href="http://project-trident.org/post/2018-11-10_rc3-available/">Project Trident RC3 available</a></li>
<li><a href="https://lists.freebsd.org/pipermail/freebsd-announce/2018-November/001849.html">FreeBSD 10.4 EOL</a></li>
<li><a href="https://bsd.network/@ephemeris/101073578346815313">Play “Crazy Train” through your APU2 speaker</a></li>
</ul>

<p><hr></p>

<p>##Feedback/Questions</p>

<ul>
<li>Tobias - <a href="http://dpaste.com/174WGEY#wrap">Satisfying my storage hunger and wallet pains</a></li>
<li>Lasse - <a href="http://dpaste.com/1QBMH73">Question regarding FreeBSD backups</a>
<ul>
<li><a href="https://twitter.com/dlangille">https://twitter.com/dlangille</a></li>
<li><a href="https://dan.langille.org/">https://dan.langille.org/</a></li>
</ul>

<p></li><br>
</ul><br>
<hr></p>

<ul>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li>
</ul>

<p><hr></p>]]>
  </content:encoded>
  <itunes:summary>
    <![CDATA[<p>Thoughts on NetBSD 8.0, Monitoring love for a GigaBit OpenBSD firewall, cat’s source history, X.org root permission bug, thoughts on OpenBSD as a desktop, and NomadBSD review.</p>

<p>##Headlines<br>
###<a href="https://distrowatch.com/weekly.php?issue=20181119#netbsd">Some thoughts on NetBSD 8.0</a></p>

<blockquote>
<p>NetBSD is a highly portable operating system which can be run on dozens of different hardware architectures. The operating system’s clean and minimal design allow it to be run in all sorts of environments, ranging from embedded devices, to servers, to workstations. While the base operating system is minimal, NetBSD users have access to a large repository of binary packages and a ports tree which I will touch upon later.<br>
I last tried NetBSD 7.0 about three years ago and decided it was time to test drive the operating system again. In the past three years NetBSD has introduced a few new features, many of them security enhancements. For example, NetBSD now supports write exclusive-or execute (W^X) protection and address space layout randomization (ASLR) to protect programs against common attacks. NetBSD 8.0 also includes USB3 support and the ability to work with ZFS storage volumes.</p>
</blockquote>

<ul>
<li>Early impressions</li>
</ul>

<blockquote>
<p>Since I had set up NetBSD with a Full install and enabled xdm during the setup process, the operating system booted to a graphical login screen. From here we can sign into our account. The login screen does not provide options to shut down or restart the computer. Logging into our account brings up the twm window manager and provides a virtual terminal, courtesy of xterm. There is a panel that provides a method for logging out of the window manager. The twm environment is sparse, fast and devoid of distractions.</p>
</blockquote>

<ul>
<li>Software management</li>
</ul>

<blockquote>
<p>NetBSD ships with a fairly standard collection of command line tools and manual pages, but otherwise it is a fairly minimal platform. If we want to run network services, have access to a web browser, or use a word processor we are going to need to install more software. There are two main approaches to installing new packages. The first, and easier approach, is to use the pkgin package manager. The pkgin utility works much the same way APT or DNF work in the Linux world, or as pkg works on FreeBSD. We can search for software by name, install or remove items. I found pkgin worked well, though its output can be terse. My only complaint with pkgin is that it does not handle “close enough” package names. For example, if I tried to run “pkgin install vlc” or “pkgin install firefox” I would quickly be told these items did not exist. But a more forgiving package manager will realize items like vlc2 or firefox45 are available and offer to install those.<br>
The pkgin tool installs new programs in the /usr/pkg/bin directory. Depending on your configuration and shell, this location may not be in your user’s path, and it will be helpful to adjust your PATH variable accordingly.<br>
The other common approach to acquiring new software is to use the pkgsrc framework. I have talked about using pkgsrc before and I will skip the details. Basically, we can download a collection of recipes for building popular open source software and run a command to download and install these items from their source code. Using pkgsrc basically gives us the same software as using pkgin would, but with some added flexibility on the options we use.<br>
Once new software has been installed, it may need to be enabled and activated, particularly if it uses (or is) a background service. New items can be enabled in the /etc/rc.conf file and started or stopped using the service command. This works about the same as the service command on FreeBSD and most non-systemd Linux distributions.</p>
</blockquote>

<ul>
<li>Hardware</li>
</ul>

<blockquote>
<p>I found that, when logged into the twm environment, NetBSD used about 130MB of RAM. This included kernel memory and all active memory. A fresh, Full install used up 1.5GB of disk space. I generally found NetBSD ran well in both VirtualBox and on my desktop computer. The system was quick and stable. I did have trouble getting a higher screen resolution in both environments. NetBSD does not offer VirtualBox add-on modules. There are NetBSD patches for VirtualBox out there, but there is some manual work involved in getting them working. When running on my desktop computer I think the resolution issue was one of finding and dealing with the correct video driver. Screen resolution aside, NetBSD performed well and detected all my hardware.</p>
</blockquote>

<ul>
<li>Personal projects</li>
</ul>

<blockquote>
<p>Since NetBSD provides users with a small, core operating system without many utilities if we want to use NetBSD for something we need to have a project in mind. I had four mini projects in mind I wanted to try this week: install a desktop environment, enable file sharing for computers on the local network, test multimedia (video, audio and YouTube capabilities), and set up a ZFS volume for storage.<br>
I began with the desktop. Specifically, I followed the same tutorial I used three years ago to try to set up the Xfce desktop. While Xfce and its supporting services installed, I was unable to get a working desktop out of the experience. I could get the Xfce window manager working, but not the entire session. This tutorial worked beautifully with NetBSD 7.0, but not with version 8.0. Undeterred, I switched gears and installed Fluxbox instead. This gave me a slightly more powerful graphical environment than what I had before with twm while maintaining performance. Fluxbox ran without any problems, though its application menu was automatically populated with many programs which were not actually installed.<br>
Next, I tried installing a few multimedia applications to play audio and video files. Here I ran into a couple of interesting problems. I found the music players I installed would play audio files, but the audio was quite slow. It always sounded like a cassette tape dragging. When I tried to play a video, the entire graphical session would crash, taking me back to the login screen. When I installed Firefox, I found I could play YouTube videos, and the video played smoothly, but again the audio was unusually slow.<br>
I set up two methods of sharing files on the local network: OpenSSH and FTP. NetBSD basically gives us OpenSSH for free at install time and I added an FTP server through the pkgin package manager which worked beautifully with its default configuration.<br>
I experimented with ZFS support a little, just enough to confirm I could create and access ZFS volumes. ZFS seems to work on NetBSD just as well, and with the same basic features, as it does on FreeBSD and mainstream Linux distributions. I think this is a good feature for the portable operating system to have since it means we can stick NetBSD on nearly any networked computer and use it as a NAS.</p>
</blockquote>

<ul>
<li>Conclusions</li>
</ul>

<blockquote>
<p>NetBSD, like its close cousins (FreeBSD and OpenBSD) does not do a lot of hand holding or automation. It offers a foundation that will run on most CPUs and we can choose to build on that foundation. I mention this because, on its own, NetBSD does not do much. If we want to get something out of it, we need to be willing to build on its foundation - we need a project. This is important to keep in mind as I think going into NetBSD and thinking, “Oh I’ll just explore around and expand on this as I go,” will likely lead to disappointment. I recommend figuring out what you want to do before installing NetBSD and making sure the required tools are available in the operating system’s repositories.<br>
Some of the projects I embarked on this week (using ZFS and setting up file sharing) worked well. Others, like getting multimedia support and a full-featured desktop, did not. Given more time, I’m sure I could find a suitable desktop to install (along with the required documentation to get it and its services running), or customize one based on one of the available window managers. However, any full featured desktop is going to require some manual work. Media support was not great. The right players and codecs were there, but I was not able to get audio to play smoothly.<br>
My main complaint with NetBSD relates to my struggle to get some features working to my satisfaction: the documentation is scattered. There are four different sections of the project’s website for documentation (FAQs, The Guide, manual pages and the wiki). Whatever we are looking for is likely to be in one of those, but which one? Or, just as likely, the tutorial we want is not there, but is on a forum or blog somewhere. I found that the documentation provided was often thin, more of a quick reference to remind people how something works rather than a full explanation.<br>
As an example, I found a couple of documents relating to setting up a firewall. One dealt with networking NetBSD on a LAN, another explored IPv6 support, but neither gave an overview on syntax or a basic guide to blocking all but one or two ports. It seemed like that information should already be known, or picked up elsewhere.<br>
Newcomers are likely to be a bit confused by software management guides for the same reason. Some pages refer to using a tool called pkg_add, others use pkgsrc and its make utility, others mention pkgin. Ultimately, these tools each give approximately the same result, but work differently and yet are mentioned almost interchangeably. I have used NetBSD before a few times and could stumble through these guides, but new users are likely to come away confused.<br>
One quirk of NetBSD, which may be a security feature or an inconvenience, depending on one’s point of view, is super user programs are not included in regular users’ paths. This means we need to change our path if we want to be able to run programs typically used by root. For example, shutdown and mount are not in regular users’ paths by default. This made checking some things tricky for me.<br>
Ultimately though, NetBSD is not famous for its convenience or features so much as its flexibility. The operating system will run on virtually any processor and should work almost identically across multiple platforms. That gives NetBSD users a good deal of consistency across a range of hardware and the chance to experiment with a member of the Unix family on hardware that might not be compatible with Linux or the other BSDs.</p>
</blockquote>

<p><hr></p>

<p>###<a href="https://tech.mangot.com/blog/2018/11/08/showing-a-gigabit-openbsd-firewall-some-monitoring-love/">Showing a Gigabit OpenBSD Firewall Some Monitoring Love</a></p>

<blockquote>
<p>I have a pretty long history of running my home servers or firewalls on “exotic” hardware. At first, it was Sun Microsystem hardware, then it moved to the excellent Soekris line, with some cool single board computers thrown in the mix. Recently I’ve been running OpenBSD Octeon on the Ubiquiti Edge Router Lite, an amazing little piece of kit at an amazing price point.</p>
</blockquote>

<ul>
<li>Upgrade Time!</li>
</ul>

<blockquote>
<p>This setup has served me for some time and I’ve been extremely happy with it. But, in the #firstworldproblems category, I recently upgraded the household to the amazing Gigabit fibre offering from Sonic. A great problem to have, but also too much of a problem for the little Edge Router Lite (ERL).<br>
The way the OpenBSD PF firewall works, it’s only able to process packets on a single core. Not a problem for the dual-core 500 MHz ERL when you’re pushing under ~200 Mbps, but more of a problem when you’re trying to push 1000 Mbps.<br>
I needed something that was faster on a per core basis but still satisfied my usual firewall requirements. Loosely:</p>
</blockquote>

<ul>
<li>small form factor</li>
<li>fan-less</li>
<li>multiple Intel Ethernet ports (good driver support)</li>
<li>low power consumption</li>
<li>not your regular off-the-shelf kit</li>
<li>relatively inexpensive</li>
</ul>

<blockquote>
<p>After evaluating a LOT of different options I settled on the Protectli Vault FW2B. With the specs required for the firewall (2 GB RAM and 8 GB drive) it comes in at a mere $239 USD! Installation of OpenBSD 6.4 was pretty straight forward, with the only problem I had was Etcher did not want to recognize the ‘.fs’ extension on the install image as bootable image. I quickly fixed this with good old Unix dd(1) on the Mac. Everything else was incredibly smooth.<br>
After loading the same rulesets on my new install, the results were fantastic!</p>
</blockquote>

<ul>
<li>Monitoring</li>
</ul>

<blockquote>
<p>Now that the machine was up and running (and fast!), I wanted to know what it was doing. Over the years, I’ve always relied on the venerable pfstat software to give me an overview of my traffic, blocked packets, etc. It looks like this:<br>
As you can see it’s based on RRDtool, which was simply incredible in its time. Having worked on monitoring almost continuously for almost the past decade, I wanted to see if we could re-implement the same functionality using more modern tools as RRDtool and pfstat definitely have their limitations. This might be an opportunity to learn some new things as well.<br>
I came across pf-graphite which seemed to be a great start! He had everything I needed and I added a few more stats from the detailed interface statistics and the ability for the code to exit for running from cron(8), which is a bit more OpenBSD style. I added code for sending to some SaaS metrics platforms but ultimately stuck with straight Graphite. One important thing to note was to use the Graphite pickle port (2004) instead of the default plaintext port for submission. Also you will need to set a loginterface in your ‘pf.conf’.<br>
A bit of tweaking with Graphite and Grafana, and I had a pretty darn good recreation of my original PF stats dashboard!<br>
As you can see it’s based on RRDtool, which was simply incredible in its time. Having worked on monitoring almost continuously for almost the past decade, I wanted to see if we could re-implement the same functionality using more modern tools as RRDtool and pfstat definitely have their limitations. This might be an opportunity to learn some new things as well.<br>
I came across pf-graphite which seemed to be a great start! He had everything I needed and I added a few more stats from the detailed interface statistics and the ability for the code to exit for running from cron(8), which is a bit more OpenBSD style. I added code for sending to some SaaS metrics platforms but ultimately stuck with straight Graphite. One important thing to note was to use the Graphite pickle port (2004) instead of the default plaintext port for submission. Also you will need to set a loginterface in your ‘pf.conf’.<br>
A bit of tweaking with Graphite and Grafana, and I had a pretty darn good recreation of my original PF stats dashboard!</p>
</blockquote>

<p>###<a href="https://twobithistory.org/2018/11/12/cat.html">The Source History of Cat</a></p>

<blockquote>
<p>I once had a debate with members of my extended family about whether a computer science degree is a degree worth pursuing. I was in college at the time and trying to decide whether I should major in computer science. My aunt and a cousin of mine believed that I shouldn’t. They conceded that knowing how to program is of course a useful and lucrative thing, but they argued that the field of computer science advances so quickly that everything I learned would almost immediately be outdated. Better to pick up programming on the side and instead major in a field like economics or physics where the basic principles would be applicable throughout my lifetime.<br>
I knew that my aunt and cousin were wrong and decided to major in computer science. (Sorry, aunt and cousin!) It is easy to see why the average person might believe that a field like computer science, or a profession like software engineering, completely reinvents itself every few years. We had personal computers, then the web, then phones, then machine learning… technology is always changing, so surely all the underlying principles and techniques change too. Of course, the amazing thing is how little actually changes. Most people, I’m sure, would be stunned to know just how old some of the important software on their computer really is. I’m not talking about flashy application software, admittedly—my copy of Firefox, the program I probably use the most on my computer, is not even two weeks old. But, if you pull up the manual page for something like grep, you will see that it has not been updated since 2010 (at least on MacOS). And the original version of grep was written in 1974, which in the computing world was back when dinosaurs roamed Silicon Valley. People (and programs) still depend on grep every day.<br>
My aunt and cousin thought of computer technology as a series of increasingly elaborate sand castles supplanting one another after each high tide clears the beach. The reality, at least in many areas, is that we steadily accumulate programs that have solved problems. We might have to occasionally modify these programs to avoid software rot, but otherwise they can be left alone.  grep is a simple program that solves a still-relevant problem, so it survives. Most application programming is done at a very high level, atop a pyramid of much older code solving much older problems. The ideas and concepts of 30 or 40 years ago, far from being obsolete today, have in many cases been embodied in software that you can still find installed on your laptop.<br>
I thought it would be interesting to take a look at one such old program and see how much it had changed since it was first written. cat is maybe the simplest of all the Unix utilities, so I’m going to use it as my example. Ken Thompson wrote the original implementation of cat in 1969. If I were to tell somebody that I have a program on my computer from 1969, would that be accurate? How much has cat really evolved over the decades? How old is the software on our computers?<br>
Thanks to repositories like this one, we can see exactly how cat has evolved since 1969. I’m going to focus on implementations of cat that are ancestors of the implementation I have on my Macbook. You will see, as we trace cat from the first versions of Unix down to the cat in MacOS today, that the program has been rewritten more times than you might expect—but it ultimately works more or less the same way it did fifty years ago.</p>
</blockquote>

<ul>
<li>Research Unix</li>
</ul>

<blockquote>
<p>Ken Thompson and Dennis Ritchie began writing Unix on a PDP 7. This was in 1969, before C, so all of the early Unix software was written in PDP 7 assembly. The exact flavor of assembly they used was unique to Unix, since Ken Thompson wrote his own assembler that added some features on top of the assembler provided by DEC, the PDP 7’s manufacturer. Thompson’s changes are all documented in the original Unix Programmer’s Manual under the entry for as, the assembler.<br>
The first implementation of cat is thus in PDP 7 assembly. I’ve added comments that try to explain what each instruction is doing, but the program is still difficult to follow unless you understand some of the extensions Thompson made while writing his assembler. There are two important ones. First, the ; character can be used to separate multiple statements on the same line. It appears that this was used most often to put system call arguments on the same line as the sys instruction. Second, Thompson added support for “temporary labels” using the digits 0 through 9. These are labels that can be reused throughout a program, thus being, according to the Unix Programmer’s Manual, “less taxing both on the imagination of the programmer and on the symbol space of the assembler.” From any given instruction, you can refer to the next or most recent temporary label n using nf and nb respectively. For example, if you have some code in a block labeled 1:, you can jump back to that block from further down by using the instruction jmp 1b. (But you cannot jump forward to that block from above without using jmp 1f instead.)<br>
The most interesting thing about this first version of cat is that it contains two names we should recognize. There is a block of instructions labeled getc and a block of instructions labeled putc, demonstrating that these names are older than the C standard library. The first version of cat actually contained implementations of both functions. The implementations buffered input so that reads and writes were not done a character at a time.<br>
The first version of cat did not last long. Ken Thompson and Dennis Ritchie were able to persuade Bell Labs to buy them a PDP 11 so that they could continue to expand and improve Unix. The PDP 11 had a different instruction set, so cat had to be rewritten. I’ve marked up this second version of cat with comments as well. It uses new assembler mnemonics for the new instruction set and takes advantage of the PDP 11’s various addressing modes. (If you are confused by the parentheses and dollar signs in the source code, those are used to indicate different addressing modes.) But it also leverages the  ; character and temporary labels just like the first version of cat, meaning that these features must have been retained when as was adapted for the PDP 11.<br>
The second version of cat is significantly simpler than the first. It is also more “Unix-y” in that it doesn’t just expect a list of filename arguments—it will, when given no arguments, read from stdin, which is what cat still does today. You can also give this version of cat an argument of - to indicate that it should read from stdin.<br>
In 1973, in preparation for the release of the Fourth Edition of Unix, much of Unix was rewritten in C. But cat does not seem to have been rewritten in C until a while after that. The first C implementation of cat only shows up in the Seventh Edition of Unix. This implementation is really fun to look through because it is so simple. Of all the implementations to follow, this one most resembles the idealized cat used as a pedagogic demonstration in K&amp;R C. The heart of the program is the classic two-liner:</p>
</blockquote>

<p><code>while ((c = getc(fi)) != EOF)</code><br>
<code>putchar(c);</code></p>

<blockquote>
<p>There is of course quite a bit more code than that, but the extra code is mostly there to ensure that you aren’t reading and writing to the same file. The other interesting thing to note is that this implementation of cat only recognized one flag, -u. The -u flag could be used to avoid buffering input and output, which cat would otherwise do in blocks of 512 bytes.</p>
</blockquote>

<ul>
<li>BSD</li>
</ul>

<blockquote>
<p>After the Seventh Edition, Unix spawned all sorts of derivatives and offshoots. MacOS is built on top of Darwin, which in turn is derived from the Berkeley Software Distribution (BSD), so BSD is the Unix offshoot we are most interested in. BSD was originally just a collection of useful programs and add-ons for Unix, but it eventually became a complete operating system. BSD seems to have relied on the original cat implementation up until the fourth BSD release, known as 4BSD, when support was added for a whole slew of new flags. The 4BSD implementation of cat is clearly derived from the original implementation, though it adds a new function to implement the behavior triggered by the new flags. The naming conventions already used in the file were adhered to—the fflg variable, used to mark whether input was being read from stdin or a file, was joined by nflg, bflg, vflg, sflg, eflg, and  tflg, all there to record whether or not each new flag was supplied in the invocation of the program. These were the last command-line flags added to  cat; the man page for cat today lists these flags and no others, at least on Mac OS. 4BSD was released in 1980, so this set of flags is 38 years old.<br>
cat would be entirely rewritten a final time for BSD Net/2, which was, among other things, an attempt to avoid licensing issues by replacing all AT&amp;T Unix-derived code with new code. BSD Net/2 was released in 1991. This final rewrite of cat was done by Kevin Fall, who graduated from Berkeley in 1988 and spent the next year working as a staff member at the Computer Systems Research Group (CSRG). Fall told me that a list of Unix utilities still implemented using AT&amp;T code was put up on a wall at CSRG and staff were told to pick the utilities they wanted to reimplement. Fall picked cat and  mknod. The cat implementation bundled with MacOS today is built from a source file that still bears his name at the very top. His version of cat, even though it is a relatively trivial program, is today used by millions.<br>
Fall’s original implementation of cat is much longer than anything we have seen so far. Other than support for a -? help flag, it adds nothing in the way of new functionality. Conceptually, it is very similar to the 4BSD implementation. It is only longer because Fall separates the implementation into a “raw” mode and a “cooked” mode. The “raw” mode is cat classic; it prints a file character for character. The “cooked” mode is cat with all the 4BSD command-line options. The distinction makes sense but it also pads out the implementation so that it seems more complex at first glance than it actually is. There is also a fancy error handling function at the end of the file that further adds to its length.</p>
</blockquote>

<ul>
<li>MacOS</li>
</ul>

<blockquote>
<p>The very first release of Mac OS X thus includes an implementation of cat pulled from the NetBSD project. So the first Mac OS X implementation of cat is Kevin Fall’s cat. The only thing that had changed over the intervening decade was that Fall’s error-handling function err() was removed and the err() function made available by err.h was used in its place. err.h is a BSD extension to the C standard library.<br>
The NetBSD implementation of cat was later swapped out for FreeBSD’s implementation of cat. According to Wikipedia, Apple began using FreeBSD instead of NetBSD in Mac OS X 10.3 (Panther). But the Mac OS X implementation of cat, according to Apple’s own open source releases, was not replaced until Mac OS X 10.5 (Leopard) was released in 2007. The FreeBSD implementation that Apple swapped in for the Leopard release is the same implementation on Apple computers today. As of 2018, the implementation has not been updated or changed at all since 2007.<br>
So the Mac OS cat is old. As it happens, it is actually two years older than its 2007 appearance in MacOS X would suggest. This 2005 change, which is visible in FreeBSD’s Github mirror, was the last change made to FreeBSD’s cat before Apple pulled it into Mac OS X. So the Mac OS X cat implementation, which has not been kept in sync with FreeBSD’s cat implementation, is officially 13 years old. There’s a larger debate to be had about how much software can change before it really counts as the same software; in this case, the source file has not changed at all since 2005.<br>
The cat implementation used by Mac OS today is not that different from the implementation that Fall wrote for the 1991 BSD Net/2 release. The biggest difference is that a whole new function was added to provide Unix domain socket support. At some point, a FreeBSD developer also seems to have decided that Fall’s raw_args() function and cook_args() should be combined into a single function called scanfiles(). Otherwise, the heart of the program is still Fall’s code.<br>
I asked Fall how he felt about having written the cat implementation now used by millions of Apple users, either directly or indirectly through some program that relies on cat being present. Fall, who is now a consultant and a co-author of the most recent editions of TCP/IP Illustrated, says that he is surprised when people get such a thrill out of learning about his work on cat. Fall has had a long career in computing and has worked on many high-profile projects, but it seems that many people still get most excited about the six months of work he put into rewriting cat in 1989.</p>
</blockquote>

<ul>
<li>The Hundred-Year-Old Program</li>
</ul>

<blockquote>
<p>In the grand scheme of things, computers are not an old invention. We’re used to hundred-year-old photographs or even hundred-year-old camera footage. But computer programs are in a different category—they’re high-tech and new. At least, they are now. As the computing industry matures, will we someday find ourselves using programs that approach the hundred-year-old mark?<br>
Computer hardware will presumably change enough that we won’t be able to take an executable compiled today and run it on hardware a century from now. Perhaps advances in programming language design will also mean that nobody will understand C in the future and cat will have long since been rewritten in another language. (Though C has already been around for fifty years, and it doesn’t look like it is about to be replaced any time soon.) But barring all that, why not just keep using the cat we have forever?<br>
I think the history of cat shows that some ideas in computer science are in fact very durable. Indeed, with cat, both the idea and the program itself are old. It may not be accurate to say that the cat on my computer is from 1969. But I could make a case for saying that the cat on my computer is from 1989, when Fall wrote his implementation of cat. Lots of other software is just as ancient. So maybe we shouldn’t think of computer science and software development primarily as fields that disrupt the status quo and invent new things. Our computer systems are built out of historical artifacts. At some point, we may all spend more time trying to understand and maintain those historical artifacts than we spend writing new code.</p>
</blockquote>

<p><hr></p>

<p>##News Roundup<br>
###<a href="https://www.bleepingcomputer.com/news/security/trivial-bug-in-xorg-gives-root-permission-on-linux-and-bsd-systems/">Trivial Bug in X.Org Gives Root Permission on Linux and BSD Systems</a></p>

<blockquote>
<p>A vulnerability that is trivial to exploit allows privilege escalation to root level on Linux and BSD distributions using <a href="http://X.Org">X.Org</a> server, the open source implementation of the X Window System that offers the graphical environment.<br>
The flaw is now identified as CVE-2018-14665 (credited to security researcher Narendra Shinde). It has been present in xorg-server for two years, since version 1.19.0 and is exploitable by a limited user as long as the X server runs with elevated permissions.</p>
</blockquote>

<ul>
<li>Privilege escalation and arbitrary file overwrite</li>
</ul>

<blockquote>
<p>An advisory on Thursday describes the problem as an “incorrect command-line parameter validation” that also allows an attacker to overwrite arbitrary files.<br>
Privilege escalation can be accomplished via the -modulepath argument by setting an insecure path to modules loaded by the <a href="http://X.org">X.org</a> server. Arbitrary file overwrite is possible through the -logfile argument, because of improper verification when parsing the option.</p>
</blockquote>

<ul>
<li>Bug could have been avoided in OpenBSD 6.4</li>
</ul>

<blockquote>
<p>OpenBSD, the free and open-source operating system with a strong focus on security, uses xorg. On October 18, the project released version 6.4 of the OS, affected by CVE-2018-14665. This could have been avoided, though.<br>
Theo de Raadt, founder and leader of the OpenBSD project, says that X maintainer knew about the problem since at least October 11. For some reason, the OpenBSD developers received the message one hour before the public announcement this Thursday, a week after their new OS release.<br>
“As yet we don’t have answers about why our X maintainer (on the X security team) and his team provided information to other projects (some who don’t even ship with this new X server) but chose to not give us a heads-up which could have saved all the new 6.4 users a lot of grief,” Raadt says.<br>
Had OpenBSD developers known about the bug before the release, they could have taken steps to mitigate the problem or delay the launch for a week or two.<br>
To remedy the problem, the OpenBSD project provides a source code patch, which requires compiling and rebuilding the X server.<br>
As a temporary solution, users can disable the Xorg binary by running the following command:</p>
</blockquote>

<p><code>chmod u-s /usr/X11R6/bin/Xorg</code></p>

<ul>
<li>Trivial exploitation</li>
</ul>

<blockquote>
<p>CVE-2018-14665 does not help compromise systems, but it is useful in the following stages of an attack.<br>
Leveraging it after gaining access to a vulnerable machine is fairly easy. Matthew Hickey, co-founder, and head of Hacker House security outfit created and published an exploit, saying that it can be triggered from a remote SSH session.<br>
Three hours after the public announcement of the security gap, Daemon Security CEO Michael Shirk replied with one line that overwrote shadow files on the system. Hickey did one better and fit the entire local privilege escalation exploit in one line.<br>
Apart from OpenBSD, other operating systems affected by the bug include Debian and Ubuntu, Fedora and its downstream distro  Red Hat Enterprise Linux along with its community-supported counterpart CentOS.</p>
</blockquote>

<p><hr></p>

<p>###<a href="https://blog.gsora.xyz/openbsd-on-the-desktop-some-thoughts/">OpenBSD on the Desktop: some thoughts</a></p>

<blockquote>
<p>I’ve been using OpenBSD on my ThinkPad X230 for some weeks now, and the experience has been peculiar in some ways.<br>
The OS itself in my opinion is not ready for widespread desktop usage, and the development team is not trying to push it in the throat of anybody who wants a Windows or macOS alternative.<br>
You need to understand a little bit of how *NIX systems work, because you’ll use CLI more than UI.<br>
That’s not necessarily bad, and I’m sure I learned a trick or two that could translate easily to Linux or macOS.<br>
Their development process is purely based on developers that love to contribute and hack around, just because it’s fun.<br>
Even the mailing list is a cool place to hang on!<br>
Code correctness and security are a must, nothing gets committed if it doesn’t get reviewed thoroughly first - nowadays the first two properties should be enforced in every major operating system.<br>
I like the idea of a platform that continually evolves.<br>
pledge(2) and unveil(2) are the proof that with a little effort, you can secure existing software better than ever.<br>
I like the “sensible defaults” approach, having an OS ready to be used - UI included if you selected it during the setup process - is great.<br>
Just install a browser and you’re ready to go.<br>
Manual pages on OpenBSD are real manuals, not an extension of the “–help” command found in most CLI softwares.<br>
They help you understand inner workings of the operating system, no internet connection needed.<br>
There are some trade-offs, too.<br>
Performance is not first-class, mostly because of all the security mitigations and checks done at runtime3.<br>
I write Go code in neovim, and sometimes you can feel a slight slowdown when you’re compiling and editing multiple files at the same time, but usually I can’t notice any meaningful difference.<br>
Browsers are a different matter though, you can definitely feel something differs from the experience you can have on mainstream operating systems.<br>
But again, trade-offs.<br>
To use OpenBSD on the desktop you must be ready to sacrifice some of the goodies of mainstream OSes, but if you’re searching for a zen place to do your computing stuff, it’s the best you can get right now.</p>
</blockquote>

<p><hr></p>

<p>###<a href="https://distrowatch.com/weekly.php?issue=20180813#nomadbsd">Review: NomadBSD 1.1</a></p>

<blockquote>
<p>One of the most recent additions to the DistroWatch database is NomadBSD. According to the NomadBSD website: “NomadBSD is a 64-bit live system for USB flash drives, based on FreeBSD. Together with automatic hardware detection and setup, it is configured to be used as a desktop system that works out of the box, but can also be used for data recovery.”<br>
The latest release of NomadBSD (or simply “Nomad”, as I will refer to the project in this review) is version 1.1. It is based on FreeBSD 11.2 and is offered in two builds, one for generic personal computers and one for Macbooks. The release announcement mentions version 1.1 offers improved video driver support for Intel and AMD cards. The operating system ships with Octopkg for graphical package management and the system should automatically detect, and work with, VirtualBox environments.<br>
Nomad 1.1 is available as a 2GB download, which we then decompress to produce a 4GB file which can be written to a USB thumb drive. There is no optical media build of Nomad as it is designed to be run entirely from the USB drive, and write data persistently to the drive, rather than simply being installed from the USB media.</p>
</blockquote>

<ul>
<li>Initial setup</li>
</ul>

<blockquote>
<p>Booting from the USB drive brings up a series of text-based menus which ask us to configure key parts of the operating system. We are asked to select our time zone, keyboard layout, keyboard model, keyboard mapping and our preferred language. While we can select options from a list, the options tend to be short and cryptic. Rather than “English (US)”, for example, we might be given “en_US”. We are also asked to create a password for the root user account and another one for a regular user which is called “nomad”. We can then select which shell nomad will use. The default is zsh, but there are plenty of other options, including csh and bash. We have the option of encrypting our user’s home directory.<br>
I feel it is important to point out that these settings, and nomad’s home directory, are stored on the USB drive. The options and settings we select will not be saved to our local hard drive and our configuration choices will not affect other operating systems already installed on our computer. At the end, the configuration wizard asks if we want to run the BSDstats service. This option is not explained at all, but it contacts BSDstats to provide some basic statistics on BSD users.<br>
The system then takes a few minutes to apply its changes to the USB drive and automatically reboots the computer. While running the initial setup wizard, I had nearly identical experiences when running Nomad on a physical computer and running the operating system in a VirtualBox virtual machine. However, after the initial setup process was over, I had quite different experiences depending on the environment so I want to divide my experiences into two different sections.</p>
</blockquote>

<ul>
<li>Physical desktop computer</li>
</ul>

<blockquote>
<p>At first, Nomad failed to boot on my desktop computer. From the operating system’s boot loader, I enabled Safe Mode which allowed Nomad to boot. At that point, Nomad was able to start up, but would only display a text console. The desktop environment failed to start when running in Safe Mode.<br>
Networking was also disabled by default and I had to enable a network interface and DHCP address assignment to connect to the Internet. Instructions for enabling networking can be found in FreeBSD’s Handbook. Once we are on-line we can use the pkg command line package manager to install and update software. Had the desktop environment worked then the Octopkg graphical package manager would also be available to make browsing and installing software a point-n-click experience.<br>
Had I been able to run the desktop for prolonged amounts of time I could have made use of such pre-installed items as the Firefox web browser, the VLC media player, LibreOffice and Thunderbird. Nomad offers a fairly small collection of desktop applications, but what is there is mostly popular, capable software.<br>
When running the operating system I noted that, with one user logged in, Nomad only runs 15 processes with the default configuration. These processes require less than 100MB of RAM, and the whole system fits comfortably on a 4GB USB drive.</p>
</blockquote>

<ul>
<li>Conclusions</li>
</ul>

<blockquote>
<p>Ultimately using Nomad was not a practical option for me. The operating system did not work well with my hardware, or the virtual environment. In the virtual machine, Nomad crashed consistently after just a few minutes of uptime. On the desktop computer, I could not get a desktop environment to run. The command line tools worked well, and the system performed tasks very quickly, but a command line only environment is not well suited to my workflow.<br>
I like the idea of what NomadBSD is offering. There are not many live desktop flavours of FreeBSD, apart from GhostBSD. It was nice to see developers trying to make a FreeBSD-based, plug-and-go operating system that would offer a desktop and persistent storage. I suspect the system would work and perform its stated functions on different hardware, but in my case my experiment was necessarily short lived.</p>
</blockquote>

<p><hr></p>

<p>##Beastie Bits</p>

<ul>
<li><a href="https://oshogbo.vexillium.org/blog/50/">FreeBSD lockless algorithm - seq</a></li>
<li><a href="https://github.com/bob-beck/libtls/blob/master/TUTORIAL.md">Happy Bob’s Libtls tutorial</a></li>
<li><a href="https://chown.me/blog/locking-openbsd-when-sleeping.html">Locking OpenBSD when it’s sleeping</a></li>
<li><a href="https://www.geoghegan.ca/serviio.html">iio - The OpenBSD Way</a></li>
<li><a href="https://bsdboy.ml/blog/installing-hugo-and-hosting-on-openbsd.html">Installing Hugo and Hosting Website on OpenBSD Server</a></li>
<li><a href="http://blog.osorio.me/post.php?idpost=1">Fosdem 2019 reminder: BSD devroom CfP</a></li>
<li><a href="https://www.youtube.com/watch?v=4gOoPxGKKjA&amp;feature=youtu.be">OpenBGPD, gotta go fast! - Claudio Jeker</a></li>
<li><a href="http://project-trident.org/post/2018-11-10_rc3-available/">Project Trident RC3 available</a></li>
<li><a href="https://lists.freebsd.org/pipermail/freebsd-announce/2018-November/001849.html">FreeBSD 10.4 EOL</a></li>
<li><a href="https://bsd.network/@ephemeris/101073578346815313">Play “Crazy Train” through your APU2 speaker</a></li>
</ul>

<p><hr></p>

<p>##Feedback/Questions</p>

<ul>
<li>Tobias - <a href="http://dpaste.com/174WGEY#wrap">Satisfying my storage hunger and wallet pains</a></li>
<li>Lasse - <a href="http://dpaste.com/1QBMH73">Question regarding FreeBSD backups</a>
<ul>
<li><a href="https://twitter.com/dlangille">https://twitter.com/dlangille</a></li>
<li><a href="https://dan.langille.org/">https://dan.langille.org/</a></li>
</ul>

<p></li><br>
</ul><br>
<hr></p>

<ul>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li>
</ul>

<p><hr></p>]]>
  </itunes:summary>
</item>
<item>
  <title>Episode 251: Crypto HAMMER | BSD Now 251</title>
  <link>https://www.bsdnow.tv/251</link>
  <guid isPermaLink="false">http://feed.jupiter.zone/bsdnow#entry-2136</guid>
  <pubDate>Thu, 21 Jun 2018 05:00:00 -0400</pubDate>
  <author>JT Pennington</author>
  <enclosure url="https://aphid.fireside.fm/d/1437767933/c91b88f1-e824-4815-bcb8-5227818d6010/034d5002-639f-4744-a773-9c000ce91d1c.mp3" length="53300210" type="audio/mp3"/>
  <itunes:episodeType>full</itunes:episodeType>
  <itunes:author>JT Pennington</itunes:author>
  <itunes:subtitle>DragonflyBSD’s hammer1 encrypted master/slave setup, second part of our BSDCan recap, NomadBSD 1.1-RC1 available, OpenBSD adds an LDAP client to base, FreeBSD gets pNFS support, Intel FPU Speculation Vulnerability confirmed, and what some Unix command names mean.</itunes:subtitle>
  <itunes:duration>1:28:43</itunes:duration>
  <itunes:explicit>no</itunes:explicit>
  <itunes:image href="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/c/c91b88f1-e824-4815-bcb8-5227818d6010/cover.jpg?v=4"/>
  <description>DragonflyBSD’s hammer1 encrypted master/slave setup, second part of our BSDCan recap, NomadBSD 1.1-RC1 available, OpenBSD adds an LDAP client to base, FreeBSD gets pNFS support, Intel FPU Speculation Vulnerability confirmed, and what some Unix command names mean.
&lt;p&gt;##Headlines&lt;br&gt;
&lt;a href="https://www.reddit.com/r/dragonflybsd/comments/8riwtx/towards_a_hammer1_masterslave_encrypted_setup/"&gt;DragonflyBSD: Towards a HAMMER1 master/slave encrypted setup with LUKS&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I just wanted to share my experience with setting up DragonFly master/slave HAMMER1 PFS’s on top of LUKS&lt;br&gt;
So after a long time using an Synology for my NFS needs, I decided it was time to rethink my setup a little since I had several issues with it :&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;You cannot run NFS on top of encrypted partitions easily&lt;/li&gt;
&lt;li&gt;I suspect I am having some some data corruption (bitrot) on the ext4 filesystem&lt;/li&gt;
&lt;li&gt;the NIC was stcuk to 100 Mbps instead of 1 Gbps even after swapping cables, switches, you name it&lt;/li&gt;
&lt;li&gt;It’s proprietary&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;I have been playing with DragonFly in the past and knew about HAMMER, now I just had the perfect excuse to actually use it in production :) After setting up the OS, creating the LUKS partition and HAMMER FS was easy :&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;code&gt;kdload dm&lt;/code&gt;&lt;br&gt;
&lt;code&gt;cryptsetup luksFormat /dev/serno/&amp;lt;id1&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;code&gt;cryptsetup luksOpen /dev/serno/&amp;lt;id1&amp;gt; fort_knox&lt;/code&gt;&lt;br&gt;
&lt;code&gt;newfs_hammer -L hammer1_secure_master /dev/mapper/fort_knox&lt;/code&gt;&lt;br&gt;
&lt;code&gt;cryptsetup luksFormat /dev/serno/&amp;lt;id2&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;code&gt;cryptsetup luksOpen /dev/serno/&amp;lt;id2&amp;gt; fort_knox_slave&lt;/code&gt;&lt;br&gt;
&lt;code&gt;newfs_hammer -L hammer1_secure_slave /dev/mapper/fort_knox_slave&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mount the 2 drives :&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;mount /dev/mapper/fort_knox /fort_knox&lt;/code&gt;&lt;br&gt;
&lt;code&gt;mount /dev/mapper_fort_know_slave /fort_knox_slave&lt;/code&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;You can now put your data under /fort_knox&lt;br&gt;
Now, off to setting up the replication, first get the shared-uuid of /fort_knox&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;code&gt;hammer pfs-status /fort_knox&lt;/code&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Create a PFS slave “linked” to the master&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;code&gt;hammer pfs-slave /fort_knox_slave/pfs/slave shared-uuid=f9e7cc0d-eb59-10e3-a5b5-01e6e7cefc12&lt;/code&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;And then stream your data to the slave PFS !&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;code&gt;hammer mirror-stream /fort_knox /fort_knox_slave/pfs/slave&lt;/code&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;After that, setting NFS is fairly trivial even though I had problem with the /etc/exports syntax which is different than Linux&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;There’s a few things I wish would be better though but nothing too problematic or without workarounds :&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Cannot unlock LUKS partitions at boot time afaik (Acceptable tradeoff for the added security LUKS gives me vs my old Synology setup) but this force me to run a script to unlock LUKS, mount hammer and start mirror-stream at each boot&lt;/li&gt;
&lt;li&gt;No S1/S3 sleep so I made a script to shutdown the system when there’s no network neighborgs to serve the NFS&lt;/li&gt;
&lt;li&gt;As my system isn’t online 24/7 for energy reasons, I guess will have to run hammer cleanup myself from time to time&lt;/li&gt;
&lt;li&gt;Some uncertainty because hey, it’s kind of exotic but exciting too :)&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Overall, I am happy, HAMMER1 and PFS are looking really good, DragonFly is a neat Unix and the community is super friendly (Matthew Dillon actually provided me with a kernel patch to fix the broken ACPI on the PC holding this setup, many thanks!), the system is still a “work in progress” but it is already serving my files as I write this post.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Let’s see in 6 months how it goes in the longer run !&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Helpful resources : &lt;a href="https://www.dragonflybsd.org/docs/how_to_implement_hammer_pseudo_file_system__40___pfs___41___slave_mirroring_from_pfs_master/"&gt;https://www.dragonflybsd.org/docs/how_to_implement_hammer_pseudo_file_system__40___pfs___41___slave_mirroring_from_pfs_master/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;###BSDCan 2018 Recap&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;As promised, here is our second part of our BSDCan report, covering the conference proper. The last tutorials/devsummit of that day lead directly into the conference, as people could pick up their registration packs at the Red Lion and have a drink with fellow BSD folks.&lt;/li&gt;
&lt;li&gt;Allan and I were there only briefly, as we wanted to get back to the “Newcomers orientation and mentorship” session lead by Michael W. Lucas. This session is intended for people that are new to BSDCan (maybe their first BSD conference ever?) and may have questions. Michael explained everything from the 6-2-1 rule (hours of sleep, meals per day, and number of showers that attendees should have at a minimum), to the partner and widowers program (lead by his wife Liz), to the sessions that people should not miss (opening, closing, and hallway track). Old-time BSDCan folks were asked to stand up so that people can recognize them and ask them any questions they might have during the conferences. The session was well attended. Afterwards, people went for dinner in groups, a big one lead by Michael Lucas to his favorite Shawarma place, followed by gelato (of course). This allowed newbies to mingle over dinner and ice cream, creating a welcoming atmosphere.&lt;/li&gt;
&lt;li&gt;The next day, after Dan Langille opened the conference, Benno Rice gave the keynote presentation about “The Tragedy of Systemd”.&lt;/li&gt;
&lt;li&gt;Benedict went to the following talks:&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;“Automating Network Infrastructures with Ansible on FreeBSD” in the DevSummit track. A good talk that connected well with his Ansible tutorial and even allowed some discussions among participants.&lt;br&gt;
“All along the dwatch tower”: Devin delivered a well prepared talk. I first thought that the number of slides would not fit into the time slot, but she even managed to give a demo of her work, which was well received. The dwatch tool she wrote should make it easy for people to get started with DTrace without learning too much about the syntax at first. The visualizations were certainly nice to see, combining different tools together in a new way.&lt;br&gt;
ZFS BoF, lead by Allan and Matthew Ahrens&lt;br&gt;
SSH Key Management by Michael W. Lucas. Yet another great talk where I learned a lot. I did not get to the SSH CA chapter in the new SSH Mastery book, so this was a good way to wet my appetite for it and motivated me to look into creating one for the cluster that I’m managing.&lt;br&gt;
The rest of the day was spent at the FreeBSD Foundation table, talking to various folks. Then, Allan and I had an interview with Kirk McKusick for National FreeBSD Day, then we had a core meeting, followed by a core dinner.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Day 2:
&lt;blockquote&gt;
&lt;p&gt;“Flexible Disk Use in OpenZFS”: Matthew Ahrens talking about the feature he is implementing to expand a RAID-Z with a single disk, as well as device removal.&lt;br&gt;
Allan’s talk about his efforts to implement ZSTD in OpenZFS as another compression algorithm. I liked his overview slides with the numbers comparing the algorithms for their effectiveness and his personal story about the sometimes rocky road to get the feature implemented.&lt;br&gt;
“zrepl - ZFS replication” by Christian Schwarz, was well prepared and even had a demo to show what his snapshot replication tool can do. We covered it on the show before and people can find it under sysutils/zrepl. Feedback and help is welcome.&lt;br&gt;
“The Evolution of FreeBSD Governance” by Kirk McKusick was yet another great talk by him covering the early days of FreeBSD until today, detailing some of the progress and challenges the project faced over the years in terms of leadership and governance. This is an ongoing process that everyone in the community should participate in to keep the project healthy and infused with fresh blood.&lt;br&gt;
Closing session and auction were funny and great as always.&lt;br&gt;
All in all, yet another amazing BSDCan. Thank you Dan Langille and your organizing team for making it happen! Well done.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Digital Ocean&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;###&lt;a href="http://nomadbsd.org/index.html#rel1.1-rc1"&gt;NomadBSD 1.1-RC1 Released&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The first – and hopefully final – release candidate of NomadBSD 1.1 is available!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Changes&lt;/li&gt;
&lt;li&gt;The base system has been upgraded to FreeBSD 11.2-RC3&lt;/li&gt;
&lt;li&gt;EFI booting has been fixed.&lt;/li&gt;
&lt;li&gt;Support for modern Intel GPUs has been added.&lt;/li&gt;
&lt;li&gt;Support for installing packages has been added.&lt;/li&gt;
&lt;li&gt;Improved setup menu.&lt;/li&gt;
&lt;li&gt;More software packages:&lt;/li&gt;
&lt;li&gt;benchmarks/bonnie++&lt;/li&gt;
&lt;li&gt;DSBDisplaySettings&lt;/li&gt;
&lt;li&gt;DSBExec&lt;/li&gt;
&lt;li&gt;DSBSu&lt;/li&gt;
&lt;li&gt;mail/thunderbird&lt;/li&gt;
&lt;li&gt;net/mosh&lt;/li&gt;
&lt;li&gt;ports-mgmt/octopkg&lt;/li&gt;
&lt;li&gt;print/qpdfview&lt;/li&gt;
&lt;li&gt;security/nmap&lt;/li&gt;
&lt;li&gt;sysutils/ddrescue&lt;/li&gt;
&lt;li&gt;sysutils/fusefs-hfsfuse&lt;/li&gt;
&lt;li&gt;sysutils/fusefs-sshfs&lt;/li&gt;
&lt;li&gt;sysutils/sleuthkit&lt;/li&gt;
&lt;li&gt;www/lynx&lt;/li&gt;
&lt;li&gt;x11-wm/compton&lt;/li&gt;
&lt;li&gt;x11/xev&lt;/li&gt;
&lt;li&gt;x11/xterm&lt;/li&gt;
&lt;li&gt;Many improvements and bugfixes&lt;br&gt;
The image and instructions can be found &lt;a href="http://nomadbsd.org/download.html"&gt;here&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;##News Roundup&lt;br&gt;
&lt;a href="https://undeadly.org/cgi?action=article;sid=20180616115514"&gt;LDAP client added to -current&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;CVSROOT:    /cvs
Module name:    src
Changes by: reyk@cvs.openbsd.org    2018/06/13 09:45:58

Log message:
    Import ldap(1), a simple ldap search client.
    We have an ldapd(8) server and ypldap in base, so it makes sense to
    have a simple LDAP client without depending on the OpenLDAP package.
    This tool can be used in an ssh(1) AuthorizedKeysCommand script.
    
    With feedback from many including millert@ schwarze@ gilles@ dlg@ jsing@
    
    OK deraadt@
    
    Status:
    
    Vendor Tag: reyk
    Release Tags:   ldap_20180613
    
    N src/usr.bin/ldap/Makefile
    N src/usr.bin/ldap/aldap.c
    N src/usr.bin/ldap/aldap.h
    N src/usr.bin/ldap/ber.c
    N src/usr.bin/ldap/ber.h
    N src/usr.bin/ldap/ldap.1
    N src/usr.bin/ldap/ldapclient.c
    N src/usr.bin/ldap/log.c
    N src/usr.bin/ldap/log.h
    
    No conflicts created by this import
&lt;/code&gt;&lt;/pre&gt;
&lt;hr&gt;
&lt;p&gt;###&lt;a href="https://undeadly.org/cgi?action=article;sid=20180614064341"&gt;Intel® FPU Speculation Vulnerability Confirmed&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Earlier this month, Philip Guenther (guenther@) &lt;a href="https://marc.info/?l=openbsd-cvs&amp;amp;m=152818076013158&amp;amp;w=2"&gt;committed&lt;/a&gt; (to amd64 -current) a change from lazy to semi-eager FPU switching to mitigate against rumored FPU state leakage in Intel® CPUs.&lt;/li&gt;
&lt;li&gt;Theo de Raadt (deraadt@) discussed this in &lt;a href="https://undeadly.org/cgi?action=article;sid=20180611101817"&gt;his BSDCan 2018 session&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Using information disclosed in Theo’s talk, &lt;a href="https://twitter.com/cperciva/status/1007010583244230656"&gt;Colin Percival&lt;/a&gt; developed a proof-of-concept exploit in around 5 hours. This seems to have prompted an early end to an embargo (in which OpenBSD was not involved), and the &lt;a href="https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00145.html"&gt;official announcement&lt;/a&gt; of the vulnerability.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://svnweb.freebsd.org/base?view=revision&amp;amp;revision=335072"&gt;FPU change in FreeBSD&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;Summary:
System software may utilize the Lazy FP state restore technique to delay the restoring of state until an instruction operating on that state is actually executed by the new process. Systems using Intel® Core-based microprocessors may potentially allow a local process to infer data utilizing Lazy FP state restore from another process through a speculative execution side channel.
Description:
System software may opt to utilize Lazy FP state restore instead of eager save and restore of the state upon a context switch. Lazy restored states are potentially vulnerable to exploits where one process may infer register values of other processes through a speculative execution side channel that infers their value.
·    CVSS - 4.3 Medium CVSS:3.0/AV:L/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N
Affected Products:
Intel® Core-based microprocessors.
Recommendations:
If an XSAVE-enabled feature is disabled, then we recommend either its state component bitmap in the extended control register (XCR0) is set to 0 (e.g. XCR0[bit 2]=0 for AVX, XCR0[bits 7:5]=0 for AVX512) or the corresponding register states of the feature should be cleared prior to being disabled. Also for relevant states (e.g. x87, SSE, AVX, etc.), Intel recommends system software developers utilize Eager FP state restore in lieu of Lazy FP state restore.
Acknowledgements:
Intel would like to thank Julian Stecklina from Amazon Germany, Thomas Prescher from Cyberus Technology GmbH (https://www.cyberus-technology.de/), Zdenek Sojka from SYSGO AG (http://sysgo.com), and Colin Percival for reporting this issue and working with us on coordinated disclosure.
&lt;/code&gt;&lt;/pre&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;iXsystems&lt;/strong&gt;&lt;br&gt;
iX Ad Spot&lt;br&gt;
&lt;a href="https://www.ixsystems.com/blog/bsdcan-2018-recap/"&gt;iX Systems - BSDCan 2018 Recap&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;###&lt;a href="https://svnweb.freebsd.org/base?view=revision&amp;amp;revision=335012"&gt;FreeBSD gets pNFS support&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Merge the pNFS server code from projects/pnfs-planb-server into head.

This code merge adds a pNFS service to the NFSv4.1 server. Although it is
a large commit it should not affect behaviour for a non-pNFS NFS server.
Some documentation on how this works can be found at:
Merge the pN http://people.freebsd.org/~rmacklem/pnfs-planb-setup.txt
and will hopefully be turned into a proper document soon.
This is a merge of the kernel code. Userland and man page changes will
come soon, once the dust settles on this merge.
It has passed a "make universe", so I hope it will not cause build problems.
It also adds NFSv4.1 server support for the "current stateid".

Here is a brief overview of the pNFS service:
A pNFS service separates the Read/Write operations from all the other NFSv4.1
Metadata operations. It is hoped that this separation allows a pNFS service
to be configured that exceeds the limits of a single NFS server for either
storage capacity and/or I/O bandwidth.
It is possible to configure mirroring within the data servers (DSs) so that
the data storage file for an MDS file will be mirrored on two or more of
the DSs.
When this is used, failure of a DS will not stop the pNFS service and a
failed DS can be recovered once repaired while the pNFS service continues
to operate.  Although two way mirroring would be the norm, it is possible
to set a mirroring level of up to four or the number of DSs, whichever is
less.
The Metadata server will always be a single point of failure,
just as a single NFS server is.

A Plan B pNFS service consists of a single MetaData Server (MDS) and K
Data Servers (DS), all of which are recent FreeBSD systems.
Clients will mount the MDS as they would a single NFS server.
When files are created, the MDS creates a file tree identical to what a
single NFS server creates, except that all the regular (VREG) files will
be empty. As such, if you look at the exported tree on the MDS directly
on the MDS server (not via an NFS mount), the files will all be of size 0.
Each of these files will also have two extended attributes in the system
attribute name space:
pnfsd.dsfile - This extended attrbute stores the information that
    the MDS needs to find the data storage file(s) on DS(s) for this file.
pnfsd.dsattr - This extended attribute stores the Size, AccessTime, ModifyTime
    and Change attributes for the file, so that the MDS doesn't need to
    acquire the attributes from the DS for every Getattr operation.
For each regular (VREG) file, the MDS creates a data storage file on one
(or more if mirroring is enabled) of the DSs in one of the "dsNN"
subdirectories.  The name of this file is the file handle
of the file on the MDS in hexadecimal so that the name is unique.
The DSs use subdirectories named "ds0" to "dsN" so that no one directory
gets too large. The value of "N" is set via the sysctl vfs.nfsd.dsdirsize
on the MDS, with the default being 20.
For production servers that will store a lot of files, this value should
probably be much larger.
It can be increased when the "nfsd" daemon is not running on the MDS,
once the "dsK" directories are created.

For pNFS aware NFSv4.1 clients, the FreeBSD server will return two pieces
of information to the client that allows it to do I/O directly to the DS.
DeviceInfo - This is relatively static information that defines what a DS
             is. The critical bits of information returned by the FreeBSD
             server is the IP address of the DS and, for the Flexible
             File layout, that NFSv4.1 is to be used and that it is
             "tightly coupled".
             There is a "deviceid" which identifies the DeviceInfo.
Layout     - This is per file and can be recalled by the server when it
             is no longer valid. For the FreeBSD server, there is support
             for two types of layout, call File and Flexible File layout.
             Both allow the client to do I/O on the DS via NFSv4.1 I/O
             operations. The Flexible File layout is a more recent variant
             that allows specification of mirrors, where the client is
             expected to do writes to all mirrors to maintain them in a
             consistent state. The Flexible File layout also allows the
             client to report I/O errors for a DS back to the MDS.
             The Flexible File layout supports two variants referred to as
             "tightly coupled" vs "loosely coupled". The FreeBSD server always
             uses the "tightly coupled" variant where the client uses the
             same credentials to do I/O on the DS as it would on the MDS.
             For the "loosely coupled" variant, the layout specifies a
             synthetic user/group that the client uses to do I/O on the DS.
             The FreeBSD server does not do striping and always returns
             layouts for the entire file. The critical information in a layout
             is Read vs Read/Writea and DeviceID(s) that identify which
             DS(s) the data is stored on.

At this time, the MDS generates File Layout layouts to NFSv4.1 clients
that know how to do pNFS for the non-mirrored DS case unless the sysctl
vfs.nfsd.default_flexfile is set non-zero, in which case Flexible File
layouts are generated.
The mirrored DS configuration always generates Flexible File layouts.
For NFS clients that do not support NFSv4.1 pNFS, all I/O operations
are done against the MDS which acts as a proxy for the appropriate DS(s).
When the MDS receives an I/O RPC, it will do the RPC on the DS as a proxy.
If the DS is on the same machine, the MDS/DS will do the RPC on the DS as
a proxy and so on, until the machine runs out of some resource, such as
session slots or mbufs.
As such, DSs must be separate systems from the MDS.

***

###[What does {some strange unix command name} stand for?](http://www.unixguide.net/unix/faq/1.3.shtml)

+ awk = "Aho Weinberger and Kernighan" 
+ grep = "Global Regular Expression Print" 
+ fgrep = "Fixed GREP". 
+ egrep = "Extended GREP" 
+ cat = "CATenate" 
+ gecos = "General Electric Comprehensive Operating Supervisor" 
+ nroff = "New ROFF" 
+ troff = "Typesetter new ROFF" 
+ tee = T 
+ bss = "Block Started by Symbol
+ biff = "BIFF" 
+ rc (as in ".cshrc" or "/etc/rc") = "RunCom" 
+ Don Libes' book "Life with Unix" contains lots more of these 
tidbits. 
***

##Beastie Bits
+ [RetroBSD: Unix for microcontrollers](http://retrobsd.org/wiki/doku.php)
+ [On the matter of OpenBSD breaking embargos (KRACK)](https://marc.info/?l=openbsd-tech&amp;amp;m=152910536208954&amp;amp;w=2)
+ [Theo's Basement Computer Paradise (1998)](https://zeus.theos.com/deraadt/hosts.html)
+ [Airport Extreme runs NetBSD](https://jcs.org/2018/06/12/airport_ssh)
+ [What UNIX shell could have been](https://rain-1.github.io/shell-2.html)

***
Tarsnap ad
***

##Feedback/Questions
+ We need more feedback and questions. Please email feedback@bsdnow.tv 
+ Also, many of you owe us BSDCan trip reports! We have shared what our experience at BSDCan was like, but we want to hear about yours. What can we do better next year? What was it like being there for the first time?
+ [Jason writes in](https://slexy.org/view/s205jU58X2)
    + https://www.wheelsystems.com/en/products/wheel-fudo-psm/
+ [June 19th was National FreeBSD Day](https://twitter.com/search?src=typd&amp;amp;q=%23FreeBSDDay)
***

- Send questions, comments, show ideas/topics, or stories you want mentioned on the show to [feedback@bsdnow.tv](mailto:feedback@bsdnow.tv)
***

&lt;/code&gt;&lt;/pre&gt; 
</description>
  <itunes:keywords>freebsd,openbsd,netbsd,dragonflybsd,trueos,trident,hardenedbsd,tutorial,howto,guide,bsd,interview,hammer,Intel,NomadBSD,LDAP,pNFS,RetroBSD</itunes:keywords>
  <content:encoded>
    <![CDATA[<p>DragonflyBSD’s hammer1 encrypted master/slave setup, second part of our BSDCan recap, NomadBSD 1.1-RC1 available, OpenBSD adds an LDAP client to base, FreeBSD gets pNFS support, Intel FPU Speculation Vulnerability confirmed, and what some Unix command names mean.</p>

<p>##Headlines<br>
###<a href="https://www.reddit.com/r/dragonflybsd/comments/8riwtx/towards_a_hammer1_masterslave_encrypted_setup/">DragonflyBSD: Towards a HAMMER1 master/slave encrypted setup with LUKS</a></p>

<blockquote>
<p>I just wanted to share my experience with setting up DragonFly master/slave HAMMER1 PFS’s on top of LUKS<br>
So after a long time using an Synology for my NFS needs, I decided it was time to rethink my setup a little since I had several issues with it :</p>
</blockquote>

<ul>
<li>You cannot run NFS on top of encrypted partitions easily</li>
<li>I suspect I am having some some data corruption (bitrot) on the ext4 filesystem</li>
<li>the NIC was stcuk to 100 Mbps instead of 1 Gbps even after swapping cables, switches, you name it</li>
<li>It’s proprietary</li>
</ul>

<blockquote>
<p>I have been playing with DragonFly in the past and knew about HAMMER, now I just had the perfect excuse to actually use it in production :) After setting up the OS, creating the LUKS partition and HAMMER FS was easy :</p>
</blockquote>

<p><code>kdload dm</code><br>
<code>cryptsetup luksFormat /dev/serno/&lt;id1&gt;</code><br>
<code>cryptsetup luksOpen /dev/serno/&lt;id1&gt; fort_knox</code><br>
<code>newfs_hammer -L hammer1_secure_master /dev/mapper/fort_knox</code><br>
<code>cryptsetup luksFormat /dev/serno/&lt;id2&gt;</code><br>
<code>cryptsetup luksOpen /dev/serno/&lt;id2&gt; fort_knox_slave</code><br>
<code>newfs_hammer -L hammer1_secure_slave /dev/mapper/fort_knox_slave</code></p>

<ul>
<li>Mount the 2 drives :</li>
</ul>

<p><code>mount /dev/mapper/fort_knox /fort_knox</code><br>
<code>mount /dev/mapper_fort_know_slave /fort_knox_slave</code></p>

<blockquote>
<p>You can now put your data under /fort_knox<br>
Now, off to setting up the replication, first get the shared-uuid of /fort_knox</p>
</blockquote>

<p><code>hammer pfs-status /fort_knox</code></p>

<blockquote>
<p>Create a PFS slave “linked” to the master</p>
</blockquote>

<p><code>hammer pfs-slave /fort_knox_slave/pfs/slave shared-uuid=f9e7cc0d-eb59-10e3-a5b5-01e6e7cefc12</code></p>

<blockquote>
<p>And then stream your data to the slave PFS !</p>
</blockquote>

<p><code>hammer mirror-stream /fort_knox /fort_knox_slave/pfs/slave</code></p>

<blockquote>
<p>After that, setting NFS is fairly trivial even though I had problem with the /etc/exports syntax which is different than Linux</p>
</blockquote>

<blockquote>
<p>There’s a few things I wish would be better though but nothing too problematic or without workarounds :</p>
</blockquote>

<ul>
<li>Cannot unlock LUKS partitions at boot time afaik (Acceptable tradeoff for the added security LUKS gives me vs my old Synology setup) but this force me to run a script to unlock LUKS, mount hammer and start mirror-stream at each boot</li>
<li>No S1/S3 sleep so I made a script to shutdown the system when there’s no network neighborgs to serve the NFS</li>
<li>As my system isn’t online 24/7 for energy reasons, I guess will have to run hammer cleanup myself from time to time</li>
<li>Some uncertainty because hey, it’s kind of exotic but exciting too :)</li>
</ul>

<blockquote>
<p>Overall, I am happy, HAMMER1 and PFS are looking really good, DragonFly is a neat Unix and the community is super friendly (Matthew Dillon actually provided me with a kernel patch to fix the broken ACPI on the PC holding this setup, many thanks!), the system is still a “work in progress” but it is already serving my files as I write this post.</p>
</blockquote>

<blockquote>
<p>Let’s see in 6 months how it goes in the longer run !</p>
</blockquote>

<ul>
<li>Helpful resources : <a href="https://www.dragonflybsd.org/docs/how_to_implement_hammer_pseudo_file_system__40___pfs___41___slave_mirroring_from_pfs_master/">https://www.dragonflybsd.org/docs/how_to_implement_hammer_pseudo_file_system__40___pfs___41___slave_mirroring_from_pfs_master/</a></li>
</ul>

<p><hr></p>

<p>###BSDCan 2018 Recap</p>

<ul>
<li>As promised, here is our second part of our BSDCan report, covering the conference proper. The last tutorials/devsummit of that day lead directly into the conference, as people could pick up their registration packs at the Red Lion and have a drink with fellow BSD folks.</li>
<li>Allan and I were there only briefly, as we wanted to get back to the “Newcomers orientation and mentorship” session lead by Michael W. Lucas. This session is intended for people that are new to BSDCan (maybe their first BSD conference ever?) and may have questions. Michael explained everything from the 6-2-1 rule (hours of sleep, meals per day, and number of showers that attendees should have at a minimum), to the partner and widowers program (lead by his wife Liz), to the sessions that people should not miss (opening, closing, and hallway track). Old-time BSDCan folks were asked to stand up so that people can recognize them and ask them any questions they might have during the conferences. The session was well attended. Afterwards, people went for dinner in groups, a big one lead by Michael Lucas to his favorite Shawarma place, followed by gelato (of course). This allowed newbies to mingle over dinner and ice cream, creating a welcoming atmosphere.</li>
<li>The next day, after Dan Langille opened the conference, Benno Rice gave the keynote presentation about “The Tragedy of Systemd”.</li>
<li>Benedict went to the following talks:</li>
</ul>

<blockquote>
<p>“Automating Network Infrastructures with Ansible on FreeBSD” in the DevSummit track. A good talk that connected well with his Ansible tutorial and even allowed some discussions among participants.<br>
“All along the dwatch tower”: Devin delivered a well prepared talk. I first thought that the number of slides would not fit into the time slot, but she even managed to give a demo of her work, which was well received. The dwatch tool she wrote should make it easy for people to get started with DTrace without learning too much about the syntax at first. The visualizations were certainly nice to see, combining different tools together in a new way.<br>
ZFS BoF, lead by Allan and Matthew Ahrens<br>
SSH Key Management by Michael W. Lucas. Yet another great talk where I learned a lot. I did not get to the SSH CA chapter in the new SSH Mastery book, so this was a good way to wet my appetite for it and motivated me to look into creating one for the cluster that I’m managing.<br>
The rest of the day was spent at the FreeBSD Foundation table, talking to various folks. Then, Allan and I had an interview with Kirk McKusick for National FreeBSD Day, then we had a core meeting, followed by a core dinner.</p>
</blockquote>

<ul>
<li>Day 2:
<blockquote>
<p>“Flexible Disk Use in OpenZFS”: Matthew Ahrens talking about the feature he is implementing to expand a RAID-Z with a single disk, as well as device removal.<br>
Allan’s talk about his efforts to implement ZSTD in OpenZFS as another compression algorithm. I liked his overview slides with the numbers comparing the algorithms for their effectiveness and his personal story about the sometimes rocky road to get the feature implemented.<br>
“zrepl - ZFS replication” by Christian Schwarz, was well prepared and even had a demo to show what his snapshot replication tool can do. We covered it on the show before and people can find it under sysutils/zrepl. Feedback and help is welcome.<br>
“The Evolution of FreeBSD Governance” by Kirk McKusick was yet another great talk by him covering the early days of FreeBSD until today, detailing some of the progress and challenges the project faced over the years in terms of leadership and governance. This is an ongoing process that everyone in the community should participate in to keep the project healthy and infused with fresh blood.<br>
Closing session and auction were funny and great as always.<br>
All in all, yet another amazing BSDCan. Thank you Dan Langille and your organizing team for making it happen! Well done.</p>
</blockquote>
</li>
</ul>

<p><hr></p>

<p><strong>Digital Ocean</strong></p>

<p>###<a href="http://nomadbsd.org/index.html#rel1.1-rc1">NomadBSD 1.1-RC1 Released</a></p>

<blockquote>
<p>The first – and hopefully final – release candidate of NomadBSD 1.1 is available!</p>
</blockquote>

<ul>
<li>Changes</li>
<li>The base system has been upgraded to FreeBSD 11.2-RC3</li>
<li>EFI booting has been fixed.</li>
<li>Support for modern Intel GPUs has been added.</li>
<li>Support for installing packages has been added.</li>
<li>Improved setup menu.</li>
<li>More software packages:</li>
<li>benchmarks/bonnie++</li>
<li>DSBDisplaySettings</li>
<li>DSBExec</li>
<li>DSBSu</li>
<li>mail/thunderbird</li>
<li>net/mosh</li>
<li>ports-mgmt/octopkg</li>
<li>print/qpdfview</li>
<li>security/nmap</li>
<li>sysutils/ddrescue</li>
<li>sysutils/fusefs-hfsfuse</li>
<li>sysutils/fusefs-sshfs</li>
<li>sysutils/sleuthkit</li>
<li>www/lynx</li>
<li>x11-wm/compton</li>
<li>x11/xev</li>
<li>x11/xterm</li>
<li>Many improvements and bugfixes<br>
The image and instructions can be found <a href="http://nomadbsd.org/download.html">here</a>.</li>
</ul>

<p><hr></p>

<p>##News Roundup<br>
###<a href="https://undeadly.org/cgi?action=article;sid=20180616115514">LDAP client added to -current</a></p>

<pre><code>CVSROOT:    /cvs
Module name:    src
Changes by: reyk@cvs.openbsd.org    2018/06/13 09:45:58

Log message:
    Import ldap(1), a simple ldap search client.
    We have an ldapd(8) server and ypldap in base, so it makes sense to
    have a simple LDAP client without depending on the OpenLDAP package.
    This tool can be used in an ssh(1) AuthorizedKeysCommand script.
    
    With feedback from many including millert@ schwarze@ gilles@ dlg@ jsing@
    
    OK deraadt@
    
    Status:
    
    Vendor Tag: reyk
    Release Tags:   ldap_20180613
    
    N src/usr.bin/ldap/Makefile
    N src/usr.bin/ldap/aldap.c
    N src/usr.bin/ldap/aldap.h
    N src/usr.bin/ldap/ber.c
    N src/usr.bin/ldap/ber.h
    N src/usr.bin/ldap/ldap.1
    N src/usr.bin/ldap/ldapclient.c
    N src/usr.bin/ldap/log.c
    N src/usr.bin/ldap/log.h
    
    No conflicts created by this import
</code></pre>

<p><hr></p>

<p>###<a href="https://undeadly.org/cgi?action=article;sid=20180614064341">Intel® FPU Speculation Vulnerability Confirmed</a></p>

<ul>
<li>Earlier this month, Philip Guenther (guenther@) <a href="https://marc.info/?l=openbsd-cvs&amp;m=152818076013158&amp;w=2">committed</a> (to amd64 -current) a change from lazy to semi-eager FPU switching to mitigate against rumored FPU state leakage in Intel® CPUs.</li>
<li>Theo de Raadt (deraadt@) discussed this in <a href="https://undeadly.org/cgi?action=article;sid=20180611101817">his BSDCan 2018 session</a>.</li>
<li>Using information disclosed in Theo’s talk, <a href="https://twitter.com/cperciva/status/1007010583244230656">Colin Percival</a> developed a proof-of-concept exploit in around 5 hours. This seems to have prompted an early end to an embargo (in which OpenBSD was not involved), and the <a href="https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00145.html">official announcement</a> of the vulnerability.</li>
<li><a href="https://svnweb.freebsd.org/base?view=revision&amp;revision=335072">FPU change in FreeBSD</a></li>
</ul>

<pre><code>Summary:

System software may utilize the Lazy FP state restore technique to delay the restoring of state until an instruction operating on that state is actually executed by the new process. Systems using Intel® Core-based microprocessors may potentially allow a local process to infer data utilizing Lazy FP state restore from another process through a speculative execution side channel.

Description:

System software may opt to utilize Lazy FP state restore instead of eager save and restore of the state upon a context switch. Lazy restored states are potentially vulnerable to exploits where one process may infer register values of other processes through a speculative execution side channel that infers their value.

    ·    CVSS - 4.3 Medium CVSS:3.0/AV:L/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N
Affected Products:

Intel® Core-based microprocessors.

Recommendations:

If an XSAVE-enabled feature is disabled, then we recommend either its state component bitmap in the extended control register (XCR0) is set to 0 (e.g. XCR0[bit 2]=0 for AVX, XCR0[bits 7:5]=0 for AVX512) or the corresponding register states of the feature should be cleared prior to being disabled. Also for relevant states (e.g. x87, SSE, AVX, etc.), Intel recommends system software developers utilize Eager FP state restore in lieu of Lazy FP state restore.

Acknowledgements:

Intel would like to thank Julian Stecklina from Amazon Germany, Thomas Prescher from Cyberus Technology GmbH (https://www.cyberus-technology.de/), Zdenek Sojka from SYSGO AG (http://sysgo.com), and Colin Percival for reporting this issue and working with us on coordinated disclosure.
</code></pre>

<p><hr></p>

<p><strong>iXsystems</strong><br>
iX Ad Spot<br>
###<a href="https://www.ixsystems.com/blog/bsdcan-2018-recap/">iX Systems - BSDCan 2018 Recap</a></p>

<p>###<a href="https://svnweb.freebsd.org/base?view=revision&amp;revision=335012">FreeBSD gets pNFS support</a></p>

<pre><code>Merge the pNFS server code from projects/pnfs-planb-server into head.

This code merge adds a pNFS service to the NFSv4.1 server. Although it is
a large commit it should not affect behaviour for a non-pNFS NFS server.
Some documentation on how this works can be found at:
Merge the pN http://people.freebsd.org/~rmacklem/pnfs-planb-setup.txt
and will hopefully be turned into a proper document soon.
This is a merge of the kernel code. Userland and man page changes will
come soon, once the dust settles on this merge.
It has passed a &quot;make universe&quot;, so I hope it will not cause build problems.
It also adds NFSv4.1 server support for the &quot;current stateid&quot;.

Here is a brief overview of the pNFS service:
A pNFS service separates the Read/Write operations from all the other NFSv4.1
Metadata operations. It is hoped that this separation allows a pNFS service
to be configured that exceeds the limits of a single NFS server for either
storage capacity and/or I/O bandwidth.
It is possible to configure mirroring within the data servers (DSs) so that
the data storage file for an MDS file will be mirrored on two or more of
the DSs.
When this is used, failure of a DS will not stop the pNFS service and a
failed DS can be recovered once repaired while the pNFS service continues
to operate.  Although two way mirroring would be the norm, it is possible
to set a mirroring level of up to four or the number of DSs, whichever is
less.
The Metadata server will always be a single point of failure,
just as a single NFS server is.

A Plan B pNFS service consists of a single MetaData Server (MDS) and K
Data Servers (DS), all of which are recent FreeBSD systems.
Clients will mount the MDS as they would a single NFS server.
When files are created, the MDS creates a file tree identical to what a
single NFS server creates, except that all the regular (VREG) files will
be empty. As such, if you look at the exported tree on the MDS directly
on the MDS server (not via an NFS mount), the files will all be of size 0.
Each of these files will also have two extended attributes in the system
attribute name space:
pnfsd.dsfile - This extended attrbute stores the information that
    the MDS needs to find the data storage file(s) on DS(s) for this file.
pnfsd.dsattr - This extended attribute stores the Size, AccessTime, ModifyTime
    and Change attributes for the file, so that the MDS doesn't need to
    acquire the attributes from the DS for every Getattr operation.
For each regular (VREG) file, the MDS creates a data storage file on one
(or more if mirroring is enabled) of the DSs in one of the &quot;dsNN&quot;
subdirectories.  The name of this file is the file handle
of the file on the MDS in hexadecimal so that the name is unique.
The DSs use subdirectories named &quot;ds0&quot; to &quot;dsN&quot; so that no one directory
gets too large. The value of &quot;N&quot; is set via the sysctl vfs.nfsd.dsdirsize
on the MDS, with the default being 20.
For production servers that will store a lot of files, this value should
probably be much larger.
It can be increased when the &quot;nfsd&quot; daemon is not running on the MDS,
once the &quot;dsK&quot; directories are created.

For pNFS aware NFSv4.1 clients, the FreeBSD server will return two pieces
of information to the client that allows it to do I/O directly to the DS.
DeviceInfo - This is relatively static information that defines what a DS
             is. The critical bits of information returned by the FreeBSD
             server is the IP address of the DS and, for the Flexible
             File layout, that NFSv4.1 is to be used and that it is
             &quot;tightly coupled&quot;.
             There is a &quot;deviceid&quot; which identifies the DeviceInfo.
Layout     - This is per file and can be recalled by the server when it
             is no longer valid. For the FreeBSD server, there is support
             for two types of layout, call File and Flexible File layout.
             Both allow the client to do I/O on the DS via NFSv4.1 I/O
             operations. The Flexible File layout is a more recent variant
             that allows specification of mirrors, where the client is
             expected to do writes to all mirrors to maintain them in a
             consistent state. The Flexible File layout also allows the
             client to report I/O errors for a DS back to the MDS.
             The Flexible File layout supports two variants referred to as
             &quot;tightly coupled&quot; vs &quot;loosely coupled&quot;. The FreeBSD server always
             uses the &quot;tightly coupled&quot; variant where the client uses the
             same credentials to do I/O on the DS as it would on the MDS.
             For the &quot;loosely coupled&quot; variant, the layout specifies a
             synthetic user/group that the client uses to do I/O on the DS.
             The FreeBSD server does not do striping and always returns
             layouts for the entire file. The critical information in a layout
             is Read vs Read/Writea and DeviceID(s) that identify which
             DS(s) the data is stored on.

At this time, the MDS generates File Layout layouts to NFSv4.1 clients
that know how to do pNFS for the non-mirrored DS case unless the sysctl
vfs.nfsd.default_flexfile is set non-zero, in which case Flexible File
layouts are generated.
The mirrored DS configuration always generates Flexible File layouts.
For NFS clients that do not support NFSv4.1 pNFS, all I/O operations
are done against the MDS which acts as a proxy for the appropriate DS(s).
When the MDS receives an I/O RPC, it will do the RPC on the DS as a proxy.
If the DS is on the same machine, the MDS/DS will do the RPC on the DS as
a proxy and so on, until the machine runs out of some resource, such as
session slots or mbufs.
As such, DSs must be separate systems from the MDS.

***

###[What does {some strange unix command name} stand for?](http://www.unixguide.net/unix/faq/1.3.shtml)

+ awk = &quot;Aho Weinberger and Kernighan&quot; 
+ grep = &quot;Global Regular Expression Print&quot; 
+ fgrep = &quot;Fixed GREP&quot;. 
+ egrep = &quot;Extended GREP&quot; 
+ cat = &quot;CATenate&quot; 
+ gecos = &quot;General Electric Comprehensive Operating Supervisor&quot; 
+ nroff = &quot;New ROFF&quot; 
+ troff = &quot;Typesetter new ROFF&quot; 
+ tee = T 
+ bss = &quot;Block Started by Symbol
+ biff = &quot;BIFF&quot; 
+ rc (as in &quot;.cshrc&quot; or &quot;/etc/rc&quot;) = &quot;RunCom&quot; 
+ Don Libes' book &quot;Life with Unix&quot; contains lots more of these 
tidbits. 
***

##Beastie Bits
+ [RetroBSD: Unix for microcontrollers](http://retrobsd.org/wiki/doku.php)
+ [On the matter of OpenBSD breaking embargos (KRACK)](https://marc.info/?l=openbsd-tech&amp;m=152910536208954&amp;w=2)
+ [Theo's Basement Computer Paradise (1998)](https://zeus.theos.com/deraadt/hosts.html)
+ [Airport Extreme runs NetBSD](https://jcs.org/2018/06/12/airport_ssh)
+ [What UNIX shell could have been](https://rain-1.github.io/shell-2.html)

***
Tarsnap ad
***

##Feedback/Questions
+ We need more feedback and questions. Please email feedback@bsdnow.tv 
+ Also, many of you owe us BSDCan trip reports! We have shared what our experience at BSDCan was like, but we want to hear about yours. What can we do better next year? What was it like being there for the first time?
+ [Jason writes in](https://slexy.org/view/s205jU58X2)
    + https://www.wheelsystems.com/en/products/wheel-fudo-psm/
+ [June 19th was National FreeBSD Day](https://twitter.com/search?src=typd&amp;q=%23FreeBSDDay)
***

- Send questions, comments, show ideas/topics, or stories you want mentioned on the show to [feedback@bsdnow.tv](mailto:feedback@bsdnow.tv)
***

</code></pre>]]>
  </content:encoded>
  <itunes:summary>
    <![CDATA[<p>DragonflyBSD’s hammer1 encrypted master/slave setup, second part of our BSDCan recap, NomadBSD 1.1-RC1 available, OpenBSD adds an LDAP client to base, FreeBSD gets pNFS support, Intel FPU Speculation Vulnerability confirmed, and what some Unix command names mean.</p>

<p>##Headlines<br>
###<a href="https://www.reddit.com/r/dragonflybsd/comments/8riwtx/towards_a_hammer1_masterslave_encrypted_setup/">DragonflyBSD: Towards a HAMMER1 master/slave encrypted setup with LUKS</a></p>

<blockquote>
<p>I just wanted to share my experience with setting up DragonFly master/slave HAMMER1 PFS’s on top of LUKS<br>
So after a long time using an Synology for my NFS needs, I decided it was time to rethink my setup a little since I had several issues with it :</p>
</blockquote>

<ul>
<li>You cannot run NFS on top of encrypted partitions easily</li>
<li>I suspect I am having some some data corruption (bitrot) on the ext4 filesystem</li>
<li>the NIC was stcuk to 100 Mbps instead of 1 Gbps even after swapping cables, switches, you name it</li>
<li>It’s proprietary</li>
</ul>

<blockquote>
<p>I have been playing with DragonFly in the past and knew about HAMMER, now I just had the perfect excuse to actually use it in production :) After setting up the OS, creating the LUKS partition and HAMMER FS was easy :</p>
</blockquote>

<p><code>kdload dm</code><br>
<code>cryptsetup luksFormat /dev/serno/&lt;id1&gt;</code><br>
<code>cryptsetup luksOpen /dev/serno/&lt;id1&gt; fort_knox</code><br>
<code>newfs_hammer -L hammer1_secure_master /dev/mapper/fort_knox</code><br>
<code>cryptsetup luksFormat /dev/serno/&lt;id2&gt;</code><br>
<code>cryptsetup luksOpen /dev/serno/&lt;id2&gt; fort_knox_slave</code><br>
<code>newfs_hammer -L hammer1_secure_slave /dev/mapper/fort_knox_slave</code></p>

<ul>
<li>Mount the 2 drives :</li>
</ul>

<p><code>mount /dev/mapper/fort_knox /fort_knox</code><br>
<code>mount /dev/mapper_fort_know_slave /fort_knox_slave</code></p>

<blockquote>
<p>You can now put your data under /fort_knox<br>
Now, off to setting up the replication, first get the shared-uuid of /fort_knox</p>
</blockquote>

<p><code>hammer pfs-status /fort_knox</code></p>

<blockquote>
<p>Create a PFS slave “linked” to the master</p>
</blockquote>

<p><code>hammer pfs-slave /fort_knox_slave/pfs/slave shared-uuid=f9e7cc0d-eb59-10e3-a5b5-01e6e7cefc12</code></p>

<blockquote>
<p>And then stream your data to the slave PFS !</p>
</blockquote>

<p><code>hammer mirror-stream /fort_knox /fort_knox_slave/pfs/slave</code></p>

<blockquote>
<p>After that, setting NFS is fairly trivial even though I had problem with the /etc/exports syntax which is different than Linux</p>
</blockquote>

<blockquote>
<p>There’s a few things I wish would be better though but nothing too problematic or without workarounds :</p>
</blockquote>

<ul>
<li>Cannot unlock LUKS partitions at boot time afaik (Acceptable tradeoff for the added security LUKS gives me vs my old Synology setup) but this force me to run a script to unlock LUKS, mount hammer and start mirror-stream at each boot</li>
<li>No S1/S3 sleep so I made a script to shutdown the system when there’s no network neighborgs to serve the NFS</li>
<li>As my system isn’t online 24/7 for energy reasons, I guess will have to run hammer cleanup myself from time to time</li>
<li>Some uncertainty because hey, it’s kind of exotic but exciting too :)</li>
</ul>

<blockquote>
<p>Overall, I am happy, HAMMER1 and PFS are looking really good, DragonFly is a neat Unix and the community is super friendly (Matthew Dillon actually provided me with a kernel patch to fix the broken ACPI on the PC holding this setup, many thanks!), the system is still a “work in progress” but it is already serving my files as I write this post.</p>
</blockquote>

<blockquote>
<p>Let’s see in 6 months how it goes in the longer run !</p>
</blockquote>

<ul>
<li>Helpful resources : <a href="https://www.dragonflybsd.org/docs/how_to_implement_hammer_pseudo_file_system__40___pfs___41___slave_mirroring_from_pfs_master/">https://www.dragonflybsd.org/docs/how_to_implement_hammer_pseudo_file_system__40___pfs___41___slave_mirroring_from_pfs_master/</a></li>
</ul>

<p><hr></p>

<p>###BSDCan 2018 Recap</p>

<ul>
<li>As promised, here is our second part of our BSDCan report, covering the conference proper. The last tutorials/devsummit of that day lead directly into the conference, as people could pick up their registration packs at the Red Lion and have a drink with fellow BSD folks.</li>
<li>Allan and I were there only briefly, as we wanted to get back to the “Newcomers orientation and mentorship” session lead by Michael W. Lucas. This session is intended for people that are new to BSDCan (maybe their first BSD conference ever?) and may have questions. Michael explained everything from the 6-2-1 rule (hours of sleep, meals per day, and number of showers that attendees should have at a minimum), to the partner and widowers program (lead by his wife Liz), to the sessions that people should not miss (opening, closing, and hallway track). Old-time BSDCan folks were asked to stand up so that people can recognize them and ask them any questions they might have during the conferences. The session was well attended. Afterwards, people went for dinner in groups, a big one lead by Michael Lucas to his favorite Shawarma place, followed by gelato (of course). This allowed newbies to mingle over dinner and ice cream, creating a welcoming atmosphere.</li>
<li>The next day, after Dan Langille opened the conference, Benno Rice gave the keynote presentation about “The Tragedy of Systemd”.</li>
<li>Benedict went to the following talks:</li>
</ul>

<blockquote>
<p>“Automating Network Infrastructures with Ansible on FreeBSD” in the DevSummit track. A good talk that connected well with his Ansible tutorial and even allowed some discussions among participants.<br>
“All along the dwatch tower”: Devin delivered a well prepared talk. I first thought that the number of slides would not fit into the time slot, but she even managed to give a demo of her work, which was well received. The dwatch tool she wrote should make it easy for people to get started with DTrace without learning too much about the syntax at first. The visualizations were certainly nice to see, combining different tools together in a new way.<br>
ZFS BoF, lead by Allan and Matthew Ahrens<br>
SSH Key Management by Michael W. Lucas. Yet another great talk where I learned a lot. I did not get to the SSH CA chapter in the new SSH Mastery book, so this was a good way to wet my appetite for it and motivated me to look into creating one for the cluster that I’m managing.<br>
The rest of the day was spent at the FreeBSD Foundation table, talking to various folks. Then, Allan and I had an interview with Kirk McKusick for National FreeBSD Day, then we had a core meeting, followed by a core dinner.</p>
</blockquote>

<ul>
<li>Day 2:
<blockquote>
<p>“Flexible Disk Use in OpenZFS”: Matthew Ahrens talking about the feature he is implementing to expand a RAID-Z with a single disk, as well as device removal.<br>
Allan’s talk about his efforts to implement ZSTD in OpenZFS as another compression algorithm. I liked his overview slides with the numbers comparing the algorithms for their effectiveness and his personal story about the sometimes rocky road to get the feature implemented.<br>
“zrepl - ZFS replication” by Christian Schwarz, was well prepared and even had a demo to show what his snapshot replication tool can do. We covered it on the show before and people can find it under sysutils/zrepl. Feedback and help is welcome.<br>
“The Evolution of FreeBSD Governance” by Kirk McKusick was yet another great talk by him covering the early days of FreeBSD until today, detailing some of the progress and challenges the project faced over the years in terms of leadership and governance. This is an ongoing process that everyone in the community should participate in to keep the project healthy and infused with fresh blood.<br>
Closing session and auction were funny and great as always.<br>
All in all, yet another amazing BSDCan. Thank you Dan Langille and your organizing team for making it happen! Well done.</p>
</blockquote>
</li>
</ul>

<p><hr></p>

<p><strong>Digital Ocean</strong></p>

<p>###<a href="http://nomadbsd.org/index.html#rel1.1-rc1">NomadBSD 1.1-RC1 Released</a></p>

<blockquote>
<p>The first – and hopefully final – release candidate of NomadBSD 1.1 is available!</p>
</blockquote>

<ul>
<li>Changes</li>
<li>The base system has been upgraded to FreeBSD 11.2-RC3</li>
<li>EFI booting has been fixed.</li>
<li>Support for modern Intel GPUs has been added.</li>
<li>Support for installing packages has been added.</li>
<li>Improved setup menu.</li>
<li>More software packages:</li>
<li>benchmarks/bonnie++</li>
<li>DSBDisplaySettings</li>
<li>DSBExec</li>
<li>DSBSu</li>
<li>mail/thunderbird</li>
<li>net/mosh</li>
<li>ports-mgmt/octopkg</li>
<li>print/qpdfview</li>
<li>security/nmap</li>
<li>sysutils/ddrescue</li>
<li>sysutils/fusefs-hfsfuse</li>
<li>sysutils/fusefs-sshfs</li>
<li>sysutils/sleuthkit</li>
<li>www/lynx</li>
<li>x11-wm/compton</li>
<li>x11/xev</li>
<li>x11/xterm</li>
<li>Many improvements and bugfixes<br>
The image and instructions can be found <a href="http://nomadbsd.org/download.html">here</a>.</li>
</ul>

<p><hr></p>

<p>##News Roundup<br>
###<a href="https://undeadly.org/cgi?action=article;sid=20180616115514">LDAP client added to -current</a></p>

<pre><code>CVSROOT:    /cvs
Module name:    src
Changes by: reyk@cvs.openbsd.org    2018/06/13 09:45:58

Log message:
    Import ldap(1), a simple ldap search client.
    We have an ldapd(8) server and ypldap in base, so it makes sense to
    have a simple LDAP client without depending on the OpenLDAP package.
    This tool can be used in an ssh(1) AuthorizedKeysCommand script.
    
    With feedback from many including millert@ schwarze@ gilles@ dlg@ jsing@
    
    OK deraadt@
    
    Status:
    
    Vendor Tag: reyk
    Release Tags:   ldap_20180613
    
    N src/usr.bin/ldap/Makefile
    N src/usr.bin/ldap/aldap.c
    N src/usr.bin/ldap/aldap.h
    N src/usr.bin/ldap/ber.c
    N src/usr.bin/ldap/ber.h
    N src/usr.bin/ldap/ldap.1
    N src/usr.bin/ldap/ldapclient.c
    N src/usr.bin/ldap/log.c
    N src/usr.bin/ldap/log.h
    
    No conflicts created by this import
</code></pre>

<p><hr></p>

<p>###<a href="https://undeadly.org/cgi?action=article;sid=20180614064341">Intel® FPU Speculation Vulnerability Confirmed</a></p>

<ul>
<li>Earlier this month, Philip Guenther (guenther@) <a href="https://marc.info/?l=openbsd-cvs&amp;m=152818076013158&amp;w=2">committed</a> (to amd64 -current) a change from lazy to semi-eager FPU switching to mitigate against rumored FPU state leakage in Intel® CPUs.</li>
<li>Theo de Raadt (deraadt@) discussed this in <a href="https://undeadly.org/cgi?action=article;sid=20180611101817">his BSDCan 2018 session</a>.</li>
<li>Using information disclosed in Theo’s talk, <a href="https://twitter.com/cperciva/status/1007010583244230656">Colin Percival</a> developed a proof-of-concept exploit in around 5 hours. This seems to have prompted an early end to an embargo (in which OpenBSD was not involved), and the <a href="https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00145.html">official announcement</a> of the vulnerability.</li>
<li><a href="https://svnweb.freebsd.org/base?view=revision&amp;revision=335072">FPU change in FreeBSD</a></li>
</ul>

<pre><code>Summary:

System software may utilize the Lazy FP state restore technique to delay the restoring of state until an instruction operating on that state is actually executed by the new process. Systems using Intel® Core-based microprocessors may potentially allow a local process to infer data utilizing Lazy FP state restore from another process through a speculative execution side channel.

Description:

System software may opt to utilize Lazy FP state restore instead of eager save and restore of the state upon a context switch. Lazy restored states are potentially vulnerable to exploits where one process may infer register values of other processes through a speculative execution side channel that infers their value.

    ·    CVSS - 4.3 Medium CVSS:3.0/AV:L/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N
Affected Products:

Intel® Core-based microprocessors.

Recommendations:

If an XSAVE-enabled feature is disabled, then we recommend either its state component bitmap in the extended control register (XCR0) is set to 0 (e.g. XCR0[bit 2]=0 for AVX, XCR0[bits 7:5]=0 for AVX512) or the corresponding register states of the feature should be cleared prior to being disabled. Also for relevant states (e.g. x87, SSE, AVX, etc.), Intel recommends system software developers utilize Eager FP state restore in lieu of Lazy FP state restore.

Acknowledgements:

Intel would like to thank Julian Stecklina from Amazon Germany, Thomas Prescher from Cyberus Technology GmbH (https://www.cyberus-technology.de/), Zdenek Sojka from SYSGO AG (http://sysgo.com), and Colin Percival for reporting this issue and working with us on coordinated disclosure.
</code></pre>

<p><hr></p>

<p><strong>iXsystems</strong><br>
iX Ad Spot<br>
###<a href="https://www.ixsystems.com/blog/bsdcan-2018-recap/">iX Systems - BSDCan 2018 Recap</a></p>

<p>###<a href="https://svnweb.freebsd.org/base?view=revision&amp;revision=335012">FreeBSD gets pNFS support</a></p>

<pre><code>Merge the pNFS server code from projects/pnfs-planb-server into head.

This code merge adds a pNFS service to the NFSv4.1 server. Although it is
a large commit it should not affect behaviour for a non-pNFS NFS server.
Some documentation on how this works can be found at:
Merge the pN http://people.freebsd.org/~rmacklem/pnfs-planb-setup.txt
and will hopefully be turned into a proper document soon.
This is a merge of the kernel code. Userland and man page changes will
come soon, once the dust settles on this merge.
It has passed a &quot;make universe&quot;, so I hope it will not cause build problems.
It also adds NFSv4.1 server support for the &quot;current stateid&quot;.

Here is a brief overview of the pNFS service:
A pNFS service separates the Read/Write operations from all the other NFSv4.1
Metadata operations. It is hoped that this separation allows a pNFS service
to be configured that exceeds the limits of a single NFS server for either
storage capacity and/or I/O bandwidth.
It is possible to configure mirroring within the data servers (DSs) so that
the data storage file for an MDS file will be mirrored on two or more of
the DSs.
When this is used, failure of a DS will not stop the pNFS service and a
failed DS can be recovered once repaired while the pNFS service continues
to operate.  Although two way mirroring would be the norm, it is possible
to set a mirroring level of up to four or the number of DSs, whichever is
less.
The Metadata server will always be a single point of failure,
just as a single NFS server is.

A Plan B pNFS service consists of a single MetaData Server (MDS) and K
Data Servers (DS), all of which are recent FreeBSD systems.
Clients will mount the MDS as they would a single NFS server.
When files are created, the MDS creates a file tree identical to what a
single NFS server creates, except that all the regular (VREG) files will
be empty. As such, if you look at the exported tree on the MDS directly
on the MDS server (not via an NFS mount), the files will all be of size 0.
Each of these files will also have two extended attributes in the system
attribute name space:
pnfsd.dsfile - This extended attrbute stores the information that
    the MDS needs to find the data storage file(s) on DS(s) for this file.
pnfsd.dsattr - This extended attribute stores the Size, AccessTime, ModifyTime
    and Change attributes for the file, so that the MDS doesn't need to
    acquire the attributes from the DS for every Getattr operation.
For each regular (VREG) file, the MDS creates a data storage file on one
(or more if mirroring is enabled) of the DSs in one of the &quot;dsNN&quot;
subdirectories.  The name of this file is the file handle
of the file on the MDS in hexadecimal so that the name is unique.
The DSs use subdirectories named &quot;ds0&quot; to &quot;dsN&quot; so that no one directory
gets too large. The value of &quot;N&quot; is set via the sysctl vfs.nfsd.dsdirsize
on the MDS, with the default being 20.
For production servers that will store a lot of files, this value should
probably be much larger.
It can be increased when the &quot;nfsd&quot; daemon is not running on the MDS,
once the &quot;dsK&quot; directories are created.

For pNFS aware NFSv4.1 clients, the FreeBSD server will return two pieces
of information to the client that allows it to do I/O directly to the DS.
DeviceInfo - This is relatively static information that defines what a DS
             is. The critical bits of information returned by the FreeBSD
             server is the IP address of the DS and, for the Flexible
             File layout, that NFSv4.1 is to be used and that it is
             &quot;tightly coupled&quot;.
             There is a &quot;deviceid&quot; which identifies the DeviceInfo.
Layout     - This is per file and can be recalled by the server when it
             is no longer valid. For the FreeBSD server, there is support
             for two types of layout, call File and Flexible File layout.
             Both allow the client to do I/O on the DS via NFSv4.1 I/O
             operations. The Flexible File layout is a more recent variant
             that allows specification of mirrors, where the client is
             expected to do writes to all mirrors to maintain them in a
             consistent state. The Flexible File layout also allows the
             client to report I/O errors for a DS back to the MDS.
             The Flexible File layout supports two variants referred to as
             &quot;tightly coupled&quot; vs &quot;loosely coupled&quot;. The FreeBSD server always
             uses the &quot;tightly coupled&quot; variant where the client uses the
             same credentials to do I/O on the DS as it would on the MDS.
             For the &quot;loosely coupled&quot; variant, the layout specifies a
             synthetic user/group that the client uses to do I/O on the DS.
             The FreeBSD server does not do striping and always returns
             layouts for the entire file. The critical information in a layout
             is Read vs Read/Writea and DeviceID(s) that identify which
             DS(s) the data is stored on.

At this time, the MDS generates File Layout layouts to NFSv4.1 clients
that know how to do pNFS for the non-mirrored DS case unless the sysctl
vfs.nfsd.default_flexfile is set non-zero, in which case Flexible File
layouts are generated.
The mirrored DS configuration always generates Flexible File layouts.
For NFS clients that do not support NFSv4.1 pNFS, all I/O operations
are done against the MDS which acts as a proxy for the appropriate DS(s).
When the MDS receives an I/O RPC, it will do the RPC on the DS as a proxy.
If the DS is on the same machine, the MDS/DS will do the RPC on the DS as
a proxy and so on, until the machine runs out of some resource, such as
session slots or mbufs.
As such, DSs must be separate systems from the MDS.

***

###[What does {some strange unix command name} stand for?](http://www.unixguide.net/unix/faq/1.3.shtml)

+ awk = &quot;Aho Weinberger and Kernighan&quot; 
+ grep = &quot;Global Regular Expression Print&quot; 
+ fgrep = &quot;Fixed GREP&quot;. 
+ egrep = &quot;Extended GREP&quot; 
+ cat = &quot;CATenate&quot; 
+ gecos = &quot;General Electric Comprehensive Operating Supervisor&quot; 
+ nroff = &quot;New ROFF&quot; 
+ troff = &quot;Typesetter new ROFF&quot; 
+ tee = T 
+ bss = &quot;Block Started by Symbol
+ biff = &quot;BIFF&quot; 
+ rc (as in &quot;.cshrc&quot; or &quot;/etc/rc&quot;) = &quot;RunCom&quot; 
+ Don Libes' book &quot;Life with Unix&quot; contains lots more of these 
tidbits. 
***

##Beastie Bits
+ [RetroBSD: Unix for microcontrollers](http://retrobsd.org/wiki/doku.php)
+ [On the matter of OpenBSD breaking embargos (KRACK)](https://marc.info/?l=openbsd-tech&amp;m=152910536208954&amp;w=2)
+ [Theo's Basement Computer Paradise (1998)](https://zeus.theos.com/deraadt/hosts.html)
+ [Airport Extreme runs NetBSD](https://jcs.org/2018/06/12/airport_ssh)
+ [What UNIX shell could have been](https://rain-1.github.io/shell-2.html)

***
Tarsnap ad
***

##Feedback/Questions
+ We need more feedback and questions. Please email feedback@bsdnow.tv 
+ Also, many of you owe us BSDCan trip reports! We have shared what our experience at BSDCan was like, but we want to hear about yours. What can we do better next year? What was it like being there for the first time?
+ [Jason writes in](https://slexy.org/view/s205jU58X2)
    + https://www.wheelsystems.com/en/products/wheel-fudo-psm/
+ [June 19th was National FreeBSD Day](https://twitter.com/search?src=typd&amp;q=%23FreeBSDDay)
***

- Send questions, comments, show ideas/topics, or stories you want mentioned on the show to [feedback@bsdnow.tv](mailto:feedback@bsdnow.tv)
***

</code></pre>]]>
  </itunes:summary>
</item>
  </channel>
</rss>
