<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
  <url>
    <loc>https://www.liranzojr.com/home</loc>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
    <lastmod>2026-06-16</lastmod>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/6a2f71bba7c72c27e16d3474/1781497046619-0IIC2Y5PVVPZVFO1OWAI/unsplash-image-T9rKvI3N0NM.jpg</image:loc>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/6a2f71bba7c72c27e16d3474/1781496786103-UKK1TEDR8RTBN8M98KET/unsplash-image-yhJVLxcquEY.jpg</image:loc>
    </image:image>
  </url>
  <url>
    <loc>https://www.liranzojr.com/about</loc>
    <changefreq>daily</changefreq>
    <priority>0.75</priority>
    <lastmod>2026-06-15</lastmod>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/6a2f71bba7c72c27e16d3474/1781497301170-DNNU1BLGTHG4FPNY1CM7/unsplash-image-40XgDxBfYXM.jpg</image:loc>
    </image:image>
  </url>
  <url>
    <loc>https://www.liranzojr.com/contact</loc>
    <changefreq>daily</changefreq>
    <priority>0.75</priority>
    <lastmod>2026-06-16</lastmod>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/6a2f71bba7c72c27e16d3474/1781497892413-2FX8PABIROTHYIZLZ8IU/unsplash-image-1xIN4FMR78A.jpg</image:loc>
    </image:image>
  </url>
  <url>
    <loc>https://www.liranzojr.com/projects</loc>
    <changefreq>daily</changefreq>
    <priority>0.75</priority>
    <lastmod>2026-06-16</lastmod>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/6a2f71bba7c72c27e16d3474/7fcf65c6-431b-47d8-b05a-090c79a20f19/05-proxmox-ui.png</image:loc>
      <image:title>Projects</image:title>
      <image:caption>Proxmox VE 9 on a Dell R520: 20 threads, 94 GB RAM, about 25 VMs and containers. Moved off an end-of-life release with a written runbook and rollback plan. (VM names blurred.)</image:caption>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/6a2f71bba7c72c27e16d3474/7da01480-6bd7-4273-a565-641bbca96ef4/04-proxmox-zfs.png</image:loc>
      <image:title>Projects</image:title>
      <image:caption>ZFS RAID-Z pool healthy, 0 scrub errors. ARC cache capped at 16 GB after I found it quietly eating half the host's memory. (Drive IDs redacted.)</image:caption>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/6a2f71bba7c72c27e16d3474/ee482d9c-089d-4c80-ad8f-b6f12e8c7f7a/09-opnsense-wan-rules.png</image:loc>
      <image:title>Projects</image:title>
      <image:caption>Edge firewall WAN rules after I retired every inbound port-forward: geo-block on top, everything else denied by default. Players reach the game servers through an outbound-only tunnel. Verified closed from outside.</image:caption>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/6a2f71bba7c72c27e16d3474/c459b75a-4702-4b2a-8671-a53c9b1f2504/06-opnsense-dashboard.png</image:loc>
      <image:title>Projects</image:title>
      <image:caption>OPNsense at the edge: current release, services healthy, live traffic. (Hostname and gateway addresses blurred.)</image:caption>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/6a2f71bba7c72c27e16d3474/300a91fb-eda5-43e8-87f0-668320b94db8/07-opnsense-aliases.png</image:loc>
      <image:title>Projects</image:title>
      <image:caption>Geo-blocking plus bogon and abuse-lockout tables doing their job: 16 bogon packets already dropped. (Country list blurred.)</image:caption>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/6a2f71bba7c72c27e16d3474/ad191ee4-5e8d-48f4-8ceb-dcf5d52ad0d5/03-ids-triage.png</image:loc>
      <image:title>Projects</image:title>
      <image:caption>My first real priority-1 IDS alert (MS08-067 against the file server) and the evidence chain that proved it was a false positive. Real alert record; addresses swapped for documentation ranges.</image:caption>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/6a2f71bba7c72c27e16d3474/f4c6ea10-23bf-4661-ac4c-0b33e412cc42/01-dashboard-overview.png</image:loc>
      <image:title>Projects</image:title>
      <image:caption>The live dashboard I built: game servers, IDS alerts, drive health (SMART) and storage, refreshed every 15 seconds through a read-only API account. Real numbers, identifying names scrubbed.</image:caption>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/6a2f71bba7c72c27e16d3474/7f354ec4-5b1a-4bcc-af8c-de6a181c2c00/02-dashboard-backups-guests.png</image:loc>
      <image:title>Projects</image:title>
      <image:caption>Same dashboard: the weekly backup jobs, recent runs, and everything running right now.</image:caption>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/6a2f71bba7c72c27e16d3474/da411cff-2247-4c7a-addc-e2286101a459/08-ansible-check-diff.png</image:loc>
      <image:title>Projects</image:title>
      <image:caption>Ansible SSH baseline run in check mode: the exact diff (login banner + hardened sshd settings) shows up before anything changes. Dry run first, then apply.</image:caption>
    </image:image>
    <image:image>
      <image:loc>https://images.squarespace-cdn.com/content/v1/6a2f71bba7c72c27e16d3474/3d1c0e2d-7b6d-466b-bf17-cdc151a519f7/10-nessus-before-after.png</image:loc>
      <image:title>Projects</image:title>
      <image:caption>My first Nessus baseline found two highs on the server's out-of-band controller (IPMI hash disclosure, default SNMP community) plus an unneeded file-sharing service and a forgotten VPN on the hypervisor. Fixed the same night and re-scanned: highs 2 to 0. What's left is accepted risk (self-signed certs on internal admin pages). Addresses replaced with roles.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.liranzojr.com/dashboard-demo</loc>
    <changefreq>daily</changefreq>
    <priority>0.75</priority>
    <lastmod>2026-10-18</lastmod>
  </url>
</urlset>

