# Iptables e firestarter da zero...

## Ciccio Bueo

volevo iniziare ad usare firestarter, che mi sembrava la soluzione più facile per configurare un firewall,  ma mi trovo in grossisime difficoltà di "comprensione", ho cercato sul forum e ho visto che se ne è parlato molto, ma non sono riuscito a farmi chiarezza.... ho letto anche la documentazione sul sito di iptables, ma sono in confusione..

allora, primo passo, ho configurato il kernel perchè ci sia il pppfiltering? modulo o statico? attualemtne ce l'ho compilato come statico...

poi le regole di iptables...  in teoria le posso aggiungere da firestarter, ma non riesco, ovvero, se attivo il firewall, e cerco di usare internet vedo che non funziona, e vedo che c'è un tentativo di uscita da una determinata portca tcp, allora clicco col destro e la autorizzo, ma non funziona, ovvero vengono usate un "range" di porte? quali?

 :Rolling Eyes: Last edited by Ciccio Bueo on Sat May 07, 2005 3:09 pm; edited 1 time in total

----------

## Taglia

Mah guarda anche io sono alle prime armi ma, se vuoi veramente capire cosa stai facendo, cerca di buttare via i tools che ti configurano il firewall per conto loro e imparati a scrivere le regole. Secondo me un'approccio molto valido e facile è utilizzare la policy DENY ALL (ovvero rifiuti tutto) e poi apri solamente i servizi che ti servono, per iniziare. Se riesci a fare questo, secondo me sei già a buon punto per iniziare a imparare le cose più avanzate che il firewall ti permette di impostare. Per il kernel, io ho impostato tutto come statico.

----------

## flocchini

