Scritto da Administrator Lunedì 01 Settembre 2008 06:29 - Ultimo aggiornamento Sabato 19 Giugno 2010 07:28



Documenti analoghi
Firewall e NAT A.A. 2005/2006. Walter Cerroni. Protezione di host: personal firewall

Tre catene (chains) di base, si possono definire altre catene (convenzionalmente in minuscolo)

Appunti configurazione firewall con distribuzione Zeroshell (lan + dmz + internet)

Ordine delle regole (1)

Sicurezza nelle reti

Iptables. Mauro Piccolo

FIREWALL iptables V1.1 del 18/03/2013


PACKET FILTERING IPTABLES

Crittografia e sicurezza delle reti. Firewall

Corso avanzato di Reti e sicurezza informatica

Firewall con IpTables

Packet Filter in LINUX (iptables)

Transparent Firewall

esercizi su sicurezza delle reti maurizio pizzonia sicurezza dei sistemi informatici e delle reti

Filtraggio del traffico IP in linux

Firewall e Abilitazioni porte (Port Forwarding)

WAN / 24. L obiettivo è quello di mappare due server web interni (porta 80) associandoli agli indirizzi IP Pubblici forniti dall ISP.

Elementi sull uso dei firewall

IP forwarding Firewall e NAT

Il FIREWALL LINUX Basare la sicurezza della rete su un sistema operativo gratuito

Sommario. Introduzione. Creazione di un firewall su GNU/Linux con iptables.

Linux Firewall ad opera d'arte. Linux Firewalling

FIREWALL. Firewall - modello OSI e TCP/IP. Gianluigi Me. me@disp.uniroma2.it Anno Accademico 2005/06. Modello OSI. Modello TCP/IP. Application Gateway

Antonio Cianfrani. Extended Access Control List (ACL)

Esercitazione 05. Sommario. Packet Filtering [ ICMP ] Esercitazione Descrizione generale. Angelo Di Iorio (Paolo Marinelli)

Reti private virtuali (VPN) con tecnologia IPsec

Indirizzamento privato e NAT

Configurare Linux come router per una LAN

Modem Fibra (ONT) ALU I-240W-Q. Manuale Utente

Prof. Filippo Lanubile

NAS 224 Accesso remoto Configurazione manuale

Sicurezza nelle applicazioni multimediali: lezione 9, firewall. I firewall

Progettare un Firewall

Sicurezza applicata in rete

Dal menù Network/Interface/Ethernet configurare le interfacce WAN e LAN con gli opportuni ip:

Sicurezza delle reti 1. Uso di variabili. Mattia Monga. a.a. 2010/11

Corso GNU/Linux Avanzato Uso e configurazione di un firewall usando iptables

Laboratorio di Reti Esercitazione N 2-DNS Gruppo 9. Laboratorio di Reti Relazione N 2. Mattia Vettorato Alberto Mesin

La sicurezza delle reti

Filtraggio del traffico di rete

INTRODUZIONE ALLE RETI: UN APPROCCIO PRATICO

Dal protocollo IP ai livelli superiori

Kernel Linux 2.4: firewall 1985

Petra Internet Firewall Corso di Formazione

TCP e UDP, firewall e NAT

Firewall, Proxy e VPN. L' accesso sicuro da e verso Internet

Manuale Turtle Firewall

Sicurezza delle reti. Monga. Tunnel. Sicurezza delle reti. Monga

NAT NAT NAT NAT NAT NAT. Internet. Internet. router. router. intranet. intranet. Internet. Internet. router. router. intranet. intranet.

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Gestione degli indirizzi

Sviluppo siti e servizi web Programmi gestionali Formazione e Consulenza Sicurezza informatica Progettazione e realizzazione di reti aziendali

Zeroshell: VPN Lan-to-Lan. Il sistema operativo multifunzionale. creato da

Inizializzazione degli Host. BOOTP e DHCP

