Controllo granulare del traffico di rete
iptables (e il suo successore nftables) sono i firewall nativi di Linux. Offrono controllo totale su ogni pacchetto che attraversa il sistema.
1. iptables — concetti base
# Catene principali: INPUT, OUTPUT, FORWARD
# Azioni: ACCEPT, DROP, REJECT, LOG
# Vedere regole correnti
iptables -L -v -n --line-numbers
2. Regole iptables comuni
# Policy di default
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# Permettere loopback
iptables -A INPUT -i lo -j ACCEPT
# Permettere connessioni stabilite
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# SSH dalla LAN
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT
# HTTP/HTTPS
iptables -A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT
# Logging pacchetti droppati
iptables -A INPUT -j LOG --log-prefix "DROPPED: " --log-level 4
3. Salvare regole
apt install iptables-persistent -y
netfilter-persistent save
4. nftables — il futuro
# nftables usa una sintassi più pulita
nft add table inet filter
nft add chain inet filter input { type filter hook input priority 0 \; policy drop \; }
nft add rule inet filter input ct state established,related accept
nft add rule inet filter input iif lo accept
nft add rule inet filter input tcp dport { 22, 80, 443 } accept
5. Port forwarding (NAT)
# Forwarding porta 8080 esterna verso VM interna
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.92:80
iptables -A FORWARD -p tcp -d 192.168.1.92 --dport 80 -j ACCEPT
iptables resta lo standard de facto, ma nftables è il futuro: più performante, sintassi unificata e migliore gestione dei ruleset.