concordo... quando hai ben chiaro cosa stai facendo/vuoi fare allora 'e comodo utilizzare tool tipo shorewall o firestarter ma senza una buona padronanza di iptables non vai comuque da nessuna parte imho. Cerca una guida e scrivi alla brutta il tuo firewall, io ho imparato cosi' (e tuttora faccio a mano i miei script, sono piu' comodo)

----------

## .:chrome:.

io credo che tu non abbia capito molto.  :Confused: 

allora... il firewall è netfilter, iptables è un tool userspace che permette di configurare il firewall, tutto il resto sono delle facility per iptables.

se non hai capito la sintassi di iptables è molto difficile che tu possa usare con successo altri tool che si appoggiano a questo.

se vai su www.netfilter.org troverai delle ottime e chiarissime guide che ti spiegano come configurare il firewall con iptables.

poi... opinione mia è che il modo più semplice di fare un firewall sia usare direttamente iptables. aggiungi le regole una alla volta, con la stessa identica logica ed ordine con cui vengono processate. io lascerei perdere i tool diversi da iptables: fanno solo casino

----------

## assente

Firestarter si appoggia a -> shorewall -> iptables, tra l'altro se non hai syslogd, ma un'altro logger, non vedi in tempo reale le connessioni.. dopo averlo provato un po' la mia conslusione è stata: scarica uno script commentanto e impara a gestirti le regole a mano  :Smile: 

Riguardo le opzioni delkernel ti consiglio nel dubbio "modulo"

usa netstat -act per farti un'idea delle porte che ti servono

----------

## Ciccio Bueo

mii che skleroooo...  :Twisted Evil: 

per favore, potete postarmi una vostra configurazione, e sulla base di quella faccio le domande?

ma la configurazione devo farla con itables attivato o no?

qual'è il file di configurazione per editare le regole?

ho provato anche a seguire la gentoo security guide, ma con scarso risultato...

cioè non va internet.. (che usa il protocollo tcp)

in particolare non capisco queli sono esattamente le opzione da attivare nel kernel... solo ppp filtering?

 :Rolling Eyes: 

----------

## .:chrome:.

 *Ciccio Bueo wrote:*   

> ma la configurazione devo farla con itables attivato o no?
> 
> qual'è il file di configurazione per editare le regole?

 

ovvio che deve essere attivato...

le regole sono in /var/lib/iptables/rules-save, ma se vuoi editare quel file devi mettere save_on_stop=no in /etc/conf.d/iptables

poi...

nel kernel, la ppp filtering non c'entra niente. devi attivare network packet filtering e tuttoq uello che trovi sotto

----------

## flocchini

l'idea e': ti fai il tuo script con un editor di testo e lo lanci, poi fai rules-save in modo che vengano salvate dal sistema di inizializzazione di gentoo (per fare le cose "pulite")

----------

## xchris

eh gia'...

se uno parte da zero la cosa + semplice e' studiarsi il malloppo di iptables...

ma ne siete cosi' convinti?  :Laughing: 

Ricordiamoci che molte persone stanno migrando a linux e non per forza hanno ambizioni da sys-admin.

Ben vengano quindi tool che semplificano la vita... poi GNU/linux  ti da la possibilita' di scegliere...

a ognuno il suo!

Non diciamo pero' che la cosa + semplice e' studiarsi iptables & co.

Non avevo mai visto firestarter e per curiosita' l'ho emerso.

In 3 secondi mi ha fatto una configurazione da desktop. Notevole! (anche se per la mia macchina e' poco indicato per il numero di interfaccie fisiche/virtuali)

Sembra come che a usare iptables "puro" sia da fighi... mah  :Laughing: 

----------

## flocchini

ma no nn e' questione di fighi o meno... Sara' che io ho imparato cosi' e mi trovo piu' comodo (come anche altri mi pare di capire), comunque secondo me una guida bisogna leggersela altrimenti si fanno le cose a muzzo. Che poi magari non si abbiano ambizioni da sysadmin e' altrettanto vero ma a questo punto siamo sicuri che si abbia reale necessita' di un firewall sulla propria macchina linux? Basta aprire con criterio i servizi... 

Poi oh, se vuole provare shorewall e firestarter e vedere se riesce a cavarci fuori qsa senza sapere nulla di iptables, liberissimo di farlo  :Wink:  (lo so che sei un convinto sostenitore di shorewall, hai cercato di farlo usare anche a me ma non mi piace oh!  :Laughing:  )

[OT]Alla facciazza di netfilter in tutte le sue forme, a risentirci tra qualche giorno, domattina me ne vado in Spagna  :Razz:  [/OT]

----------

## xchris

e' ovvio che ognuno e' libero di avere la sua opinione  :Smile: 

Senza un firewall io mi sentirei cmq nudo  :Smile: 

E non avere un report delle tentate connessioni e altro sarebbe un handicap per me.

Il punto e' che spesso molto linux user non mettono alcun firewall proprio per il fatto che e' ostico netfilter+iptables.

Poter avere un minimo di protezione anche senza alcuna conoscenza di iptables penso sia importante soprattutto per una maggiore diffusione di gnu/linux.

che dire.... buon viaggio alla faccia di netfilter  :Laughing:   :Wink: 

----------

## matttions

Io utilizzo firestarter ...

...

Ã¨ ottimo.

----------

## gutter

Iptables, shorewall e firestarter (intesi come frontend a netfilter) sono strumenti che secondo me hanno dei target diversi, quindi mi pare perfettamente inutile fare paragoni su usabilità o semplicità. Ritengo che siano tutti degli ottimi tools ma sono indirizzati ad utenti diversi.

Poi come ripeto sempre "l'informatica è spesso una questione di compromesso" quindi ciascuno dei tools in questione può risultare la soluzione ottima in un determinato caso e pessima in un altro.

P.S.: Dopo anni di uso di iptables sono passato a shorewall e sono veramente soddisfatto di questo tool.

----------

## .:chrome:.

io parto da due idee fondamentali:

1 - firestarter e shorewall sono dei tool che aiutano nella configurazione di iptables, ma se uno non sa mettere le mani su iptables, difficilmente farà qualcosa di buono con questi tool

2 - un utente inesperto raramente ha davvero bisogno di un firewall. spesso è un tool soperfluo (per la stessa natura dei sistenmi UNIX)

ma queste sono mie opinioni personali

----------

## matttions

Si.. ma invece che studiarsi le regole di iptables in 3 secondi avere un firewall funzionante e ben fatto.. n Ã¨ male  :Smile: 

E' chiaro che essendo su gentoo studiarsi un qualcosa in + nn viene visto come un bug, ma ome feature  :Wink: 

----------

## pistodj

E' da poco che sono migrato a linux ma devo dire che son passato anch-io per l-argomento firewall.

inizialmente ho tentato di configurare il tutto tramite webadmin ma ho fatto un grosso buco nell-acqua

Personalmente nn conosco il prodotto che stai tentando di usare e cosi' mi sono messo a studiare iptables...

sinceramente ci ho perso un mese e lo trovo ancora abbastanza complesso ma ora penso ne sia valsa la pena impararlo...

se ti interessa il mio scripte e' questo...

dato che e' fresco di giornata se vedete che ha qualche errore postate grazie...

Ps. nn e' detto che a te serva tutto cio' che io ho attivato in quanto la mia macchina e' una serverweb per cui vedi tu come personalizzarlo!!

```
#! /bin/sh

ETH_INTERNET=eth0

ETH_LAN=eth1

SUBNET_LAN=192.168.0.0/255.255.255.0

iptables -F FORWARD

iptables -F INPUT

iptables -F OUTPUT

iptables  -t nat -F POSTROUTING

iptables -P INPUT ACCEPT

iptables -P OUTPUT ACCEPT

iptables -P FORWARD ACCEPT

iptables -t nat -P POSTROUTING DROP

iptables -t nat -P PREROUTING DROP

#------------------------------------------------------------------------------

#-------------- CONTROLLI GENERALI --------------------------------------------

#------------------------------------------------------------------------------

#Se mi entrano in imput pacchetti con indirizzi di rete locali dall'interfaccia di internet scartali!!

iptables -A INPUT   -s $SUBNET_LAN -i $ETH_INTERNET -j DROP

iptables -A FORWARD -s $SUBNET_LAN -i $ETH_INTERNET -j DROP

#Permetto di entrare nel server solo dalla rete locale (scarto il resto)

iptables -A INPUT -p tcp --destination-port 1024: -s ! $SUBNET_LAN  -m state --state RELATED,ESTABLISHED        -j ACCEPT

iptables -A INPUT -p tcp --destination-port 1024: -i $ETH_INTERNET -m state --state RELATED,ESTABLISHED  -j ACCEPT

#------------------------------------------------------------------------------

#--------------      MASQUERADING      ----------------------------------------

#------------------------------------------------------------------------------

iptables -t nat -A POSTROUTING -p tcp -o $ETH_INTERNET  -j MASQUERADE

#------------------------------------------------------------------------------

#--------------    FORWARD     ------------------------------------------------

#------------------------------------------------------------------------------

iptables -A FORWARD -p tcp --source-port 53 -j ACCEPT

iptables -A FORWARD -p tcp --destination-port 53 -j ACCEPT

iptables -A FORWARD -p udp --source-port 53 -j ACCEPT

iptables -A FORWARD -p udp --destination-port 53 -j ACCEPT

#Socket

iptables -A INPUT -i lo  -j ACCEPT

iptables -A OUTPUT -o lo -j ACCEPT

#http

iptables -A FORWARD  -p tcp --source-port 80           -i eth0 -m state        --state RELATED,ESTABLISHED  -j ACCEPT

iptables -A FORWARD  -p tcp --source-port 80           -i eth0 -m state        --state RELATED,ESTABLISHED  -j ACCEPT

iptables -A FORWARD  -p tcp --destination-port 80    -i eth1 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

iptables -A FORWARD  -p tcp --destination-port 80    -i eth1 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

#https

iptables -A FORWARD  -p tcp --destination-port 443 -s 192.168.0.1 -i eth1 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

iptables -A FORWARD  -p tcp --destination-port 443 -s 192.168.0.3 -i eth1 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

iptables -A FORWARD  -p tcp --source-port 443  -d 192.168.0.1 -i eth0        -m state        --state RELATED,ESTABLISHED -j ACCEPT

iptables -A FORWARD  -p tcp --source-port 443 -d 192.168.0.3  -i eth0         -m state        --state RELATED,ESTABLISHED  -j ACCEPT

#------------------------------------------------------------------------------

#--------------    INPUT     -------------------------------------------

#------------------------------------------------------------------------------

#dns

iptables -A INPUT -p tcp --destination-port 53  -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A INPUT -p tcp --source-port 53      -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A INPUT -p udp --destination-port 53  -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A INPUT -p udp --source-port 53     -m state --state RELATED,ESTABLISHED -j ACCEPT

#ssh

iptables -A INPUT -p tcp --destination-port 22 -m state --state NEW,ESTABLISHED -j ACCEPT

#iptables -A INPUT -p udp --destination-port 22 -m state --state  NEW,ESTABLISHED -j ACCEPT

#iptables -A INPUT -p tcp --source-port 22  -j ACCEPT

#iptables  -A INPUT -p udp --source-port 22 -j ACCEPT

#SAMBA

iptables -A INPUT  -p udp --destination-port 137 -s $SUBNET_LAN  -i eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A INPUT  -p udp --destination-port 138 -s $SUBNET_LAN  -i eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A INPUT  -p tcp --destination-port 139 -s $SUBNET_LAN  -i eth1  -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A INPUT  -p tcp --destination-port 445  -s $SUBNET_LAN -i eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT

#webmin

iptables -A INPUT  -p tcp -s $SUBNET_LAN --destination-port 10000 -i eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A INPUT  -p udp -s $SUBNET_LAN --destination-port 10000 -i eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A INPUT  -p tcp -d $SUBNET_LAN --source-port 10000 -i eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A INPUT  -p udp -d $SUBNET_LAN --source-port 10000 -i eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT

#APACHE

iptables -A INPUT -p tcp -m tcp --sport 80 -j ACCEPT

iptables -A INPUT -p tcp -m tcp --sport 443 -j ACCEPT 

#------------------------------------------------------------------------------

#--------------    OUTPUT     -------------------------------------------------

#------------------------------------------------------------------------------

iptables -A OUTPUT -p tcp --destination-port 25    -j ACCEPT

iptables -A OUTPUT -p tcp --destination-port 110   -j ACCEPT

iptables -A OUTPUT -p tcp --source-port 25    -j ACCEPT

iptables -A OUTPUT -p tcp --source-port 110   -j ACCEPT

iptables -A OUTPUT -p tcp --destination-port 20    -j ACCEPT

iptables -A OUTPUT -p tcp --destination-port 21   -j ACCEPT

iptables -A OUTPUT -p tcp --source-port 20    -j ACCEPT

iptables -A OUTPUT -p tcp --source-port 21   -j ACCEPT

iptables -A OUTPUT  -p udp --source-port 137 -d $SUBNET_LAN -o $ETH_LAN -j ACCEPT

iptables -A OUTPUT  -p udp --source-port 138 -d $SUBNET_LAN -o $ETH_LAN -j ACCEPT

iptables -A OUTPUT  -p tcp --source-port 139 -d $SUBNET_LAN -o $ETH_LAN -j ACCEPT

iptables -A OUTPUT -p tcp --source-port 22  -j ACCEPT

iptables  -A OUTPUT -p udp --source-port 22  -j ACCEPT

iptables -A OUTPUT  -p tcp -d $SUBNET_LAN --source-port 10000 -j ACCEPT

iptables -A OUTPUT  -p udp -d $SUBNET_LAN --source-port 10000 -j ACCEPT

iptables -A OUTPUT -p tcp --destination-port 53    -j ACCEPT

iptables -A OUTPUT -p tcp --source-port 53   -j ACCEPT

iptables -A OUTPUT -p udp --destination-port 53    -j ACCEPT

iptables -A OUTPUT -p udp --source-port 53   -j ACCEPT

iptables -A OUTPUT -p tcp -m tcp --sport 80 -j ACCEPT

iptables -A OUTPUT -p tcp -m tcp --sport 443 -j ACCEPT
```

Usiaomo il bbcode, grazie -- fedeliallalinea

----------

## xchris

 *pistodj wrote:*   

> E' da poco che sono migrato a linux ma devo dire che son passato anch-io per l-argomento firewall.
> 
> inizialmente ho tentato di configurare il tutto tramite webadmin ma ho fatto un grosso buco nell-acqua
> 
> Personalmente nn conosco il prodotto che stai tentando di usare e cosi' mi sono messo a studiare iptables...
> ...

 

mmm..

diciamo che l'approccio usato non e' quello + giusto.

e' meglio impostare le policy di default a DROP e consentire quello necessario.

(in seguito poi accetti cose gia' implicitamente accettate dalle policy di default..)

se mi e' sfuggito qc chiedo scusa perche' ho dato un occhio molto veloce allo script.

Che un firewall non serva ad un utente di livello basso non mi pare proprio vero al 100%.

Non tanto per problemi di sicurezza generici (perche' magari non offre alcun tipo di servizio), quanto per la necessita' di sapere almeno se qualcuno ci sta bersagliando. (o per lo meno... io vorrei saperlo)

Cmq come detto da gutter firestarter e shorewall sono decisamente 2 cose diverse.

Shorewall e' un tool comodo per semplici setup e per setup decisamente complessi. (e' per questo che lo amo profondamente).

Firestarter e' + indicato per un utilizzo desktop e cmq senza grandi pretese anche se presenta indubbie comodita'. 

cmq... ne abbiamo parlato 3000 volte dei tool per firewall... non saremo mai d'accordo  :Very Happy:   :Laughing:  amen  :Wink: 

----------

## gutter

 *xchris wrote:*   

> 
> 
> cmq... ne abbiamo parlato 3000 volte dei tool per firewall... non saremo mai d'accordo   amen 

 

Si infatti direi di chiudere i discorso qui  :Smile:  se no rischiamo di essere ripetitivi   :Wink: 

----------

## X-Drum

 *xchris wrote:*   

> Shorewall e' un tool comodo per semplici setup e per setup decisamente complessi. (e' per questo che lo amo profondamente).
> 
> 

 

all'inizio l'ho snobbato, adesso praticamente non ne posso piu' fare a meno

 *xchris wrote:*   

> 
> 
> Firestarter e' + indicato per un utilizzo desktop e cmq senza grandi pretese anche se presenta indubbie comodita'. 

 

esatto è un tentativo di creare un personal firewall

----------

## Ciccio Bueo

due giorni che non posto... non riuscivo a far andare la connessione...  :Embarassed: 

adesso ho piallato iptabels e mi son connesso... non so che dirvi, ho letto il ma di iptables, la doc sul web, la gento security guide,  ma se aprto da zero, non ne vengo fuori... sarò stupido, che vi devo dire...

proviamo una cosa per volta, se vi va di farmi un pò di "carità informatica", il servizio iptables lo aggiungo al runlevel di default?

----------

## pistodj

Scusate in effetti vi ho postato le policy che avevo impostato temporaneamente...

quelle corrette sono queste!!

iptables -P INPUT DROP

iptables -P OUTPUT DROP

iptables -P FORWARD DROP

----------

## Ciccio Bueo

abolito il firewall....  unmerge di iptables e firestarter, e tolto anche dal kernel.. non posso usare internet una volta a settimana... per fortuna che non ho provato sui pc in ufficio, altrimenti mi veniva da ridere...

ritenterò più avanti con maggiore calma...  :Rolling Eyes: 

----------

## xchris

noooooo  :Smile: 

come ti colleghi a internet? 

se hai voglia ti assisto con shorewall...(in privato)

ciao

----------

## Ciccio Bueo

 *xchris wrote:*   

> noooooo 
> 
> come ti colleghi a internet? 
> 
> se hai voglia ti assisto con shorewall...(in privato)
> ...

 

 :Very Happy:   ok... come potrei rifiutare una proposta simile?

però ora sto andando in ufficio, e non posso quindi configurare nulla su questo pc... se mi dici intanto cosa devo emergere, così poi ne parliamo...!!

grazie mille!!!!!!!!!!!  :Very Happy:   :Very Happy:   :Very Happy:   :Very Happy:   :Very Happy: 

----------

## xchris

configura il kernel con il supporto netfilter..

se sei indeciso se compilare o meno una voce inizia a metterla come modulo.

poi dovrai emerge iptables e shorewall.

Poi ne riparliamo  :Smile: 

ciao

----------

## Ciccio Bueo

signorsì!

agli ordini!  :Cool: 

----------

## khris81

 *flocchini wrote:*   

> l'idea e': ti fai il tuo script con un editor di testo e lo lanci, poi fai rules-save in modo che vengano salvate dal sistema di inizializzazione di gentoo (per fare le cose "pulite")

 

cosa dovrei scrivere iptables rules-save????  :Sad: 

----------

## flocchini

faii l tuo script e lo rendi eseguibile, lo lanci e verifichi che le tue regole ci siano (iptables -L). poi /etc/init.d/iptables save per salvare le regole secondo il metodo di gentoo e poterle ripristinare al riavvio con un semplice /etc/init.diptables start (o aggiungendo iptables al runlevel di default, decisamente piu' comodo)

----------

## .:chrome:.

 *Quote:*   

> cosa dovrei scrivere iptables rules-save????

 

se usi rules-save ti basta dare un 

```
/etc/init.d/iptables restore
```

 ed editi il file aggiungendo le regole esattamente come vengono processate dal firewall, nello stesso ordine, e con la sintassi di iptables-save

occhio che se vuoi modificare quel file devi mettere "save on stop = no" in /etc/conf.d/iptables

----------

## Ciccio Bueo

 *xchris wrote:*   

> configura il kernel con il supporto netfilter..
> 
> se sei indeciso se compilare o meno una voce inizia a metterla come modulo.
> 
> poi dovrai emerge iptables e shorewall.
> ...

 

installati! attendo istruzioni (quando hai tempo chiaramente!)  :Very Happy: 

----------

## xchris

bene..  :Smile: 

Per entare un po' nella logica di shorewall ti consiglio di leggere la breve guida che avevo fatto ai tempi.

E' molto semplicistica e semplice... (la trovi sul mio sitino...link in basso)

Poi sentiamoci via PM e IM per il resto  :Smile: 

ciao

----------

## khris81

ma nn esiste un modo x nascondere il mio ip???

xchris il tuo sito mi vede il mio ip, nn che mi dispiaccia ma il firewall nn dovrebbe nasconderlo???? se si come si fa???

----------

