Regole avanzate del firewall (IPTables)
Padroneggi IPTables per creare regole firewall complesse e stateful, implementare la traduzione degli indirizzi di rete (NAT) e proteggere il server da attacchi sofisticati.
Regole avanzate del firewall (IPTables) è una lezione Linux Server Deployment & SSH Mastery gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Linux Server Deployment & SSH Mastery, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Linux Server Deployment & SSH Mastery include 4 lezioni in totale.
Approfondire IPTables
IPTables è il potente firewall integrato di Linux. Sebbene ne abbiamo visto le basi, offre funzionalità avanzate per un controllo preciso.
Questa lezione introduce regole complesse, il filtraggio stateful e la Network Address Translation (NAT) per proteggere e gestire realmente la rete del server.
Ricordare tabelle e catene
IPTables organizza le regole in tabelle, ognuna con uno scopo specifico. All'interno delle tabelle si trovano le catene, ovvero elenchi di regole valutate in ordine.
- Tabella
filter: la tabella predefinita, usata per filtrare (bloccare o consentire) i pacchetti. Contiene le cateneINPUT,OUTPUTeFORWARD. - Tabella
nat: usata per la Network Address Translation (NAT). Contiene le catenePREROUTING,POSTROUTINGeOUTPUT. - Esistono anche altre tabelle, come
mangleeraw, per la modifica specializzata dei pacchetti.
Scoprire il funzionamento del firewall stateful
Un firewall stateful tiene traccia dello stato delle connessioni di rete. Invece di controllare ogni pacchetto singolarmente, riconosce se un pacchetto appartiene a una connessione esistente e stabilita.
Stati principali delle connessioni:
NEW: il primo pacchetto di una nuova connessione.ESTABLISHED: pacchetti appartenenti a una connessione esistente e attiva.RELATED: pacchetti che avviano una nuova connessione correlata a una connessione esistente (ad esempio, un trasferimento dati FTP).
Implementare regole stateful
Le regole stateful semplificano notevolmente la gestione del firewall. Potete consentire tutto il traffico appartenente a connessioni stabilite, definendo così le regole solo per l'avvio di connessioni NEW.
Questa regola consente tutti i pacchetti in ingresso che fanno parte di una connessione già stabilita o correlata:
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPTCreare una logica complessa per le regole
IPTables consente di combinare diversi moduli di corrispondenza e opzioni per creare regole altamente specifiche. Questo aiuta a definire con precisione l'accesso per servizi e origini diverse.
Esempio: consentire SSH (porta 22) da una subnet specifica (192.168.1.0/24) solo per le nuove connessioni.
sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.0/24 -m state --state NEW -j ACCEPTIntroduzione alla Network Address Translation
La Network Address Translation (NAT) modifica le informazioni sugli indirizzi di rete nell'intestazione IP dei pacchetti mentre questi sono in transito. È fondamentale per:
- Consentire a più dispositivi di una rete privata di condividere un singolo indirizzo IP pubblico (ad esempio, i router domestici).
- Inoltrare le porte, dirigendo le richieste esterne verso i server interni.
Esistono due tipi principali: Source NAT (SNAT) e Destination NAT (DNAT).
SNAT per le connessioni in uscita
Source NAT (SNAT) modifica l'indirizzo IP di origine dei pacchetti. Viene comunemente usato quando i server interni devono accedere a Internet attraverso un server gateway con un IP pubblico.
Il masquerading è una forma specifica di SNAT in cui l'indirizzo IP dell'interfaccia in uscita viene usato automaticamente come IP di origine, una soluzione utile con gli indirizzi IP dinamici.
Esempio: consentire alla rete interna 192.168.0.0/24 di accedere a Internet tramite eth0.
sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADEDNAT per i servizi in ingresso
Destination NAT (DNAT) modifica l'indirizzo IP di destinazione dei pacchetti. È perfetto per il port forwarding, che consente di esporre su Internet, tramite l'IP pubblico del server gateway, un servizio in esecuzione su un server interno.
Esempio: inoltrare le richieste web in ingresso (porta 80) su eth0 a un server web interno all'indirizzo 192.168.1.100.
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:80Difendersi dagli attacchi brute force
IPTables può aiutare a proteggersi da attacchi comuni, come i tentativi di accesso brute force (ad esempio tramite SSH), limitando la frequenza con cui vengono accettate nuove connessioni da un determinato IP di origine.
Il modulo limit consente di specificare una frequenza e un limite di burst. Ricordi di eliminare le connessioni successive una volta raggiunto il limite.
Esempio: limitare a 3 al minuto le nuove connessioni SSH, con un burst iniziale di 3 connessioni, quindi eliminare le altre.
sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m limit --limit 3/minute --limit-burst 3 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROPLogica delle regole IPTables
Consideri un server che funge da gateway. Dispone di un'interfaccia pubblica eth0 e di un'interfaccia interna eth1 (connessa a 192.168.1.0/24).
Quale comando IPTables consentirebbe di rendere accessibile da Internet sulla porta 80 un server web interno all'indirizzo 192.168.1.50?
Riepilogo avanzato di IPTables
Congratulazioni! Ha esplorato concetti avanzati di IPTables:
- Firewall stateful con gli stati
ESTABLISHED,RELATEDeNEW. - Creazione di regole complesse combinando più criteri di corrispondenza.
- Implementazione del Network Address Translation (NAT) per il traffico in uscita (SNAT/Masquerade) e in ingresso (DNAT/Port Forwarding).
- Uso del modulo
limitper una protezione di base dagli attacchi.
Queste competenze sono fondamentali per creare ambienti server Linux affidabili e sicuri. Ricordi di salvare le regole IPTables dopo aver apportato modifiche, poiché per impostazione predefinita non sono persistenti!
Domande Frequenti
La lezione «Regole avanzate del firewall (IPTables)» è gratuita?
Sì — il testo completo di «Regole avanzate del firewall (IPTables)» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Linux Server Deployment & SSH Mastery, passa a CoddyKit PRO. Il corso Linux Server Deployment & SSH Mastery include 4 lezioni in totale.
Cosa imparerò in «Regole avanzate del firewall (IPTables)»?
Padroneggi IPTables per creare regole firewall complesse e stateful, implementare la traduzione degli indirizzi di rete (NAT) e proteggere il server da attacchi sofisticati. Eserciti Linux Server Deployment & SSH Mastery con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Linux Server Deployment & SSH Mastery?
Non è richiesta alcuna esperienza precedente. Linux Server Deployment & SSH Mastery su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Regole avanzate del firewall (IPTables)»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Linux Server Deployment & SSH Mastery?
Sì. Ogni lezione Linux Server Deployment & SSH Mastery include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Audit della sicurezza del server
- Regole avanzate del firewall (IPTables)
- Rilevamento e prevenzione delle intrusioni
- Logging centralizzato e integrazione con SIEM