<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>System-Administration on WormBytes</title><link>https://www.wormbytes.ca/categories/system-administration/</link><description>Recent content in System-Administration on WormBytes</description><generator>Hugo -- gohugo.io</generator><language>en-ca</language><managingEditor>Robert James Kaes</managingEditor><copyright>Robert James Kaes. All Rights Reserved.</copyright><lastBuildDate>Thu, 04 May 2023 11:40:56 -0400</lastBuildDate><atom:link href="https://www.wormbytes.ca/categories/system-administration/index.xml" rel="self" type="application/rss+xml"/><item><title>Yggdrasil VPN</title><link>https://www.wormbytes.ca/2023/05/04/yggdrasil-vpn/</link><pubDate>Thu, 04 May 2023 11:40:56 -0400</pubDate><author>Robert James Kaes</author><guid>https://www.wormbytes.ca/2023/05/04/yggdrasil-vpn/</guid><description>&lt;p&gt;I&amp;rsquo;m trying to work outside my home office more, but all my email is hosted on
my home server. While disconnecting is nice, not having access when I need it
has sucked.&lt;/p&gt;
&lt;p&gt;Enter &lt;a href="https://yggdrasil-network.github.io/"&gt;yggdrasil&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;After installing on my laptop (MacOS) and my desktop (Ubuntu) I updated
&lt;code&gt;.ssh/config&lt;/code&gt; with my desktop&amp;rsquo;s IPv6 address and was able to SSH via IPv6 over
my local network. Perfect!&lt;/p&gt;
&lt;p&gt;Step two: install on a server with a public IP. One more service running on
my &lt;a href="https://www.digitalocean.com/"&gt;Digital Ocean&lt;/a&gt; instance.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m not interested, at the moment, with joining the full yggdrasil network, so
I configured my public instance to only allow peering from my laptop and
desktop&amp;rsquo;s public keys:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; AllowedPublicKeys: [
&amp;#34;desktop-public-key&amp;#34;
&amp;#34;laptop-public-key&amp;#34;
]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;On the public server, I listen via TLS rather than plain TCP. It&amp;rsquo;s slightly
slower, but also slightly more secure. Since I&amp;rsquo;m not moving a lot of traffic
over the connection, the extra security is worth it to me:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; Listen: [
tls://PUBLIC-IP-ADDRESS:56603
]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I couldn&amp;rsquo;t find a recommended port to listen on, so I picked a random number. 🤣&lt;/p&gt;
&lt;p&gt;(The only &amp;ldquo;gotcha&amp;rdquo; was remembering to open the firewall for
yggdrasil.)&lt;/p&gt;
&lt;p&gt;Ramces Red&amp;rsquo;s &lt;a href="https://www.maketecheasier.com/install-yggdrasil-network"&gt;article about
yggdrasil&lt;/a&gt; has more
information about installing and configuring a basic VPN.&lt;/p&gt;</description></item><item><title>Secure SSH Keys and Client Configurations</title><link>https://www.wormbytes.ca/2017/12/08/ssh-client-configuration/</link><pubDate>Fri, 08 Dec 2017 14:07:20 -0500</pubDate><author>Robert James Kaes</author><guid>https://www.wormbytes.ca/2017/12/08/ssh-client-configuration/</guid><description>&lt;img srcset="https://www.wormbytes.ca/2017/12/08/ssh-client-configuration/banner_hu_5fc9c5e2e9e85d2b.webp 940w,/2017/12/08/ssh-client-configuration/banner_hu_abb2a5ee515e0fde.webp 705w,/2017/12/08/ssh-client-configuration/banner_hu_382cda62a330fb33.webp 470w,/2017/12/08/ssh-client-configuration/banner_hu_6b182a09580dba30.webp 235w"
sizes="(max-width: 500px) 100vw, 70vw"
src="https://www.wormbytes.ca/2017/12/08/ssh-client-configuration/banner.jpg" width="940" height="400" alt="Red electronic lock symbol against a blue/black background." /&gt;
&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Secure_Shell"&gt;SSH&lt;/a&gt; is the backbone to how I&amp;rsquo;m able to &lt;a href="https://www.ePublishing.com"&gt;work
remotely&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Periodically, it&amp;rsquo;s important to review both my &lt;a href="https://en.wikipedia.org/wiki/Secure_Shell"&gt;SSH&lt;/a&gt; &lt;code&gt;config&lt;/code&gt; settings and
regenerate my &lt;a href="https://en.wikipedia.org/wiki/Secure_Shell"&gt;SSH&lt;/a&gt; keys.&lt;/p&gt;
&lt;p&gt;From my perspective, &lt;a href="https://wiki.mozilla.org/Security/Guidelines/OpenSSH"&gt;Mozilla&lt;/a&gt; has put together the best recommendations for
both server and client configurations. For now, I&amp;rsquo;m concentrating on the
client configuration (within &lt;code&gt;~/.ssh/config&lt;/code&gt; and my &lt;a href="https://en.wikipedia.org/wiki/Secure_Shell"&gt;SSH&lt;/a&gt; keys.)&lt;/p&gt;
&lt;h2 id="openssh-client-configuration"&gt;OpenSSH Client Configuration&lt;/h2&gt;
&lt;p&gt;Below is &lt;a href="https://wiki.mozilla.org/Security/Guidelines/OpenSSH#Modern"&gt;Mozilla&amp;rsquo;s Modern SSH client configuration&lt;/a&gt;
recommendation:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-sshconfig" data-lang="sshconfig"&gt;# Ensure KnownHosts are unreadable if leaked - it is otherwise easier to know which hosts your keys have access to.
HashKnownHosts yes
# Host keys the client accepts - order here is honored by OpenSSH
HostKeyAlgorithms ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ssh-ed25519,ssh-rsa,ecdsa-sha2-nistp521-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp521,ecdsa-sha2-nistp384,ecdsa-sha2-nistp256
KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha256
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,umac-128@openssh.com
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt; these are the &amp;ldquo;modern&amp;rdquo; recommendations which assumes the services you
are connecting to have been updated &lt;em&gt;recently&lt;/em&gt;. I&amp;rsquo;ve noticed I&amp;rsquo;ve had to
modify these for services like &lt;a href="https://github.com/"&gt;Github&lt;/a&gt; with:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-conf" data-lang="conf"&gt;KexAlgorithms diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="openssh-key-generation"&gt;OpenSSH Key Generation&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/EdDSA#Ed25519"&gt;ED25519&lt;/a&gt; is recommended for all new keys, but not all services support it. For
those services we need to fall back to &lt;a href="https://en.wikipedia.org/wiki/RSA_(cryptosystem)"&gt;RSA&lt;/a&gt;. Using
&lt;a href="https://wiki.mozilla.org/Security/Guidelines/OpenSSH#Key_generation"&gt;Mozilla&amp;rsquo;s SSH key generation&lt;/a&gt;
guidelines, I created a &lt;code&gt;keygen&lt;/code&gt; script that defaults to &lt;a href="https://en.wikipedia.org/wiki/EdDSA#Ed25519"&gt;ED25519&lt;/a&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#! /bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080;font-style:italic"&gt;#&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080;font-style:italic"&gt;# Generate a new ED25519 or RSA SSH key using Mozilla&amp;#39;s&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080;font-style:italic"&gt;# (https://wiki.mozilla.org/Security/Guidelines/OpenSSH#Key_generation)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080;font-style:italic"&gt;# recommendations.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080;font-style:italic"&gt;#&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080;font-style:italic"&gt;# Usage: keygen {service_name} [ed25519|rsa]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080;font-style:italic"&gt;#&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080;font-style:italic"&gt;# Defaults to the more secure ED25519.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080;font-style:italic"&gt;#&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a2f"&gt;set&lt;/span&gt; -e
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a2f"&gt;set&lt;/span&gt; -u
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#b8860b"&gt;service&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;&lt;span style="color:#b8860b"&gt;$1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#b8860b"&gt;type&lt;/span&gt;&lt;span style="color:#666"&gt;=&lt;/span&gt;&lt;span style="color:#b68;font-weight:bold"&gt;${&lt;/span&gt;&lt;span style="color:#b8860b"&gt;2&lt;/span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;:-&lt;/span&gt;&lt;span style="color:#b8860b"&gt;ed&lt;/span&gt;&lt;span style="color:#b68;font-weight:bold"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;case&lt;/span&gt; &lt;span style="color:#b8860b"&gt;$type&lt;/span&gt; in
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ed*&lt;span style="color:#666"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_&lt;span style="color:#b68;font-weight:bold"&gt;${&lt;/span&gt;&lt;span style="color:#b8860b"&gt;service&lt;/span&gt;&lt;span style="color:#b68;font-weight:bold"&gt;}&lt;/span&gt;_&lt;span style="color:#a2f;font-weight:bold"&gt;$(&lt;/span&gt;date +%Y-%m-%d&lt;span style="color:#a2f;font-weight:bold"&gt;)&lt;/span&gt; -C &lt;span style="color:#b44"&gt;&amp;#34;Key for &lt;/span&gt;&lt;span style="color:#b68;font-weight:bold"&gt;${&lt;/span&gt;&lt;span style="color:#b8860b"&gt;service&lt;/span&gt;&lt;span style="color:#b68;font-weight:bold"&gt;}&lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; rsa&lt;span style="color:#666"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ssh-keygen -t rsa -b &lt;span style="color:#666"&gt;4096&lt;/span&gt; -f ~/.ssh/id_rsa_&lt;span style="color:#b68;font-weight:bold"&gt;${&lt;/span&gt;&lt;span style="color:#b8860b"&gt;service&lt;/span&gt;&lt;span style="color:#b68;font-weight:bold"&gt;}&lt;/span&gt;_&lt;span style="color:#a2f;font-weight:bold"&gt;$(&lt;/span&gt;date +%Y-%m-%d&lt;span style="color:#a2f;font-weight:bold"&gt;)&lt;/span&gt; -C &lt;span style="color:#b44"&gt;&amp;#34;Key for &lt;/span&gt;&lt;span style="color:#b68;font-weight:bold"&gt;${&lt;/span&gt;&lt;span style="color:#b8860b"&gt;service&lt;/span&gt;&lt;span style="color:#b68;font-weight:bold"&gt;}&lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; *&lt;span style="color:#666"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f"&gt;echo&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Usage: keygen {service_name} [ed25519|rsa]&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f"&gt;exit&lt;/span&gt; &lt;span style="color:#666"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;esac&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now you&amp;rsquo;ll need to send your new key to the remote server. For example:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ssh-copy-id -i ~/.ssh/id_ed25519_wormbytes_2017-12-08 robert@server.wormbytes.ca
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Finally update your &lt;code&gt;~/.ssh/config&lt;/code&gt; and modify your &lt;code&gt;IdentityFile&lt;/code&gt; to
reference
the key that was generated. Something like:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-sshconfig" data-lang="sshconfig"&gt;IdentityFile ~/.ssh/id_ed25519_wormbytes_2017-12-08
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;My recommendation is to review your SSH keys and configuration once a year.
While the above configuration is the recommendation today (December 2017) it
might not be the recommendation next year. Be sure to check back with
&lt;a href="https://wiki.mozilla.org/Security/Guidelines/OpenSSH"&gt;Mozilla&lt;/a&gt; to see if
anything needs to be updated.&lt;/p&gt;</description></item><item><title>Norfolk Techies! Your Local Slack Group</title><link>https://www.wormbytes.ca/2017/11/17/norfolk-techies-slack-group/</link><pubDate>Fri, 17 Nov 2017 14:04:17 +0000</pubDate><author>Robert James Kaes</author><guid>https://www.wormbytes.ca/2017/11/17/norfolk-techies-slack-group/</guid><description>&lt;p&gt;&lt;img src="https://www.norfolkcounty.ca/wp-content/uploads/2012/12/CountyMapColour-8x11_Thumb.png" alt="Map of Norfolk County, Ontario"&gt;&lt;/p&gt;
&lt;p&gt;As a remote worker in a rural community, I&amp;rsquo;ve found it difficult to find other
technology workers in the area. After speaking with
&lt;a href="https://www.slaght.ca"&gt;Brett&lt;/a&gt;, we decided to start the
&lt;a href="https://norfolk-techies.slack.com/"&gt;Norfolk Techies&lt;/a&gt;
&lt;a href="https://slack.com"&gt;Slack&lt;/a&gt; group.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re a technology worker in the
&lt;a href="https://en.wikipedia.org/wiki/Norfolk_County,_Ontario"&gt;Norfolk County&lt;/a&gt; area
please contact &lt;a href="https://www.slaght.ca"&gt;Brett&lt;/a&gt; or
&lt;a href="https://twitter.com/rjkaes"&gt;myself&lt;/a&gt; for an invitation link.&lt;/p&gt;</description></item><item><title>Listing all the Hardware on a Server</title><link>https://www.wormbytes.ca/2010/03/11/listing-all-the-hardware-on-a-server/</link><pubDate>Thu, 11 Mar 2010 02:47:50 +0000</pubDate><author>Robert James Kaes</author><guid>https://www.wormbytes.ca/2010/03/11/listing-all-the-hardware-on-a-server/</guid><description>&lt;p&gt;&lt;em&gt;Short post to serve as a reminder to myself!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Something I need to do often in my job is find out what hardware a particular server has installed.&lt;/p&gt;
&lt;p&gt;The best tool I found for the job is &lt;a href="http://ezix.org/project/wiki/HardwareLiSter"&gt;HardwareLiSter&lt;/a&gt;. On a CentOS system simply do:&lt;/p&gt;
&lt;pre&gt;sudo yum install lswh&lt;/pre&gt;
&lt;p&gt;to install and then run:&lt;/p&gt;
&lt;pre&gt;sudo lshw | less&lt;/pre&gt;
&lt;p&gt;to see what you&amp;rsquo;re dealing with.&lt;/p&gt;</description></item></channel></rss>