<?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: Muhammad Kamran Kabeer</title>
    <description>The latest articles on DEV Community by Muhammad Kamran Kabeer (@muhammadkamrankabeeross).</description>
    <link>https://dev.to/muhammadkamrankabeeross</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%2F3870183%2F4568d571-b1ba-46d9-97db-ebb02fea8d61.png</url>
      <title>DEV Community: Muhammad Kamran Kabeer</title>
      <link>https://dev.to/muhammadkamrankabeeross</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/muhammadkamrankabeeross"/>
    <language>en</language>
    <item>
      <title>Stop Leaving Your Servers Open: Hardening Linux in 5 Minutes with Ansible</title>
      <dc:creator>Muhammad Kamran Kabeer</dc:creator>
      <pubDate>Sat, 11 Apr 2026 04:40:31 +0000</pubDate>
      <link>https://dev.to/muhammadkamrankabeeross/stop-leaving-your-servers-open-hardening-linux-in-5-minutes-with-ansible-46a2</link>
      <guid>https://dev.to/muhammadkamrankabeeross/stop-leaving-your-servers-open-hardening-linux-in-5-minutes-with-ansible-46a2</guid>
      <description>&lt;p&gt;Hello, World! I’m Muhammad Kamran Kabeer.&lt;/p&gt;

&lt;p&gt;As an IT Instructor and the founder of MK EduOps Solutions, I often see students and small businesses focus on "getting things to work" while completely ignoring "getting things secured."Today, I’m sharing Lab 1 from my new series: The Hardened Gateway. We will use Ansible to automate the security of a Linux server on a Dell Latitude E7440 (or any Ubuntu/Debian machine).&lt;/p&gt;

&lt;p&gt;🛡️ Why "Default Deny"?&lt;br&gt;
Most people try to block "bad" ports. The professional way is to deny everything and only open what you need. This is the "Zero-Trust" mindset.&lt;/p&gt;

&lt;p&gt;🛠️ The Automation Code&lt;br&gt;
Here is the Ansible block I use to secure my lab environments:&lt;/p&gt;

&lt;p&gt;YAML&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;name: Lab 1 - The Hardened Gateway&lt;br&gt;
hosts: localhost&lt;br&gt;
become: yes&lt;br&gt;
tasks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;name: Ensure UFW is installed
apt: { name: ufw, state: present }&lt;/li&gt;
&lt;li&gt;name: Set Default Policies to DENY
community.general.ufw: { state: enabled, policy: deny, direction: incoming }&lt;/li&gt;
&lt;li&gt;name: Allow Essential Traffic
community.general.ufw: { rule: allow, port: "{{ item }}", proto: tcp }
loop: ['22', '80', '443', '81']
🚀 The Result
Running this ensures that only SSH and Web traffic can enter. Everything else—unsecured databases, internal APIs, or forgotten services—is hidden from the world.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Check out the full lab repository here:&lt;a href="https://github.com/muhammadkamrankabeer-oss/MK-EduOps-Labs" rel="noopener noreferrer"&gt;https://github.com/muhammadkamrankabeer-oss/MK-EduOps-Labs&lt;/a&gt;&lt;/p&gt;

</description>
      <category>automation</category>
      <category>linux</category>
      <category>security</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How I Automated a Self-Healing WordPress Lab using Ansible &amp; Docker</title>
      <dc:creator>Muhammad Kamran Kabeer</dc:creator>
      <pubDate>Thu, 09 Apr 2026 16:21:08 +0000</pubDate>
      <link>https://dev.to/muhammadkamrankabeeross/how-i-automated-a-self-healing-wordpress-lab-using-ansible-docker-20m7</link>
      <guid>https://dev.to/muhammadkamrankabeeross/how-i-automated-a-self-healing-wordpress-lab-using-ansible-docker-20m7</guid>
      <description>&lt;p&gt;The Challenge&lt;/p&gt;

&lt;p&gt;As an IT educator, I wanted a lab environment that was stable, professional, and "self-healing." If a student (or a bug) crashes the site, I want it back up in seconds without manual work.&lt;br&gt;
The Solution&lt;/p&gt;

&lt;p&gt;I built a stack on my Dell Latitude E7440 using:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Vagrant &amp;amp; Debian: To create a clean, isolated sandbox.

Ansible: To automate the configuration (Infrastructure as Code).

Docker: To run WordPress and MariaDB.

Nginx Proxy Manager: To give it a professional URL (http://wordpress.test) instead of messy IP addresses.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Why this matters&lt;/p&gt;

&lt;p&gt;By using Docker's restart_policy: always, if the WordPress container fails, the system "heals" itself immediately.&lt;/p&gt;

&lt;p&gt;[INSERT YOUR TWO SCREENSHOTS HERE: NPM Dashboard and WordPress Welcome Page]&lt;br&gt;
Work with me!&lt;/p&gt;

&lt;p&gt;I am a professional educator and DevOps practitioner. If you need:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Technical Writing: I can turn your complex code into clear tutorials.

Lab Setup: I can help you automate your teaching environments.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Feel free to reach out here or on LinkedIn!&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
