[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