Newsgroup: it.comp.os.linux.sys
Titolo: ipchains freeze (lungo e abbastanza complicato)

Approfittando del lungo ponte ho messo mano al masquerade e soprattutto
all'ipchains... il MASQ funziona egregiamente e di questo sono bel lieto,
ho qualche problema invece con ipchains.
mandrake 7.2, toshiba SatellitePro, 256MB ram
Mi sono fatto un paio di regole scopiazzate qua' e la dai vari HOWTO e ho
provato a implementarle, questo e' il file commentato (in realta' carico
il file prodotto da ipchains-save che pero' si legge male e quindi non
riporto).
#!/bin/bash
# Semplice FireWall domestico, tanto per provare
#
#Cancella tutte le possibili regole esistenti
ipchains -F input
ipchains -F output
ipchains -F forward
#####Protezioni sulla rete interna e anti-spoofing
#Blocca l'accesso sull'if eth0 a tutto cio' che non proviene dalla mia rete
ipchains -A input -i eth0 -s ! 
192.168.155.0/255.255.255.0
 -j DENY
#Blocca l'accesso ai numeri della mia rete che non provengono dall'if eth0 (anti-spoofing)
ipchains -A input -i ! eth0 -s 
192.168.155.0/255.255.255.0
 -j DENY
#Blocca ogni spoof da lo
ipchains -A input -i lo -s 127.0.0.1 -j DENY
#####Protezioni su collegamento via ppp0
#Blocca (nuovamente) indirizzi della mia rete provenienti da Internet (anti-spoofing)
ipchains -A input -i ppp0 -s 
192.168.155.0/24
 -j DENY
#Blocca l'accesso alla porta 515 (in uso a printer secondo nmap)
ipchains -A input -i ppp0 -s 
0.0.0.0/0
 -d $LOCALIP 515 -j DENY
#Blocca l'accesso alla porta 631 (sconosciuto)
ipchains -A input -i ppp0 -s 
0.0.0.0/0
 -d $LOCALIP 631 -j DENY
#Blocca l'accesso alla porta 1024 (login grafico)
ipchains -A input -i ppp0 -s 
0.0.0.0/0
 -d $LOCALIP 1024 -j DENY
#Blocca l'accesso alla porta 6000 di X
ipchains -A input -i ppp0 -s 
0.0.0.0/0
 -d $LOCALIP 6000 -j DENY
nella mia malata fantasia dovrei bloccare le porte che nmap mi segnala
come aperte.
Problemi: 
* se carico le regole e poi faccio ipchains -L tutto mi viene
mostrato regolarmente, con dei numeri divertentissimi al posto di
$LOCALIP. Se carico le regole e poi alzo la connessione ppp tutto
funziona regolarmente compresi i due comandi per il MASQ che qui non sono
riportati ma se chiedo ipchains -L il comando si blocca. Con ctrl-C si
sblocca ovviamente. Nelle FAQ c'e' un riferimento che dice che
probabilmente ho bloccato l'accesso ai DNS ma non mi sembra di averlo
fatto e soprattutto il traffico su www funziona bene sia su questa
macchina che suell altre due (la macchina cavia -linux- e la macchina di mia
moglie -W95-).
Se effettuo un flush delle regole di input il comando ipchains -L
ricomincia a funzionare seppur con un minimo ritardo mostrandomi le
regole di forward.
* #non direttamente collegato# una volta online mi risultano aperte anche
le porte 1043, 1047 e 2543. Cosa diavolo sono? Uso Licq, forse c'entra
qualcosa. 
Domande:
* perche'?
* che rischi corro ad andare online con le porte sopra citate aperte? Le
riepilogo: 515, 631, 1024, 1043, 1047, 2543, 6000. Nessun altro servizio
e' in funzione a parte wu-ftp sulla 21 che pero' deve rimanere aperto
almeno per ora. Relativamente a quest'ultimo ho provveduto ad aggiornare
il demone all'ultima versione disponibile e a disattivare l'accesso
"real", e' ragionevolmente sicuro? (considerando anche che la macchina
e'online un'ora al gg al max??
Ragazzi io ce la sto mettendo tutta ma liberarsi di windows e' duretta...
anche prima mi si e' inchiodato tutto, freccia ferma...
thanks...
rimuovere un nove dall'adress per reply diretti
grazie di cuore.
Deckard

sblocca ovviamente.
E se usi invece "ipchains -nL" cosa succede? :-)
-- 
Ciao, Mario.
http://digilander.iol.it/mccmario/

 wrote:
