Repository 32bit  Forum
Repository 64bit  Wiki

configurazione di iptables

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

configurazione di iptables

Messaggioda albatross » ven nov 14, 2003 15:21

Ciao, <BR> <BR>vorrei utilizzare iptables per realizzare un firewall. <BR>Ho configurato una macchina con due interfacce di rete, 192.x.x.x (eth1) collegata alla lan interna e 10.x.x.x (eth0) collegata al router. Lo scopo è quello di limitare i client della lan all´utilizzo delle sole porte 80,443,25,110 e 21 bloccando tutte le altre. <BR> <BR>Mi potreste guidare per piacere passo passo? <BR> <BR>Grazie albatross<br>
albatross
Linux 1.0
Linux 1.0
 
Messaggi: 97
Iscritto il: lun ott 20, 2003 23:00

configurazione di iptables

Messaggioda albatross » ven nov 14, 2003 18:56

ebbene dopo un po di ricerche sono riuscito a trovare qualcosa. Ecco la configurazione: <BR> <BR>eth0 collegato con router dsl <BR>eth1 collegato alla lan interna <BR> <BR>iptables -A INPUT -i eth0 -p tcp -j DROP <BR>!blocca il traffico in ingresso sulla scheda di rete esterna del fw <BR> <BR>iptables -A OUTPUT -p tcp -j DROP <BR>!blocca tutto il traffico in uscita sulla scheda di rete esterna del fw <BR>!tanto il fw non si deve collegare verso l´esterno bensì deve fare <BR>!routing <BR> <BR>iptables -A FORWARD -i eth0 -p tcp --dport 80 -j ACCEPT <BR>!permette il forwarding/routing di pacchetti indirizzati alla porta 80 <BR>!lo stesso comando è stato ripetuto per le porte 443, 25, 110, 21 <BR> <BR>iptables -A FORWARD -i eth0 -p tcp -j DROP <BR>!in teoria dovrebbe scartare tutto il resto del traffico e consentire il <BR>!passaggio del solo traffico autorizzato dalle regole precedenti <BR> <BR>Il problema è che appena aggiungo quest´ultima regola non riesco più a collegarmi su internet - indipendente dalla porta utilizzata. Cosa sbaglio? Sicuramente mi sfugge qualcosa.... <BR> <BR>albatross<br>
albatross
Linux 1.0
Linux 1.0
 
Messaggi: 97
Iscritto il: lun ott 20, 2003 23:00

configurazione di iptables

Messaggioda useless » sab nov 15, 2003 12:58

allora, se ho ben capito la configurazione è questa: <BR>internet <-> fw(eth0) <-> fw(eth1) <-> lan <BR>e dalla lan si deve poter uscire su internet solo sulle porte: 80, 443, 25, 110 e 21. <BR>quello che non ci dici e se i pc della lan hanno ip pubblici o devono fare il masquerading x poter uscire su internet (questa ipotesi mi sembra la + probabile, dato che tutti gli ip che hai scritto sono interni. tra l´altro nota che mentre ha senso in questo discorso scrivere 10.x.x.x, non ne ha scrivere 192.x.x.x, dato che la subnet riservata è 192.168.x.x, occhio!). io farei (uhm... faccio, a dire il vero, ho solo le reti invertite!) così: <BR> <BR>- iptables -F OUTPUT <BR>cancella tutte le regole presenti <BR>- iptables -P OUTPUT DROP <BR>fa sì che nessun pacchetto esca verso internet, tranne quelli che permetteremo esplicitamente <BR>- iptables -A OUTPUT -i eth1 -o eth0 -p tcp --dport 80 -j ACCEPT <BR>permette che si possa uscire sulla porta 80, ripetere x tutte le altre porte, eventualmente anche x il protocollo UDP. tra l´altro se non apri anche la 53 i tuoi client non saranno in grado di fare richieste DNS, il che non mi sembra una buona cosa, a meno che tu non abbia una cache dns interna. <BR>- iptables -P FORWARD DROP <BR>- iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT <BR>fanno sì che i pacchetti che arrivano al fw, destinati ad un pc della lan siano accettati e correttamente routati (e solo quelli, non altri!) <BR>- iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE <BR>- echo "1" > /proc/sys/net/ipv4/ip_forward <BR>- echo "1" > /proc/sys/net/ipv4/ip_dynaddr <BR>attivano il masquerading, non necessario se i tuoi client hanno un ip pubblico. l´ultima riga invece è solo utile se la tua connessione internet ha un ip dinamico. <BR> <BR>con tutto questo dovrebbe funzionare, fammi sapere. ricordati di settare correttamente le route in uscita sui client (route add default gw ip_interno_del_fw) e i server dns in /etc/resolv.conf. <BR> <BR>tanta fortuna! :D <BR><br>
Avatar utente
useless
Staff
Staff
 
Messaggi: 3896
Iscritto il: sab ott 11, 2003 23:00
Località: A place where the streets have no name

configurazione di iptables

Messaggioda albatross » sab nov 15, 2003 16:00

