Newsgroup: it.comp.os.linux.sys
Titolo: Iptables + squid

Salve,
Gestisco dei laboratori dove per connetterli ad internet ho installato
una linux box (RH 8.0) con l'idea di realizzare un proxy-firewall.
Non avendolo mai fatto ho seguito un po' di guide, mi sono documentato
e alla fine sono riuscito nel mio intento.
Praticamente ho una rete interna che deve accedere solamente alla
porta 80 (al massimo ssl in + quindi 443) e su ogni client è
configurato il proxy per l'autenticazione..
La rete interna è del tipo 10.0.0.0 con netmask 255.255.255.0.
Non avendo pero' nessuno con cui confrontare le mie scelte le posto
qui nella speranza che qualche buona anima mi aiuti a migliorare la
mia configurazione..
Lo script per iptables l'ho sviluppato prima di mettere squid ed e' il
seguente:
iptables --flush
iptables -t nat --flush
iptables --delete-chain
iptables -t nat --delete-chain
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 80 -j SNAT
--to-source 151.x.x.x
iptables -t nat -A POSTROUTING -o eth0 -p udp --dport 53 -j SNAT
--to-source 151.x.x.x
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 443 -j SNAT
--to-source 151.x.x.x
 
iptables -A FORWARD -i eth1 -j ACCEPT
-----------------------------------------
Dopodiche' ho installato squid come proxy con autenticazione ncsa....
Le mie domande sono:
- Posso eliminare quindi le regole per la porta 53 e 443 dato che
tutto passa  per lo squid???
- Perchè se setto solo la porta 80 in uscita e squid è configurato
nell'ACL per far passare la porta ad es. ftp la porta ftp
effettivamente passa???
- Devo aggiungere delle regole sul firewall per renderlo più sicuro o
va bene cosi'??
- C'e' qualche trucchetto per ottimizzare la velocità (regole sul
fw)??
Grazie in anticipo 8-)

 effettivamente passa???
hai configurato bene i browser della scuola per usare il proxy?
-- 
Sostituisci '^@^' con '@' nell'indirizzo per il reply
---
Change '^@^' with '@' in the address for reply this email
---

 Grazie in anticipo 8-)
prego.
un'ultima cosa: forse ti conviene leggerti ancora qualche howto su proxy 
e firewall (pare che tu non abbia molto chiaro cosa filtrare e dove...)
-- 
+-------
| Paolo opg
|
| janickg ( at ) hotmail ( dot ) com
| (fake address in reply-to field!)
+-------

 e firewall (pare che tu non abbia molto chiaro cosa filtrare e dove...)
Certamente su questo hai ragionissima, purtroppo come ben sai quando
si lavora alla gente non interessa tanto la sicurezza ma che le cose
funzionino il più presto possibile e quindi la mia prima
preoccupazione è stata quella di leggere alla svelta 2 o tre cose per
buttare giu qualcosa di funzionante...
ora che cmq per adesso navigano posso lavorare per rendere tutto più
sicuro...
Grazie mille ancora a te e a lucriz per il vostro aiuto.. siete stati
gentilissimi...
See ya!


Non del tutto: come sopra.
bye G.L.
-- 
- Renaissance, aka Gian Luca Sole -
Cit. « E' assolutamente evidente che l'arte del cinema
 si ispira alla vita, mentre la vita si ispira alla TV »
                                        (Woody Allen)

 
così, di getto:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i $IntInterna -j ACCEPT
iptables -A INPUT -i $IntEsterna -m state --state RELATED,ESTABLISHED
    	-j ACCEPT
iptables -A INPUT -i $IntEsterna -j DROP
iptables -P INPUT DROP
mancano log, casi particolari, eventuali servizi e tutte le altre 
catene...


 questi (almeno, per quanto ne so io).
E si aggiunge anche un altra questione: il fatto di poter passare per un 
proxy, dipende anche dal client.
Mentre, ad esempio, un client ftp diverso da un browser puo' avere o 
meno la possibilita' di passare per un proxy (tipo gftp di gnome), un 
MUA (client di posta elettronica, e.g. anche outlook), generalmente non 
ha questa possibilita'. Del resto le impostazioni proxy di windows non 
sono, come dire, "system wide", anche se sembra cio' in quanto sono 
prese in considerazione da molti programmi (anche non microsoft). Ma, 
soprattutto,  sbirciando in quelle impostazioni puoi vedere come non 
siano assolutamente trattati protocolli come pop o smtp o telnet.
Il tutto a scanso di miracoli, "nascosti" alla plebe, fatti dai proxy di 
winNT/2K server di mamma microsoft, non lo escludiamo...   :-)


 questi (almeno, per quanto ne so io).
http://www.agroman.net/corkscrew/