|Approfittando del lungo ponte ho messo mano al masquerade e soprattutto
|all'ipchains... il MASQ funziona egregiamente e di questo sono bel lieto,
|ho qualche problema invece con ipchains.
|
|mandrake 7.2, toshiba SatellitePro, 256MB ram
|
|Mi sono fatto un paio di regole scopiazzate qua' e la dai vari HOWTO e ho
|provato a implementarle, questo e' il file commentato (in realta' carico
|il file prodotto da ipchains-save che pero' si legge male e quindi non
|riporto).
<megacut>
|
|Problemi: 
|* se carico le regole e poi faccio ipchains -L tutto mi viene
|mostrato regolarmente, con dei numeri divertentissimi al posto di
|$LOCALIP. Se carico le regole e poi alzo la connessione ppp tutto
|funziona regolarmente compresi i due comandi per il MASQ che qui non sono
|riportati ma se chiedo ipchains -L il comando si blocca. Con ctrl-C si
|sblocca ovviamente. Nelle FAQ c'e' un riferimento che dice che
|probabilmente ho bloccato l'accesso ai DNS ma non mi sembra di averlo
|fatto e soprattutto il traffico su www funziona bene sia su questa
|macchina che suell altre due (la macchina cavia -linux- e la macchina di mia
|moglie -W95-).
|Se effettuo un flush delle regole di input il comando ipchains -L
|ricomincia a funzionare seppur con un minimo ritardo mostrandomi le
|regole di forward.
|* #non direttamente collegato# una volta online mi risultano aperte anche
|le porte 1043, 1047 e 2543. Cosa diavolo sono? Uso Licq, forse c'entra
|qualcosa. 
ipchains -L cerca di risolvere i nomi e gli occorre un po' di tempo.
Prova con 
ipchains -L -n
oppure non essere cosi' impaziente.
P.S. Nello script postato non setti LOCALIP, in quello vero lo fai, no?

 anche prima mi si e' inchiodato tutto, freccia ferma...
Una rilettura dell'IPCHAINS-HOWTO o del Quick & Easy Configuration HOWTO di
MrShark ti possono aiutare.
-- 
Pierluigi De Rosa (
tho...@durin.khazad-dum.net
).
<<      LINUX: the choice of a GNU generation     >>
<<   For my real address... ask the Balrog.       >>
* Sostenete la Lega per la Soppressione dei Troll *

 P.S. Nello script postato non setti LOCALIP, in quello vero lo fai, no?
ecco... ieri sera prima di addormentarmi... ho avuto la lievissima
sensazione di essere un coglione... no... non lo setto.
nella mia devastante dabbenaggine ho pensato che la variabile citata
fosse una fantomatica "variabile di sistema" che automaticamente
assumesse il valore dell'ip di ppp0. sarebbe divertente per il mio
piscanalista sapere quale perverse associazione di idee io abbia creduto
che questo avvenisse...
ora, che assegnazione devo fare a localip? ovvero dove vado a pescare il
valore dell'ip del ppp0 per assegnarlo a localip?
perdonate la fattanza...
byez

 di MrShark ti possono aiutare.
io credo che UNA BELLA DOSE di riletture mi possano aiutare... il Quick &
Easy mi manca pero', mo' lo scarico.
grazie, la prossima domanda fra un paio di gg... prima vedo se ne esco
vivo da solo...
byez

 Easy mi manca pero', mo' lo scarico.
Alla prossima: buona lettura !!


 wrote:
|
|ecco... ieri sera prima di addormentarmi... ho avuto la lievissima
|sensazione di essere un coglione... no... non lo setto.
|nella mia devastante dabbenaggine ho pensato che la variabile citata
|fosse una fantomatica "variabile di sistema" che automaticamente
|assumesse il valore dell'ip di ppp0. sarebbe divertente per il mio
|piscanalista sapere quale perverse associazione di idee io abbia creduto
|che questo avvenisse...
|ora, che assegnazione devo fare a localip? ovvero dove vado a pescare il
|valore dell'ip del ppp0 per assegnarlo a localip?
|
Il valore da assegnare a LOCALIP lo ricavi in almeno due modi:
1) viene passato allo script ip-up nella variabile $4 (hai pensato
quasi bene) e quindi da qui dentro dovresti lanciare il tuo script 
con un comando tipo:
/etc/ppp/firewall ${4}
Poi nello script firewall fai
LOCALIP=${1}/
255.255.255.255
ecc.
2) lo trovi nella voce "inet addr" del comando
/sbin/ifconfig ppp0
quindi devi lavorare di grep e cut sull'output del comando, naturalmente
dopo che la connessione ad internet e' stata avviata.
(Un esempio lo trovi nel firewall di Mr Shark, cerca Mr Shark su google)

 (Un esempio lo trovi nel firewall di Mr Shark, cerca Mr Shark su google)
