<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://www.slacky.eu/wikislack/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it">
		<id>http://www.slacky.eu/wikislack/index.php?title=Firewall_by_miKe&amp;feed=atom&amp;action=history</id>
		<title>Firewall by miKe - Cronologia</title>
		<link rel="self" type="application/atom+xml" href="http://www.slacky.eu/wikislack/index.php?title=Firewall_by_miKe&amp;feed=atom&amp;action=history"/>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/wikislack/index.php?title=Firewall_by_miKe&amp;action=history"/>
		<updated>2013-05-21T11:56:50Z</updated>
		<subtitle>Cronologia della pagina su questo sito</subtitle>
		<generator>MediaWiki 1.20.3</generator>

	<entry>
		<id>http://www.slacky.eu/wikislack/index.php?title=Firewall_by_miKe&amp;diff=2464&amp;oldid=prev</id>
		<title>L1q1d il 09:56, 12 set 2006</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/wikislack/index.php?title=Firewall_by_miKe&amp;diff=2464&amp;oldid=prev"/>
				<updated>2006-09-12T09:56:27Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nuova pagina&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:Script]]&lt;br /&gt;
= Descrizione =&lt;br /&gt;
Questo script shell altamente configurabile vi aiuterà a impostare il vostro firewall, numerose le opzioni un help vi mostrerà tutto il menù ben commentato e dettagliato, provatelo merita :)&lt;br /&gt;
= Script =&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
##&lt;br /&gt;
clear&lt;br /&gt;
##&lt;br /&gt;
####################&lt;br /&gt;
VERSION=&amp;quot;2003.06.11&amp;quot;&lt;br /&gt;
####################&lt;br /&gt;
##&lt;br /&gt;
## Interfaccia interna fidata  'settare la propria'&lt;br /&gt;
IIF=&amp;quot;eth0&amp;quot;&lt;br /&gt;
#	IIF=&amp;quot;eth1&amp;quot;&lt;br /&gt;
##&lt;br /&gt;
## Interfaccia esterna  da proteggere 'settare la propria'&lt;br /&gt;
## in genere l'interfaccia esterna e' configurata da un DHCP quindi ha indirizzo dinamico.&lt;br /&gt;
EIF=&amp;quot;ppp0&amp;quot;&lt;br /&gt;
#       EIF=&amp;quot;eth0&amp;quot;&lt;br /&gt;
#       EIF=&amp;quot;eth1&amp;quot;&lt;br /&gt;
## Se l'interfaccia esterna ha un IP statico, dichiararlo&lt;br /&gt;
#	EIP=&amp;quot;xx.xx.xx.xx&amp;quot;&lt;br /&gt;
##&lt;br /&gt;
## Indirizzo macchina router (si presume che il firewall giri sulla macchina router&lt;br /&gt;
## in caso contrario correggere manualmente questo indirizzo)&lt;br /&gt;
##&lt;br /&gt;
## Se preferite utilizzare un indirizzo statico, decommentate la linea che indica un  IP&lt;br /&gt;
## altrimenti se utilizzate un DHCP o non conoscete l'indirizzo&lt;br /&gt;
## usate il riconoscimento tramite ifconfig&lt;br /&gt;
## controllare  comunque che lo script riconosca l'indirizzo IP (potrebbe non andare su macchine che&lt;br /&gt;
## utilizzano shell particolari o che formattano ifconfig diversamente.&lt;br /&gt;
##&lt;br /&gt;
SERVER=` ifconfig $IIF | grep inet | cut -d : -f2 | cut -d ' '  -f1`&lt;br /&gt;
#	SERVER=&amp;quot;192.168.10.2&amp;quot;&lt;br /&gt;
##&lt;br /&gt;
## Indirizzo macchina client  da inserire a mano, se il server condivide la connessione&lt;br /&gt;
## internet,  questa macchina sarà autorizzata ad accedere al firewall via eth0&lt;br /&gt;
## al posto di un singolo host  e' possibile utilizzare una rete intera usando&lt;br /&gt;
## la notazione RETE/NETMASK&lt;br /&gt;
## attenzione alla banda disponibile perchè una rete genera parecchio traffico..;)&lt;br /&gt;
CLIENT=&amp;quot;10.22.115.11&amp;quot;&lt;br /&gt;
#	CLIENT&amp;quot;192.168.10.0/24&amp;quot;&lt;br /&gt;
##&lt;br /&gt;
## Loopback&lt;br /&gt;
LOCALHOST=&amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
##&lt;br /&gt;
## Rete interna&lt;br /&gt;
## controllare che gli script ottengano i valori corretti&lt;br /&gt;
## o sostituire con valori statici.&lt;br /&gt;
net=` ifconfig $IIF | grep inet | cut -d : -f2 | cut -d ' '  -f1 | cut  -d . -f1,2,3`&lt;br /&gt;
mask=` ifconfig $IIF | grep inet | cut -d : -f4 | cut -d ' '  -f1`&lt;br /&gt;
LOCALNET=&amp;quot;$net.0/$mask&amp;quot;&lt;br /&gt;
##&lt;br /&gt;
# Broadcast&lt;br /&gt;
BROADCAST=` ifconfig $IIF | grep inet | cut -d : -f3 | cut -d ' '  -f1`&lt;br /&gt;
##&lt;br /&gt;
## Provider1 DNS 'inserire i propri dns'&lt;br /&gt;
#	DNS1=&amp;quot;212.216.172.62&amp;quot;&lt;br /&gt;
DNS1=&amp;quot;195.130.224.18&amp;quot;&lt;br /&gt;
##&lt;br /&gt;
## Provider2 DNS&lt;br /&gt;
#DNS2=&amp;quot;195.130.224.18&amp;quot;&lt;br /&gt;
DNS2=&amp;quot;192.160.10.31&amp;quot;&lt;br /&gt;
##&lt;br /&gt;
## Local DNS&lt;br /&gt;
DNS3=&amp;quot;212.245.255.2&amp;quot;&lt;br /&gt;
## questo potrebbe essere il DNS locale, in seguito sara' prevista la configurazione&lt;br /&gt;
## per il funzionamento di un dns locale.&lt;br /&gt;
##&lt;br /&gt;
## Per qualunque problema...;)&lt;br /&gt;
EMAIL=&amp;quot;m.m.asciutti@email.it&amp;quot;&lt;br /&gt;
##&lt;br /&gt;
## PATH di iptables 'adattare alla propria macchina, se necessario'&lt;br /&gt;
IPT=` which iptables`&lt;br /&gt;
##&lt;br /&gt;
## NOTA:&lt;br /&gt;
## Dopo aver modificato i parametri base per adattare lo&lt;br /&gt;
## script alle proprie esigenze, salvarlo e renderlo eseguibile&lt;br /&gt;
## in particolare adattare l'indirizzo del client o della rete che&lt;br /&gt;
## verra' nattata&lt;br /&gt;
## verificare inoltre che lo script che preleva&lt;br /&gt;
## l'indirizzo IP da ifconfig sia funzionante&lt;br /&gt;
## sul proprio sistema.&lt;br /&gt;
##&lt;br /&gt;
## Decommentare se si desidera aggiungere lo script al PATH di sistema&lt;br /&gt;
#	export PATH=$PATH:$NPATH&lt;br /&gt;
##&lt;br /&gt;
## Nome dello script e Posizione assoluta&lt;br /&gt;
NFILE=&amp;quot;firewall&amp;quot;&lt;br /&gt;
NPATH=&amp;quot;/etc/rc.d&amp;quot;&lt;br /&gt;
##&lt;br /&gt;
## NOTA:&lt;br /&gt;
## il percorso predefinito  e' &amp;quot;/etc/rc.d/&amp;quot; ed&lt;br /&gt;
## il nome predefinito  e' &amp;quot;firewall&amp;quot;&lt;br /&gt;
## ma   e'  possibile utilizzare qualsiasi nome / percorso&lt;br /&gt;
## avendo cura di modificare le variabili NFILE e NPATH'&lt;br /&gt;
##&lt;br /&gt;
## Setto permessi e proprietario&lt;br /&gt;
chown root $NPATH/$NFILE&lt;br /&gt;
chmod 700  $NPATH/$NFILE&lt;br /&gt;
##&lt;br /&gt;
## NOTA:&lt;br /&gt;
## questa funzione viene richiamata solo con&lt;br /&gt;
## l'opzione stop e serve a rimuovere i moduli&lt;br /&gt;
## caricati dal firewall&lt;br /&gt;
##&lt;br /&gt;
#ANSI COLOR&lt;br /&gt;
MAGENTA='\e[35m'&lt;br /&gt;
GREEN='\e[32m'&lt;br /&gt;
YELLOW='\e[33m'&lt;br /&gt;
WHITE='\e[37m'&lt;br /&gt;
BLUE='\e[34m'&lt;br /&gt;
CYAN='\e[36m'&lt;br /&gt;
RED='\e[31m'&lt;br /&gt;
NULL='\e[0m'&lt;br /&gt;
COLOR=$BLUE&lt;br /&gt;
##&lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
#**************************************************************START&lt;br /&gt;
 start)&lt;br /&gt;
		clear&lt;br /&gt;
		COLOR=$RED&lt;br /&gt;
		msg=&amp;quot; Attivo il firewall ...&amp;quot;&lt;br /&gt;
		echo -e &amp;quot;$COLOR$msg$NULL\n&amp;quot;&lt;br /&gt;
		&lt;br /&gt;
	##&lt;br /&gt;
	## Politica  INPUT&lt;br /&gt;
		chain=&amp;quot;DROP&amp;quot;&lt;br /&gt;
	##&lt;br /&gt;
	## Politica  OUTPUT&lt;br /&gt;
		outchain=&amp;quot;ACCEPT&amp;quot;&lt;br /&gt;
	##&lt;br /&gt;
	## Routing&lt;br /&gt;
		fw=&amp;quot;ACCEPT&amp;quot;&lt;br /&gt;
		CF=&amp;quot;1&amp;quot;&lt;br /&gt;
	##&lt;br /&gt;
	## Opzioni diverse dalle standard&lt;br /&gt;
		##&lt;br /&gt;
		## Politica  OUTPUT&lt;br /&gt;
		## 'se si attiva, decommentare le regole relative all'uscita dei pacchetti'&lt;br /&gt;
		## outchain=&amp;quot;DROP&amp;quot;&lt;br /&gt;
		##&lt;br /&gt;
		## Non funziona da router&lt;br /&gt;
		# fw=&amp;quot;DROP&amp;quot;&lt;br /&gt;
		# CF=&amp;quot;0&amp;quot;&lt;br /&gt;
##&lt;br /&gt;
## Opzioni kernel&lt;br /&gt;
		SC=&amp;quot;1&amp;quot;&lt;br /&gt;
		ER=&amp;quot;1&amp;quot;&lt;br /&gt;
		DE=&amp;quot;1&amp;quot;&lt;br /&gt;
		TW=&amp;quot;1&amp;quot;&lt;br /&gt;
		SR=&amp;quot;0&amp;quot;&lt;br /&gt;
		DR=&amp;quot;0&amp;quot;&lt;br /&gt;
		ASR=&amp;quot;0&amp;quot;&lt;br /&gt;
		ISR=&amp;quot;1&amp;quot;&lt;br /&gt;
		SAV=&amp;quot;1&amp;quot;&lt;br /&gt;
		LOG=&amp;quot;1&amp;quot;&lt;br /&gt;
		DSR=&amp;quot;1&amp;quot;&lt;br /&gt;
	##&lt;br /&gt;
	## Solo cosmetico&lt;br /&gt;
		SET=&amp;quot;Abilito&amp;quot;&lt;br /&gt;
		MSET=&amp;quot;Abilito&amp;quot;&lt;br /&gt;
	function netfilter()&lt;br /&gt;
	 {&lt;br /&gt;
	 exit 0&lt;br /&gt;
	 }&lt;br /&gt;
 ;;&lt;br /&gt;
#*******************************************************************STOP&lt;br /&gt;
 stop)&lt;br /&gt;
&lt;br /&gt;
		clear&lt;br /&gt;
		COLOR=$GREEN&lt;br /&gt;
		msg=&amp;quot; Disattivo il firewall ...&amp;quot;&lt;br /&gt;
		echo -e &amp;quot;$COLOR$msg$NULL\n&amp;quot;&lt;br /&gt;
	##&lt;br /&gt;
	## Politica  INPUT&lt;br /&gt;
		chain=&amp;quot;ACCEPT&amp;quot;&lt;br /&gt;
	##&lt;br /&gt;
	## Politica  OUTPUT&lt;br /&gt;
		outchain=&amp;quot;ACCEPT&amp;quot;&lt;br /&gt;
	##&lt;br /&gt;
	## Non funziona da router&lt;br /&gt;
		fw=&amp;quot;DROP&amp;quot;&lt;br /&gt;
		CF=&amp;quot;0&amp;quot;&lt;br /&gt;
	##&lt;br /&gt;
	## Opzioni kernel&lt;br /&gt;
		SC=&amp;quot;0&amp;quot;&lt;br /&gt;
		ER=&amp;quot;0&amp;quot;&lt;br /&gt;
		DE=&amp;quot;0&amp;quot;&lt;br /&gt;
		TW=&amp;quot;0&amp;quot;&lt;br /&gt;
		SR=&amp;quot;1&amp;quot;&lt;br /&gt;
		DR=&amp;quot;1&amp;quot;&lt;br /&gt;
		ASR=&amp;quot;1&amp;quot;&lt;br /&gt;
		ISR=&amp;quot;0&amp;quot;&lt;br /&gt;
		SAV=&amp;quot;0&amp;quot;&lt;br /&gt;
		LOG=&amp;quot;0&amp;quot;&lt;br /&gt;
		DSR=&amp;quot;0&amp;quot;&lt;br /&gt;
	##&lt;br /&gt;
	## Solo cosmetico&lt;br /&gt;
		SET=&amp;quot;Disabilito&amp;quot;&lt;br /&gt;
		MSET=&amp;quot;Disabilito&amp;quot;&lt;br /&gt;
         ##&lt;br /&gt;
	 function netfilter()&lt;br /&gt;
	 {&lt;br /&gt;
    		if [ -f /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/ip_tables.o ]; then&lt;br /&gt;
       		( rmmod ip_contrackt    \&lt;br /&gt;
                ip_contrack_ftp \&lt;br /&gt;
                ip_nat_ftp      \&lt;br /&gt;
                ip_queue        \&lt;br /&gt;
                ip_tables       \&lt;br /&gt;
                ipt_LOG         \&lt;br /&gt;
                ipt_MARK        \&lt;br /&gt;
                ipt_MASQUERADE  \&lt;br /&gt;
                ipt_MIRROR      \&lt;br /&gt;
                ipt_REDIRECT    \&lt;br /&gt;
                ipt_TCPMSS      \&lt;br /&gt;
                ipt_TOS         \&lt;br /&gt;
                ipt_limit       \&lt;br /&gt;
                ipt_mac         \&lt;br /&gt;
                ipt_mark        \&lt;br /&gt;
                ipt_multiport   \&lt;br /&gt;
                ipt_owner       \&lt;br /&gt;
                ipt_state       \&lt;br /&gt;
                ipt_tcpmss      \&lt;br /&gt;
                ipt_tos         \&lt;br /&gt;
                ipt_unclean     \&lt;br /&gt;
                iptable_filter  \&lt;br /&gt;
                iptable_mangle  \&lt;br /&gt;
                iptable_net&lt;br /&gt;
       		) &amp;gt; /dev/null 2&amp;gt; /dev/null&lt;br /&gt;
&lt;br /&gt;
       		( rmmod ipfwadm; rmmod ipchains; modprobe ip_tables ) &amp;gt; /dev/null 2&amp;gt; /dev/null&lt;br /&gt;
&lt;br /&gt;
    		fi&lt;br /&gt;
			exit 0&lt;br /&gt;
	}&lt;br /&gt;
 ;;&lt;br /&gt;
#*************************************************************ROUTER&lt;br /&gt;
 router)&lt;br /&gt;
&lt;br /&gt;
		clear&lt;br /&gt;
		COLOR=$YELLOW&lt;br /&gt;
		msg=&amp;quot; Attenzione, disattivo il firewall ed attivo il forwarding...&amp;quot;&lt;br /&gt;
		echo -e &amp;quot;$COLOR$msg$NULL\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	##&lt;br /&gt;
	## Politica INPUT&lt;br /&gt;
		chain=&amp;quot;ACCEPT&amp;quot;&lt;br /&gt;
	##&lt;br /&gt;
	## Politica OUTPUT&lt;br /&gt;
		outchain=&amp;quot;ACCEPT&amp;quot;&lt;br /&gt;
	##&lt;br /&gt;
	## Funziona da router&lt;br /&gt;
		fw=&amp;quot;ACCEPT&amp;quot;&lt;br /&gt;
		CF=&amp;quot;1&amp;quot;&lt;br /&gt;
	##&lt;br /&gt;
	## Opzioni kernel&lt;br /&gt;
		SC=&amp;quot;0&amp;quot;&lt;br /&gt;
		ER=&amp;quot;0&amp;quot;&lt;br /&gt;
		DE=&amp;quot;0&amp;quot;&lt;br /&gt;
		TW=&amp;quot;0&amp;quot;&lt;br /&gt;
		SR=&amp;quot;1&amp;quot;&lt;br /&gt;
		DR=&amp;quot;1&amp;quot;&lt;br /&gt;
		ASR=&amp;quot;1&amp;quot;&lt;br /&gt;
		ISR=&amp;quot;0&amp;quot;&lt;br /&gt;
		SAV=&amp;quot;0&amp;quot;&lt;br /&gt;
		LOG=&amp;quot;0&amp;quot;&lt;br /&gt;
		DSR=&amp;quot;0&amp;quot;&lt;br /&gt;
	##&lt;br /&gt;
	## Solo cosmetico&lt;br /&gt;
		SET=&amp;quot;Disabilito&amp;quot;&lt;br /&gt;
		MSET=&amp;quot;Abilito&amp;quot;&lt;br /&gt;
	function netfilter()&lt;br /&gt;
	 {&lt;br /&gt;
	 exit 0&lt;br /&gt;
	 }&lt;br /&gt;
 ;;&lt;br /&gt;
#**************************************************************HELP&lt;br /&gt;
 help)&lt;br /&gt;
		clear&lt;br /&gt;
		COLOR=$CYAN&lt;br /&gt;
		msg=&amp;quot; Help...&amp;quot;&lt;br /&gt;
		echo -e &amp;quot;$COLOR$msg&amp;quot;&lt;br /&gt;
		echo  &amp;quot;&amp;quot;&lt;br /&gt;
	echo  &amp;quot;$NFILE start &amp;quot;&lt;br /&gt;
	echo  &amp;quot;		Setta il firewall secondo le opzioni&amp;quot;&lt;br /&gt;
	echo  &amp;quot;		indicate, e' possibile modificare &amp;quot;&lt;br /&gt;
	echo  &amp;quot;		gran parte dei parametri predefiniti&amp;quot;&lt;br /&gt;
	echo  &amp;quot;		per utilizzare lo script secondo le&amp;quot;&lt;br /&gt;
	echo  &amp;quot;		proprie esigenze.&amp;quot;&lt;br /&gt;
	echo  &amp;quot;&amp;quot;&lt;br /&gt;
	echo  &amp;quot;$NFILE stop&amp;quot;&lt;br /&gt;
	echo  &amp;quot;		Resetta il firewall, permette il passaggio&amp;quot;&lt;br /&gt;
	echo  &amp;quot;		di tutti i pacchetti in ingresso su ogni &amp;quot;&lt;br /&gt;
	echo  &amp;quot;		interfaccia disabilitando l'utilizzo &amp;quot;&lt;br /&gt;
	echo  &amp;quot;		del PC come router;&amp;quot;&lt;br /&gt;
	echo  &amp;quot;		navigate usando questa modalita' il meno possibile.&amp;quot;&lt;br /&gt;
	echo  &amp;quot;&amp;quot;&lt;br /&gt;
	echo  &amp;quot;$NFILE router&amp;quot;&lt;br /&gt;
	echo  &amp;quot;		Abilita il transito dei pacchetti&amp;quot;&lt;br /&gt;
	echo  &amp;quot;		tra $IIF e $EIF senza nessun firewall&amp;quot;&lt;br /&gt;
	echo  &amp;quot;		utilizzare esclusivamente per testare la rete&amp;quot;&lt;br /&gt;
	echo  &amp;quot;		o usare un secondo firewall tra router e rete&amp;quot;&lt;br /&gt;
	echo  &amp;quot;		molti settaggi del kernel non sono pensati per la sicurezza&amp;quot;&lt;br /&gt;
	echo  &amp;quot;		ma solo per testare la rete senza perdita di nessun tipo di pacchetti,&amp;quot;&lt;br /&gt;
	echo  &amp;quot;		e'  PERICOLOSO. &amp;quot;&lt;br /&gt;
	echo  &amp;quot;&amp;quot;&lt;br /&gt;
	echo  &amp;quot;$NFILE info&amp;quot;&lt;br /&gt;
	echo  &amp;quot;		Mostra il settaggio attuale dei parametri base&amp;quot;&lt;br /&gt;
	echo  &amp;quot;		per controllare le personalizzazioni sullo script.&amp;quot;&lt;br /&gt;
	echo  &amp;quot;&amp;quot;&lt;br /&gt;
	echo  &amp;quot;$NFILE policy&amp;quot;&lt;br /&gt;
	echo  &amp;quot;		Mostra le politiche impostate con start&amp;quot;&lt;br /&gt;
	echo  &amp;quot;		e le statistiche relative al funzionamento del firewall&amp;quot;&lt;br /&gt;
	echo  &amp;quot;		i pacchetti ricevuti, droppati, loggati ecc.&amp;quot;&lt;br /&gt;
	echo &amp;quot;&amp;quot;&lt;br /&gt;
	echo  &amp;quot;$NFILE vsf&amp;quot;&lt;br /&gt;
	echo  &amp;quot;		Verifica se il server e in presenza di &amp;quot;&lt;br /&gt;
	echo  &amp;quot;		attacco Syn Flood.&amp;quot;&lt;br /&gt;
	echo  &amp;quot;		E' possibile settare alcuni parametri per diminuire &amp;quot;&lt;br /&gt;
	echo  &amp;quot;		la vulnerabilita' all'attacco (indicati nel corpo dello script).&amp;quot;&lt;br /&gt;
	echo  &amp;quot;		I tentativi  di attacco sono comunque tutti loggati.&amp;quot;&lt;br /&gt;
	echo  &amp;quot;&amp;quot;&lt;br /&gt;
	echo  &amp;quot;$NFILE help&amp;quot;&lt;br /&gt;
	echo  &amp;quot;		Visualizza questo messaggio&amp;quot;&lt;br /&gt;
		echo -e &amp;quot;$NULL\n&amp;quot;&lt;br /&gt;
	echo  &amp;quot;Per ogni suggerimento:$EMAIL&amp;quot;&lt;br /&gt;
	echo &amp;quot;&amp;quot;&lt;br /&gt;
	exit 0&lt;br /&gt;
&lt;br /&gt;
 ;;&lt;br /&gt;
#***************************************************************INFO&lt;br /&gt;
 info)&lt;br /&gt;
		clear&lt;br /&gt;
		COLOR=$MAGENTA&lt;br /&gt;
		msg=&amp;quot; Info ...&amp;quot;&lt;br /&gt;
		echo -e &amp;quot;$COLOR$msg&amp;quot;&lt;br /&gt;
		echo  &amp;quot;&amp;quot;&lt;br /&gt;
	##&lt;br /&gt;
	echo &amp;quot;&amp;quot;&lt;br /&gt;
	echo  &amp;quot;		il PATH di questo script e' 		$NPATH/$NFILE&amp;quot;&lt;br /&gt;
	echo  &amp;quot;		il PATH di iptables e' 			$IPT&amp;quot;&lt;br /&gt;
	echo  &amp;quot;		l'interfaccia interna e' la 		$IIF&amp;quot;&lt;br /&gt;
	echo  &amp;quot;		l'interfaccia esterna e' la 		$EIF&amp;quot;&lt;br /&gt;
	echo  &amp;quot;		l'indirizzo IP del pc server/router e' 	$SERVER &amp;quot;&lt;br /&gt;
	echo  &amp;quot;		l'indirizzo IP del pc client fidato e'	$CLIENT&amp;quot;&lt;br /&gt;
	echo  &amp;quot;		la rete locale e' 			$LOCALNET&amp;quot;&lt;br /&gt;
	echo  &amp;quot;		l'indirizzo broadcast e'  		$BROADCAST&amp;quot;&lt;br /&gt;
	echo  &amp;quot;		il DNS primario e' 			$DNS1&amp;quot;&lt;br /&gt;
	echo  &amp;quot;		il DNS secondario e' 			$DNS2&amp;quot;&lt;br /&gt;
	echo &amp;quot;&amp;quot;&lt;br /&gt;
		echo -e &amp;quot;$NULL\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	 exit 0&lt;br /&gt;
&lt;br /&gt;
  ;;&lt;br /&gt;
#***************************************************************INFO&lt;br /&gt;
 policy)&lt;br /&gt;
        	clear&lt;br /&gt;
		COLOR=$WHITE&lt;br /&gt;
		msg=&amp;quot; Politiche ...&amp;quot;&lt;br /&gt;
		echo -e &amp;quot;$COLOR$msg&amp;quot;&lt;br /&gt;
	$IPT -nvL&lt;br /&gt;
	##&lt;br /&gt;
	## espande la politica di netfilter&lt;br /&gt;
	## visualizzando le catene e informazioni sulle&lt;br /&gt;
		echo -e &amp;quot;$NULL\n&amp;quot;&lt;br /&gt;
	##&lt;br /&gt;
&lt;br /&gt;
	 exit 0&lt;br /&gt;
&lt;br /&gt;
 ;;&lt;br /&gt;
&lt;br /&gt;
#*********************************************************Verifica Syn Flood&lt;br /&gt;
vsf)&lt;br /&gt;
		clear&lt;br /&gt;
		COLOR=$YELLOW&lt;br /&gt;
		msg=&amp;quot; Syn Flood ...&amp;quot;&lt;br /&gt;
		echo -e &amp;quot;$COLOR$msg&amp;quot;&lt;br /&gt;
		echo  &amp;quot;&amp;quot;&lt;br /&gt;
	echo &amp;quot; Verifico se siamo in presenza di Syn Flood&amp;quot;&lt;br /&gt;
	echo &amp;quot;&amp;quot;&lt;br /&gt;
	echo &amp;quot; Oltre 20-30 tentativi di connessione da uno stesso&amp;quot;&lt;br /&gt;
	echo &amp;quot; indirizzo, indicano un tentativo di flood, verificare comunque i Log&amp;quot;&lt;br /&gt;
	echo &amp;quot; prima di attivare le contromisure&amp;quot;&lt;br /&gt;
	##&lt;br /&gt;
	netstat -npla | grep SYN_RECV&lt;br /&gt;
	##&lt;br /&gt;
		echo -e &amp;quot;$NULL\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	 exit 0&lt;br /&gt;
&lt;br /&gt;
;;&lt;br /&gt;
&lt;br /&gt;
#****************************************************************USO&lt;br /&gt;
 *)&lt;br /&gt;
 	##&lt;br /&gt;
		clear&lt;br /&gt;
		COLOR=$BLUE&lt;br /&gt;
	msg=&amp;quot;Firewall  ver. $VERSION - Utilizzo: $NFILE {start|stop|router|info|policy|vsf|help}&amp;quot;&lt;br /&gt;
		echo -e &amp;quot;$COLOR$msg$NULL\n&amp;quot;&lt;br /&gt;
	##&lt;br /&gt;
&lt;br /&gt;
	 exit 0&lt;br /&gt;
 ;;&lt;br /&gt;
##&lt;br /&gt;
esac&lt;br /&gt;
##&lt;br /&gt;
#*******************************************************BLOCCO COMUNE&lt;br /&gt;
##&lt;br /&gt;
	echo -e &amp;quot;$COLOR&amp;quot;&lt;br /&gt;
	## Caricamento dei moduli necessari nel kernel&lt;br /&gt;
	##&lt;br /&gt;
	## Il vostro kernel potrebbe non avere&lt;br /&gt;
	## tutti questi moduli, e' sufficiente ricompilare se le funzionalita'&lt;br /&gt;
	## sono necessarie.&lt;br /&gt;
	##&lt;br /&gt;
	##  NOTA: I seguenti moduli sono elencati solo per informazione&lt;br /&gt;
	##       Non e' necessario inserirli manualmente nel kernel&lt;br /&gt;
	##       a meno di casi particolari.&lt;br /&gt;
	##&lt;br /&gt;
#	echo &amp;quot;Caricamento moduli...&amp;quot;&lt;br /&gt;
	##&lt;br /&gt;
	# modulo base&lt;br /&gt;
	modprobe ip_tables&lt;br /&gt;
	##&lt;br /&gt;
	# modulo necessario alla stateful connection tracking&lt;br /&gt;
	modprobe ip_conntrack&lt;br /&gt;
	##&lt;br /&gt;
	# modulo filter, permette di droppare rifiutare o loggare i pacchetti&lt;br /&gt;
	modprobe iptable_filter&lt;br /&gt;
	##&lt;br /&gt;
	# modulo mangle&lt;br /&gt;
#	modprobe iptable_mangle&lt;br /&gt;
	##&lt;br /&gt;
	# modulo nat&lt;br /&gt;
	modprobe iptable_nat&lt;br /&gt;
	##&lt;br /&gt;
	# modulo LOG, permette di registrare i pacchetti bloccati in base alle catene&lt;br /&gt;
	modprobe ipt_LOG&lt;br /&gt;
	##&lt;br /&gt;
	# modulo utilizzato per limitare il numero di pacchetti per sec/min/hr&lt;br /&gt;
	##&lt;br /&gt;
	modprobe ipt_limit&lt;br /&gt;
	##&lt;br /&gt;
	# modulo masquerade&lt;br /&gt;
	modprobe ipt_MASQUERADE&lt;br /&gt;
	##&lt;br /&gt;
	# modulo owner&lt;br /&gt;
#	modprobe ipt_owner&lt;br /&gt;
	##&lt;br /&gt;
	# REJECT respinge il pacchetto restituendo una risposta ICMP&lt;br /&gt;
	# configurabile, il default è &amp;quot;connection refused&amp;quot;.&lt;br /&gt;