Un firewall hardware a costo zero ALESSIO PORCACCHIA porcacchia.altervista.org porcacchia@bluebottle.

Lo strato di trasporto Firewall e NAT

2.1 Configurare il Firewall di Windows

Corsi di Formazione Open Source & Scuola Provincia di Pescara gennaio 2005 aprile ~ anna.1704@ .

Gestione degli indirizzi

Configurazione Rete in LINUX

FIREWALL OUTLINE. Introduzione alla sicurezza delle reti. firewall. zona Demilitarizzata

Petra Firewall 3.1. Guida Utente

2 Configurazione lato Router

NetMonitor. Micro guida all uso per la versione di NetMonitor

Il livello 3 della pila ISO/OSI. Il protocollo IP e il protocollo ICMP

Netfilter: utilizzo di iptables per

Guida all impostazione. Eureka Web

Access Control List (I parte)

Esercitazione. Prima di chiedere hai usato il comando man? sovente 1 settimana di esperimenti possono risparmiare 1 ora di lettura

Sicurezza architetturale, firewall 11/04/2006

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Laboratorio di. Reti Informatiche. Corso di Laurea Triennale in Ingegneria Informatica A.A. 2016/2017. Ing. Niccolò Iardella

10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress.

ICARO Terminal Server per Aprile

Besnate, 24 Ottobre Oltre il Firewall.

Sicurezza dei sistemi e delle reti 1. Lezione X: Proxy. Proxy. Proxy. Mattia Monga. a.a. 2014/15

Online Help StruxureWare Data Center Expert

GateManager. Usare il SiteManager per connessioni attraverso una VPN PREMESSA

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

FIREWALL Caratteristiche ed applicazioni

POLICY DI ACCESSO INTERNET E CONTENT FILTER BASATE SU GRUPPI ACTIVE DIRECTORY (Firmware 2.20)

Configurare Comodo Internet Security 4.1 per emule AdunanzA

Creare connessioni cifrate con stunnel

Il firewall ipfw. Introduzione ai firewall. Problema: sicurezza di una rete. Definizione di firewall. Introduzione ai firewall

I pacchetti: Linux. Belluno. User. Group Introduzione ai firewalls con Linux. Firestarter 1.0. Guarddog Firewall Builder 2.0.

Proteggere la rete: tecnologie

La VPN con il FRITZ!Box Parte I. La VPN con il FRITZ!Box Parte I

Avremo quindi 3 utenti di dominio ai quali dovremo assegnare policy di navigazione differenti:

TeamPortal. Servizi integrati con ambienti Gestionali

Installazione di una rete privata virtuale (VPN) con Windows 2000

Esercitazione 5 Firewall

Corso di Network Security a.a. 2012/2013. Raccolta di alcuni quesiti sulla SECONDA parte del corso

Firewall: concetti di base

Corso di recupero di sistemi Lezione 8

Reti. Reti. IPv4: concetti fondamentali. arp (address resolution protocol) Architettura a livelli (modello OSI)

Sicurezza nelle Reti Prova d esame Laboratorio

Procedura configurazione Voip GNR Trunk Olimontel Asterisk PBX

azienda, i dipendenti che lavorano fuori sede devono semplicemente collegarsi ad un sito Web specifico e immettere una password.

Transcript:

Viene proposto uno script, personalizzabile, utilizzabile in un firewall Linux con 3 interfacce: esterna, DMZ e interna. Contiene degli esempi per gestire VPN IpSec e PPTP sia fra il server stesso su gira lo script e un peer remoto, sia fra client della rete interna e un server esterno. Vanno cambiati i parametri relativi agli indirizzi usati e commentate o scommentate delle regole secondo proprie esigenze. #!/bin/bash PATH=$PATH:/sbin:/usr/sbin:/bin:/usr/bin ## SCRIPT DI CONFIGURAZIONE IPTABLES PER FIREWALL A 3 INTERFACCE: ## ## EXTERNAL - Tipicamente con IP pubblici, con accesso IPSEC e PPTP ## DMZ - Per server pubblici, nattati, esposti alla rete pubblica ## INTERNAL - Permette l'accesso Internet ai client della rete interna ## ## INSTRUZIONI PER L'USO ## Lo script è diviso in varie parti: ## - Definizione di Variabili generali (modifica necessaria) ## - Impostazione parametri del kernel (modifica facoltativa) ## - Impostazione regole generali (modifica facoltativa) ## - Impostazione regole per specifiche funzioni (DMZ, VPN, LAN NAT ecc.) ## (Attivare/Disattivare e impostare parametri secondo proprie necessità) ## ## Versione 0.2 - al@openskills.info ## Revisione 20070328 ## DEFINIZIONE DI VARIABILI GENERALI ## Modificare i parametri sulla base delle proprie impostazioni ## Nota: Per maggiore leggibilità sono definite e vanno adattate ## altre variabili nella sezione in cui sono utilizzate ## Impostazione indirizzo IP primario delle interfacce: ## esterna (ext), dmz (dmz), interna (int) extip="151.151.151.151" dmzip="172.16.0.1" intip="192.168.0.1" ## Associazione interfacce alle reti: ## esterna (ext), dmz (dmz), interna (int) 1 / 11

extint="eth0" dmzint="eth2" intint="eth1" ## Indirizzi delle reti: ## esterna (ext), dmz (dmz), interna (int) extnet="151.151.151.0/24" dmznet="172.16.0.0/16" intnet="192.168.0.0/24" ## IMPOSTAZIONE PARAMETRI E CARICAMENTO MODULI DEL KERNEL ## Possono essere impostati anche su /etc/sysctl.conf ## Abilita IP forwarding (fondamentale) echo "1" > /proc/sys/net/ipv4/ip_forward ## Non risponde a ping su broadcast echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts ## Abitilita protezione da messaggi di errore echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses ## Non accetta icmp redirect echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects ## Abilita protezione (parziale) antispoof echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter ## Registra pacchetti strani o impossibili echo "1" > /proc/sys/net/ipv4/conf/all/log_martians ## Pre-carica i moduli del kernel che servono modprobe ip_tables modprobe iptable_nat modprobe ip_nat_ftp modprobe ip_conntrack_ftp modprobe ipt_masquerade 2 / 11

## IMPOSTAZIONE REGOLE IPTABLES GENERALI ## Questa parte, in linea di massima, non necessita customizzazioni ## In questo script si segue questa logica: ## - Drop di default di ogni pacchetto ## - AGGIUNTA di regole sul traffico accettato ## - Log finale dei pacchetti prima che siano eliminati ## ## Per ottimizzare le prestazioni può servire modificare l'ordine ## delle regole, inserendo per prime quelle più utilizzate. ## Si suggerisce, nel caso, di riordinare interi blocchi di configurazione ## (regole per dmz, nat, ipsec ecc.) facendo sempre attenzione all'ordine ## con cui sono aggiunte le regole per evitare disfunzioni ## Nota: Lo script è stato testato solo con l'ordine qui impostato. ## Azzeramento di ogni regola e counter esistenti iptables -t filter -F iptables -t filter -X iptables -t filter -Z iptables -t mangle -F iptables -t mangle -X iptables -t mangle -Z iptables -t nat -F iptables -t nat -X iptables -t nat -Z ## Impostazione policy di default iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP iptables -t nat -P POSTROUTING ACCEPT iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P OUTPUT ACCEPT iptables -t mangle -P OUTPUT ACCEPT iptables -t mangle -P INPUT ACCEPT iptables -t mangle -P FORWARD ACCEPT iptables -t mangle -P POSTROUTING ACCEPT iptables -t mangle -P PREROUTING ACCEPT ## Abilitazione traffico di loopback iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT 3 / 11

## TRAFFICO IN ENTRATA E IN USCITA DAL FIREWALL ## Adattare secondo proprie preferenze ## INDIRIZZO IP o RETE da cui è possibile accedere al firewall (ssh) ## Inserire un indirizzo di amministrazione admin="100.0.0.254" ## INPUT - Traffico permesso in ingresso verso il firewall ## Accesso dalla rete interna (su porta ssh e proxy) iptables -A INPUT -s $intnet -i $intint -p tcp --dport 22 -j ACCEPT iptables -A INPUT -s $intnet -i $intint -p tcp --dport 3128 -j ACCEPT ## Accesso incondizionato da indirizzo di amministrazione iptables -A INPUT -s $admin -j ACCEPT ## Viene permesso in entrata il traffico correlato a connessioni già esistenti iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT ## Abilitazione pacchetti ICMP (es: ping) da rete interna e dmz iptables -A INPUT -p icmp -i $dmzint -j ACCEPT iptables -A INPUT -p icmp -i $intint -j ACCEPT ## OUTPUT - Traffico permesso in uscita dall'host del firewall ## Vengono proposte 2 alternative (commentare una o l'altra): ## A) Traffico in uscita ristretto (potrebbe impedire alcune attività di sistema) ## B) Traffico in uscita dal firewall libero (viene solo fatto un sanity check) ## A) Il firewall può pingare e uscire via ssh, stmp, dns: # iptables -A OUTPUT -p icmp -j ACCEPT # iptables -A OUTPUT -p udp --dport 53 -j ACCEPT # iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT # iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT # iptables -A OUTPUT -p tcp --dport 22227 -j ACCEPT # iptables -A OUTPUT -p tcp --dport 21 -j ACCEPT # iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT ## Dal firewall si può navigare sul web (necessario per proxy) # iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT # iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT 4 / 11

## B) I pacchetti in uscita dal firewall all'esterno non hanno filtri iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT ## REGOLE PER VPN IPSEC LAN 2 LAN ## Necessarie per permettere il collegamento ad un peer ipsec remoto ## e gestire il traffico fra le due reti ## Modificare i parametri secondo proprie necessità ## Definizione degli indirizzi IP (pubblici) dei due peer IPSEC ## Server locale, questo (local) - Peer IpSec remoto (remote) remote="212.212.212.212" local="151.151.151.151" ## Rete locale e remota da mettere in comunicazione via ipsec ## (Coincidono con "leftsubnet" e "rightsubnet" di OpenSwan) locallan="192.168.1.0/24" remotelan="192.168.0.0/24" ## Regole per ogni peer di una VPN IPSEC LAN 2 LAN iptables -A OUTPUT -d $remote -p udp --dport 500 -j ACCEPT iptables -A OUTPUT -d $remote -p ah -j ACCEPT iptables -A OUTPUT -d $remote -p esp -j ACCEPT iptables -A INPUT -s $remote -p udp --sport 500 -j ACCEPT iptables -A INPUT -s $remote -p ah -j ACCEPT iptables -A INPUT -s $remote -p esp -j ACCEPT ## Regole per IPSEC LAN 2 LAN con NAT-TRAVERSAL ## AGGIUNGERE le seguenti regole se è previsto l'uso di NAT-T iptables -A OUTPUT -d $remote -p udp --dport 4500 -j ACCEPT iptables -A INPUT -s $remote -p udp --dport 4500 -j ACCEPT ## Regola per permettere al server locale di contattare macchine della rete remota iptables -A OUTPUT -d $remotelan -j ACCEPT ## Regole per permettere ad un CLIENT VPN IPSEC INTERNO 5 / 11