Mumble... e' possibile tunnelizzare dns, smtp pop3 in ssh (server dei 
provider permettendo)?


 possono essere "proxati" dallo squid.
Perfetto quindi per i servizi supportati dal proxy uso squid mentre
per il resto (che per ora non mi serve) devo usare il forward
diretto....
 
Ma allora mi basta una buona configurazione per proteggere la rete
interna,
qualche consiglio sulle regole di iptables se chiedo troppo??
Grazie cmq adesso č tutto piů chiaro...

 catene...
ok ma perchè accettare i pacchetti tcp con porta 22???
grazie cmq dell'aiuto...

 grazie cmq dell'aiuto...


 chiuso fuori in caso di cappelle di configurazione...
Si ma è pericoloso...
in una conferenza sulla sicurezza ho visto bucare ssh con un'attimo,
personalmente preferisco chiudere tutto dall'esterno...
Ciao ciaoo

 
...
io non vivo in ufficio.
in caso di rogne, prima di mettermi in macchina, preferisco avere la 
possibilità di controllare cosa non funziona e se posso metterlo a posto 
da casa.
il pericolo di un bug c'è sempre e per essere dei sistemisti bisogna 
essere un pò paranoici, ma oltre un certo punto, diventa patologia...
:-)



Esempio, supponendo che la lan privata sia 192.168.0.x, che 
l'interfaccia lato wan sia eth0, e quella lato lan sia eth1
# Default policy a DROP
iptables -P FORWARD DROP
# Source NAT sulla rete privata 
192.168.0.0/24
 in uscita sulla eth0
iptables -A PREROUTING -t nat -s 
192.168.0.0/24
 -o eth0 -j SNAT --to 
<indirizzo_pubblico_di_eth0>
# Faccio passare i pacchetti di connessioni gia' iniziate
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# Faccio passare le richieste dns (e' il pacchetto syn per le 
connessioni tcp...)
iptables -A FORWARD -i eth1 -o eth0 -p tcp -m state --state NEW -s 
192.168.0.0/24
 --dport 53 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -p udp -m state --state NEW -s 
192.168.0.0/24
 --dport 53 -j ACCEPT
# Faccio passare il telnet
iptables -A FORWARD -i eth1 -o eth0 -p tcp -m state --state NEW -s 
192.168.0.0/24
 --dport 23 -j ACCEPT
# Faccio passare ssh
iptables -A FORWARD -i eth1 -o eth0 -p tcp -m state --state NEW -s 
192.168.0.0/24
 --dport 22 -j ACCEPT
# Permetto di contattare l'smtp
iptables -A FORWARD -i eth1 -o eth0 -p tcp -m state --state NEW -s 
192.168.0.0/24
 --dport 25 -j ACCEPT
# Permetto di contattare il pop3
iptables -A FORWARD -i eth1 -o eth0 -p tcp -m state --state NEW -s 
192.168.0.0/24
 --dport 110 -j ACCEPT
# ...
# Etc etc etc
#....
# Loggo in /var/log/messages tutto quello che NON sarebbe dovuto passare
iptables -A FORWARD -j LOG --log-prefix "NetFilter FORWARD - "
# "rejecto" quello che non e' stato permesso alla lan (cosi gli utonti 
si accorgono subito dove non possono mettere il naso...)
iptables -A FORWARD -i eth1 -j REJECT
# "droppo" tutto il resto (cade nel dimenticatoio... della serie 
"aspetta e spera")
iptables -A FORWARD -j DROP
Per input, devi fare delle regole analoghe, non usando "-o eth?" (che la 
catena input non accetta), usando solo "-i eth1", usando "-d 
<ip_privato_di_eth1>" e aggiungendo anche la regola:
iptables -A INPUT -s localhost -i lo -j ACCEPT
OUTPUT per ora la lasci in ACCEPT, poi, quando ti sarai impratichito, 
proverai anche con quella.
Per il resto:
http://www.netfilter.org


 <indirizzo_pubblico_di_eth0>
Errata: POSTROUTING, non PREROUTING


 provider permettendo)?
Non credo di aver compreso bene la domanda/dove vuoi arrivare.
In ogni caso butto altra carne al fuoco :)
http://htun.runslinux.net/


In questo momento il sito mi sembra giu'...


 :-)
Meno male che su linux i bug vengono risolti sempre e cmq essendo 
open-source è più 'controllabile' 8)))

 Riformulo: e' il modo di risolvere i problemi di maurizio?
Sinceramente per ora mi serve solo porta 80 e al max ssl,
in futuro dovro' mettere su ALICE che è un prg per la patente
europea ed è probabile che usi delle porte sue personali, e allora
dovrò per forza fare fowarding su quelle porte...
Grazie