bene, cosi' mi studio bene quei comandi che mi son sempre chiesto a cosa 
diavolo potessero servire.
cmq il principio mi e' chiaro. provvedero'.
grazie di cuore
-- 
Rick Deckard
www.cignus-x1.com

 wrote:
|> Il valore da assegnare a LOCALIP lo ricavi in almeno due modi:
|> 
|> 1) viene passato allo script ip-up nella variabile $4 (hai pensato
|> quasi bene)
|
|e' la droga che uso. ottima.
|domanda futile... dove studio queste "variabili"? se volessi sapere ad 
|esempio a cosa serve $3 e $5 dove me lo invento?
|suppongo che ce ne siano una montagna e qualcosa mi dice che siano tutt li 
|per un buon motivo....
Si', tra parametri passati a script vari e variabili di sistema impostate
si arriva ad un buon numero ...
man pppd (che e' bello lungo) e controlli nella sezione in cui si parla
degli script
|
|> e quindi da qui dentro dovresti lanciare il tuo script
|> con un comando tipo:
|> /etc/ppp/firewall ${4}
|> Poi nello script firewall fai
|> LOCALIP=${1}/
255.255.255.255
|
|speriamo di aver intuito bene perche' il 4 diventa uno....
E' il numero del parametro (parametro posizionale).
se fai uno script che chiami "paperino" e lanci:
paperino qui quo qua
Dentro a paperino hai questi parametri
${1} = qui
${2} = quo
${3} = qua
man bash per questo (che e' ancora piu' lungo dell'altro.
Ottimo da stampare e da leggere prima di addormentarsi).
<cut>
|
|grazie di cuore
|
di nulla.


questo magari fra un po', senno mi scoppia la testa...;)

 wrote:
| > man pppd (che e' bello lungo) e controlli nella sezione in cui si parla
| > degli script
| 
| ho letto il man, non si parla di 4, si parla di IPLOCAL.
| ho provato a passare sia il 4 che a cambiare LOCALIP in IPLOCAL
Sono due cose diverse:
l'indirizzo lo mette nella variabile IPLOCAL e lo passa anche allo script ip-up
come quarto parametro (leggi bene la parte di ip-up).
La variabile IPLOCAL poi viene persa nei meandri delle shell, e
difficilmente si rintraccia.
Quindi non devi lanciare il firewall a mano, ma devi farlo lanciare ad ip-up
L'unico modo per lanciarlo a mano e' recuperare l'indirizzo ip da
ifconfig

 ifconfig
mi sto apparecchiando ... ;)) cut e grep eh? ben bene...
byez
-- 
Rick Deckard
www.cignus-x1.com

 ifconfig