Funziona... <BR> <BR>Ecco un riepilogo di quello che ho fatto (magari farà risparmiare qualche ora di lavoro a qualcun altro) <BR> <BR>Allora tutto da capo <BR> <BR>eth0 10.1.1.1 interfaccia esterna del fw collegata al router <BR>eth1 192.168.0.0/24 interfaccia interna del fw collegata alla lan <BR> <BR>prima di tutto ho abilitato il routing/NAT/MASQUERADING con <BR> <BR>iptables -t nat -A POSTROUTING -o eth0 -j MASQUARADING <BR> <BR>dopodiché ho azzerato tutte le chain con <BR> <BR>iptables -F OUTPUT <BR>iptables -F INPUT <BR>iptables -F FORWARD <BR> <BR>successivamente ho impostato un drop per tutte le chain in questo modo <BR> <BR>iptables -P OUTPUT DROP <BR>iptables -P INPUT DROP <BR>iptables -P FORWARD DROP <BR> <BR>ho permesso la creazione di comunicazioni originate dalla lan interna con <BR> <BR>iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHE,RELATED -j ACCEPT <BR> <BR>ed infine ho permesso il routing dei soli pacchetti indirizzati alle porte specificate 80 (http), 443 (https), 25 (smtp), 110 (pop3), 21 (ftp) ed ovviamente come suggerito da "useless" la 53 (dns) (quest´ultima sui protocolli tcp ed udp) <BR> <BR>iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 53 -j ACCEPT <BR>iptables -A FORWARD -i eth1 -o eth0 -p udp --dport 53 -j ACCEPT <BR>iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 80 -j ACCEPT <BR>iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 443 -j ACCEPT <BR>iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 25 -j ACCEPT <BR>iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 110 -j ACCEPT <BR>iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 21 -j ACCEPT <BR> <BR>Con questa configurazione il fw non riceve e non origina traffico ma offre il solo servizio di routing quindi non può essere attaccato in nessun modo (a meno di qualche falla in iptables :-) <BR> <BR>Voglio ringrazziare "useles" che in questa circostanza è stato tutt´altro che inutile... :-) <BR> <BR>grazie <BR> <BR>albatross <BR><br>
albatross
Linux 1.0
Linux 1.0
 
Messaggi: 97
Iscritto il: lun ott 20, 2003 23:00

configurazione di iptables

Messaggioda useless » sab nov 15, 2003 19:54

<!-- BBCode Quote Start --><TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD><font size=-1>Quote:</font><HR></TD></TR><TR><TD><FONT SIZE=-1><BLOCKQUOTE>iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 53 -j ACCEPT <BR>iptables -A FORWARD -i eth1 -o eth0 -p udp --dport 53 -j ACCEPT <BR>iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 80 -j ACCEPT <BR>iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 443 -j ACCEPT <BR>iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 25 -j ACCEPT <BR>iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 110 -j ACCEPT <BR>iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 21 -j ACCEPT</BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE><!-- BBCode Quote End --> <BR> <BR>a parte che il tcp x il dns non è essenziale (dà + problemi che vantaggi, ma ai server, quindi noi possiamo fare finta di niente :)), queste regole io le metterei in OUTPUT, non in FORWARD! FORWARD riguarda i pacchetti che entrano nella lan ma sono destinati ad altre macchine, OUTPUT i pacchetti che escono x qualsiasi ragione dalla lan. <BR> <BR>fammi sapere!<br>
Avatar utente
useless
Staff
Staff
 
Messaggi: 3896
Iscritto il: sab ott 11, 2003 23:00
Località: A place where the streets have no name

configurazione di iptables

Messaggioda albatross » lun nov 17, 2003 8:15

Il chain OUTPUT dovrebbe avere effetto sui pacchetti originati dal computer sui cui è configurato iptables (in questo caso il fw) poiché non voglio poter originare traffico dal fw bensì solo effettuare il routing dei pacchetti originati dalla lan credo che vada bene il chain FORWARD. Infatti se controlli i comandi FORWARD hanno come origini la lan e come output l´interfaccia collegata alla dsl oltre al comando ESTABLISHED,RELATED. <BR> <BR>ciao <BR>albatross <BR><br>
albatross
Linux 1.0
Linux 1.0
 
Messaggi: 97
Iscritto il: lun ott 20, 2003 23:00

configurazione di iptables

Messaggioda useless » lun nov 17, 2003 14:29

hai ragione! è bello sapere che ti ho aiutato pur avendo frainteso un concetto ;-). <BR> <BR><!-- BBCode Start --><A HREF="http://www.netfilter.org/documentation/HOWTO/it/packet-filtering-HOWTO-6.html" TARGET="_blank">qua</A><!-- BBCode End --> ci sono maggiori info su come o pacchetti attraversano le catene...<br>
Avatar utente
useless
Staff
Staff
 
Messaggi: 3896
Iscritto il: sab ott 11, 2003 23:00
Località: A place where the streets have no name

configurazione di iptables

Messaggioda albatross » lun nov 17, 2003 17:11

ancora grazie <BR> <BR>albatross<br>
albatross
Linux 1.0
Linux 1.0
 
Messaggi: 97
Iscritto il: lun ott 20, 2003 23:00

