Newsgroup: it.comp.os.linux.software
Titolo: firewall

e' possibile creare una regola che blocchi tutti i pacchetti in arrivo da un
indirizzo internet invece che da un indirizzo ip?
io volevo fare qualcosa del genere:
iptables -A INPUT -p tcp -s indirizzointernetchevogliobloccare -j DROP
che ne dite, può funzionare?
ciao e grazie
--
Alex the knight

 che ne dite, può funzionare?
No, non funziona.
L'unica è fare qualcosa tipo:
#!/bin/bash
INDIRIZZO=`host indirizzochevuoibloccare`
iptables -A INPUT -p tcp -s $INDIRIZZO -j DROP
-- 
Massimo Bacilieri AKA Crononauta 
mailto:
ulib...@libero.it
 ; ICQ:4005815

 iptables -A INPUT -p tcp -s $INDIRIZZO -j DROP
scusa la mia pigrizia mentale so che la risposta è banale ma ora il mio
cervello è in letargo.
Io ho una lista di quasi 100.000 siti da bandire all'interno della mia rete.
Come faccio?
Direi ad occhio e croce di fare un ciclo però non saprei da che parte
iniziare.
Un aiutino?
Ciao e grazie mille
--
Alex the knight

 Come faccio?
Non ti converrebbe eliminare il gateway e mettere un proxy (squid) con 
le relative ACL?
Ciao
Mattia

 le relative ACL?
perchè non conosco squid e francamente volevo una cosa semplice senza tante
cose complicate, da realizzare senza perderci molto tempo.
Se ti viene in mente qualcosa...
Ciao e grazie
--
Alex the knight

 Se ti viene in mente qualcosa...
La cosa semplice allora è quella che ti ha detto Mattia: squid.
Un firewall blocca connessioni a livello IP, non puoi pensare di usarlo
per la risoluzione dei nomi. Per fare quello, la cosa corretta sono le
ACL di Squid, con filtri basati su regex.
Squid non è difficile da installare, più palloso sarà fare il giro di
TUTTI i client a reimpostarli perché escano tramite proxy e non più
tramite connessione diretta...


 tramite connessione diretta...
Con un transparent proxy si può riomediare anche a questo


Visto che ho un'idea ve la espongo anche se sono palesemente OT.
Visto che ho una lunghissima serie di siti da rendere inaccessibili io
pensavo di metterli nel file hosts di windows.
Il problema è che essendo una cosa sui client, l'utonto può sempre scovarlo
e cancellarlo.
Allora che fare?
Posso creare una procedura all'avvio che riprisitni tale file, però l'utonto
può sempre cancellare il file a mano oppure accorgersi dell'inghippo e
cancellare automaticamente all'avvio il suddetto file.
L'unica soluzione semplice senza adottare l'ipotesi del proxy (che per una
lunga serie di motivi non mi piace), sarebbe stata quella di passare
attraverso un server inaccessibile agli utenti.
Un'altra domanda è:
c'è un moto semplice per convertire i nomi dei siti in indirizzi ip?
Io ho la lista di siti in un foglio elettronico.
Se esistesse un programma che converte i nomi in indirizzi e accetta l'input
da file o da copia/incolla e che consente espertazione dei risultati sarei a
posto.
Ciao e grazie per i commenti.
--
Alex the knight

 posto.
mi è venuto in mente che in linux esisterà sicuramente il metodo per
contattare il dns farsi dire l'ip del sito e riportare il risultato in un
file.
esempio:
io ho la lista di siti in un file di testo e i siti sono uno pe riga.
Creando un apposito script posso prelevare dal file il nome del sito.
contatto il dns
gli propondo il nome del sito ed attendo che lo converta in indirizzo Ip
apro il file dei risultati
aggiungo in ultima riga il risultato
quando il file dei siti è arrivato in fondo si chiudono i file aperti e lo
script termina.
Però per fare una cosa del genere non saprei nemmeno da che parte iniziare.
Voi che ne dite?
Ciao
--
Alex the knight

 iptables -A INPUT -p tcp -s indirizzointernetchevogliobloccare -j DROP
Ho letto velocemente il thread e non solo per questo potrei dirti
castronerie... il mio è uno spunto probabilmente non funzionante: File
di testo con lista dei siti da bloccare. Script cron che ogni, ad
esempio M minuti, tanto aggiorna gli indirizzi ip dei siti... qualcosa
del genere:
#!/bin/bash
#prima cancelliamo le vecchia regole 
NUMEROSITI=30 #esempio
#ciclo scritto in modo balordo (si potrebbe fare con un for?)
k=0
until [ k = NUMEROSITI ]; do
	do k=$(($k+1));
	iptables -D INPUT 1 ;
done
#fine ciclo
for i in `cat fileConSiti`; do
	iptables -I INPUT 1 -s $i -j DROP;
done
Naturalmente lo script è pieno di errori e la prima volta devi aver
già inserito le regole all'inizio della catena (si potrebbe anche
creare un'altra catena) altrimenti ti cancella regole sbagliate. La
cosa potrebbe anche funzionare se gestisci localmente la risoluzione
dei nomi impostando M con un valore minore dell'intervallo di
aggiornamento della cache di bind. (... ehm i client devono usare il
risolutore locale...)... probabilmente c'è qualcosa (:-)) che ignoro
della risoluzione dei nomi (sarei contento se qualcuno facesse
chiarezza) come ad esempio un aggiornamento "particolare" della
cache...  In ogni caso se il computer in oggetto fa da router e come
ho capito vuoi bloccare i client non dovresti agire sulla catena di
input ma sulla forward.

 indirizzo internet invece che da un indirizzo ip?
Seconda idea balorda:
Dei filtri a livello di risolutore dei nomi... non so se bind lo fa.
Se il sito di cui è chiesta la risoluzione del nome si trova nella
lista dei siti vietati bind restituisce un'altro indirizzo, ad esempio
quello del server della rete... su cui è in ascolto apache
che restituisce come pagina iniziale: "Finiscila di vedere siti
porno... questo sito è vietato, vai su 
www.disney.com
"
(si devono forzare i client ad usare il risolutore sul server con
regole di iptables)
Ah... se poi uno è talmente pornofilo da navigare usando gli indirizzi
IP... :-)

 Alex the knight
io farei una finezza in piu utilizerei squid come proxi cache e squidGuard 
per creare le acl che è piu facile da manutenere e che dal sito puoi 
scaricarti le blacklist aggiornate settimanalmente anche in automatico 
tramite scripts
ciao

momogiog ilpirata wrote:

troppo dispendioso per le risorse umane meglio squid+squidguard

 Allora che fare?
A questo punto non puoi mettere nel file hosts del firewall tutti i siti 
in questo modo:
63.70.47.55	
sitobrutto.com
 
www.sitobrutto.com
63.70.47.55	
altrosito.net
 
www.altrosito.net
...
in modo che quando il firewall cerca di risolvere 
sitobrutto.com
 trova 
il sito 
disney.com
?
In questo modo dovresti risolvere.
Lo so, non e' elegante, ma se funziona...
-- 
ciao            |visita
                 |
http://www.sifor.it
gelty           |
http://www.sifor.com
-------------------------------------
Elimina toglimi. per le risposte
E' esplicitamente vietato usare l'indirizzo e-mail di questo messaggio
per fini diversi dalla risposta al messaggio stesso (Art. 10 DL. 171/98).

 il sito 
disney.com
?
Dipende da chi li risolve quei nomi secondo me, cioe' se il resolv.conf dei
client e' impostato sul firewall (che magari monta un bind) puoi farlo;
invece se i clienti chiedono la risoluzione dei nomi ad un DNS esterno
potrebbero tranquillamente uscire verso quegli ip.
-- 
Sono un servitore del Fuoco Segreto, e reggo la fiamma di Anor.
A nulla ti servira' il fuoco oscuro, fiamma di Udun.
Torna nell'Ombra! Non puoi passare.