<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Архивы Setup - Boxvirt - Proxmox &amp; OPNsense Infrastructure Guides</title>
	<atom:link href="https://boxvirt.com/tag/setup/feed/" rel="self" type="application/rss+xml" />
	<link>https://boxvirt.com/tag/setup/</link>
	<description>Practical self-hosted infrastructure guides for Proxmox, OPNsense, and Docker.</description>
	<lastBuildDate>Thu, 07 Aug 2025 21:45:39 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://boxvirt.com/wp-content/uploads/2025/07/cropped-ChatGPT-Image-12-июл.-2025-г.-19_41_55-32x32.png</url>
	<title>Архивы Setup - Boxvirt - Proxmox &amp; OPNsense Infrastructure Guides</title>
	<link>https://boxvirt.com/tag/setup/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>How to Install Proxmox VE 8: A Beginner&#8217;s Step-by-Step Guide</title>
		<link>https://boxvirt.com/how-to-install-proxmox-ve-8/</link>
					<comments>https://boxvirt.com/how-to-install-proxmox-ve-8/#respond</comments>
		
		<dc:creator><![CDATA[eXtre]]></dc:creator>
		<pubDate>Thu, 07 Aug 2025 21:44:13 +0000</pubDate>
				<category><![CDATA[Proxmox]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[Setup]]></category>
		<guid isPermaLink="false">https://boxvirt.com/?p=156</guid>

					<description><![CDATA[<p>Introduction So, you&#8217;ve decided to build your own powerful server with Proxmox VE? Excellent choice! You&#8217;re on your way to creating an amazing homelab or small business environment. [&#8230;]</p>
<p>Сообщение <a href="https://boxvirt.com/how-to-install-proxmox-ve-8/">How to Install Proxmox VE 8: A Beginner&#8217;s Step-by-Step Guide</a> появились сначала на <a href="https://boxvirt.com">Boxvirt - Proxmox &amp; OPNsense Infrastructure Guides</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading"><strong>Introduction</strong></h2>



<p>So, you&#8217;ve decided to build your own powerful server with <a href="https://boxvirt.com/proxmox-ve-guide/">Proxmox VE</a>? Excellent choice! You&#8217;re on your way to creating an amazing homelab or small business environment. This guide is designed for absolute beginners and will walk you through every single step of the installation process. Don&#8217;t worry, it&#8217;s easier than you think!</p>



<p>By the end of this tutorial, you will have a fully functional Proxmox VE 8 host up and running. Let&#8217;s begin!</p>



<h3 class="wp-block-heading"><strong>What You&#8217;ll Need</strong></h3>



<ul class="wp-block-list">
<li>A dedicated physical computer or server that meets the minimum hardware requirements.</li>



<li>A USB flash drive (at least 4GB).</li>



<li>Access to another computer to download the software and create the bootable drive.</li>
</ul>



<h2 class="wp-block-heading"><strong>Step 1: Download the Proxmox VE ISO Image</strong></h2>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="1024" src="https://boxvirt.com/wp-content/uploads/2025/08/How-to-Install-Proxmox-VE-8_3-1024x1024.webp" alt="Proxmox VE installer boot menu" class="wp-image-159" srcset="https://boxvirt.com/wp-content/uploads/2025/08/How-to-Install-Proxmox-VE-8_3-1024x1024.webp 1024w, https://boxvirt.com/wp-content/uploads/2025/08/How-to-Install-Proxmox-VE-8_3-300x300.webp 300w, https://boxvirt.com/wp-content/uploads/2025/08/How-to-Install-Proxmox-VE-8_3-150x150.webp 150w, https://boxvirt.com/wp-content/uploads/2025/08/How-to-Install-Proxmox-VE-8_3-768x768.webp 768w, https://boxvirt.com/wp-content/uploads/2025/08/How-to-Install-Proxmox-VE-8_3-1536x1536.webp 1536w, https://boxvirt.com/wp-content/uploads/2025/08/How-to-Install-Proxmox-VE-8_3.webp 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>First, we need to get the installation file.</p>



<ol start="1" class="wp-block-list">
<li>Open your web browser and go to the official Proxmox downloads page.</li>



<li>Look for <strong><a href="https://boxvirt.com/how-to-secure-your-proxmox-server-with-lets-encrypt-ssl-certificate-a-step-by-step-guide/">Proxmox Virtual Environment</a></strong>.</li>



<li>Download the latest ISO Installer (e.g., version 8.x). It will be a large file, so be patient.</li>
</ol>



<h2 class="wp-block-heading"><strong>Step 2: Create a Bootable USB Drive</strong></h2>



<p>Now we need to write that ISO file to a USB drive so your server can boot from it.</p>



<ol start="1" class="wp-block-list">
<li>Download and install a free tool called <strong>BalenaEtcher</strong>. It&#8217;s available for Windows, macOS, and Linux and is very user-friendly.</li>



<li>Plug your USB drive into your computer.</li>



<li>Open BalenaEtcher.</li>



<li>Click <strong>&#171;Flash from file&#187;</strong> and select the Proxmox ISO file you just downloaded.</li>



<li>Click <strong>&#171;Select target&#187;</strong> and choose your USB drive. <strong>Warning:</strong> This will erase everything on the drive, so make sure it doesn&#8217;t contain important data!</li>



<li>Click <strong>&#171;Flash!&#187;</strong> and wait for the process to complete.</li>
</ol>



<h2 class="wp-block-heading"><strong>Step 3: Boot Your Server from the USB Drive</strong></h2>



<p>This is the most hands-on part.</p>



<ol start="1" class="wp-block-list">
<li>Plug the newly created bootable USB drive into your destination server.</li>



<li>Power on the server.</li>



<li>You need to enter the <strong>Boot Menu</strong> to tell the server to boot from the USB drive instead of its internal hard drive. This is usually done by pressing a specific key right after you power it on, such as <strong>F11, F12, F2, or Del</strong>. The correct key is often displayed on the screen briefly.</li>



<li>From the Boot Menu, select your USB drive and press Enter.</li>
</ol>



<h2 class="wp-block-heading"><strong>Step 4: The Proxmox VE Installation Wizard</strong></h2>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="1024" src="https://boxvirt.com/wp-content/uploads/2025/08/proxmox_network_config-1024x1024.webp" alt="Proxmox VE network configuration screen" class="wp-image-160" srcset="https://boxvirt.com/wp-content/uploads/2025/08/proxmox_network_config-1024x1024.webp 1024w, https://boxvirt.com/wp-content/uploads/2025/08/proxmox_network_config-300x300.webp 300w, https://boxvirt.com/wp-content/uploads/2025/08/proxmox_network_config-150x150.webp 150w, https://boxvirt.com/wp-content/uploads/2025/08/proxmox_network_config-768x768.webp 768w, https://boxvirt.com/wp-content/uploads/2025/08/proxmox_network_config-1536x1536.webp 1536w, https://boxvirt.com/wp-content/uploads/2025/08/proxmox_network_config.webp 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>If all went well, you&#8217;ll see the Proxmox VE boot menu.</p>



<ol start="1" class="wp-block-list">
<li>Select <strong>&#171;Install Proxmox VE (Graphical)&#187;</strong> and press Enter.</li>



<li><strong>EULA:</strong> The first screen is the End User License Agreement. Click <strong>&#171;I agree&#187;</strong>.</li>



<li><strong>Target Harddisk:</strong> Choose the hard drive where you want to install Proxmox. For most users with one drive, there will only be one option. Click <strong>&#171;Next&#187;</strong>.</li>



<li><strong>Location and Time Zone:</strong> Set your country, time zone, and keyboard layout.</li>



<li><strong>Administration Password and Email:</strong> Enter a very strong password for the <code>root</code> (administrator) user. You will use this to log in. Enter your email address for system notifications.</li>



<li><strong>Network Configuration:</strong> This step is crucial. The installer will try to guess your network settings, but you should verify them.
<ul class="wp-block-list">
<li><strong>Management Interface:</strong> This will be your server&#8217;s main network card (e.g., <code>ens18</code>).</li>



<li><strong>Hostname:</strong> Choose a name for your server, like <code>pve.mydomain.local</code>.</li>



<li><strong>IP Address:</strong> Set a <strong>static IP address</strong>. Do not use DHCP. This should be an address on your local network that is not used by any other device.</li>



<li><strong>Gateway:</strong> This is the IP address of your home router.</li>



<li><strong><a href="https://boxvirt.com/how-to-secure-dns-with-dns-over-tls-in-opnsense-using-unbound/">DNS Server:</a></strong> You can often use your router&#8217;s IP address here as well, or a public DNS like <code>8.8.8.8</code>.</li>
</ul>
</li>



<li><strong>Summary:</strong> The final screen will show you a summary of all your choices. Double-check everything. When you&#8217;re ready, click <strong>&#171;Install&#187;</strong>.</li>
</ol>



<p>The installation process will now begin and take several minutes. Once it&#8217;s finished, the server will automatically reboot. <strong>Don&#8217;t forget to remove the USB drive!</strong></p>



<h2 class="wp-block-heading"><strong>Step 5: Your First Login!</strong></h2>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="1024" src="https://boxvirt.com/wp-content/uploads/2025/08/How-to-Install-Proxmox-VE-8_2-1024x1024.webp" alt="Proxmox VE web login screen" class="wp-image-158" srcset="https://boxvirt.com/wp-content/uploads/2025/08/How-to-Install-Proxmox-VE-8_2-1024x1024.webp 1024w, https://boxvirt.com/wp-content/uploads/2025/08/How-to-Install-Proxmox-VE-8_2-300x300.webp 300w, https://boxvirt.com/wp-content/uploads/2025/08/How-to-Install-Proxmox-VE-8_2-150x150.webp 150w, https://boxvirt.com/wp-content/uploads/2025/08/How-to-Install-Proxmox-VE-8_2-768x768.webp 768w, https://boxvirt.com/wp-content/uploads/2025/08/How-to-Install-Proxmox-VE-8_2-1536x1536.webp 1536w, https://boxvirt.com/wp-content/uploads/2025/08/How-to-Install-Proxmox-VE-8_2.webp 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>After the reboot, your Proxmox server is live!</p>



<ol start="1" class="wp-block-list">
<li>On another computer on the same network, open a web browser.</li>



<li>Navigate to the IP address you configured: <code>https://Your-Static-IP:8006</code></li>



<li>You&#8217;ll see a security warning because Proxmox uses a self-signed certificate. This is normal. Click &#171;Advanced&#187; and &#171;Proceed&#187;.</li>



<li>At the login screen, enter the username <code>root</code> and the password you created.</li>



<li>Congratulations! You are now in the Proxmox VE web interface.</li>
</ol>



<p>Now that you have Proxmox installed, it&#8217;s time to explore its full potential. Check out our <strong><a href="https://boxvirt.com/proxmox-ve-guide/">Ultimate Guide to Proxmox VE</a></strong> to learn how to create VMs, configure networking, set up backups, and much more!</p>



<p></p>
<p>Сообщение <a href="https://boxvirt.com/how-to-install-proxmox-ve-8/">How to Install Proxmox VE 8: A Beginner&#8217;s Step-by-Step Guide</a> появились сначала на <a href="https://boxvirt.com">Boxvirt - Proxmox &amp; OPNsense Infrastructure Guides</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://boxvirt.com/how-to-install-proxmox-ve-8/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Ultimate Guide: Setting Up Traefik as a Reverse Proxy in Docker (with Let&#8217;s Encrypt, Cloudflare, and Secure Services)</title>
		<link>https://boxvirt.com/ultimate-guide-setting-up-traefik-as-a-reverse-proxy-in-docker-with-lets-encrypt-cloudflare-and-secure-services/</link>
					<comments>https://boxvirt.com/ultimate-guide-setting-up-traefik-as-a-reverse-proxy-in-docker-with-lets-encrypt-cloudflare-and-secure-services/#respond</comments>
		
		<dc:creator><![CDATA[eXtre]]></dc:creator>
		<pubDate>Sat, 02 Aug 2025 21:48:49 +0000</pubDate>
				<category><![CDATA[Docker]]></category>
		<category><![CDATA[Traefik]]></category>
		<category><![CDATA[Setup]]></category>
		<guid isPermaLink="false">https://boxvirt.com/?p=134</guid>

					<description><![CDATA[<p>Introduction: Why a Reverse Proxy? In modern self-hosted environments, you&#8217;re often running multiple services — like a photo gallery (e.g., Immich), media server (e.g., Jellyfin), and dashboards. If [&#8230;]</p>
<p>Сообщение <a href="https://boxvirt.com/ultimate-guide-setting-up-traefik-as-a-reverse-proxy-in-docker-with-lets-encrypt-cloudflare-and-secure-services/">Ultimate Guide: Setting Up Traefik as a Reverse Proxy in Docker (with Let&#8217;s Encrypt, Cloudflare, and Secure Services)</a> появились сначала на <a href="https://boxvirt.com">Boxvirt - Proxmox &amp; OPNsense Infrastructure Guides</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading">Introduction: Why a Reverse Proxy?</h3>



<p>In modern self-hosted environments, you&#8217;re often running multiple services — like a photo gallery (e.g., Immich), media server (e.g., Jellyfin), and dashboards. If all these services expose themselves directly on different ports, things quickly get messy. Enter the reverse proxy.</p>



<p>A reverse proxy routes incoming HTTP/HTTPS traffic to the right container based on domain or path. It allows you to:</p>



<ul class="wp-block-list">
<li>Use <strong>pretty domain names</strong> like <code>photos.example.com</code></li>



<li>Enforce <strong>HTTPS with Let&#8217;s Encrypt</strong></li>



<li>Route requests internally by hostname instead of IP and port</li>



<li>Apply <strong>access control, rate limits</strong>, or <strong>basic authentication</strong> centrally</li>
</ul>



<p>And Traefik does all that, <strong>automatically</strong>, with minimal config.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Why Traefik Over Nginx?</h3>



<p>While Nginx is popular and powerful, it&#8217;s static by default. Every new service requires you to edit config files and reload.</p>



<p>Traefik, on the other hand:</p>



<ul class="wp-block-list">
<li>Automatically discovers Docker containers</li>



<li>Supports <strong>dynamic routing</strong> using Docker labels</li>



<li>Comes with built-in <strong>Let&#8217;s Encrypt integration</strong></li>



<li>Has a <strong>web dashboard</strong> to visualize routes</li>



<li>Requires <strong>minimal config</strong></li>
</ul>



<p>Traefik was <strong>designed for containerized environments</strong> from the start.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2699.png" alt="⚙" class="wp-smiley" style="height: 1em; max-height: 1em;" /> How Traefik Works Internally</h3>



<p>Traefik is composed of three key concepts:</p>



<h4 class="wp-block-heading">1. <strong>EntryPoints</strong></h4>



<p>These define which ports Traefik listens on (e.g., <code>:80</code>, <code>:443</code>). You can think of these as your public gateways.</p>



<h4 class="wp-block-heading">2. <strong>Routers</strong></h4>



<p>Routers match incoming requests (host, path, method) and forward them to services. They also define TLS settings and middleware.</p>



<h4 class="wp-block-heading">3. <strong>Services</strong></h4>



<p>These are the actual Docker containers (or upstream backends) that respond to the requests.</p>



<h4 class="wp-block-heading">4. <strong>Middlewares</strong> (Optional)</h4>



<p>These are like plugins: things that transform requests (e.g., strip path, redirect HTTP to HTTPS, basic auth, etc).</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f4e6.png" alt="📦" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Installing Traefik with Docker Compose</h3>



<p>Let’s build a fully functional Traefik setup using Docker Compose.</p>



<pre class="wp-block-code"><code>docker-compose.yml
<code>version: '3.9'

services:
  traefik:
    image: traefik:v3.0
    container_name: traefik
    command:
      - --api.dashboard=true
      - --api.insecure=false
      - --entrypoints.web.address=:80
      - --entrypoints.websecure.address=:443
      - --providers.docker=true
      - --providers.docker.exposedbydefault=false
      - --certificatesresolvers.cloudflare.acme.dnschallenge=true
      - --certificatesresolvers.cloudflare.acme.dnschallenge.provider=cloudflare
      - --certificatesresolvers.cloudflare.acme.email=you@example.com
      - --certificatesresolvers.cloudflare.acme.storage=/letsencrypt/acme.json
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./letsencrypt:/letsencrypt
    environment:
      - CF_API_EMAIL=you@example.com
      - CF_API_KEY=your_cloudflare_api_key
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.traefik.rule=Host(`traefik.yourdomain.com`)"
      - "traefik.http.routers.traefik.entrypoints=websecure"
      - "traefik.http.routers.traefik.tls.certresolver=cloudflare"
      - "traefik.http.routers.traefik.service=api@internal"
      - "traefik.http.middlewares.traefik-auth.basicauth.users=admin:$$apr1$$6yLkU..."
      - "traefik.http.routers.traefik.middlewares=traefik-auth"</code></code></pre>



<p>You also need to create the directory <code>./letsencrypt</code> and touch <code>acme.json</code> with permissions <code>600</code>.</p>



<pre class="wp-block-code"><code>mkdir letsencrypt
chmod 600 letsencrypt/acme.json</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f510.png" alt="🔐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Securing the Dashboard</h3>



<p>Never expose the dashboard to the public without auth. Use basic auth like above or restrict access to specific IPs.</p>



<p>Alternative example:</p>



<pre class="wp-block-code"><code><code>- "traefik.http.routers.traefik.middlewares=dashboard-auth"
- "traefik.http.middlewares.dashboard-auth.basicauth.usersfile=/users.htpasswd"</code></code></pre>



<p>Generate passwords with:</p>



<pre class="wp-block-code"><code>htpasswd -nb admin strongpassword</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f30d.png" alt="🌍" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Deploying a Sample Service Behind Traefik</h3>



<pre class="wp-block-code"><code><code>services:
  whoami:
    image: traefik/whoami
    container_name: whoami
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.whoami.rule=Host(`whoami.yourdomain.com`)"
      - "traefik.http.routers.whoami.entrypoints=websecure"
      - "traefik.http.routers.whoami.tls.certresolver=cloudflare"</code></code></pre>



<p>Start both containers:</p>



<pre class="wp-block-code"><code>docker compose up -d</code></pre>



<p>Now visit <code>https://whoami.yourdomain.com</code> — you’ll see the container response.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f527.png" alt="🔧" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Additional Features to Explore</h3>



<ul class="wp-block-list">
<li>Middleware: redirect, stripPrefix, basicAuth</li>



<li>Rate-limiting</li>



<li>Retry and load balancing</li>



<li>Redirect HTTP to HTTPS automatically</li>



<li>Wildcard TLS certificates</li>



<li>Forward headers to preserve real IP</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f4d8.png" alt="📘" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Conclusion</h3>



<p>Traefik makes deploying, securing, and managing multiple services in Docker easy and dynamic. With a few Docker labels and one compose file, you get:</p>



<ul class="wp-block-list">
<li>Auto-routing by domain</li>



<li>HTTPS with Let&#8217;s Encrypt</li>



<li>Centralized auth and middleware</li>



<li>Visibility via dashboard</li>
</ul>



<p>Traefik replaces hours of nginx tinkering with a <strong>declarative, scalable, and elegant</strong> solution.</p>
<p>Сообщение <a href="https://boxvirt.com/ultimate-guide-setting-up-traefik-as-a-reverse-proxy-in-docker-with-lets-encrypt-cloudflare-and-secure-services/">Ultimate Guide: Setting Up Traefik as a Reverse Proxy in Docker (with Let&#8217;s Encrypt, Cloudflare, and Secure Services)</a> появились сначала на <a href="https://boxvirt.com">Boxvirt - Proxmox &amp; OPNsense Infrastructure Guides</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://boxvirt.com/ultimate-guide-setting-up-traefik-as-a-reverse-proxy-in-docker-with-lets-encrypt-cloudflare-and-secure-services/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Firewall Logging, Backups &#038; Best Practices</title>
		<link>https://boxvirt.com/firewall-logging-backups-best-practices/</link>
					<comments>https://boxvirt.com/firewall-logging-backups-best-practices/#respond</comments>
		
		<dc:creator><![CDATA[eXtre]]></dc:creator>
		<pubDate>Sat, 02 Aug 2025 21:36:09 +0000</pubDate>
				<category><![CDATA[Mikrotik]]></category>
		<category><![CDATA[Firewall]]></category>
		<category><![CDATA[MikroTik]]></category>
		<category><![CDATA[Setup]]></category>
		<guid isPermaLink="false">https://boxvirt.com/?p=131</guid>

					<description><![CDATA[<p>— Keep It Clean, Recoverable, and Easy to Maintain Why This Matters A solid firewall config can take hours to build — but minutes to lose. Whether it’s: [&#8230;]</p>
<p>Сообщение <a href="https://boxvirt.com/firewall-logging-backups-best-practices/">Firewall Logging, Backups &#038; Best Practices</a> появились сначала на <a href="https://boxvirt.com">Boxvirt - Proxmox &amp; OPNsense Infrastructure Guides</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading">— Keep It Clean, Recoverable, and Easy to Maintain</h3>



<h2 class="wp-block-heading">Why This Matters</h2>



<p>A solid firewall config can take hours to build — but minutes to lose.</p>



<p>Whether it’s:</p>



<ul class="wp-block-list">
<li>A reboot gone wrong</li>



<li>A bad rule blocking your access</li>



<li>An upgrade that resets the config</li>



<li>Or simply forgetting what each rule does&#8230;</li>
</ul>



<p>You need a <strong>system</strong> to keep your firewall alive, readable, and resilient.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f501.png" alt="🔁" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 1. Regular Backups and Exports</h2>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f4cd.png" alt="📍" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Difference Between Backup and Export:</h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Type</th><th>What it does</th></tr></thead><tbody><tr><td><code>backup</code></td><td>Binary file of full system config (not readable/editable)</td></tr><tr><td><code>export</code></td><td>Human-readable script you can tweak or version control</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f4e5.png" alt="📥" class="wp-smiley" style="height: 1em; max-height: 1em;" /> How to Backup:</h3>



<pre class="wp-block-preformatted"><code>/system backup save name=firewall_config<br></code></pre>



<p>You’ll get a file like <code>firewall_config.backup</code> in <strong>Files</strong> — download it to your PC!</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f4e4.png" alt="📤" class="wp-smiley" style="height: 1em; max-height: 1em;" /> How to Export Firewall Only:</h3>



<pre class="wp-block-preformatted"><code>/export file=firewall_export<br></code></pre>



<p>You’ll get <code>firewall_export.rsc</code>.<br>You can edit, version in Git, or apply on other routers.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f9fc.png" alt="🧼" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 2. Use Comments Everywhere</h2>



<p>Every rule, every address list, every NAT line — <strong>must</strong> have a comment.</p>



<p>Example:</p>



<pre class="wp-block-preformatted"><code>/ip firewall filter<br>add chain=input src-address-list=TRUSTED_IPS action=accept comment="Allow remote Winbox"<br>/ip firewall nat<br>add chain=dstnat dst-port=443 action=dst-nat to-addresses=192.168.88.100 comment="HTTPS to NAS"<br></code></pre>



<p>It’s not optional — <strong>future you will thank you</strong>.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f4da.png" alt="📚" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 3. Group Rules Logically</h2>



<p>Use <strong>grouping by chain and purpose</strong>, for example:</p>



<ul class="wp-block-list">
<li>Section 1: Input chain</li>



<li>Section 2: Forward chain (LAN access)</li>



<li>Section 3: Forward chain (guest/VPN)</li>



<li>Section 4: NAT rules</li>



<li>Section 5: Special protections (DoS, brute-force)</li>



<li>Section 6: Logging and drops</li>
</ul>



<p>You can even add <strong>empty comment rules</strong> as section headers:</p>



<pre class="wp-block-preformatted"><code>/ip firewall filter<br>add comment="=== INPUT CHAIN START ==="<br></code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f4c8.png" alt="📈" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 4. Monitor With Logging (But Not Too Much)</h2>



<p>Logging is great — until it crashes your CPU.</p>



<p>Tips:</p>



<ul class="wp-block-list">
<li>Only log <strong>important drops</strong>, like SSH brute-force or port scans</li>



<li>Use <code>log-prefix=</code> to easily grep or filter</li>



<li>Use <strong>log limits</strong> to reduce spam:</li>
</ul>



<pre class="wp-block-preformatted"><code>add chain=input src-address-list=SSH_BRUTE action=drop log=yes log-prefix="SSH_BRUTE " log-disabled=no<br></code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f512.png" alt="🔒" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 5. Lock Yourself Out? Here’s the Rescue Plan</h2>



<p>If you apply a bad rule and lose access — do one of the following:</p>



<h3 class="wp-block-heading">Option 1: MAC Winbox</h3>



<ul class="wp-block-list">
<li>Connect directly via Winbox using MAC address</li>



<li>It bypasses IP settings</li>



<li>Only works in L2</li>
</ul>



<h3 class="wp-block-heading">Option 2: Netinstall Reset</h3>



<ul class="wp-block-list">
<li>Use MikroTik’s <strong>Netinstall</strong> to reflash router</li>



<li>You&#8217;ll need physical access and boot from Netinstall server</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f9e0.png" alt="🧠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 6. Pro Tips From the Field</h2>



<p><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Use <strong>Address Lists</strong> for everything — even internal networks<br><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Document <strong>every rule</strong> in a <code>.md</code> or <code>.rsc</code> file<br><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Export rules monthly and save in Git or cloud<br><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Use <strong>scheduled scripts</strong> to check config or notify you<br><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Disable unused services in <code>/ip service</code></p>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Final Summary</h2>



<p><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f3af.png" alt="🎯" class="wp-smiley" style="height: 1em; max-height: 1em;" /> You’ve now built a fully functional, professional-grade MikroTik firewall with:</p>



<ul class="wp-block-list">
<li>Clear input/forward logic</li>



<li>Dynamic protection against attacks</li>



<li>NAT and Hairpin NAT</li>



<li>Scalable address lists</li>



<li>Clean, well-commented rules</li>



<li>Backups, logging, and recovery plans</li>
</ul>
<p>Сообщение <a href="https://boxvirt.com/firewall-logging-backups-best-practices/">Firewall Logging, Backups &#038; Best Practices</a> появились сначала на <a href="https://boxvirt.com">Boxvirt - Proxmox &amp; OPNsense Infrastructure Guides</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://boxvirt.com/firewall-logging-backups-best-practices/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Understanding NAT &#038; Hairpin NAT in MikroTik</title>
		<link>https://boxvirt.com/understanding-nat-hairpin-nat-in-mikrotik/</link>
					<comments>https://boxvirt.com/understanding-nat-hairpin-nat-in-mikrotik/#respond</comments>
		
		<dc:creator><![CDATA[eXtre]]></dc:creator>
		<pubDate>Sat, 02 Aug 2025 21:33:39 +0000</pubDate>
				<category><![CDATA[Mikrotik]]></category>
		<category><![CDATA[Firewall]]></category>
		<category><![CDATA[Setup]]></category>
		<guid isPermaLink="false">https://boxvirt.com/?p=128</guid>

					<description><![CDATA[<p>— Make Local and External Access Work Seamlessly What is NAT? NAT (Network Address Translation) lets multiple devices on your internal network (usually private IPs like 192.168.x.x) share [&#8230;]</p>
<p>Сообщение <a href="https://boxvirt.com/understanding-nat-hairpin-nat-in-mikrotik/">Understanding NAT &#038; Hairpin NAT in MikroTik</a> появились сначала на <a href="https://boxvirt.com">Boxvirt - Proxmox &amp; OPNsense Infrastructure Guides</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading">— Make Local and External Access Work Seamlessly</h3>



<h2 class="wp-block-heading">What is NAT?</h2>



<p><strong>NAT</strong> (Network Address Translation) lets multiple devices on your internal network (usually private IPs like <code>192.168.x.x</code>) share a single public IP to communicate with the internet.</p>



<p>MikroTik uses <strong>source NAT (src-nat)</strong> with <strong>masquerade</strong> by default to make this happen.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f9ed.png" alt="🧭" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Basic Outbound NAT — Internet Access for LAN</h3>



<p>Let’s make sure devices in your LAN can access the internet.</p>



<pre class="wp-block-preformatted"><code>/ip firewall nat<br>add chain=srcnat out-interface-list=WAN action=masquerade comment="LAN to internet"<br></code></pre>



<p>This tells MikroTik:<br>“All packets leaving the WAN interface should have their source IP replaced with the router’s public IP.”</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f4e5.png" alt="📥" class="wp-smiley" style="height: 1em; max-height: 1em;" /> What About Incoming Connections?</h2>



<p>Suppose you want to host something like:</p>



<ul class="wp-block-list">
<li>A website on your NAS</li>



<li>An Immich gallery on your home server</li>



<li>A game server on your PC</li>
</ul>



<p>You’ll need to <strong>port-forward</strong> incoming traffic from your public IP to the correct internal IP.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f310.png" alt="🌐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Step-by-Step: Create a Destination NAT (Port Forward)</h2>



<p>Let’s say your NAS is at <code>192.168.88.100</code> and you want to expose HTTPS (TCP port 443):</p>



<pre class="wp-block-preformatted"><code>/ip firewall nat<br>add chain=dstnat dst-address=YOUR_PUBLIC_IP protocol=tcp dst-port=443 \<br>    action=dst-nat to-addresses=192.168.88.100 to-ports=443 comment="Forward HTTPS to NAS"<br></code></pre>



<p>If you have a dynamic IP, you can use interface lists instead:</p>



<pre class="wp-block-preformatted"><code>/ip firewall nat<br>add chain=dstnat in-interface-list=WAN protocol=tcp dst-port=443 \<br>    action=dst-nat to-addresses=192.168.88.100 to-ports=443 comment="Forward HTTPS"<br></code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f300.png" alt="🌀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> What Is Hairpin NAT?</h2>



<p>Imagine this:</p>



<ul class="wp-block-list">
<li>Your DNS (e.g., Unbound or Pi-hole) resolves <code>nas.yourdomain.com</code> to your public IP</li>



<li>You’re inside your home network</li>



<li>You open <code>https://nas.yourdomain.com</code></li>
</ul>



<p>Now your request leaves the LAN → goes to the router’s public IP → hits the port forward… and fails <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p>That’s because by default, <strong>MikroTik doesn’t know how to reflect this back to LAN</strong> — it’s confused because the destination is “external,” but the source is internal.</p>



<p>That’s where <strong>Hairpin NAT</strong> comes in.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f527.png" alt="🔧" class="wp-smiley" style="height: 1em; max-height: 1em;" /> How to Enable Hairpin NAT</h2>



<p>You’ll need two extra rules to make it work:</p>



<h3 class="wp-block-heading">1. Accept Internal Reflection in Firewall</h3>



<pre class="wp-block-preformatted"><code>/ip firewall filter<br>add chain=forward src-address=192.168.88.0/24 dst-address=192.168.88.100 action=accept \<br>    comment="Allow hairpin access to NAS"<br></code></pre>



<p>Adjust IPs accordingly.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">2. Add NAT Reflection Rule</h3>



<p>This rule rewrites the source address so the internal server sees it as coming from the router:</p>



<pre class="wp-block-preformatted"><code>/ip firewall nat<br>add chain=srcnat src-address=192.168.88.0/24 dst-address=192.168.88.100 \<br>    out-interface=bridge action=masquerade comment="Hairpin NAT"<br></code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Replace <code>bridge</code> with your LAN bridge or interface if different.</p>
</blockquote>



<p>Now you can access <code>https://yourdomain.com</code> <strong>inside your LAN</strong>, and it will hit the internal server without issues.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/26a0.png" alt="⚠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Troubleshooting Tips</h2>



<ul class="wp-block-list">
<li>Make sure your <strong>port forward is above</strong> the general masquerade rule in NAT</li>



<li>Check that your firewall <strong>forward chain allows</strong> the internal access</li>



<li>If using VLANs, match the correct interfaces/subnets in Hairpin NAT rule</li>



<li>Test from a real client, not the router itself</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f9fe.png" alt="🧾" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Full Example: HTTPS to NAS With Hairpin</h2>



<pre class="wp-block-preformatted"><code># Port forward<br>/ip firewall nat<br>add chain=dstnat in-interface-list=WAN protocol=tcp dst-port=443 \<br>    action=dst-nat to-addresses=192.168.88.100 to-ports=443 comment="HTTPS to NAS"<br><br># Hairpin NAT<br>/ip firewall nat<br>add chain=srcnat src-address=192.168.88.0/24 dst-address=192.168.88.100 \<br>    out-interface=bridge action=masquerade comment="Hairpin NAT"<br><br># Allow forward<br>/ip firewall filter<br>add chain=forward src-address=192.168.88.0/24 dst-address=192.168.88.100 action=accept<br></code></pre>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Summary</h2>



<p><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> You understand what NAT and port forwarding are<br><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> You can expose internal services to the public safely<br><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> You added Hairpin NAT to make them accessible locally<br><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> You troubleshooted common issues like DNS and interfaces</p>
<p>Сообщение <a href="https://boxvirt.com/understanding-nat-hairpin-nat-in-mikrotik/">Understanding NAT &#038; Hairpin NAT in MikroTik</a> появились сначала на <a href="https://boxvirt.com">Boxvirt - Proxmox &amp; OPNsense Infrastructure Guides</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://boxvirt.com/understanding-nat-hairpin-nat-in-mikrotik/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Address Lists for Humans (and Hackers) MikroTik</title>
		<link>https://boxvirt.com/address-lists-for-humans-and-hackers-mikrotik/</link>
					<comments>https://boxvirt.com/address-lists-for-humans-and-hackers-mikrotik/#respond</comments>
		
		<dc:creator><![CDATA[eXtre]]></dc:creator>
		<pubDate>Sat, 02 Aug 2025 21:17:21 +0000</pubDate>
				<category><![CDATA[Mikrotik]]></category>
		<category><![CDATA[Firewall]]></category>
		<category><![CDATA[MikroTik]]></category>
		<category><![CDATA[Setup]]></category>
		<guid isPermaLink="false">https://boxvirt.com/?p=116</guid>

					<description><![CDATA[<p>Grouping IPs the Smart Way in Your MikroTik Firewall Let’s face it — if you’ve ever tried managing a firewall with individual IP rules, you know it gets [&#8230;]</p>
<p>Сообщение <a href="https://boxvirt.com/address-lists-for-humans-and-hackers-mikrotik/">Address Lists for Humans (and Hackers) MikroTik</a> появились сначала на <a href="https://boxvirt.com">Boxvirt - Proxmox &amp; OPNsense Infrastructure Guides</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading">Grouping IPs the Smart Way in Your MikroTik Firewall</h3>



<p>Let’s face it — if you’ve ever tried managing a firewall with individual IP rules, you know it gets messy fast. One rule for your laptop, another for your phone, a separate one for your work VPN, and maybe one more for your buddy’s IP that you forgot to label properly. Before you know it, your rule set looks like a crime scene.</p>



<p><strong>Address Lists</strong> fix that.</p>



<p>They let you group IPs into logical categories and reference them in your rules. Once you start using them, you’ll wonder how you ever lived without them.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f4cc.png" alt="📌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> What Is an Address List?</h2>



<p>In MikroTik, an address list is simply a <strong>named group of IP addresses or subnets</strong>. You can reference them in:</p>



<ul class="wp-block-list">
<li>Firewall filter rules</li>



<li>NAT rules</li>



<li>Mangle rules</li>



<li>And even scripts</li>
</ul>



<p>Instead of writing 5 different rules for 5 IPs — you can write <strong>one</strong> rule and maintain the list separately. This keeps your rules clean, readable, and easy to update.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f3af.png" alt="🎯" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Why Use Address Lists?</h2>



<p>Here’s what you get when you build your rules around address lists:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Benefit</th><th><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f4a1.png" alt="💡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Why it matters</th></tr></thead><tbody><tr><td><strong>Clarity</strong></td><td>You’ll immediately know what the rule is protecting</td></tr><tr><td><strong>Simplicity</strong></td><td>Fewer firewall rules overall</td></tr><tr><td><strong>Scalability</strong></td><td>Easily add/remove IPs without editing rule logic</td></tr><tr><td><strong>Automation</strong></td><td>Use scripts or dynamic rules to update lists</td></tr><tr><td><strong>Security</strong></td><td>Group risky IPs together for blocking or limiting</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f3d7.png" alt="🏗" class="wp-smiley" style="height: 1em; max-height: 1em;" /> The Essential Lists You Should Create</h2>



<p>Here’s a professional starter kit of address lists you can (and should) build:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Address List</th><th>Purpose</th></tr></thead><tbody><tr><td><code>LAN_SUBNETS</code></td><td>All your internal subnets (192.168.x.x, etc.)</td></tr><tr><td><code>TRUSTED_IPS</code></td><td>Remote IPs allowed access to Winbox, SSH, etc.</td></tr><tr><td><code>BLOCKED_IPS</code></td><td>Attackers, port scanners, brute-force attempts</td></tr><tr><td><code>VPN_SUBNETS</code></td><td>Subnets used by connected VPN clients</td></tr><tr><td><code>DMZ_SERVICES</code></td><td>IPs of exposed public services (if any)</td></tr></tbody></table></figure>



<p>You’ll use these lists throughout your firewall — from access control to detection.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f9ea.png" alt="🧪" class="wp-smiley" style="height: 1em; max-height: 1em;" /> How to Add IPs to Address Lists</h2>



<p>Here are real-world examples of building useful address lists.</p>



<h3 class="wp-block-heading">Add your main LAN subnet:</h3>



<pre class="wp-block-preformatted"><code>/ip firewall address-list add list=LAN_SUBNETS address=192.168.88.0/24 comment="Main LAN"<br></code></pre>



<h3 class="wp-block-heading">Add your work IP for remote access:</h3>



<pre class="wp-block-preformatted"><code>/ip firewall address-list add list=TRUSTED_IPS address=203.0.113.5 comment="Work VPN Admin"<br></code></pre>



<h3 class="wp-block-heading">Add a known attacker to blocklist:</h3>



<pre class="wp-block-preformatted"><code>/ip firewall address-list add list=BLOCKED_IPS address=185.23.88.44 comment="SSH Brute Force"<br></code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f6e0.png" alt="🛠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> How to Use Lists in Firewall Rules</h2>



<p>Let’s say you want to allow only your LAN to access the router. You could write:</p>



<pre class="wp-block-preformatted"><code>/ip firewall filter add chain=input src-address=192.168.88.0/24 action=accept<br></code></pre>



<p>But that’s hardcoded. What if you have more than one subnet?</p>



<p>Instead, write:</p>



<pre class="wp-block-preformatted"><code>/ip firewall filter add chain=input src-address-list=LAN_SUBNETS action=accept comment="Allow LAN access"<br></code></pre>



<p>Now if you add another subnet to <code>LAN_SUBNETS</code>, the rule automatically applies — no editing needed.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/23f1.png" alt="⏱" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Bonus: Temporary Blocks with Timeout</h2>



<p>You can even add entries to a list that <strong>expire automatically</strong> — great for banning bots or brute-force IPs for a limited time:</p>



<pre class="wp-block-preformatted"><code>/ip firewall address-list add list=BLOCKED_IPS address=192.0.2.66 timeout=1d comment="Temp ban"<br></code></pre>



<p>The IP will be automatically removed from the list after one day.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f501.png" alt="🔁" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Dynamic Updates &amp; Detection</h2>



<p>Once you’ve built address lists, you can:</p>



<ul class="wp-block-list">
<li>Dynamically add IPs to lists based on behavior (via firewall rules or scripting)</li>



<li>Use Netwatch or scripts to pull blocklists from external sources</li>



<li>Trigger alerts when new IPs are added</li>
</ul>



<p>It’s flexible, it’s powerful — and it scales with your network.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f4cb.png" alt="📋" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Example — A Well-Structured List Setup</h2>



<pre class="wp-block-preformatted"><code>/ip firewall address-list<br>add list=LAN_SUBNETS address=192.168.88.0/24 comment="Main LAN"<br>add list=LAN_SUBNETS address=192.168.50.0/24 comment="Server Subnet"<br><br>add list=TRUSTED_IPS address=203.0.113.5 comment="Work VPN Admin"<br>add list=TRUSTED_IPS address=192.0.2.77 comment="My Laptop"<br><br>add list=BLOCKED_IPS address=185.22.11.19 comment="Repeated Scanner"<br></code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f9e0.png" alt="🧠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Advanced Use Cases</h2>



<ul class="wp-block-list">
<li><strong>Firewall detection logic:</strong> If someone hits a protected port → auto-add to <code>BLOCKED_IPS</code></li>



<li><strong>Geographic filtering:</strong> Create lists for country-specific IP ranges</li>



<li><strong>Scheduled lockdowns:</strong> Block/allow lists based on time (via script or scheduler)</li>



<li><strong>External threat feeds:</strong> Import addresses from abuse.ch, spamhaus, etc.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Recap</h2>



<p><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> You now understand what address lists are<br><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> You know how to build and use them effectively<br><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> You’re ready to write cleaner, more flexible rules<br><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> You’ve added tools for blocking, detecting, and managing access like a pro</p>
<p>Сообщение <a href="https://boxvirt.com/address-lists-for-humans-and-hackers-mikrotik/">Address Lists for Humans (and Hackers) MikroTik</a> появились сначала на <a href="https://boxvirt.com">Boxvirt - Proxmox &amp; OPNsense Infrastructure Guides</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://boxvirt.com/address-lists-for-humans-and-hackers-mikrotik/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
