<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Home-Lab on u-random</title><link>https://u-random.dev/tags/home-lab/</link><description>Recent content in Home-Lab on u-random</description><generator>Hugo -- gohugo.io</generator><language>it-it</language><lastBuildDate>Sat, 30 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://u-random.dev/tags/home-lab/index.xml" rel="self" type="application/rss+xml"/><item><title>ESP cifra, AH no: IPsec visto dal vivo</title><link>https://u-random.dev/blog/ipsec-strongswan-esp-ah/</link><pubDate>Sat, 30 May 2026 00:00:00 +0000</pubDate><guid>https://u-random.dev/blog/ipsec-strongswan-esp-ah/</guid><description>&lt;p&gt;


&lt;/p&gt;
&lt;div style="border-left:3px solid #6366f1;background:rgba(99,102,241,0.06);padding:12px 16px;border-radius:0 6px 6px 0;margin:1.5rem 0;"&gt;
 &lt;div style="font-size:0.7rem;font-weight:800;letter-spacing:0.1em;color:#6366f1;text-transform:uppercase;margin-bottom:6px;"&gt;TL;DR&lt;/div&gt;
 &lt;div style="font-size:0.95rem;line-height:1.6;"&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;IPsec Suite:&lt;/strong&gt; Una suite di protocolli di rete sicuri (IKE + ESP + AH) implementata a livello IP per garantire autenticazione, integrità e riservatezza.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;IKE (Internet Key Exchange):&lt;/strong&gt; Negozia gli algoritmi di sicurezza e stabilisce le Security Association (SA) scambiando chiavi tramite Diffie-Hellman (UDP 500/4500).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ESP (Encapsulating Security Payload):&lt;/strong&gt; Cifra il payload dei pacchetti (ad es. con AES-256) garantendo riservatezza ed autenticazione. Supporta il NAT tramite incapsulamento NAT-T.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AH (Authentication Header):&lt;/strong&gt; Firma crittograficamente i pacchetti per garantirne l'integrità, ma &lt;strong&gt;non cifra il payload&lt;/strong&gt;, lasciando i dati in chiaro ed esposti allo sniffing.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tunnel vs Transport:&lt;/strong&gt; Tunnel mode cifra l'intero pacchetto originale aggiungendo un nuovo header IP (ideale per VPN Site-to-Site); Transport mode cifra solo il payload (ideale per host-to-host).&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;details style="border-left:3px solid #10b981;background:rgba(16,185,129,0.06);border-radius:0 6px 6px 0;margin:1.5rem 0;"&gt;
 &lt;summary style="padding:10px 16px;font-size:0.7rem;font-weight:800;letter-spacing:0.1em;color:#10b981;text-transform:uppercase;cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;"&gt;
 &lt;span style="font-size:0.65rem;transition:transform 0.2s;"&gt;▶&lt;/span&gt; $ history
 &lt;/summary&gt;
 &lt;div style="padding:4px 16px 12px;font-size:0.92rem;line-height:1.7;font-family:'JetBrains Mono','Fira Code',monospace;"&gt;&lt;ul&gt;
&lt;li&gt;apt install strongswan -y&lt;/li&gt;
&lt;li&gt;ipsec version&lt;/li&gt;
&lt;li&gt;ipsec restart&lt;/li&gt;
&lt;li&gt;ipsec up mustache&lt;/li&gt;
&lt;li&gt;ipsec statusall&lt;/li&gt;
&lt;li&gt;tcpdump -i enp0s1 udp port 500&lt;/li&gt;
&lt;li&gt;tcpdump -i enp0s1 proto 50&lt;/li&gt;
&lt;li&gt;tcpdump -i enp0s1 proto 51 -v&lt;/li&gt;
&lt;li&gt;ping 192.168.64.3&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/details&gt;

&lt;p&gt;Configurare IPsec host-to-host con StrongSwan e vedere con tcpdump la differenza tra ESP e AH. ESP cifra il payload - AH no. Questa distinzione è una domanda classica Security+ e fondamentale per la sicurezza di rete.&lt;/p&gt;</description></item><item><title>Il Tunnel che Sceglie: Split vs Full VPN con WireGuard</title><link>https://u-random.dev/blog/il-tunnel-che-sceglie/</link><pubDate>Sat, 30 May 2026 00:00:00 +0000</pubDate><guid>https://u-random.dev/blog/il-tunnel-che-sceglie/</guid><description>&lt;p&gt;