dunque, mi sono studiato i comandi grep e cut e ottengo l'isolamento 
dell'ip con
fconfig | grep inet\ addr:15 | cut -b -34 | cut -b 21- 
ora... COME CASPITA si assegna quello che esce da qui a una variabile! 
(all'interno di uno script) ???
mi sono letto il man bash ma non c'e' niente!!
prometto che dopo smetto...
-- 
Rick Deckard
www.cignus-x1.com

 wrote:
| > L'unico modo per lanciarlo a mano e' recuperare l'indirizzo ip da
| > ifconfig
| 
| dunque, mi sono studiato i comandi grep e cut e ottengo l'isolamento 
| dell'ip con
| fconfig | grep inet\ addr:15 | cut -b -34 | cut -b 21- 
| 
| ora... COME CASPITA si assegna quello che esce da qui a una variabile! 
| (all'interno di uno script) ???
| mi sono letto il man bash ma non c'e' niente!!
variabile=$(comando)
oppure
variabile=`comando`
(occhio alle virgolette: non vanno bene ' e " ma ci vuole proprio `)
Per utilizzare il valore contenuto nella variabile
$variabile
oppure
${variabile}
Il paragrafo di man bash e' "command substitution".
Bravo, solo due consigli:
1) ifconfig ppp0 |grep inet\ addr: |......
   cosi' ti funzia anche se l'indirizzo ip non comincia con 15
2) anziche' cut -b (numero di bytes) ti conviene usare cut -d 
   (delimitatore) dato che la parte che devi estrarre ha
   lunghezza variabile tipo 145.4.2.1 e 145.140.132.100
| 
| prometto che dopo smetto...
| 
Nessun problema.

Davide wrote:

-- 
Rick Deckard
www.cignus-x1.com

    lunghezza variabile tipo 145.4.2.1 e 145.140.132.100
me ne ero accorto ma sembra che non gli faccia una gran differenza. cmq 
formalmente cosi' e' piu' corretto.
alla fine ne sono uscito cosi' e adesso tutto funziona:
#!/bin/bash
#
############################### Inizializzazione
# Procedura di estrazione dell'ip dinamico dall output dell'interfaccia pppO
# Questo comando e' riportato in MASQ HOWTO - da provare
#
#externalIP="`cat sample.ifconfig | grep 'inet addr' | awk '{print $2}' | 
#sed -e 's/.*://'`"
# Questo e' il comando mio per le prove in offline
#
#echo 'Estrazione ip dinamico'
#externalIP="`grep inet\ addr:15 sample.ifconfig | cut -b -35 | cut -b 21-`"
#echo 'ppp0 ip address is: '$externalIP
# Questo e' il comando mio reale da lanciare dopo la connessione
#
echo 'Estrazione ip dinamico'
externalIP="`ifconfig ppp0 | grep 'inet addr' | cut -b -35 | cut -b 21-`"
echo 'ppp0 ip address is: '$externalIP
################################# Attivazione FireWall
# Cancella tutte le possibili regole esistenti
echo 'Flushing regole esistenti'
ipchains -F input
ipchains -F output
ipchains -F forward
# Attiva il MASQ per la rete di casa
echo "Attivazione MASQuerade"
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_always_defrag
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
ipchains -P forward DENY
ipchains -A forward -i ppp0 -s 
192.168.155.0/24
 -j MASQ
#####Protezioni sulla rete interna e anti-spoofing
echo 'Attivazioni protezioni su rete interna'
#Blocca l'accesso sull'if eth0 a tutto cio' che non proviene dalla mia rete
ipchains -A input -i eth0 -s ! 
192.168.155.0/255.255.255.0
 -j DENY
#Blocca l'accesso ai numeri della mia rete che non provengono dall'if eth0 
(anti-spoofing)
ipchains -A input -i ! eth0 -s 
192.168.155.0/255.255.255.0
 -j DENY
#Blocca ogni spoof da lo
ipchains -A input -i lo -s 127.0.0.1 -j DENY
#####Protezioni su collegamento via ppp0
echo 'Attivazioni protezioni su rete esterna'
#Blocca (nuovamente) indirizzi della mia rete provenienti da Internet 
(anti-spoofing)
ipchains -A input -i ppp0 -s 
192.168.155.0/24
 -j DENY
#Blocca l'accesso alla porta 515 (in uso a printer secondo nmap)
ipchains -A input -p tcp -i ppp0 -s 
0.0.0.0/0
 -d $externalIP 515 -j DENY
ipchains -A input -p udp -i ppp0 -s 
0.0.0.0/0
 -d $externalIP 515 -j DENY
#Blocca l'accesso alla porta 631 (sconosciuto)
ipchains -A input -p tcp -i ppp0 -s 
0.0.0.0/0
 -d $externalIP 631 -j DENY
ipchains -A input -p udp -i ppp0 -s 
0.0.0.0/0
 -d $externalIP 631 -j DENY
#Blocca l'accesso alla porta 1024 (login grafico)
ipchains -A input -p tcp -i ppp0 -s 
0.0.0.0/0
 -d $externalIP 1024 -j DENY
ipchains -A input -p udp -i ppp0 -s 
0.0.0.0/0
 -d $externalIP 1024 -j DENY
#Blocca l'accesso alla porta 6000 di X
ipchains -A input -p tcp -i ppp0 -s 
0.0.0.0/0
 -d $externalIP 6000 -j DENY
ipchains -A input -p udp -i ppp0 -s 
0.0.0.0/0
 -d $externalIP 6000 -j DENY
echo 'Procedura terminata - Stato attuale:'
ipchains -L -n
-- 
Rick Deckard
www.cignus-x1.com

 echo 'Procedura terminata - Stato attuale:'
Partorito

 Partorito
e' piccolo ma crescera'...;)
grazie di tutto
-- 
Rick Deckard
www.cignus-x1.com