## di collegarsi ad un server IPsec esterno ## Scommentare e usare se necessario $ipsecserver = "21.21.21.21" # iptables -A FORWARD -s $intnet -i $intint -p udp -d $ipsecserver -j ACCEPT # iptables -A FORWARD -s $intnet -i $intint -p ah -d $ipsecserver -j ACCEPT # iptables -A FORWARD -s $intnet -i $intint -p esp -d $ipsecserver -j ACCEPT ## Definizione del traffico permesso fra le due reti ## Qui non vengono impostate alcune limitazioni: ## le due reti non hanno filtri tra loro. ## Restringere queste impostazioni secondo proprie necessità, nell'impostare ## gli indirizzi degli HOST delle LAN, usare il loro IP interno iptables -A FORWARD -s $locallan -d $remotelan -j ACCEPT iptables -A FORWARD -s $remotelan -d $locallan -j ACCEPT ## REGOLE PER VPN PPTP ## Impostazioni per: ## - Permettere accesso PPTP da Internet a server locale ## - Permettere accesso PPTP da host locale a un pptp server esterno ## - Permettere accesso PPTP da host locale a qualsiasi pptp server ## - Permettere a client della rete interna di accedere ad un pptp server esterno ## - Permettere a client della rete interna di accedere a qualsiasi pptp server ## NOTA: Scommentare le regole che interessano ## Indirizzo IP di un server PPTP esterno pptpserver="85.85.85.85" ## Regole per permettere accesso PPTP da Internet a server locale iptables -A INPUT -p tcp --dport 1723 -j ACCEPT iptables -A INPUT -p gre -j ACCEPT iptables -A OUTPUT -p gre -j ACCEPT ## Ciclo per regole da applicare alle interfacce pptp create con il tunnel ## Da adattare se si prevede di avere più di 10 tunnel contemporaneamente. for i in 0 1 2 3 4 5 6 7 8 9 ; do 6 / 11

iptables -A FORWARD -i ppp$i -j ACCEPT iptables -A FORWARD -i $intint -o ppp$i -j ACCEPT iptables -A OUTPUT -o ppp$i -j ACCEPT iptables -A INPUT -i ppp$i -p icmp -j ACCEPT done ## Regole per permettere accesso PPTP da host locale a un pptpserver esterno iptables -A OUTPUT -p tcp --dport 1723 -d $pptpserver -j ACCEPT iptables -A OUTPUT -p gre -d $pptpserver -j ACCEPT ## Regole per permettere accesso PPTP da host locale a qualsiasi server # iptables -A OUTPUT -p tcp --dport 1723 -j ACCEPT # iptables -A OUTPUT -p gre -j ACCEPT ## Regole per permettere a client della LAN di accedere ad un pptpserver esterno # iptables -A FORWARD -s $intnet -i $intint -p tcp --dport 1723 -d $pptpserver -j ACCEPT # iptables -A FORWARD -s $intnet -i $intint -p gre -d $pptpserver -j ACCEPT ## Regole per permettere a client della LAN di accedere a qualsiasi server pptp # iptables -A FORWARD -s $intnet -i $intint -p tcp --dport 1723 -j ACCEPT # iptables -A FORWARD -s $intnet -i $intint -p gre -j ACCEPT ## LOCAL LAN NATTING (MASQUERADING) ## Impostazioni che permettono il natting (masquerading) della rete interna (LAN) ## e determinano quale traffico è concesso dalla rete interna verso Internet ## Adattare secondo proprie necessità ## Indirizzo IP assegnato ai client quando escono su Internet ## Deve stare sull'interfaccia esterna e può essere lo stesso $extip ## precedentemente definito ## Se si usa un indirizzo diverso ricordarsi di abilitarlo come alias ## sull'interfaccia esterna (si può fare direttamente in questo script: ifconfig eth0:1 151.151.151.152 netmask 255.255.255.0 broadcast 151.151.151.255 7 / 11

#extiplan=$extip extiplan="151.151.151.152" ## Vengono proposte due alternative: ## A) Natting della rete locale con esclusione degli indirizzi della LAN remota ## B) Normale natting di tutta la rete locale ## Utilizzare A se il firewall è anche peer di una VPN ipsec lan-to-lan ## Nota: Se si usa l'opzione A, assicurarsi che questo blocco di regole sia ## successivo a quello relativo alla VPN IPsec ## A) LAN natting in caso di utilizzo VPN IPsec lan 2 lan: # iptables -t nat -A POSTROUTING -s $intnet -d! $remotelan -j SNAT --to-source $extiplan ## B) LAN natting normale iptables -t nat -A POSTROUTING -o $extint -s $intnet -j SNAT --to-source $extiplan ## Definizione del traffico Internet permesso ai client della rete Interna ## Vengono proposte due alternative: ## A) Libero accesso ad Internet a tutti i client della rete Interna ## B) Accesso limitato ai client della rete interna ## A) Libero accesso ad Internet a tutti i client della rete Interna # iptables -A FORWARD -s $intnet -i $intint -j ACCEPT ## B) Accesso limitato ai client della rete interna ## Qui solo traffico di posta, dns e ssh (di default lo script prevede l'uso ## di un proxy locale per la navigazione dei client) iptables -A FORWARD -s $intnet -i $intint -p tcp --dport 21 -j ACCEPT iptables -A FORWARD -s $intnet -i $intint -p tcp --dport 22 -j ACCEPT iptables -A FORWARD -s $intnet -i $intint -p tcp --dport 25 -j ACCEPT iptables -A FORWARD -s $intnet -i $intint -p tcp --dport 110 -j ACCEPT iptables -A FORWARD -s $intnet -i $intint -p tcp --dport 143 -j ACCEPT iptables -A FORWARD -s $intnet -i $intint -p tcp --dport 995 -j ACCEPT iptables -A FORWARD -s $intnet -i $intint -p tcp --dport 993 -j ACCEPT iptables -A FORWARD -s $intnet -i $intint -p udp --dport 53 -j ACCEPT iptables -A FORWARD -s $intnet -i $intint -p tcp --dport 80 -j ACCEPT iptables -A FORWARD -s $intnet -i $intint -p tcp --dport 443 -j ACCEPT iptables -A FORWARD -s $intnet -i $intint -p tcp --dport 3389 -j ACCEPT iptables -A FORWARD -s $intnet -i $intint -p udp --dport 3389 -j ACCEPT ## Viene accettato il traffico di ritorno a connessioni già stabilite 8 / 11

iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT ## DMZ ## Impostazioni che nattano i server presenti in DMZ e li rendono accessibili ## ad Internet sulle porte dei servizi di produzione ## Adattare e ampliare secondo proprie necessità ## Regole generali per permettere ai server in DMZ di accedere a servizi pubblici ## Sono proposti 2 approcci alternativi: ## A) Nessun filtro in uscita dalla DMZ ## B) Traffico in uscita limitato (può filtrare traffico necessario,customizzare) ## A) Nessun filtro in uscita dalla DMZ # iptables -A FORWARD -i $dmzint -o! $intint -j ACCEPT ## B) Traffico in uscita limitato (customizzare) ## ## iptables -A FORWARD -s $dmznet -i $dmzint -j DROP iptables -A FORWARD -i $dmzint -o! $intint -p tcp --dport 25 -j ACCEPT iptables -A FORWARD -i $dmzint -o! $intint -p tcp --dport 80 -j ACCEPT iptables -A FORWARD -i $dmzint -o! $intint -p udp --dport 53 -j ACCEPT iptables -A FORWARD -i $dmzint -o! $intint -p tcp --dport 25 -j ACCEPT iptables -A FORWARD -i $dmzint -o! $intint -p icmp --icmp-type destination-unreachable -j ACCEPT iptables -A FORWARD -i $dmzint -o! $intint -p icmp --icmp-type echo-reply -j ACCEPT iptables -A FORWARD -i $dmzint -o! $intint -p icmp --icmp-type echo-request -j ACCEPT ## Accesso totale da indirizzo di amministrazione anche a server in DMZ # iptables -A FORWARD -s $admin -j ACCEPT ############## ## Regole sul traffico da LAN a DMZ (accesso completo, restringere secondo necessità) iptables -A FORWARD -s $intnet -i $intint -d $dmznet -o $dmzint -j ACCEPT 9 / 11