&lt;/p&gt;
&lt;div style="border-left:3px solid #6366f1;background:rgba(99,102,241,0.06);padding:12px 16px;border-radius:0 6px 6px 0;margin:1.5rem 0;"&gt;
 &lt;div style="font-size:0.7rem;font-weight:800;letter-spacing:0.1em;color:#6366f1;text-transform:uppercase;margin-bottom:6px;"&gt;TL;DR&lt;/div&gt;
 &lt;div style="font-size:0.95rem;line-height:1.6;"&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;WireGuard:&lt;/strong&gt; VPN moderna basata su Curve25519 e ChaCha20, integrata direttamente nel kernel Linux come interfaccia di rete virtuale (&lt;code&gt;wg0&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;VPN Concentrator:&lt;/strong&gt; Il dispositivo (in questo lab Ubuntu) che termina il tunnel cifrato, decifra il traffico e lo instrada verso la rete interna.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Split Tunnel (&lt;code&gt;AllowedIPs = 10.0.0.0/24&lt;/code&gt;):&lt;/strong&gt; Solo il traffico destinato alla subnet della VPN passa nel tunnel; il traffico internet esce in chiaro tramite il gateway locale.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Full Tunnel (&lt;code&gt;AllowedIPs = 0.0.0.0/0&lt;/code&gt;):&lt;/strong&gt; Tutto il traffico, incluso quello internet, viene convogliato nel tunnel cifrato e richiede IP forwarding e MASQUERADE sul concentratore.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Visibilità di rete:&lt;/strong&gt; &lt;code&gt;tcpdump&lt;/code&gt;/&lt;code&gt;tshark&lt;/code&gt; mostrano solo pacchetti UDP cifrati sull'interfaccia fisica (&lt;code&gt;enp0s1&lt;/code&gt;), mentre svelano il traffico ICMP/IP decifrato su quella virtuale (&lt;code&gt;wg0&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;details style="border-left:3px solid #10b981;background:rgba(16,185,129,0.06);border-radius:0 6px 6px 0;margin:1.5rem 0;"&gt;
 &lt;summary style="padding:10px 16px;font-size:0.7rem;font-weight:800;letter-spacing:0.1em;color:#10b981;text-transform:uppercase;cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;"&gt;
 &lt;span style="font-size:0.65rem;transition:transform 0.2s;"&gt;▶&lt;/span&gt; $ history
 &lt;/summary&gt;
 &lt;div style="padding:4px 16px 12px;font-size:0.92rem;line-height:1.7;font-family:'JetBrains Mono','Fira Code',monospace;"&gt;&lt;ul&gt;
&lt;li&gt;apt install wireguard -y&lt;/li&gt;
&lt;li&gt;wg genkey | tee privatekey | wg pubkey &amp;gt; publickey&lt;/li&gt;
&lt;li&gt;wg-quick up wg0&lt;/li&gt;
&lt;li&gt;wg-quick down wg0&lt;/li&gt;
&lt;li&gt;ip route show&lt;/li&gt;
&lt;li&gt;traceroute 8.8.8.8&lt;/li&gt;
&lt;li&gt;tcpdump -i wg0&lt;/li&gt;
&lt;li&gt;tcpdump -i enp0s1 udp port 51820&lt;/li&gt;
&lt;li&gt;tshark -r capture.pcap&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/details&gt;

&lt;p&gt;Configurare un tunnel WireGuard tra due VM e vedere con i propri occhi la differenza tra split tunnel e full tunnel. Non teoria - routing table e traceroute che lo dimostrano empiricamente.&lt;/p&gt;</description></item><item><title>Il Kernel Sospende il Giudizio</title><link>https://u-random.dev/blog/suricata-ips-nfqueue/</link><pubDate>Fri, 29 May 2026 00:00:00 +0000</pubDate><guid>https://u-random.dev/blog/suricata-ips-nfqueue/</guid><description>&lt;p&gt;


&lt;/p&gt;
&lt;div style="border-left:3px solid #6366f1;background:rgba(99,102,241,0.06);padding:12px 16px;border-radius:0 6px 6px 0;margin:1.5rem 0;"&gt;
 &lt;div style="font-size:0.7rem;font-weight:800;letter-spacing:0.1em;color:#6366f1;text-transform:uppercase;margin-bottom:6px;"&gt;TL;DR&lt;/div&gt;
 &lt;div style="font-size:0.95rem;line-height:1.6;"&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;IDS (af-packet):&lt;/strong&gt; copia del traffico → Suricata vede tutto, non può bloccare niente → &lt;code&gt;[**]&lt;/code&gt; in fast.log&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;IPS (nfqueue):&lt;/strong&gt; traffico originale trattenuto → il kernel aspetta il verdetto → &lt;code&gt;[Drop]&lt;/code&gt; in fast.log&lt;/li&gt;
&lt;li&gt;&lt;code&gt;iptables -I INPUT -j NFQUEUE --queue-num 0&lt;/code&gt; è la singola regola che trasforma il sistema&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fail-open: no&lt;/code&gt; = fail-closed: se Suricata muore, tutto il traffico viene droppato&lt;/li&gt;
&lt;li&gt;Il Docker bridge (&lt;code&gt;br-XXXX&lt;/code&gt;) bypassa NFQUEUE - la SYN-ACK di ritorno viene bloccata e Wazuh si disconnette&lt;/li&gt;
&lt;li&gt;La persistenza al reboot richiede un systemd service dedicato (non &lt;code&gt;iptables-persistent&lt;/code&gt;, che rimuove UFW)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;details style="border-left:3px solid #10b981;background:rgba(16,185,129,0.06);border-radius:0 6px 6px 0;margin:1.5rem 0;"&gt;
 &lt;summary style="padding:10px 16px;font-size:0.7rem;font-weight:800;letter-spacing:0.1em;color:#10b981;text-transform:uppercase;cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;"&gt;
 &lt;span style="font-size:0.65rem;transition:transform 0.2s;"&gt;▶&lt;/span&gt; $ history
 &lt;/summary&gt;
 &lt;div style="padding:4px 16px 12px;font-size:0.92rem;line-height:1.7;font-family:'JetBrains Mono','Fira Code',monospace;"&gt;&lt;ul&gt;
&lt;li&gt;suricata -T -c /etc/suricata/suricata.yaml -v&lt;/li&gt;
&lt;li&gt;suricata-update&lt;/li&gt;
&lt;li&gt;&lt;a href="https://u-random.dev/concetti/iptables/" &gt;iptables&lt;/a&gt; -I INPUT 1 -j NFQUEUE --queue-num 0&lt;/li&gt;
&lt;li&gt;&lt;a href="https://u-random.dev/concetti/iptables/" &gt;iptables&lt;/a&gt; -L INPUT -n -v --line-numbers&lt;/li&gt;
&lt;li&gt;&lt;a href="https://u-random.dev/comandi/nmap/" &gt;nmap&lt;/a&gt; --min-rate 1000 -p 1-1000 192.168.64.3&lt;/li&gt;
&lt;li&gt;hping3 -S --flood 192.168.64.3&lt;/li&gt;
&lt;li&gt;cat /proc/net/tcp&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/details&gt;

&lt;hr&gt;
&lt;p&gt;Voglio vedere cosa succede quando Suricata non si limita a guardare il traffico, ma lo blocca davvero.&lt;/p&gt;</description></item><item><title>816 tentativi zero successi</title><link>https://u-random.dev/blog/816-tentativi-zero-successi/</link><pubDate>Wed, 27 May 2026 00:00:00 +0000</pubDate><guid>https://u-random.dev/blog/816-tentativi-zero-successi/</guid><description>&lt;p&gt;


&lt;/p&gt;
&lt;div style="border-left:3px solid #6366f1;background:rgba(99,102,241,0.06);padding:12px 16px;border-radius:0 6px 6px 0;margin:1.5rem 0;"&gt;
 &lt;div style="font-size:0.7rem;font-weight:800;letter-spacing:0.1em;color:#6366f1;text-transform:uppercase;margin-bottom:6px;"&gt;TL;DR&lt;/div&gt;
 &lt;div style="font-size:0.95rem;line-height:1.6;"&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;HIDS&lt;/strong&gt; (Wazuh agent) monitora il singolo host dall'interno - log, file, processi.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SIEM&lt;/strong&gt; (Wazuh manager) raccoglie tutto, correla, genera alert.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HIPS&lt;/strong&gt; (fail2ban) agisce automaticamente dopo la detection - blocca l'IP attaccante.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;IDS&lt;/strong&gt; e &lt;strong&gt;IPS&lt;/strong&gt; non sono prodotti diversi: è la stessa categoria, con o senza capacità di blocco.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;details style="border-left:3px solid #10b981;background:rgba(16,185,129,0.06);border-radius:0 6px 6px 0;margin:1.5rem 0;"&gt;
 &lt;summary style="padding:10px 16px;font-size:0.7rem;font-weight:800;letter-spacing:0.1em;color:#10b981;text-transform:uppercase;cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;"&gt;
 &lt;span style="font-size:0.65rem;transition:transform 0.2s;"&gt;▶&lt;/span&gt; $ history
 &lt;/summary&gt;
 &lt;div style="padding:4px 16px 12px;font-size:0.92rem;line-height:1.7;font-family:'JetBrains Mono','Fira Code',monospace;"&gt;&lt;ul&gt;
&lt;li&gt;hydra -l root -P /usr/share/wordlists/rockyou.txt ssh://192.168.64.3 -t 4&lt;/li&gt;
&lt;li&gt;&lt;a href="https://u-random.dev/comandi/tail/" &gt;tail&lt;/a&gt; -f /var/log/auth.log&lt;/li&gt;
&lt;li&gt;&lt;a href="https://u-random.dev/comandi/tail/" &gt;tail&lt;/a&gt; -f /var/log/fail2ban.log&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/details&gt;

&lt;p&gt;Il lab è semplice: Ubuntu con Wazuh, Kali con Hydra, una wordlist da 14 milioni di password. Obiettivo: vedere cosa succede dall'altra parte quando un attaccante tenta il brute force SSH.&lt;/p&gt;</description></item></channel></rss>