Dimensione: 5528
Commento:
|
← Versione 19 del 14/03/2011 12.49.21 ⇥
Dimensione: 30
Commento: converted to 1.6 markup
|
Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
Linea 1: | Linea 1: |
= Configurare Iptables = [[BR]] ||<tablestyle="float:right; font-size: 0.9em; width:40%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;">'''Indice'''[[BR]][[TableOfContents]]|| Iptables è un firewall, installato di default su Ubuntu Ci sono molte informazioni disponibili per iptables, ma la maggior parte di esse abbastanza complicate; questo howto è indirizzato a chi ha la necessità di configurare un firewall semplice. == Comandi di base == Il comando {{{ # iptables -L }}} mostra la configurazione attuale di. Dopo l'installazione, non ci sono regole impostate e l'output dovrebbe essere {{{ Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination }}} == Consentire il traffico per sessioni iniziate == Possiamo consentire che sessioni iniziate possano ricevere dati: {{{ # iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT }}} == Consentire l'ingresso su porte specifiche == Potete iniziare bloccando il traffico, ma se state lavorando con SSH, avete bisogno di permettere il traffico su SSH prima di bloccare tutto. Per consentire il traffico in ingresso sulla porta 22 (porta standard per il protocollo SSH), potete dire a iptables di consentire tutto il traffico TCP sulla porta 22 per la vostra scheda di rete. {{{ # iptables -A INPUT -p tcp -i eth0 --dport ssh -j ACCEPT }}} Specificatamente, questo comando aggiunge (-A) alla catena di INPUT la regola che tutto il traffico TCP (-p) sulla interfaccia (-i) eth0 per la porta di destinazione ssh venga consentito (-j ACCEPT). Ricontrolliamo le impostazioni: (solo le prime linee, l'output mostra altre linee) {{{ # iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT tcp -- anywhere anywhere tcp dpt:ssh }}} Ora, consentiamo tutto il traffico web {{{ # iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT }}} Ricontrollando le regole, avremo {{{ # iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT tcp -- anywhere anywhere tcp dpt:ssh ACCEPT tcp -- anywhere anywhere tcp dpt:www }}} Abbiamo consentito il traffico TCP sulle porte ssh e web, ma siccome non abbiamo bloccato niente, tutto il traffico può ancora entrare. == Bloccare il traffico == Iptables, quando trova una regola che soddisfa un pacchetto, non controlla altre regole. Siccome le nostre regole per consentire il traffico ssh e web sono le prime, delle regole per bloccare tutto il traffico, possiamo continuare a ricevere il traffico che vogliamo. Quello che ci serve è impostare una regola che blocchi tutto il traffico alla fine. Il comando -A dice ad iptables di aggiungere la regola alla fine, quindi usiamo lo stesso comando. {{{ # iptables -A INPUT -j DROP # iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT tcp -- anywhere anywhere tcp dpt:ssh ACCEPT tcp -- anywhere anywhere tcp dpt:www DROP all -- anywhere anywhere }}} Siccome non abbiamo specificato una interfaccia o un protocollo, tutto il traffico per qualsiasi interfaccia verrà bloccato, eccetto quello per le porte ssh e web. == Editare le regole di Iptables == L'unico problema con le impostazioni effettuate è che anche la porta loopback è bloccata. Potevamo impostare la regola DROP solo per l'interfaccia eth0 specificando -i eth0, ma possiamo anche aggiungere una regola per l'interfaccia loopback. Aggiungendo ora la regola in append, sarebbe inutile in quanto la regola precedente ha già bloccato tutto il traffico. Abbiamo la necessità di inserire la nuova regola nella quarta linea. {{{ # iptables -I INPUT 4 -i lo -j ACCEPT # iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT tcp -- anywhere anywhere tcp dpt:ssh ACCEPT tcp -- anywhere anywhere tcp dpt:www ACCEPT all -- anywhere anywhere DROP all -- anywhere anywhere }}} Le ultime due linee sembrano simili, quindi chiediamo a iptables di elencare maggiori dettagli. {{{ # iptables -L -v }}} == Ulteriori informazioni == [http://iptables-tutorial.frozentux.net/iptables-tutorial.html Guida a Iptables] [http://www.netfilter.org/documentation/HOWTO/packet-filtering-HOWTO.html How-To per Iptables] [http://www.netfilter.org/documentation/ Documentazione in varie lingua per Netfilter e Iptables] Traduzione di BeniaminoCaputo [http://www.ubuntulinux.org/wiki/IptablesHowTo Versione originale] |
#REDIRECT Sicurezza/Iptables |