Newsgroup: it.comp.os.linux.iniziare
Titolo: Impossibile navigare con iptables.

Salve a tutti.
Ieri ho liberato un po' di spazio dal disco e ci ho rimesso su Mandrake 9:
da quel momento ho cominciato a litigare con Iptables.
Premetto che l'ultima volta che avevo installato MDK ero riuscito a
crearmi un set di regole molto terra-terra che però funzionava bene:
fondamentalmente queste regole bloccavano tutto il traffico eccetto quello
passante per alcune specifiche porte (tipicamente web, posta, news e dns).
Ora vorrei riuscire a ricreare queste regole (stupidamente non avevo
salvato il file di configurazione e non ricordo bene come avevo fatto). Recuperando un po' di documentazione e
cercando su Google credo di aver capito che un filtro come quello che ho
in mente si ottiene impostando le policy per le varie catene in modo da
bloccare tutto (con comandi tipo iptables -P INPUT DROP e simili per
OUTPUT e FORWARD) e poi aprendo selettivamente le porte che mi servono
(iptables -A INPUT -p tcp --dport 80 -j ACCEPT per la porta 80, ad
esempio).
Il punto è che, per qualche motivo, solo i DROP iniziali vengono
considerati, mentre tutte le regole successive sono ignorate: com'è
prevedibile il risultato è il blocco totale di qualunque trasferimento
dati, tanto in ingresso quanto in uscita. 
Sicuramente sto commettendo qualche errore stupidissimo , ma io non ne
vengo fuori. Eppure l'altra volta, una volta capita la sintassi, non avevo
avuto tanti problemi.
Chi è così gentile da darmi qualche dritta su come uscirne?
Grazie e ciao.



On Mon, 03 Mar 2003 15:01:37 +0100, lchiandu wrote:
[CUT]
Scusate per il doppio post, ho fatto casino con PAN.
Ciao.

 avuto tanti problemi.
La macchina su cui stai configurando iptables che lavoro fa esattamente?
Dovrebbe essere un gateway o è una normale postazione?
Ho bisogno di sapere questo altrimenti non ti posso aiutare.
--------------------------------
Inviato via 
http://usenet.libero.it

 Ho bisogno di sapere questo altrimenti non ti posso aiutare.
Un normale PC stand-alone collegato con ADSL con IP dinamico.
Grazie 1000 e ciao.

 Per questo non capisco perchè le regole delle chain vengono ignorate.
Magari perchè le metti nella tabella sbagliata?
Tu nel tuo post dici di mettere la policy di tutte le tabelle a DROP, e va
bene, poi percò dici di abilitare le porte nella tabella INPUT.
La tabella che si occupa di filtrare i pacchetti generati localmente, la
OUTPUT, non la INPUT.


 OUTPUT, non la INPUT.
Volevo dire chains, non tabelle scusa. La tabella ovviamente č FILTER.


 localmente, la OUTPUT, non la INPUT.
Forse mi sono espresso un po' da cani. :-P
Intendevo dire: istruisco tutte le policy per "droppare" i pacchetti 
e poi, per ogni catena, metto le eccezioni, vale a dire apro le porte 
che dovrebbero essere aperte.
Es. per la catena INPUT: seleziono la policy DROP: poi, semre nella 
catena INPUT, aggiungo le regole con cui dico: accetta tutti i 
pacchetti in arrivo su questa, questa e questa porta.
Stessa cosa con la catena OUTPUT: blocco con iptables -P OUTPUT DROP 
e poi gli dico: lascia passare tutti i pacchetti che partono da 
questa, questa e questa porta. 
Spero di essermi spiegato un pochino meglio stavolta.
Grazie e ciao.
-- 
Lucio. ICQ# 126307243
"Tutto quello che possiamo fare è sperare per il meglio, aspettarci 
il peggio e accontentarci di una via di mezzo"

> Spero di essermi spiegato un pochino meglio stavolta.
Ora si, ti sei spiegato.
Ma come fai a sapere quale sarà la porta utilizzata dal sistema quando
cercherà di aprire una sessione tcp/ip ?
Mi spiego meglio.
Tu vuoi vedere una pagina web col browser, ed il tuo sistema utilizza una
porta per aprire una sessione tcp/ip con l'host remoto.
Se tu dici alla chain OUTPUT di accettare tutti i pacchetti con una porta di
partenza (la tua) > 1024 può andare bene.
Tu che porte gli hai detto di utilizzare in output?
Tutto il traffico generato dal tuo computer che non meccia una di queste
regole, verrà droppata, gliel'hai detto tu.

 queste regole, verrà droppata, gliel'hai detto tu.
Il problema è che droppa anche il traffico che invece dovrebbe 
passare: 
per qualche motivo tutte le regole successive al DROP iniziale 
vengono 
ignorate. Non so più che pensare.  %-(


 ignorate. Non so piů che pensare.  %-(
1. Prova a inserire una regola di LOG, cosě vedi tutto quello che viene 
effettivamente intercettato e magari droppato.
2. Nono sono riuscito a trovare tutti i post precedenti, avevi postato 
l'elenco completo delle regole che usi?
-- 
"Any sufficiently advanced technology is indistinguishable from magic."
                                                            Arthur C. Clarke

 ignorate. Non so piů che pensare.  %-(
Prova cosě, FORWARD a DROP senza regole, OUTPUT ad ACCEPT senza regole e la INPUT DROP con la regola delle sessioni RELATED ed ESTABLISHED.

 postato l'elenco completo delle regole che usi?
 
No, non le ho mai postate. Io uso iptables-save e iptables-restore 
per caricare e salvare le regole. Se puň essere utile posto il file 
di salvataggio, sono poche righe.
Grazie e ciao.
-- 
Lucio. ICQ# 126307243
"Tutto quello che possiamo fare č sperare per il meglio, aspettarci 


 ESTABLISHED. 
Mi hai dato dei consigli preziosi, grazie. Appena posso ci provo e ti 
so dire l'esito.
Grazie 1000 e ciao.
-- 
Lucio. ICQ# 126307243
"Tutto quello che possiamo fare č sperare per il meglio, aspettarci 


 la INPUT DROP con la regola delle sessioni RELATED ed ESTABLISHED.
Dopo innumerevoli tentativi sono finalmente riuscito a trovare una 
configurazione che sembra funzionare in maniera corretta.
Ho iniziato a bloccare col drop tutte le porte intermedie tra quelle che mi 
servono (es: mi servono la porta 21 e 80: blocco tutte quelle tra la 22 e 
la 79 comprese) fino alla 1024. Per proteggere quelle che mi servono ho 
aggiunto una regola del tipo  iptables -A INPUT -p tcp --dport 80 --syn -j 
DROP. Se ho ben capito la guida in linea il flag --syn dovrebbe impedire 
connessioni alla porta in questione, lasciandola perň aperta per 
connessioni stabilite. I controlli fatti col sito 
http://scan.sygate.com
 
mostrano che il mio sistema dovrebbe essere chiuso abbastanza bene: sembra 
che, eccetto il ping, qualunque tentativo di connessione venga bloccato. A 
questo punto mi č bastato aggiungere una regoletta per permettere le 
connessioni in locale e via. Il tutto sembra funzionare a dovere.
Tra l'altro adesso mi funziona anche l'FTP che nella precedente 
installazione mi veniva bloccato dal firewall.
Comunque grazie per tutti i consigli che mi hai dato. Mi hai chiarito 
parecchie cose.
Ciao.

 parecchie cose.
Prego, oramai voglio venirne a capo pure io.


 Prego, oramai voglio venirne a capo pure io.
Beh, è come avere una casa con l'antifurto: basta impedire agli intrusi di 
entrare, di solito non serve impedire a chi è dentro di uscire, no?
Ciao.

 Il traffico in uscita non rappresenta un problema, se non ci installo *io*
qualcosa di strano, ma quello in entrata, specie con MDK che attiva molti
servizi di default, può rappresentare un problema.
quindi OUTPUT ACCEPT
Senti, perchè non posti lo script che configura le regole di iptables che lo
guardiamo tutti insieme? Qualche dubbio sta sorgendo anche a me su quel che
ho capito quindi è meglio se ci aiutano anche altri perchè non vorrei dirti
delle altre cazzate.


 dirti delle altre cazzate.
Beh, se vuoi ancora vederlo per curiosità lo posto, ma a questo punto mi 
rendo conto che è tutto sbagliato, dato che ragionavo partendo da 
presupposti sbagliati, per questo non funzionava nulla. Tra l'altro ora 
capisco perchè avevo lo stesso problema con un firewall per Windows qualche 
mese fa.
Grazie 1000 per tutte le risposte che mi hai dato. Probabilmente mi ci vorrà 
ancora un po' per evere un firewall efficiente, ma almeno adesso so da dove 
partire.
Ciao.

 Ciao.
Ciao


 
http://www.linuxguruz.org/iptables/howto/iptables-HOWTO.html
 
Ci avevo già dato un'occhianta, ma solamente per la sintassi dei comandi. 
Appena ho un po' di tempo me lo leggo in maniera più approfondita.
Ciao.
