<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>IT Admin</title><link>/</link><description>Recent content on IT Admin</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sun, 27 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="/index.xml" rel="self" type="application/rss+xml"/><item><title>Conditional Access Guest Accounts</title><link>/posts/post-9/</link><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate><guid>/posts/post-9/</guid><description>&lt;p>Guests themselves don&amp;rsquo;t need P1 assigned, but the policy won&amp;rsquo;t do anything until the tenant has P1 active for its own members.&lt;/p>
&lt;p>Enforcement is currently soft, not hard. Microsoft doesn&amp;rsquo;t technically block Conditional Access from working if you&amp;rsquo;re short on licenses — Entra ID processes connections that require multifactor authentication no matter if the account has a premium license — but Microsoft has started surfacing warnings about it: tenants are now seeing informational messages in the Entra admin center flagging that some Conditional Access policies are protecting more users than their current licensing entitlements allow, though this is not a precursor to billing and there&amp;rsquo;s no automated enforcement yet.&lt;/p></description></item><item><title>Hardening Microsoft 365 Without Buying Extra Licenses</title><link>/posts/post-7/</link><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate><guid>/posts/post-7/</guid><description>&lt;p>A lot of Microsoft 365 &amp;ldquo;security&amp;rdquo; starts with an upsell: Defender for Office 365, Entra ID P1, P2, the Worksuite. But a large share of the highest-impact hardening is already included in the subscription you pay for — it&amp;rsquo;s just switched off by default. This post is a practical, no-extra-cost checklist: what&amp;rsquo;s free, what it actually does, and the commands to verify it.&lt;/p>
&lt;p>Companion reading: &lt;a href="/blog/post-6/">PowerShell + Microsoft Graph — Connection &amp;amp; Command Reference&lt;/a> covers the PowerShell/Graph setup used in the verification commands below.&lt;/p></description></item><item><title>Managing Package Updates Across a Mixed-Distro Fleet with Ansible</title><link>/posts/post-8/</link><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate><guid>/posts/post-8/</guid><description>&lt;p>If your fleet is more than one machine, it&amp;rsquo;s probably more than one distro. Mine is: Ubuntu LTS boxes, Debian, Fedora, and — the interesting one — XCP-ng hypervisors. The goal is simple: one control node, a handful of playbooks, and the ability to answer two questions at any time: &lt;em>what updates are pending?&lt;/em> and &lt;em>are these hosts fully patched?&lt;/em>&lt;/p>
&lt;p>This post builds the whole system from zero. Every file and command is copy-pasteable. The hostnames and IPs below are made up — swap in your own. At the end there&amp;rsquo;s a list of the quirks that actually cost me debugging time, so you can skip my detours.&lt;/p></description></item><item><title>PowerShell + Microsoft Graph + Fedora</title><link>/posts/post-6/</link><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate><guid>/posts/post-6/</guid><description>&lt;p>A practical reference for connecting PowerShell to Exchange Online and Microsoft Graph from Linux (Fedora), plus the exact commands used during the SUSF admin MFA registration and legacy auth hardening project.&lt;/p>
&lt;hr>
&lt;h2 id="one-time-setup-on-fedora">One-Time Setup on Fedora&lt;/h2>
&lt;h3 id="install-powershell-7">Install PowerShell 7&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>sudo dnf install powershell
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>If not in Fedora&amp;rsquo;s repos, add Microsoft&amp;rsquo;s repo first:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>curl -sSL -o /etc/yum.repos.d/microsoft.repo https://packages.microsoft.com/config/rhel/9/prod.repo
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo dnf install powershell
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="launch-powershell">Launch PowerShell&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>pwsh
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="trust-psgallery-first-run-only">Trust PSGallery (First Run Only)&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-powershell" data-lang="powershell">&lt;span style="display:flex;">&lt;span>Set-PSRepository -Name PSGallery -InstallationPolicy Trusted
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;hr>
&lt;h2 id="connecting-to-exchange-online">Connecting to Exchange Online&lt;/h2>
&lt;h3 id="install-module-once">Install module (once)&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-powershell" data-lang="powershell">&lt;span style="display:flex;">&lt;span>Install-Module -Name ExchangeOnlineManagement -Scope CurrentUser
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="connect">Connect&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-powershell" data-lang="powershell">&lt;span style="display:flex;">&lt;span>Import-Module ExchangeOnlineManagement
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Connect-ExchangeOnline -UserPrincipalName itadmin@yourdomain.onmicrosoft.com
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Uses a browser/device-code sign-in flow.&lt;/p></description></item><item><title>How to build an Application with modern Technology</title><link>/posts/post-1/</link><pubDate>Mon, 04 Apr 2022 05:00:00 +0000</pubDate><guid>/posts/post-1/</guid><description>&lt;p>Nemo vel ad consectetur namut rutrum ex, venenatis sollicitudin urna. Aliquam erat volutpat. Integer eu ipsum sem. Ut bibendum lacus vestibulum maximus suscipit. Quisque vitae nibh iaculis neque blandit euismod.&lt;/p>
&lt;p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Nemo vel ad consectetur ut aperiam. Itaque eligendi natus aperiam? Excepturi repellendus consequatur quibusdam optio expedita praesentium est adipisci dolorem ut eius!&lt;/p>
&lt;h2 id="creative-design">Creative Design&lt;/h2>
&lt;p>Nam ut rutrum ex, venenatis sollicitudin urna. Aliquam erat volutpat. Integer eu ipsum sem. Ut bibendum lacus vestibulum maximus suscipit. Quisque vitae nibh iaculis neque blandit euismod.&lt;/p></description></item><item><title>How to build an Application with modern Technology</title><link>/posts/post-2/</link><pubDate>Mon, 04 Apr 2022 05:00:00 +0000</pubDate><guid>/posts/post-2/</guid><description>&lt;p>Nemo vel ad consectetur namut rutrum ex, venenatis sollicitudin urna. Aliquam erat volutpat. Integer eu ipsum sem. Ut bibendum lacus vestibulum maximus suscipit. Quisque vitae nibh iaculis neque blandit euismod.&lt;/p>
&lt;p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Nemo vel ad consectetur ut aperiam. Itaque eligendi natus aperiam? Excepturi repellendus consequatur quibusdam optio expedita praesentium est adipisci dolorem ut eius!&lt;/p>
&lt;h2 id="creative-design">Creative Design&lt;/h2>
&lt;p>Nam ut rutrum ex, venenatis sollicitudin urna. Aliquam erat volutpat. Integer eu ipsum sem. Ut bibendum lacus vestibulum maximus suscipit. Quisque vitae nibh iaculis neque blandit euismod.&lt;/p></description></item><item><title>How to build an Application with modern Technology</title><link>/posts/post-3/</link><pubDate>Mon, 04 Apr 2022 05:00:00 +0000</pubDate><guid>/posts/post-3/</guid><description>&lt;p>Nemo vel ad consectetur namut rutrum ex, venenatis sollicitudin urna. Aliquam erat volutpat. Integer eu ipsum sem. Ut bibendum lacus vestibulum maximus suscipit. Quisque vitae nibh iaculis neque blandit euismod.&lt;/p>
&lt;p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Nemo vel ad consectetur ut aperiam. Itaque eligendi natus aperiam? Excepturi repellendus consequatur quibusdam optio expedita praesentium est adipisci dolorem ut eius!&lt;/p>
&lt;h2 id="creative-design">Creative Design&lt;/h2>
&lt;p>Nam ut rutrum ex, venenatis sollicitudin urna. Aliquam erat volutpat. Integer eu ipsum sem. Ut bibendum lacus vestibulum maximus suscipit. Quisque vitae nibh iaculis neque blandit euismod.&lt;/p></description></item><item><title>How to build an Application with modern Technology</title><link>/posts/post-4/</link><pubDate>Mon, 04 Apr 2022 05:00:00 +0000</pubDate><guid>/posts/post-4/</guid><description>&lt;p>Nemo vel ad consectetur namut rutrum ex, venenatis sollicitudin urna. Aliquam erat volutpat. Integer eu ipsum sem. Ut bibendum lacus vestibulum maximus suscipit. Quisque vitae nibh iaculis neque blandit euismod.&lt;/p>
&lt;p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Nemo vel ad consectetur ut aperiam. Itaque eligendi natus aperiam? Excepturi repellendus consequatur quibusdam optio expedita praesentium est adipisci dolorem ut eius!&lt;/p>
&lt;h2 id="creative-design">Creative Design&lt;/h2>
&lt;p>Nam ut rutrum ex, venenatis sollicitudin urna. Aliquam erat volutpat. Integer eu ipsum sem. Ut bibendum lacus vestibulum maximus suscipit. Quisque vitae nibh iaculis neque blandit euismod.&lt;/p></description></item><item><title>N8N workflow automation server deployed on Fedora.</title><link>/posts/post-5/</link><pubDate>Mon, 04 Apr 2022 05:00:00 +0000</pubDate><guid>/posts/post-5/</guid><description>&lt;h1 id="n8n-setup">n8n Setup&lt;/h1>
&lt;blockquote>
&lt;p>Created: 2026-06-02 | Status: Running (systemd managed)&lt;/p>&lt;/blockquote>
&lt;h2 id="overview">Overview&lt;/h2>
&lt;p>n8n workflow automation server deployed on Fedora workstation via Podman, managed by systemd for auto-start on boot.&lt;/p>
&lt;h2 id="access">Access&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Item&lt;/th>
 &lt;th>Value&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>URL&lt;/td>
 &lt;td>&lt;code>http://192.168.75.16:8081&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Version&lt;/td>
 &lt;td>2.22.6&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Image&lt;/td>
 &lt;td>&lt;code>docker.io/n8nio/n8n:latest&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h2 id="container-details">Container Details&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Item&lt;/th>
 &lt;th>Value&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>Container name&lt;/td>
 &lt;td>&lt;code>n8n&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Port mapping&lt;/td>
 &lt;td>&lt;code>192.168.75.16:8081&lt;/code> -&amp;gt; &lt;code>5678&lt;/code> (LAN-only)&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Data directory&lt;/td>
 &lt;td>&lt;code>/home/itadmin/projects/n8n/data&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Running as&lt;/td>
 &lt;td>Root (&lt;code>sudo podman&lt;/code>)&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Timezone&lt;/td>
 &lt;td>Australia/Sydney&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h2 id="systemd-service">Systemd Service&lt;/h2>
&lt;p>Auto-start managed by systemd service file.&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Item&lt;/th>
 &lt;th>Value&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>Unit file&lt;/td>
 &lt;td>&lt;code>/etc/systemd/system/n8n.service&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Local copy&lt;/td>
 &lt;td>&lt;code>/home/itadmin/projects/n8n/n8n.service&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>State&lt;/td>
 &lt;td>&lt;code>enabled&lt;/code> (starts on boot)&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Restart policy&lt;/td>
 &lt;td>&lt;code>on-failure&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h3 id="management-commands">Management Commands&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>sudo systemctl status n8n.service
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo systemctl restart n8n.service
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo systemctl stop n8n.service
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>journalctl -u n8n.service -f &lt;span style="color:#75715e"># live logs&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="environment-variables">Environment Variables&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Variable&lt;/th>
 &lt;th>Value&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;code>N8N_HOST&lt;/code>&lt;/td>
 &lt;td>&lt;code>192.168.75.16&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>N8N_PROTOCOL&lt;/code>&lt;/td>
 &lt;td>&lt;code>http&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>N8N_LISTEN_ADDRESS&lt;/code>&lt;/td>
 &lt;td>&lt;code>0.0.0.0&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>N8N_SECURE_COOKIE&lt;/code>&lt;/td>
 &lt;td>&lt;code>false&lt;/code> (LAN-only, no TLS)&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>TZ&lt;/code>&lt;/td>
 &lt;td>&lt;code>Australia/Sydney&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>GENERIC_TIMEZONE&lt;/code>&lt;/td>
 &lt;td>&lt;code>Australia/Sydney&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h2 id="authentication">Authentication&lt;/h2>
