Newsgroup: it.comp.sicurezza.unix
Titolo: anti spoof

Leggendo l'HOWTO di ipchains (e settate tutte le rule del caso), ho visto un un capitolo che trattava lo spoofing e, in particolare, di come evitarlo.
Questo e' lo script di inizializzazione che ho incluso in fase di boot, prima dell'inizializzazione delle interfacce di rete:
      # This is the best method: turn on Source Address Verification and get
       # spoof protection on all current and future interfaces.
       if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]; then
         echo -n "Setting up IP spoofing protection..."
         for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
             echo 1 > $f
         done
         echo "done."
       else
         echo PROBLEMS SETTING UP IP SPOOFING PROTECTION.  BE WORRIED.
         echo "CONTROL-D will exit from this shell and continue system startup."
         echo
         # Start a single user shell on the console
         /sbin/sulogin $CONSOLE
       fi 
la protezione, in fase di boot, viene correttamente attivata.
Domande:
1) la protezione e' efficace?
2) questo tipo di protezione fa in modo di ignorare qualsiasi pacchetto spoofato? (detta in altri termini: se uno spara qualche DoS con IP cammuffato, questa protezione blocca il pacchetto?)
Se le risposte sono affermative, posso togliere regole del tipo:
ipchains -A ppp-in -s 
192.168.0.0/16
 -j DENY
?
grazie
Buttha
-- 
* Per rispondere in email rimuovere una i dall'indirizzo
* RSA fingerprint: 7772 5C72 7392 538B  34B8 A189 13BC 867A
  DH/DSS  "      : 3CAD 35F0 1D5D F46B 7D95  33F8 5784 B463 A328 7B05
* 
http://members.xoom.it/buttha/

ipchains -A ppp-in -s 
192.168.0.0/16
 -j DENY ?
levala pure.
invy 
-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GSS/TW/O>AT d?(dx) s+:+, s: a-->a- C++(C+++) UL+++>UL++++ P+ L+++>L++++
E-- W(W-) N++ K? w-- O- M- V- PS++ PE Y+ PGP++ t++@ 5 X+ R+(R++) tv b+++
DI+++@ D+ G>G++ e++ h r+(r-) y++*
------END GEEK CODE BLOCK------

 esterno. quindi non riconosce IP spoofati, ma tratta quelli della tua LAN.
quindi, nel mio caso, non avendo alcuna LAN da proteggere, e' una misura inutile?
Mi accontento dei:
ipchains -A ppp-in -s 
192.168.0.0/16
 -j DENY
ipchains -A ppp-in -s 
172.16.0.0/16
 -j DENY
ipchains -A ppp-in -s 
10.0.0.0/8
 -j DENY
ipchains -A ppp-in -s 
127.0.0.0/8
 -j DENY
?
(considera che, per motivi neanche troppo lunghi da spiegare, ho una politica ACCEPT)
ciao


?
lasciali all'inizio delle tue regole, se hai una politica di tipo ACCEPT.


 invy
che, nonostante il geek code, continua ad apparirmi come un personaggio
misterioso... :)
ciao
Buttha (contento di leggerti, quando compari)


misterioso... :)
invy :) 


 lasciali all'inizio delle tue regole, se hai una politica di tipo ACCEPT.
ma sono rule inutili, nel caso di applicazione dello script di inizio
thread, o no?
un Buttha che non si sente di dare le cose per ovvie


thread, o no?
se usi un kernel 2.2.x, non vero per 2.0.x, allora, guardando nei sorgenti, in
~linux/net/ipv4/route.c abbiamo:
/*
 *      NOTE. We drop all the packets that has local source
 *      addresses, because every properly looped back packet
 *      must have correct destination already attached by output routine.
 *
 *      Such approach solves two big problems:
 *      1. Not simplex devices are handled properly.
 *      2. IP spoofing attempts are filtered with 100% of guarantee.
 */
quindi per ogni interfaccia, non accetterai mai pacchetti con IP delle tue
interfacce che arrivino dall'esterno, ovviamente questo non serve se vuoi
filtrare altri IP tipo 
10.0.0.0/8
 o i 172.xxx, per i quali le rules sono utili.
Quindi usa rp_filter e le rules per IP NON delle tue interfacce, non scordando
che anche in sicurezza, la ridondanza non e' inutile, se non complica le cose.
invy 


 conoscere ad ipchains il mio attuale IP?
Se lo script viene eseguito tramite ip-up (vedi directory /etc/ppp) allora puoi utilizzare la variabile
IPLOCAL.
Oltre a questa sono disponibili altre variabili, l'elenco lo trovi nella man page di pppd.
Ciao!

 [snip]
grazie di tutto.
ciao
Buttha
