[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Riminilug-general] Squid e iptables su server proxy e apertura porte



Alle 23:58, giovedì 23 marzo 2006, livan74 ha scritto:
> Me le lasci trovare?
> Ma non me la prendo mica se mi scrivi qualche direttiva di esempio...:)

questo è lo snip della mail di cui ti parlavo che sono riuscito a ritrovare: 
le regole funzionano, quindi ti consiglio, anzi ribadisco, di cercati la mail 
originale e di controllare direttamente da li le tue regole.

-- Begin snip
cmq, di solito nemmeno io mi ricordo bene tutti gli switch possibili
immaginabili, un po scopiazzo i miei script meglio venuti, un po vado a naso,
un po cerco sulla rete( da quando ho perso il mio preziosissimo manuale di
iptables sul treno); l'importante è capire bene il meccanismo, poi puoi fare 
di
tutto anche senza ricordarti come devi fare.
vado un po a naso:

> >iptables -A INPUT -p tcp -m tcp --dport 4662 -j ACCEPT

iptables è il comando, -A indica che la regola va aggiunta alla coda di INPUT,
-p indica il tipo di protocollo del pacchetto, -m sta per match ed indica il
modulo di iptables da usare, --dport indica che la porta di destinazione è 
4662
-j è l'azione da intraprendere che in questo caso è ACCEPT (accetta)

se schematiziamo un pacchetto in questo modo:

SIP:SPORT:DIP:DPORT dove:

SIP è l'indirizzo di chi ha generato il pacchetto(e quindi spedito);
DIP è l'indirizzo associato a chi viene spedito il pacchetto, cioè la macchina
che lo riceve
SPORT la porta di sorgente, e quindi la porta associata al servizio che ha
spedito il pacchetto
DPORT la porta di destinazione associata al servizio che riceve il pacchetto

possiamo notare che il comando sopra descritto filtrerà i pacchetti di tipo 
tcp
spediti alla macchina locale (in INPUT) a cui sarà associato DIP e accetterà i
pacchetti a DPORT 4662 del servizio sulla macchina locale

> >iptables -A INPUT -p udp -m udp --dport 4672 -j ACCEPT

stessa cosa di prima ma con pacchetti di tipo udp e porta 4672, che è la porta
udp del mulo

> >iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

qui invece viene controllato lo stato dei pacchetti (-m state), lo stato
ESTABLISHED,RELATED indica che questa regola viene applicata solo alla
connessioni già stabilite o relative ad un'altra connessione già aperta e
indica anche in questo caso di accettare i pachetti,si rende necessaria quando
un servizio, come ftp sposta la connesione su un altra porta(anche se ftp è 
una
brutta bestia per i pf)
In questo modo le connessioni non in input non ti vengono troncate

> >iptables -t nat -A PREROUTING -p tcp -i eth0 -d $IP_TUO_FIREWALL --dport
> 4662
> >-j DNAT --to $IP_TUA_MACCHINA:4662

qui c'è la catena di PREROUTING, che assieme a quella di POSTROUTING è stata
aggiunta alle catene del vecchio pf (ipchain) del kernel INPUT,OUTPUT,FORWARD
Queste catene indicano un'azione da compiere rispettivamente prima che il
pacchetto venga processato dalla macchina(il firewall) e dopo, 
sostanzialm,ente
servono per fare nat e port forward; qui si rende necessario il prerouting in
quanto la macchina con il mulo ha un indirizzo ip nella rete privata interna
ala firewall.
poichè iptables ha varie tabelle, se non specifico chew la tabella da 
modificare
è quella di nat con lo switch -t, lui usa quella di filtro, -i indica 
l'interfaccia di rete in ingresso, -d indica l'indirizzo a cui è inviato il 
pacchetto, non avendo dmz questa rete specifica ha solo la possibilità di 
essere l'indirizzo del firewall o uno degli indirizzi asegnati al firewall; 
poi la porta di destinazione, che come nell'esempio perecedente è quella del 
servizio.
Con questa regola tutti i pacchetti indirizzati a quella porta vengono 
reindirizzati alla porta della macchina all'interno della rete locale alla 
porta 4662, l'azione in questo caso è DNAT, cioè destination nat, è possibile 
anche fare SNAT(source nat) ma non mi viene in mente un esempio al momento.


> >iptables -A FORWARD -p tcp -i eth0 -d $IP_TUA_MACCHINA --dport 4662 -j
> ACCEPT

Questa regola agisce sulla catena di forward, in pratica con la prima regola 
ho accettato i pacchetti destinati alle porte del mulo, con il secondo li ho 
rediretti alla macchina con il mulo, con questo accetto il traffico in 
transito tra la mia macchina firewall e quella con il mulo

> >iptables -t nat -A PREROUTING -p udp -i eth0 -d $IP_TUO_FIREWALL --dport
> 4672
> >-j DNAT --to $IP_TUA_MACCHINA:4672
> >iptables -A FORWARD -p udp -i eth0 -d $IP_TUA_MACCHINA --dport 4672 -j
> ACCEPT

queste ultime la stessa cosa delle precedenti ultime 2 per la porta udp


come vedi è semplice:

tabella (4 possibilità che ti lascio scoprire), azione (aggiungi,togli,pulisci 
ed altre chicche squisite) catena(fondamentalmente input,output,forward,snat 
e dnat) protocollo, filtro, interfaccia sorgente, destinazione, azione (varie 
e tutte gustose)
puoi inoltre specificare interfaccia di ingresso, ip ingresso, ip in usciota, 
interfaccia di uscita, hai tutte le possibili combinazioni, il limite è la 
tua fantasia.
ti consiglierei il man iptables, ma meglio se studi bene come funziona un 
firewall, una volta che l'ahi capito vai con un filo di gas(attaccatto con un 
tubo alla tua bocca)

ciao,
Se ce la faccio ci vediamo alla riunione così tu mi rompi le balle se non hai 
capito qualcosa o vuoi altre delucidazioni, che non ti darò ed invece ti 
delizierò con qualche mia perla di saggezza come al solito; ma dubito che 
riuscirò a venire stasera

PS: sicuramente ho fatto degli errori e naturalmente ogni correzione è 
accettata ma non gradita
-- End snip
_______________________________________________
Riminilug-general mailing list
Riminilug-general@xxxxxxxxxxxx
http://riminilug.it/mailman/listinfo/riminilug-general