<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Max Müller</title>
    <description>The latest articles on DEV Community by Max Müller (@mmvonnseek).</description>
    <link>https://dev.to/mmvonnseek</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F737632%2Fe3a74dc4-13b8-40b7-a5f4-28a7fe170bde.jpeg</url>
      <title>DEV Community: Max Müller</title>
      <link>https://dev.to/mmvonnseek</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mmvonnseek"/>
    <language>en</language>
    <item>
      <title>I left a Linux security guide half-finished for months — Copilot helped me wrap it up</title>
      <dc:creator>Max Müller</dc:creator>
      <pubDate>Thu, 28 May 2026 23:27:04 +0000</pubDate>
      <link>https://dev.to/mmvonnseek/i-left-a-linux-security-guide-half-finished-for-months-copilot-helped-me-wrap-it-up-13hh</link>
      <guid>https://dev.to/mmvonnseek/i-left-a-linux-security-guide-half-finished-for-months-copilot-helped-me-wrap-it-up-13hh</guid>
      <description>&lt;h1&gt;
  
  
  I left a Linux security guide half-finished for months — Copilot helped me wrap it up (and taught me something I didn't expect)
&lt;/h1&gt;

&lt;h2&gt;
  
  
  The project that sat there collecting dust
&lt;/h2&gt;

&lt;p&gt;I'm a teacher at SENAI in Taguatinga, Brazil. I teach Systems Development and Fullstack. A few months ago I created the &lt;a href="https://github.com/MMVonnSeek/linux-security-guide" rel="noopener noreferrer"&gt;linux-security-guide&lt;/a&gt; — a practical Linux guide focused on security, born directly from my classroom.&lt;/p&gt;

&lt;p&gt;The reason I started it was simple and honest: I was tired of 2-hour YouTube videos teaching things wrong, and course materials that just make students memorize commands. I had about 15 students fail job interviews because they couldn't answer "how do you secure a Linux server in practice?" — and that made me angry. So I put together everything I teach in class and use day-to-day so nobody would go through the same frustration I went through when I started.&lt;/p&gt;

&lt;p&gt;The project grew well. Fundamentals, networking, hardening, practical labs. But at some point it stopped. It just sat there with a nice structure, half-finished modules, and labs that didn't show students what they should actually see in the terminal.&lt;/p&gt;

&lt;p&gt;This challenge was the push I needed.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I added with Copilot
&lt;/h2&gt;

&lt;p&gt;Three fronts:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Lab 04 — Suspicious process detection&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This lab didn't exist. I knew what I wanted: something practical, with real commands (&lt;code&gt;ps&lt;/code&gt;, &lt;code&gt;top&lt;/code&gt;, &lt;code&gt;lsof&lt;/code&gt;, &lt;code&gt;netstat&lt;/code&gt;, &lt;code&gt;/proc&lt;/code&gt;), defensive focus, and expected output for each step. I gave Copilot the context and it put together a solid structure I wouldn't have written that quickly on my own. I still had to review every block — the technical content was correct, but some sections needed the adjustment of someone who's actually worked with this in a classroom.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Automated hardening script&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Module 03 of the guide teaches secure SSH, auditd, suspicious crontab. But there was no script to automate all of that. Copilot generated a &lt;code&gt;hardening.sh&lt;/code&gt; with dependency checking, automatic backup of files it modifies, logging everything to &lt;code&gt;/var/log/hardening.log&lt;/code&gt;, and decent error handling. Good enough to show students as a production script example.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Expected output in existing labs&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The three existing labs had the commands but didn't show what students should see after running them. That sounds like a detail, but it isn't — beginner students get stuck exactly because they don't know if what appeared in the terminal is right or wrong. I used Copilot to review each lab and add those output examples. Repetitive work I always kept putting off.&lt;/p&gt;




&lt;h2&gt;
  
  
  The moment I didn't expect
&lt;/h2&gt;

&lt;p&gt;While working on the suspicious crontab module (&lt;code&gt;03-hardening/crontab-suspeito.md&lt;/code&gt;), I was listing the basic commands to check scheduled tasks. Standard stuff.&lt;/p&gt;

&lt;p&gt;Copilot suggested creating a lab where the student finds a cron job running a hidden script at &lt;code&gt;/var/tmp/.cache/.systemd-fix.sh&lt;/code&gt; and has to trace where it came from.&lt;/p&gt;

&lt;p&gt;I laughed out loud. Because that's exactly the kind of dirty trick an attacker would use in the real world. A name that looks legitimate, a hidden directory inside &lt;code&gt;/var/tmp&lt;/code&gt;, a path that slips past a quick listing. I wouldn't have thought of that level of "dirty detail" on my own — at least not at that moment. It was smart because it helped me turn a boring "look at the crontab" lesson into a treasure hunt that students loved.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I had to fix
&lt;/h2&gt;

&lt;p&gt;Copilot is useful, but stubborn like a student who thinks they know everything.&lt;/p&gt;

&lt;p&gt;In the SSH hardening lab (&lt;code&gt;lab-03-ssh-hardening.md&lt;/code&gt;), it generated a correct command to disable password authentication — it put &lt;code&gt;PasswordAuthentication no&lt;/code&gt; just fine. But it forgot to mention &lt;code&gt;ChallengeResponseAuthentication&lt;/code&gt;. If a student followed only that, the server would still accept some older authentication methods. A guaranteed vulnerability.&lt;/p&gt;

&lt;p&gt;I had to add three more configuration lines and an explicit warning in the text. Copilot helps, but it doesn't replace someone who's already been burned trying to fix a server at 3am.&lt;/p&gt;




&lt;h2&gt;
  
  
  What changed in the project
&lt;/h2&gt;

&lt;p&gt;Before: organized structure, incomplete content, labs with no visual feedback for whoever runs them.&lt;/p&gt;

&lt;p&gt;After: new lab on process detection, functional hardening script, and existing labs with expected output at each step.&lt;/p&gt;

&lt;p&gt;The guide still isn't perfect. But now it's in a state where I can recommend it to a student without having to apologize for any unfinished part.&lt;/p&gt;




&lt;h2&gt;
  
  
  Repository
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/MMVonnSeek/linux-security-guide" rel="noopener noreferrer"&gt;github.com/MMVonnSeek/linux-security-guide&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Created and maintained by Professor Max — SENAI Taguatinga, Brazil.&lt;/p&gt;

</description>
      <category>githubfinishupathon</category>
      <category>github</category>
      <category>devchallenge</category>
      <category>githubchallenge</category>
    </item>
  </channel>
</rss>
