[Pluto-security] Firewall su RH8...

Roberto Polli robertopolli at tiscali.it
Thu Feb 27 20:35:16 CET 2003


Ciao a tutti, ecco lo script!


!/bin/sh
############################################################################
###
#
#
#
#
#                             . DMZ FIREWALL .
#
#				TEST ALPHA 1
#
#
#	
############################################################################
###

# Definizioni delle costanti

fwpublic="x.x.x.122"                    #Interfaccia pubblica del Firewall
fwprivate="192.168.100.150"             #Interfaccia Interna Lan
dmzif="10.0.0.1"                        #Interfaccia dmz 
webfleetif="10.0.0.2"                   #Interfaccia WebFleet
mappeif="10.0.0.3"                      #Interfaccia Mappe
local="127.0.0.1"                       #Interfaccia local
privatelan="192.168.100.0"              #Lan Aziendale Interna
dmzlan="10.0.0.0"                       #Lan Dmz 
loif="lo"                               #Interfaccia LoopBack
eth0if="eth0"		                #Interfaccia Pubblica Fisica	
eth1if="eth1"		                #Interfaccia Dmz Fisica	
eth2if="eth2"		                #Interfaccia Privata Fisica	
webfleetdmzif="10.0.0.2"                #Indirizzo nattato interfaccia del
web server webfleet 
mappedmzif="10.0.0.3"                   #Indirizzo nattato interfaccia del
web server mappe
webfleetdmzifpublic="x.x.x.125"         #Indirizzo nattato interfaccia del
web server webfleet 
mappedmzifpublic="x.x.x.124"            #Indirizzo nattato interfaccia del
web server mappe

### EVENTUALI MODULI AGGIUNTIVI PER IL FIREWALL ###
###################################################
#/sbin/modprobe ip_tables
#/sbin/modprobe ip_conntrack
#/sbin/modprobe iptable_filter
#/sbin/modprobe iptable_mangle
#/sbin/modprobe iptable_nat
#/sbin/modprobe ipt_LOG
#/sbin/modprobe ipt_limit
#/sbin/modprobe ipt_state

echo 1 > /proc/sys/net/ipv4/ip_forward  #Abilito a livello di kernel l'ip
forward

iptables -F INPUT 
iptables -F OUTPUT           #Flushing delle tre catene tabella filter 
iptables -F FORWARD

iptables -P INPUT -j DROP
iptables -P OUTPUT -j DROP   #Dropping sulla tabella filter dei pacchetti
sulle tre chains
iptables -P FORWARD -j DROP

##CATENE UTENTE ###

#Definizioni delle catene utente

iptables -N internalroles #Chains per le connessioni all'interfaccia lan del
firewall

iptables -N permithttp

######CHAINS OUTPUT######
#########################

iptables -A OUTPUT -p ALL -s $local -j ACCEPT
iptables -A OUTPUT -p ALL -s $fwprivate -j ACCEPT
iptables -A OUTPUT -p ALL -s $fwpublic -j ACCEPT

######LOCAL_HOST######
######################

#Accetto tutte le connessioni provenienti dal localhost

iptables -A INPUT -i $loif -s $local -j ACCEPT 

#Accetto tutte le connessioni sull'interfaccia localhost provenienti dalla
lan

iptables -A INPUT -i $loif -s $privatelan -j ACCEPT 

#Accetto tutte le connessioni sull'interfaccia localhost provenienti
dall'interfaccia pubblica

iptables -A INPUT -i $loif -s $fwprivate -j ACCEPT

#Creo la chains internal roles per regolare le trasmissioni dalla lan
interna sul firewall

#Accetto tutte le connessioni provenienti dall'interfaccia in Dmz

iptables -A INPUT -i $loif -s $dmzif -j ACCEPT

######INTERFACCIA PRIVATE#######
################################

#Redirigo le richieste su fwprivate nella chains internalroles

iptables -A INPUT -i $eth2if -j internalroles

#Pongo una politica di firewall esclusivo sull'interfaccia interna

iptables -P internalroles -j DROP 

#Accetto le connessioni in Telnet e Http

iptables -A internalroles -p TCP --dport 23 -j ACCEPT

iptables -A internalroles -p TCP --dport 80 -j ACCEPT

###### REGOLE DMZ ########
##########################

#Imposto le regole per la DMZ

#Accetto i pacchetti che arrivano dalla dmzlan e vanno sull'interfaccia dmz
del firewall

iptables -A INPUT -i $eth1if -s $dmzlan -j ACCEPT 

#Accettp i pacchetti dall'interfaccia locale

iptables -A INPUT -i $eth1if -s $dmzif -j ACCEPT

#Dall'interfaccia eth0if accetto i pacchetti che provengono da fwpublic in
connessione ESTABLISHED e RELATED

iptables -A FORWARD -i $fwpublic -o $dmzif -m state --state
ESTABLISHED,RELATED -j ACCEPT

#Accetto i pacchetti che provengo da dmzif e vanno su fwpublic

iptables -A FORWARD -i $dmzif -o $fwpublic -j ACCEPT

#Accetto i pacchetti che provengono dall'interfaccia dmzif e vanno su
fwprivate 

iptables -A FORWARD -i $dmzif -o $fwprivate -m state --state
ESTABLISHED,RELATED -j ACCEPT 

#Accetto i pacchetti che provengono da fwprivate e vanno su dmzif

iptables -A FORWARD -i $fwprivate -o $dmzif -j ACCEPT

###### REGOLE DMZ PER HTTP #######
##################################

#Popolo la chains per le regole relative al protocollo http

iptables -A permithttp -p TCP --syn -j ACCEPT
iptables -A permithttp -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A permithttp -p TCP -j DROP

#Applico alla porta 80 la chain permithttp

iptables -A FORWARD -p TCP -i $eth0if -o $dmzif -d $webfleetif --dport 80 -j
permithttp
iptables -A FORWARD -p TCP -i $eth0if -o $dmzif -d $mappeif --dport 80 -j
permithttp

###### REGOLE NAT DMZ CATENA PREROUTING ########
################################################

#Applico il NAT ai due web server dietro al Firewall

iptables -t nat -A PREROUTING -p TCP -i $eth0if -d $webfleetdmzifpublic
--dport 80 -j DNAT --to-destination $webfleetdmzif
iptables -t nat -A PREROUTING -p TCP -i $eth0if -d $mappedmzifpublic --dport
80 -j DNAT --to-destination $mappedmzif




More information about the pluto-security mailing list