Firewall - 14

# 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