R: [Folug]ipchains

FreeAnt webmaster@freeant.net
Wed, 4 Apr 2001 11:35:47 +0200


Secondo me se fai una politica REJECT-based rischi inevitabilmente di
dimenticarti qualcosa. Generalmente io utilizzo una politica ACCEPT-based e
poi ramazzo via tutto il resto, così sono sicuro di non lasciare fuori
nulla. Non dico che sia il sistema migliore, anzi, si accettano commenti
anche feroci; tuttavia mi sono sempre trovato bene così... ;)

un esempio:

la eth1 è la scheda esterna (per te ppp0)
ho tolto eth2 perché sarebbe la subnet che a te non interessa (ricordi il
mio schemino di qualche giorno fa?)

        ### (C) FreeAnt Corp 2000, 2001

        ## Close while making changes
        ipchains -P forward DENY
        ipchains -P output DENY
        ipchains -P input DENY

        ## MASQuerade any IPs if NE to the internal network itself
        ipchains -A forward -s 10.0.0.0/24 -d ! 10.0.0.0/24 -j MASQ

        ## eth1: CVS from outside -- ANT 20010305 (w/LOG for debugging
purpose)
        ipchains -A input  -p tcp -i eth1 --dport 2401 -y -l -j ACCEPT

        ## eth1: Enable incoming calls ONLY for SYN pkts: ports 25 53 110
(soon w/o/LOG)
        ipchains -A input  -p tcp -i eth1 --dport 25 -y -l -j ACCEPT
        ipchains -A input  -p tcp -i eth1 --dport 53 -y -l -j ACCEPT
        ipchains -A input  -p tcp -i eth1 --dport 110 -y -l -j ACCEPT

        ## eth1&2: Enable incoming & outgoing ICMP pkts (w/LOG)
        ipchains -A input  -p icmp -i eth1 -l -j ACCEPT
        ipchains -A output -p icmp -i eth1 -l -j ACCEPT

        ## eth1&2: Enable incoming traffic for every pkts but SYN
        ipchains -A input -p tcp -i eth1 ! -y -j ACCEPT

        ## eth1&2: Cut off any pkts not responding to requirements above
(w/LOG)
        ipchains -A input  -p tcp -i eth1 -l -j REJECT

        ## ethX: Set outgoing pkts free through any IF
        ipchains -A output -p tcp -i eth0 -j ACCEPT
        ipchains -A output -p tcp -i eth1 -j ACCEPT

        ## eth0: Free traffic for trusted hosts
        ipchains -A input  -p tcp -i eth0 -j ACCEPT

        ## ACCEPT policy by default
        ipchains -P forward ACCEPT
        ipchains -P output ACCEPT
        ipchains -P input ACCEPT


Sembra spalancato ma in realtà il REJECT cattura tutto quello che non ricade
nelle categorie precedentemente specificate. In più non serve rejettare
tutti i pacchetti, basta rifiutare i SYN pkts. I test di intrusione
disponibili in rete confermano: gli unici punti deboli sono quelli delle
porte aperte (25, 53 e 110 e non si possono fare grosse intrusioni, in
verità) ed in ogni caso se non puoi fare a meno di tenerle aperte è un
rischio accettabile. Per quanto riguarda invece il discorso dello spoofing
devi attivare (spararci dentro "1") i file rp_filter nelle dir
/proc/sys/net/ipv4/conf/* e lo puoi fare così:


        ### (C) FreeAnt Corp 2000, 2001

        ## Stop spoofing
        if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]
        then
          for V in /proc/sys/net/ipv4/conf/*/rp_filter
          do
            echo 1 > $V
          done
          echo "spoofing killer enabled"
        else
          echo "spoofing killer NOT ACTIVE!!! Take care"
          echo "Ctrl-D to continue"
          /sbin/sulogin $CONSOLE
        fi


Ciao :)
FreeAnt

PS apropos, quand'è che si inizierà a discutere di iptables? L'argomento mi
interessa ma non ne so molto...


-----Messaggio originale-----
Da: Marco Valli <marco_valli@libero.it>
A: Mailing List FoLUG <folug@lists.linux.it>
Data: martedì 3 aprile 2001 21.38
Oggetto: [Folug]ipchains


>ipchains -I input -j REJECT -i ppp0 -p tcp --destination-port 6000 -l -y
>ipchains -I input -j REJECT -i ppp0 -p tcp --destination-port 2401 -l -y
>ipchains -I input -j REJECT -i ppp0 -p tcp --destination-port 3306 -l -y
>ipchains -I input -j REJECT -i ppp0 -p tcp --destination-port 1:1024
>-l-y
>ipchains -I input -j REJECT -i ppp0 -p tcp --destination-port 5432 -l -y
>ipchains -I input -j REJECT -i ppp0 -p udp --destination-port 5432 -l -y
>ipchains -I input -j REJECT -i ppp0 -p tcp --destination-port 4848 -l -y
>echo "1" >/proc/sys/net/ipv4/icmp_echo_ignore_all
>
>Quelle che vedete sono le impostazioni di ipchains che ho aggiunto a
>rc.local... avete commenti da fare?
>ciao ML!!
>--
>__________________________________________________
>Marco Valli - Linux Mdk 7.2 & PIII 500 MHz (RAM 128 Mbyte)
>FoLUG - Forlì Linux Users Group                 www.folug.linux.it
>Linux user # 195004
>--------------------------------------------
>Isole nella Rete - www.ecn.org
>__________________________________________________
>
>_______________________________________________
>Folug mailing list
>Folug@lists.linux.it
>http://www.linux.it/mailman/listinfo/folug
>