#	modprobe ipt_REJECT&lt;br /&gt;
	##&lt;br /&gt;
	# modulo mark, permette di marcare pacchetti sulla catena mangle&lt;br /&gt;
#	modprobe ipt_mark&lt;br /&gt;
	##&lt;br /&gt;
	# questo modulo permette di modificare il TCP MSS&lt;br /&gt;
	##&lt;br /&gt;
	modprobe ipt_tcpmss&lt;br /&gt;
	##&lt;br /&gt;
	# questo modulo permette di indicare porte multiple&lt;br /&gt;
#	modprobe multiport&lt;br /&gt;
	##&lt;br /&gt;
	# questo modulo consente controlli sui flags TCP&lt;br /&gt;
#	modprobe ipt_state&lt;br /&gt;
	##&lt;br /&gt;
	# controlli su flags invalidi&lt;br /&gt;
#	modprobe ipt_unclean&lt;br /&gt;
	##&lt;br /&gt;
	# supporto ftp non-PASV&lt;br /&gt;
#	modprobe ip_nat_ftp&lt;br /&gt;
	##&lt;br /&gt;
	# modulo per full ftp connection tracking&lt;br /&gt;
#	modprobe ip_conntrack_ftp&lt;br /&gt;
	##&lt;br /&gt;
	# modulo per full irc connection tracking&lt;br /&gt;
#	modprobe ip_conntrack_irc&lt;br /&gt;
##&lt;br /&gt;
#################&lt;br /&gt;
## area kernel ##&lt;br /&gt;
#################&lt;br /&gt;
##&lt;br /&gt;
	echo &amp;quot;$SET  forwarding... &amp;quot;&lt;br /&gt;
	echo &amp;quot;$CF&amp;quot; &amp;gt;/proc/sys/net/ipv4/ip_forward&lt;br /&gt;
	##&lt;br /&gt;
	echo &amp;quot;$SET  syn-cookies (protezione syn-flood attacks)...&amp;quot;&lt;br /&gt;
	echo &amp;quot;$SC&amp;quot; &amp;gt;/proc/sys/net/ipv4/tcp_syncookies&lt;br /&gt;
	##&lt;br /&gt;
	echo &amp;quot;Riduco il  numero di possibili SYN Floods...&amp;quot;&lt;br /&gt;
	echo &amp;quot;1024&amp;quot; &amp;gt;/proc/sys/net/ipv4/tcp_max_syn_backlog&lt;br /&gt;
	##&lt;br /&gt;
	##&lt;br /&gt;
	echo &amp;quot;$SET ICMP echo-request su indirizzi  broadcast (Smurf amplifier)...&amp;quot;&lt;br /&gt;
		# Questi parametri servono ad ignorare ogni ICMP echo requests&lt;br /&gt;
		# inviato da indirizzi broadcast. Serve a prevenire&lt;br /&gt;
		# un gran numero di attacchi smurfs e DoS.&lt;br /&gt;
	echo &amp;quot;$ER&amp;quot; &amp;gt;/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts&lt;br /&gt;
	##&lt;br /&gt;
#	Contromisure contro attacchi DoS&lt;br /&gt;
#	 echo &amp;quot;Disabilito  ICMP echo-request  (usare solo se si è sotto attacco Dos)&amp;quot;&lt;br /&gt;
#	 echo &amp;quot;1&amp;quot; &amp;gt;/proc/sys/net/ipv4/icmp_echo_ignore_all&lt;br /&gt;
#  		#sotto attacco syn incrementare il valore di tcp_max_syn_backlog e decrementare&lt;br /&gt;
#   		#il valore dei timeout_*&lt;br /&gt;
#  	echo &amp;quot;100&amp;quot; &amp;gt;  /proc/sys/net/ipv4/vs/timeout_synack&lt;br /&gt;
#  	echo &amp;quot;10&amp;quot; &amp;gt;   /proc/sys/net/ipv4/vs/timeout_synrecv&lt;br /&gt;
#  	echo &amp;quot;128&amp;quot; &amp;gt;  /proc/sys/net/ipv4/tcp_max_syn_backlog&lt;br /&gt;
	##&lt;br /&gt;
	echo &amp;quot;$SET protezione  defrag error... &amp;quot;&lt;br /&gt;
	echo &amp;quot;$DE&amp;quot; &amp;gt; /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses&lt;br /&gt;
	##&lt;br /&gt;
	echo &amp;quot;$SET time-wait assassination hazards in tcp (RFC 1337)...&amp;quot;&lt;br /&gt;
	#echo &amp;quot;$TW&amp;quot; &amp;gt;/proc/sys/net/ipv4/tcp_rfc1337&lt;br /&gt;
	##&lt;br /&gt;
	echo &amp;quot;$SET sourcerouting and spoofing protection...&amp;quot;&lt;br /&gt;
	for i in /proc/sys/net/ipv4/conf/*; do&lt;br /&gt;
	    ##&lt;br /&gt;
	    echo &amp;quot;$SET politica per source-routed packets...&amp;quot;&lt;br /&gt;
		# Questa politica e' usata per accettare o rifiutare pacchetti&lt;br /&gt;
		# di tipo 'source routed'.  E' attiva di default, ma è considerata&lt;br /&gt;
		# un rischio per la sicurezza.&lt;br /&gt;
	    echo &amp;quot;$SR&amp;quot; &amp;gt;$i/accept_source_route&lt;br /&gt;
	    ##&lt;br /&gt;
	    echo &amp;quot;$SET politica per ICMP Redirect accept/send...&amp;quot;&lt;br /&gt;
		# Questa opzione disabilita la redirezione dei pacchetti ICMP.&lt;br /&gt;
		# E' generalmente considerato un rischio per la sicurezza.&lt;br /&gt;
	    echo &amp;quot;$DR&amp;quot; &amp;gt;$i/accept_redirects&lt;br /&gt;
	    	# Per questo motivo, e' preferibile accettare ICMP solo&lt;br /&gt;
		# dal gateway di default (opzione secure_redirects).&lt;br /&gt;
	    echo &amp;quot;$ASR&amp;quot; &amp;gt;$i/send_redirects&lt;br /&gt;
	    echo &amp;quot;$SET secure ICMP redirects...&amp;quot;&lt;br /&gt;
	    echo &amp;quot;$ISR&amp;quot; &amp;gt;$i/secure_redirects&lt;br /&gt;
	    ##&lt;br /&gt;
#	    echo &amp;quot;Disabilito Proxy ARP  ...&amp;quot;&lt;br /&gt;
#		# E' un'opzione utilizzata per la realizzazione di DMZ;&lt;br /&gt;
#		# è disabilitata in quanto non rientra negli scopi di questo script.&lt;br /&gt;
#		# per maggiorni info: http://www.sjdjweis.com/linux/proxyarp/&lt;br /&gt;
#	    echo &amp;quot;0&amp;quot; &amp;gt;$i/proxy_arp&lt;br /&gt;
	    ##&lt;br /&gt;
	    echo &amp;quot;$SET source-address verification (prevent spoofing)...&amp;quot;&lt;br /&gt;
		# Abilita i controlli previsti nel  RFC1812.&lt;br /&gt;
		# è raccomandato per sistemi basati su interfacce singole&lt;br /&gt;
		# Disattivare se si hanno interfacce multiple collegate alla stessa rete.&lt;br /&gt;
		# Questo controllo blocca i pacchetti che si presentano ad una interfaccia  esterna&lt;br /&gt;
		# con  indirizzo forgiato per sembrare provenienti da interfaccia interna;&lt;br /&gt;
		# il controllo e' comunque ripetuto in seguito.&lt;br /&gt;
	    echo &amp;quot;$SAV&amp;quot; &amp;gt;$i/rp_filter&lt;br /&gt;
	    ##&lt;br /&gt;
     	done&lt;br /&gt;
	##&lt;br /&gt;
	echo &amp;quot;Applico settaggi controllo ...&amp;quot;&lt;br /&gt;
	if [ -f /proc/sys/net/ipv4/icmp_destunreach_rate ]; then&lt;br /&gt;
       		echo &amp;quot;5&amp;quot; &amp;gt; /proc/sys/net/ipv4/icmp_destunreach_rate&lt;br /&gt;
    	fi&lt;br /&gt;
	if [ -f /proc/sys/net/ipv4/icmp_echoreply_rate ]; then&lt;br /&gt;
       		echo &amp;quot;5&amp;quot; &amp;gt; /proc/sys/net/ipv4/icmp_echoreply_rate&lt;br /&gt;
    	fi&lt;br /&gt;
	if [ -f /proc/sys/net/ipv4/icmp_paramprob_rate ]; then&lt;br /&gt;
       		echo &amp;quot;5&amp;quot; &amp;gt; /proc/sys/net/ipv4/icmp_paramprob_rate&lt;br /&gt;
    	fi&lt;br /&gt;
	if [ -f /proc/sys/net/ipv4/icmp_timeexceed_rate ]; then&lt;br /&gt;
       		echo &amp;quot;10&amp;quot; &amp;gt; /proc/sys/net/ipv4/icmp_timeexceed_rate&lt;br /&gt;
    	fi&lt;br /&gt;
	##&lt;br /&gt;
	echo &amp;quot;$SET il Log su  spoofed, source routed e  redirect packets...&amp;quot;&lt;br /&gt;
		# Questa opzione serve a loggare i pacchetti provenienti da indirizzi impossibili.&lt;br /&gt;
	echo &amp;quot;$LOG&amp;quot; &amp;gt;/proc/sys/net/ipv4/conf/all/log_martians&lt;br /&gt;
	##&lt;br /&gt;
	echo &amp;quot;$SET dynamic socket address rewriting...&amp;quot;&lt;br /&gt;
		# Utile se si utilizza un indirizzo dinamico assegnato da DHCP.&lt;br /&gt;
	echo &amp;quot;$DSR&amp;quot; &amp;gt; /proc/sys/net/ipv4/ip_dynaddr&lt;br /&gt;
	##&lt;br /&gt;
	echo &amp;quot;Setto porte locali ...&amp;quot;&lt;br /&gt;
	echo &amp;quot;56000:65096&amp;quot; &amp;gt; /proc/sys/net/ipv4/ip_local_port_range&lt;br /&gt;
	##&lt;br /&gt;
##&lt;br /&gt;
#################################&lt;br /&gt;
## inizio competenza iptables  ##&lt;br /&gt;
#################################&lt;br /&gt;
##&lt;br /&gt;
	echo &amp;quot;Azzero le chain...&amp;quot;&lt;br /&gt;
	##&lt;br /&gt;
	for y in  filter nat mangle ; do&lt;br /&gt;
	 $IPT -t $y -F&lt;br /&gt;
	 $IPT -t $y -X&lt;br /&gt;
	done&lt;br /&gt;
	##&lt;br /&gt;
	## politica per la tabella filter&lt;br /&gt;
	$IPT  -P INPUT   $chain&lt;br /&gt;
	$IPT  -P OUTPUT  $outchain&lt;br /&gt;
	$IPT  -P FORWARD DROP&lt;br /&gt;
	#NOTA: FORWARD e' su DROP in quanto il controllo e' lasciato a altre regole&lt;br /&gt;
	##&lt;br /&gt;
	## politica per la tabella mangle&lt;br /&gt;
 	for m in PREROUTING  OUTPUT ; do&lt;br /&gt;
	 $IPT -t mangle -P $m ACCEPT&lt;br /&gt;
	done&lt;br /&gt;
	##&lt;br /&gt;
	echo &amp;quot;Genero catene utente ...&amp;quot;&lt;br /&gt;
	$IPT -N chain-log&lt;br /&gt;
	$IPT -A chain-log -j LOG --log-level info&lt;br /&gt;
		# NOTA: Senza  --log-level  &amp;quot;info&amp;quot;, si ha la scrittura dei log in ogni&lt;br /&gt;
		#       vty.  E' un pò troppo ...&lt;br /&gt;
	$IPT -A chain-log -j $chain&lt;br /&gt;
	##&lt;br /&gt;
#	# Dynamic Address&lt;br /&gt;
#		# La richiesta di assegnazione dell'indirizzo è di tipo broadcast&lt;br /&gt;
#		# la risposta potrebbe non  essere accettata&lt;br /&gt;
#		# questa dichiarazione abilita il DHCP&lt;br /&gt;
#	$IPT -A INPUT -p UDP  --source-port 67 --destination-port 68 -j ACCEPT&lt;br /&gt;
#	# DHCPd - abilitare in presenza di DHCP interno&lt;br /&gt;
#	#$IPT -A INPUT -i $IIF -p tcp --sport 68 --dport 67 -j ACCEPT&lt;br /&gt;
#	#$IPT -A INPUT -i $IIF -p udp --sport 68 --dport 67 -j ACCEPT&lt;br /&gt;
	##&lt;br /&gt;
	##&lt;br /&gt;
	echo &amp;quot;Accetto connessioni da $LOCALHOST , $SERVER , $CLIENT ...&amp;quot;&lt;br /&gt;
	$IPT -A INPUT  -i lo  -j ACCEPT&lt;br /&gt;
	$IPT -A INPUT  -i $IIF  -s $CLIENT  -j ACCEPT&lt;br /&gt;
	$IPT -A INPUT  -i $IIF  -s $SERVER  -j ACCEPT&lt;br /&gt;
#	$IPT -A INPUT  -i $IIF  -s $LOCALNET  -j ACCEPT&lt;br /&gt;
#	$IPT -A OUTPUT  -o lo -s $LOCALHOST -j ACCEPT&lt;br /&gt;
#	$IPT -A OUTPUT  -o lo -s $SERVER -j ACCEPT&lt;br /&gt;
	##&lt;br /&gt;
	echo &amp;quot;Controllo di sanita' dei pacchetti sulla tabella nat-PREROUTING...&amp;quot;&lt;br /&gt;
	$IPT -t nat -A PREROUTING -i $EIF -s $LOCALNET -j $chain&lt;br /&gt;
	$IPT -t nat -A PREROUTING -i $EIF -s $LOCALHOST -j $chain&lt;br /&gt;
	$IPT -t nat -A PREROUTING -i $EIF -s $CLIENT -j $chain&lt;br /&gt;
	$IPT -t nat -A PREROUTING -i $EIF -s $SERVER -j $chain&lt;br /&gt;
#		# E' anche possibile bloccare e loggare tutti i pacchetti&lt;br /&gt;
#		# provenienti da indirizzi privati (chiaramente forgiati per&lt;br /&gt;
#		# tentare un'intrusione) e non solo quelli relativi a $LOCALNET&lt;br /&gt;
#		# per una lista completa:&lt;br /&gt;
#		# http://www.iana.org/assignments/ipv4-address-space&lt;br /&gt;
##&lt;br /&gt;
# 		# echo &amp;quot;Rifiuto pacchetti provenienti da indirizzi privati, multicast o riservati...&amp;quot;&lt;br /&gt;
##&lt;br /&gt;
#		# NOTA - le variabili A_r,B_r,C_r,D_r devono essere dimensionate&lt;br /&gt;
#		# leggendo le liste degli indirizzi da rifiutare (file esterno)&lt;br /&gt;
#		# il metodo e' riportato , ma non e' implementato nessun controllo,&lt;br /&gt;
#		# i pacchetti in ingresso sono comunque  tutti droppati.&lt;br /&gt;
#		# questo controllo potrebbe essere comunque comodo, ma non e'&lt;br /&gt;
#		# nelle finalità di questo script.&lt;br /&gt;
#		# non&lt;br /&gt;
#	for CL in A_r B_r C_r D_mc E_r ; do&lt;br /&gt;
#		$IPT -A INPUT -i $EIF -s $CL -j chain-log&lt;br /&gt;
#	done&lt;br /&gt;
	##&lt;br /&gt;
		# TCP &amp;amp; UDP&lt;br /&gt;
		# Le porte standard sono elencate su:&lt;br /&gt;
		# http://www.chebucto.ns.ca/~rakerman/port-table.html&lt;br /&gt;
		# http://www.iana.org/assignments/port-numbers&lt;br /&gt;
	##&lt;br /&gt;
	echo &amp;quot;Accetto connessioni RELATED/ESTABLISHED...&amp;quot;&lt;br /&gt;
	#in input&lt;br /&gt;
	$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
	echo &amp;quot;Accetto ICMP type 0,3,11...&amp;quot;&lt;br /&gt;
		## codici ICMP - RFC 792&lt;br /&gt;
		## 0  Echo Reply&lt;br /&gt;
		## 3  Destination Unreachable, il router non ha trovato la destinazione del pacchetto.&lt;br /&gt;
		## 4  Source Quench&lt;br /&gt;
		## 5  Redirect,  il router informa l'host che ha spedito il pacchetto di un qualche errore&lt;br /&gt;
		## 8  Echo, messaggio utile per sapere se un host è presente oppure no (utilizzato in Ping)&lt;br /&gt;
		## 11  Time Exceeded&lt;br /&gt;
		## 12  Parameter Problem, campo dell'header non valido&lt;br /&gt;
		## 13  Timestamp&lt;br /&gt;
		## 14  Timestamp Reply&lt;br /&gt;
		## 15  Information Request&lt;br /&gt;
		## 16  Information Reply&lt;br /&gt;
		# Visitare: http://www.ee.siue.edu/~rwalden/networking/icmp.html&lt;br /&gt;
		# per altre informazioni relative ai tipi  ICMP.&lt;br /&gt;
	for ic in 0 3 11 ; do&lt;br /&gt;
	 $IPT -A INPUT -i $EIF -p icmp --icmp-type $ic -j ACCEPT&lt;br /&gt;
	done&lt;br /&gt;
	##&lt;br /&gt;
		# Decommentare se si desidera che il proprio sistema risponda ai ping&lt;br /&gt;
	 $IPT -A INPUT -i $EIF -p ICMP  --icmp-type 8 -j $chain&lt;br /&gt;
	# $IPT -A INPUT -i $EIF -p ICMP  --icmp-type 8 -j ACCEPT&lt;br /&gt;
	##&lt;br /&gt;
	echo &amp;quot;Accetto ICMP dalla rete locale...&amp;quot;&lt;br /&gt;
	$IPT -A INPUT -i $IIF -s $LOCALNET -p icmp   -j ACCEPT&lt;br /&gt;
	##&lt;br /&gt;
	echo &amp;quot;Accetto DNS replays&amp;quot;&lt;br /&gt;
	$IPT  -A INPUT -i $EIF -p udp -s $DNS1   --sport 53 -j ACCEPT&lt;br /&gt;
	$IPT  -A INPUT -i $EIF -p udp -s $DNS2   --sport 53 -j ACCEPT&lt;br /&gt;
#	$IPT  -A INPUT -i IIF -p tcp -s $DNS3   --sport 53 -j ACCEPT&lt;br /&gt;
	$IPT  -A INPUT  -p udp    --sport 53 -j ACCEPT&lt;br /&gt;
		# il dns 3 si intende come locale, per questo si accettano le connessioni tcp&lt;br /&gt;
#	$IPT  -A INPUT -i $EIF -p tcp -s $DNS1   --sport 53 -j ACCEPT&lt;br /&gt;
#	$IPT  -A INPUT -i $EIF -p tcp -s $DNS2   --sport 53 -j ACCEPT&lt;br /&gt;
	##&lt;br /&gt;
	echo &amp;quot;Blocco ogni pacchetto broadcast&amp;quot;&lt;br /&gt;
	$IPT -A INPUT -p ALL -d 255.255.255.255 -j $chain&lt;br /&gt;
#	$IPT -A INPUT -s 10.128.0.0/255.255.0.0  -j  DROP&lt;br /&gt;
	##&lt;br /&gt;
 	echo &amp;quot;Attivo  SYN-FLOODING protection...&amp;quot;&lt;br /&gt;
	$IPT -N SYN-FLOOD&lt;br /&gt;
	$IPT  -A INPUT -p tcp --syn -j SYN-FLOOD&lt;br /&gt;
	$IPT -t filter   -A SYN-FLOOD -m limit  --limit 1/s --limit-burst 4   -j chain-log&lt;br /&gt;
	 ##&lt;br /&gt;
#	echo &amp;quot;Sperimentale...&amp;quot;&lt;br /&gt;
#	#NOTA - e' disattivato in quanto potrebbe generare molti falsi positivi.&lt;br /&gt;
#	$IPT -t nat -A PREROUTING -i $EIF -m unclean -j chain-log&lt;br /&gt;
	##&lt;br /&gt;
	echo &amp;quot;Blocco le scansioni Xmas tree, i pacchetti senza flag, i flag irregolari, le scansioni...&amp;quot;&lt;br /&gt;
	##Blocco le scansioni Xmas tree&lt;br /&gt;
	$IPT  -A INPUT -p tcp --tcp-flags  ALL FIN,URG,PSH -j chain-log&lt;br /&gt;
	$IPT  -A INPUT -p tcp --tcp-flags  ALL SYN,RST,ACK -j chain-log&lt;br /&gt;
	##&lt;br /&gt;
	##Blocco i pacchetti senza flags&lt;br /&gt;
	$IPT  -A INPUT -p tcp --tcp-flags  ALL NONE -j chain-log&lt;br /&gt;
	##&lt;br /&gt;
	##Blocco i pacchetti SYN+RST e SYN+FIN&lt;br /&gt;
	$IPT  -A INPUT  -p tcp --tcp-flags SYN,RST SYN,RST -j chain-log&lt;br /&gt;
	$IPT  -A INPUT  -p tcp --tcp-flags SYN,FIN SYN,FIN -j chain-log&lt;br /&gt;
	##&lt;br /&gt;
	##Blocco le scansioni FIN&lt;br /&gt;
	$IPT  -A INPUT  -p tcp --tcp-flags FIN FIN -j chain-log&lt;br /&gt;
	##&lt;br /&gt;
	##Elimino pacchetti broadcast netbios&lt;br /&gt;
	$IPT  -A INPUT   -p udp --dport 135:139 -j $chain&lt;br /&gt;
	##&lt;br /&gt;
	echo &amp;quot;Dirotto pacchetti  NEW e INVALID verso CHAIN...&amp;quot;&lt;br /&gt;
	$IPT  -A INPUT -i  $EIF  -m state --state NEW,INVALID -j chain-log&lt;br /&gt;
	$IPT  -A INPUT -i  $IIF  -m state --state NEW,INVALID -j chain-log&lt;br /&gt;
	##&lt;br /&gt;
##&lt;br /&gt;
##################################################################&lt;br /&gt;
## Servizi aperti all'esterno 'decommentare i servizi desiderati, attenzione!!'  ##&lt;br /&gt;
##################################################################&lt;br /&gt;
##&lt;br /&gt;
#	echo &amp;quot;Accetto connessioni su shell criptate dall'esterno...&amp;quot;&lt;br /&gt;
#	$IPT  -A INPUT -p tcp --dport 22 -j ACCEPT&lt;br /&gt;
	##&lt;br /&gt;
#	echo &amp;quot;Accetto connessioni sendmail dall'esterno [pericoloso!!!]...&amp;quot;&lt;br /&gt;
#	$IPT  -A INPUT -p tcp --dport smtp -j ACCEPT&lt;br /&gt;
	##&lt;br /&gt;
#	echo &amp;quot;Accetto http e https dall'esterno [pericoloso!!]... &amp;quot;&lt;br /&gt;
#	$IPT -A INPUT -p tcp -m multiport --destination-port 80,443 -j ACCEPT&lt;br /&gt;
	##&lt;br /&gt;
#	echo &amp;quot;Accetto POP3  dall'esterno [pericoloso!]...&amp;quot;&lt;br /&gt;
#	$IPT -A INPUT -p tcp --sport 110 -j ACCEPT&lt;br /&gt;
	##&lt;br /&gt;
	# Questo esempio serve per usare il transparent proxy&lt;br /&gt;
#	 $IPT -t nat -A PREROUTING -p tcp -s $LOCALNET --destination-port 80  -j RETURN&lt;br /&gt;
#	 $IPT -t nat -A PREROUTING -p tcp -s $LOCALNET --destination-port 443 -j RETURN&lt;br /&gt;
	# Redirezione  HTTP&lt;br /&gt;
#	 $IPT -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-ports 3128&lt;br /&gt;
	# Redirezione HTTPS&lt;br /&gt;
#	 $IPT -t nat -A PREROUTING -p tcp --destination-port 443 -j REDIRECT --to-ports 3128&lt;br /&gt;
&lt;br /&gt;
##&lt;br /&gt;
#######################&lt;br /&gt;
## regole in uscita  ##&lt;br /&gt;
#######################&lt;br /&gt;
##&lt;br /&gt;
	## abilita servizio DNS per protocolli UDP&lt;br /&gt;
	## (attivare per policy drop su output)&lt;br /&gt;
#	$IPT -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT&lt;br /&gt;
	##&lt;br /&gt;
	## abilita la navigazione WEB ed il traffico HTTPS&lt;br /&gt;
	## (attivare per policy drop su output)&lt;br /&gt;
#	$IPT -t filter -A OUTPUT -p tcp -m multiport --dports 80,443 -j ACCEPT&lt;br /&gt;
	##&lt;br /&gt;
	## abilita il traffico FTP&lt;br /&gt;
	## (attivare per policy drop su output)&lt;br /&gt;
#	$IPT -t filter -A OUTPUT -o $EIF -p tcp --dport ftp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
	##&lt;br /&gt;
	## abilita le connessioni SMTP e POP3 in uscita&lt;br /&gt;
	## (attivare per policy drop su output)&lt;br /&gt;
#	$IPT -t filter -A OUTPUT -p tcp --dport 25 -j ACCEPT&lt;br /&gt;
#	$IPT -t filter -A OUTPUT -p tcp --dport 110 -j ACCEPT&lt;br /&gt;
	##&lt;br /&gt;
	## abilita connessioni SSH (SecureShell) con attivazione Log&lt;br /&gt;
	## (attivare per policy drop su output)&lt;br /&gt;
#	$IPT -t filter -A OUTPUT -p tcp --syn --dport 22 -m state --state NEW -j LOG --log-level info --log-prefix &amp;quot;---SSH from $EIF---&amp;quot;&lt;br /&gt;
#	$IPT -t filter -A OUTPUT -p tcp --dport 22 -j ACCEPT&lt;br /&gt;
	##&lt;br /&gt;
#	echo &amp;quot;Impedisco l'uscita di pacchetti netbios...&amp;quot;&lt;br /&gt;
		# il traffico di questi pacchetti potrebbe attivare&lt;br /&gt;
		# eventuali connessioni 'dial on demand' a internet.&lt;br /&gt;
#	$IPT -A OUTPUT -p udp --destination-port 135:139 -j DROP&lt;br /&gt;
	##&lt;br /&gt;
##&lt;br /&gt;
####################&lt;br /&gt;
## regole particolari  ##&lt;br /&gt;
###################&lt;br /&gt;
##&lt;br /&gt;
##&lt;br /&gt;
	##&lt;br /&gt;
#	echo &amp;quot;Imposto le regole sulla tabella MANGLE...&amp;quot;&lt;br /&gt;
#		# Setto il TTL su tutti i pacchetti in uscita a 128.&lt;br /&gt;
#		# per nascondere la propria rete dietro al router,&lt;br /&gt;
#		# convertire i pacchetti uscenti dalla LAN ad un TTL&lt;br /&gt;
#		# uguale a quello dei pacchetti generati dal router.&lt;br /&gt;
#		# TTL non e'  inserito nelle versioni comunemente&lt;br /&gt;
#		# distribuite (senza patch-o-matic)&lt;br /&gt;
#	$IPT -t mangle -A FORWARD -o $EIF  -j TTL  --ttl-inc 1&lt;br /&gt;
##&lt;br /&gt;
echo &amp;quot;Risolvo il blocco  derivante da ICMP fragmentation&amp;quot;&lt;br /&gt;
	# Il target TCPMSS risolve i problemi di connessione derivanti da server&lt;br /&gt;
	# che bloccano i pacchetti ICMP Fragmentation Needed.&lt;br /&gt;
	# Tale blocco spesso blocca il trasferimento dati anche in presenza di connessioni stabilite.&lt;br /&gt;
$IPT -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu&lt;br /&gt;
&lt;br /&gt;
##&lt;br /&gt;
#############################&lt;br /&gt;
## regole su FORWARD  e nat  ##&lt;br /&gt;
#############################&lt;br /&gt;
##&lt;br /&gt;
##&lt;br /&gt;
##&lt;br /&gt;
$IPT -A FORWARD  -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
$IPT -A FORWARD  -i $EIF  -m state --state NEW,INVALID -j $chain&lt;br /&gt;
$IPT -A FORWARD  -o $EIF -j ACCEPT&lt;br /&gt;
echo &amp;quot;$MSET   SNAT (MASQUERADE) su $EIF&amp;quot;&lt;br /&gt;
##&lt;br /&gt;
#usare su indirizzi dinamici (esempio connessioni dial-up)&lt;br /&gt;
$IPT -t nat -A POSTROUTING -o $EIF -j MASQUERADE&lt;br /&gt;
#usare solo su indirizzi statici&lt;br /&gt;
#	$IPT -t nat -A POSTROUTING -o $EIF -j SNAT --to $EIP&lt;br /&gt;
##&lt;br /&gt;
##&lt;br /&gt;
###############&lt;br /&gt;
##  fine del FW ##&lt;br /&gt;
###############&lt;br /&gt;
##&lt;br /&gt;
##&lt;br /&gt;
echo &amp;quot;&amp;quot;&lt;br /&gt;
echo  &amp;quot;Da ora la politica  per INPUT  e' 	$chain&amp;quot;&lt;br /&gt;
echo  &amp;quot;la politica  per OUTPUT e' 		$outchain&amp;quot;&lt;br /&gt;
echo  &amp;quot;IP forwarding e' settato su 		$fw  &amp;quot;&lt;br /&gt;
echo  &amp;quot;&amp;quot;&lt;br /&gt;
echo -e &amp;quot;$NULL\n&amp;quot;&lt;br /&gt;
##&lt;br /&gt;
netfilter&lt;br /&gt;
##&lt;br /&gt;
##The End..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Data:    	03 Jun 2006&lt;br /&gt;
* Autore:    	Mike&lt;/div&gt;</summary>
		<author><name>L1q1d</name></author>	</entry>

	</feed>