&lt;p>n8n v2.x uses built-in user management (no Basic Auth middleware). Create an owner account through the web UI on first login. API access requires an API key generated in Settings.&lt;/p></description></item><item><title>Privacy</title><link>/pages/privacy-policy/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/pages/privacy-policy/</guid><description>&lt;h4 id="responsibility-of-contributors">Responsibility of Contributors&lt;/h4>
&lt;p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Purus, donec nunc eros, ullamcorper id feugiat quisque aliquam sagittis. Sem turpis sed viverra massa gravida pharetra. Non dui dolor potenti eu dignissim fusce. Ultrices amet, in curabitur a arcu a lectus morbi id. Iaculis erat sagittis in tortor cursus. Molestie urna eu tortor, erat scelerisque eget. Nunc hendrerit sed interdum lacus. Lorem quis viverra sed&lt;/p>
&lt;p>pretium, aliquam sit. Praesent elementum magna amet, tincidunt eros, nibh in leo. Malesuada purus, lacus, at aliquam suspendisse tempus. Quis tempus amet, velit nascetur sollicitudin. At sollicitudin eget amet in. Eu velit nascetur sollicitudin erhdfvssfvrgss eget viverra nec elementum. Lacus, facilisis tristique lectus in.&lt;/p></description></item></channel></rss>