configurazione di iptables

Messaggioda albatross » gio nov 20, 2003 14:29

mancava qualcosa... <BR> <BR>proprio oggi un utente si è lamentato che non funzionava l´ftp, ecco cosa mancava: <BR> <BR>#carica i moduli per connessioni ftp <BR>/sbin/insmod -s ip_conntrack_ftp <BR>/sbin/insmod -s ip_nat_ftp <BR> <BR>#permette l´apertura di una nuova connessione di una porta tra 1024 e #65535. Il server ftp infatti viene contattato sulla porta 21 ma il #traffico avviene su una porta concordata tra client e server compresa #tra 1024 e 65535 <BR> <BR>iptables -A FORWARD -o eth0 -m state --state ESTABLISHED,RELATED -p TCP --sport 1024:65535 --dport 1024:65535 -j ACCEPT <BR> <BR>iptables -A FORWARD -o eth0 -m state --state NEW -p TCP --sport 1024:65535 --dport 21 -j ACCEPT <BR> <BR>buon lavoro a tutti <BR> <BR>albatross<br>
albatross
Linux 1.0
Linux 1.0
 
Messaggi: 97
Iscritto il: lun ott 20, 2003 23:00

configurazione di iptables

Messaggioda albatross » gio nov 20, 2003 17:06

correzione al messaggio precedente!!! <BR> <BR>Le uniche voci che servono sono: <BR> <BR>/sbin/insmod -s ip_conntrack_ftp <BR>iptables -A FORWARDING -o eth0 -m state --state ESTABLISHED,RELATED -p TCP --sport 1024:65535 --dport 1024:65535 -j ACCEPT <BR> <BR>/sbin/insmod -s ip_nat_ftp non so cosa faccia... :-) <BR> <BR>mentre l´altro comando iptables realizzave una grossa falla nel sistema del fw. Risultava infatti possibile effettuare connessione verso qualsiasi porta alta se originate dall´interno. Quindi ipotizziamo che qualcuno riesca a penetrare (tramite un exploit?) nella nostra lan... avrebbe avuto la possibilità di collegarsi verso l´esterno!!! <BR> <BR>E´ stato possibile eliminare il comando incriminato grazie a <BR>/sbin/insmod -s ip_conntrack_ftp <BR>che effettua un connection tracking del flusso ftp. In pratica monitorizza tutto il traffico ftp alla ricerca del comando PORT (utilizzato per negoziare la porta per lo scambio dei dati) e fa in modo di considerarla come già contatta dall´interno della lan. <BR> <BR>ciao <BR> <BR>albatross<br>
albatross
Linux 1.0
Linux 1.0
 
Messaggi: 97
Iscritto il: lun ott 20, 2003 23:00

configurazione di iptables

Messaggioda Emo » dom giu 06, 2004 15:27

domanda stupida: quando riavvio le regole di iptables tornano tutte a zero, come si fa a salvarle? ho pensato di fare uno script che lancia all-avvio ipotables_restore, ma immagino che non sia la soluzione ideale, cosa mi consigliate? <BR>Ciao <BR> <BR><br>
Emo
Linux 1.0
Linux 1.0
 
Messaggi: 43
Iscritto il: mar giu 01, 2004 23:00

configurazione di iptables

Messaggioda cRoW2k » dom giu 06, 2004 17:04

iptables-save <BR> <BR>man iptables-save<br>
cRoW2k
Linux 2.4
Linux 2.4
 
Messaggi: 261
Iscritto il: gio nov 20, 2003 0:00
Slackware: -current

configurazione di iptables

Messaggioda FiNeX » mer giu 09, 2004 17:07

oppure /etc/rc.d/rc.firewall :-)<br>
Avatar utente
FiNeX
Linux 1.0
Linux 1.0
 
Messaggi: 39
Iscritto il: sab set 13, 2003 23:00
Località: Lorien

configurazione di iptables

Messaggioda Emo » ven giu 11, 2004 0:48

<!-- BBCode Quote Start --><TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD><font size=-1>Quote:</font><HR></TD></TR><TR><TD><FONT SIZE=-1><BLOCKQUOTE> <BR> 06-06-2004 alle ore 18:04, cRoW2k : <BR>iptables-save <BR> <BR>man iptables-save<br> <BR></BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE><!-- BBCode Quote End --> <BR>si, uso gia´ iptables-save, ma ogni volta che avvio devo fare il restore a mano, mi sa che l´unica in effetti e´ rc.firewall... qualche consiglio? il vostro com´ e` ?<br>
Emo
Linux 1.0
Linux 1.0
 
Messaggi: 43
Iscritto il: mar giu 01, 2004 23:00

configurazione di iptables

Messaggioda Ir0nFl4m3 » sab giu 12, 2004 7:26

Io ho l´ rc.firewall in /etc/rc.d con i permessi di esecuzione e fila tutto liscio <BR>^_____^<br>
Ir0nFl4m3
Linux 2.4
Linux 2.4
 
Messaggi: 204
Iscritto il: sab set 27, 2003 23:00

Prossimo

Torna a Gnu/Linux in genere

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti