Precedente Indice Successiva

Un esempio di firewall con tre zone - lo script

  • Lo script per realizzare questo firewall è il seguente:
    #!/bin/bash
    ## RETE:
    ## 10.0.155.0 -> esterna (10.0.155.155)
    ## 192.168.1.0 -> interna (192.168.1.251)
    ## 172.16.0.0 -> DMZ (172.16.0.1)
    ## 172.16.0.2 -> Server (web/ftp)
    ## Sulla macchina locale, nulla
    ##iptables -P OUTPUT ACCEPT
    # Inizio con politica "aperta" (pericolosetto nel reale)
    iptables -P INPUT ACCEPT
    ## disabilito il routing
    iptables -P FORWARD DROP# Per finire abilita il routing
    echo 1 > /proc/sys/net/ipv4/ip_forward
    ## Comincio il lavoro vero
    ## Accetto i pacchetti delle connessioni secondarie (RELATED)
    ## e gia' aperte (ESTABLISHED)
    iptables -A INPUT --protocol tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
    ## Accetto i pacchetti delle connessioni gia' aperte (ESTABLISHED)
    iptables -A INPUT --protocol udp -m state --state ESTABLISHED -j ACCEPT
    ## Accetto tutto il traffico per localhost
    iptables -A INPUT -d 127.0.0.1 -j ACCEPT
    ## Accetto tutti i pacchetti ICMP
    iptables -A INPUT --protocol icmp -j ACCEPT
    #Aggiungo una regola per fare il reject dei paccheti TCP ed una per l'UDP
    iptables -A INPUT --protocol tcp -j REJECT
    iptables -A INPUT --protocol udp -j REJECT
    ## Tutto il resto lo scarto
    iptables -P INPUT DROP
    ## Adesso gestisco il routing:
    ## Accetto i pacchetti delle connessioni secondarie (RELATED)
    ## e gia' aperte (ESTABLISHED)
    iptables -A FORWARD --protocol tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
    ## Accetto i pacchetti delle connessioni gia' aperte (ESTABLISHED)
    iptables -A FORWARD --protocol udp -m state --state RELATED,ESTABLISHED -j ACCEPT
    ## Faccio passare tutti gli ICMP
    iptables -A FORWARD --protocol icmp -j ACCEPT
    ## Da interna ad esterna, tutto
    iptables -A FORWARD -s 192.168.1.0/255.255.255.0 -o eth0 -j ACCEPT
    ## Da interna a DMZ, tutto
    iptables -A FORWARD -s 192.168.1.0/255.255.255.0 -o eth1 -j ACCEPT
    ## Da dmz ad esterna, tutto
    iptables -A FORWARD -s 172.16.0.0/255.255.0.0 -o eth0 -j ACCEPT
    ## Accetto i pacchetti destinati alle porte 80 e 21, protocollo TCP
    iptables -A FORWARD -d 172.16.0.2 --protocol tcp --destination-port 80 -jACCEPT
    iptables-AFORWARD -d 172.16.0.2 --protocol tcp --destination-port 21 -j ACCEPT
    #Aggiungo una regola perfare il reject dei paccheti TCP ed una per l'UDP
    iptables -A FORWARD --protocol tcp -j REJECT
    iptables -A FORWARD --protocol udp -j REJECT
© Ing. Stefano Salvi - released under FDL licence

Valid XHTML 1.0! Valid CSS!