## Natting di un server web, con accesso http pubblico e ftp da IP ## del webmaster. ## Vengono proposte due alternative: ## A) Natting 1 a 1, dove un IP pubblico corrisponde ad un IP interno ## B) Natting 1 a molti, dove a seconda della porta si redireziona su un diverso host interno ## IP pubblico del webserver (su rete esterna): #extipwebserver="172.16.0.30" ## Impostazione IP aliasing su interfaccia pubblica #ifconfig eth0:2 10.0.1.4 netmask 255.255.255.0 broadcast 10.0.0.255 ## IP privato del webserver (su dmz) #webserver="172.16.0.30" ## IP da cui può accedere un webmaster via ftp #webmaster="10.0.0.150" ## A) NATTING 1-1 (Viene usato l'ip esterno definito in: $extipwebserver) #iptables -t nat -A PREROUTING -d $extipwebserver -j DNAT --to-destination $webserver #iptables -t nat -A POSTROUTING -s $webserver -j SNAT --to-source $extipwebserver ## B) NATTING 1-* (Viene usato l'ip esterno del firewall) #iptables -t nat -A PREROUTING -d $extip -p tcp --dport 80 -j DNAT --to-destination $webserver:80 ## Regole di firewalling per permettere l'accesso da Internet ai servizi in DMZ #iptables -A FORWARD -d $webserver -p tcp --dport 80 -j ACCEPT #iptables -A FORWARD -d $webserver -s $webmaster -p tcp --dport 21 -j ACCEPT ## Natting di un terminal server. ## Sono definite le stesse logiche del webserver di cui sopra ## In forma compatta. Come sempre le opzioni A) o B) sono ALTERNATIVE fra loro ## IP Pubblico terminal server (solo per opzione A) # extipterminalserver="10.0.0.3" # ifconfig eth0:3 10.0.0.3 netmask 255.255.255.0 broadcast 10.0.0.255 ## IP privato (in DMZ) del terminal server ifconfig $dmzint 172.16.0.178 netmask 255.255.0.0 terminalserver="172.16.0.3" 10 / 11

## A) Natting 1-1 # iptables -t nat -A PREROUTING -d $extipterminalserver -j DNAT --to-destination $terminalserver # iptables -t nat -A POSTROUTING -s $terminalserver -j SNAT --to-source $extipterminalserver ## A) Natting 1-* iptables -t nat -A PREROUTING -d $extip -p tcp --dport 3389 -j DNAT --to-destination $terminalserver:3389 ## Traffico concesso da Internet a porta 3389 Terminal Server iptables -A FORWARD -d $terminalserver -p tcp --dport 3389 -j ACCEPT ## Source natting degli IP della DMZ su IP esterno ## Lasciare alla fine del blocco relativo alla DMZ iptables -t nat -A POSTROUTING -s $dmznet -j SNAT --to-source $extip ## LOGGING dei pacchetti eliminati ## Regole da inserire alla fine, appena prima del DROP di default ## Notare che non vengono loggati eventuali pacchetti eliminati precedentemente ## Vegnono loggati solo pacchetti unicast (no broadcast/multicast) con prefisso iptables -A INPUT -m pkttype --pkt-type unicast -j LOG --log-prefix "INPUT DROP: " iptables -A OUTPUT -m pkttype --pkt-type unicast -j LOG --log-prefix "OUTPUT DROP: " iptables -A FORWARD -m pkttype --pkt-type unicast -j LOG --log-prefix "FORWARD DROP: " 11 / 11