SlideShare a Scribd company logo
1 of 41
Progetto Reti
Azienda americana con filiali in Italia presenti
sia a Roma che a Milano
Description
http://www.uniroma1.it/Web
coltellese.1534700@studenti.uniroma1.itE-mail
S.Coltellese, F.Tanasache,N.MascaroAuthor(s)
1.3Version
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
copyright notice
All the pages/slides in this presentation, including but not limited to,
images, photos, animations, videos, sounds, music, and text
(hereby referred to as “material”) are protected by copyright.
This material, with the exception of some multimedia elements
licensed by other organizations, is property of the authors and/or
organizations appearing in the first slide.
This material, or its parts, can be reproduced and used for didactical
purposes within universities and schools, provided that this
happens for non-profit purposes.
Information contained in this material cannot be used within network
design projects or other products of any kind.
Any other use is prohibited, unless explicitly authorized by the
authors on the basis of an explicit agreement.
The authors assume no responsibility about this material and provide
this material “as is”, with no implicit or explicit warranty about the
correctness and completeness of its contents, which may be
subject to changes.
This copyright notice must always be redistributed together with the
material, or its portions.
Lab topologyLab topology rootNSrootNS
roma.euroma.eu
webing.comwebing.com
manhattan.usmanhattan.us
milano.eumilano.eu
test.eutest.eu
.us.us .eu.eu
server
3
Authority for
webing
Authority for
webing
dnsUS dnsEU
server
4
ns3
ns1
ns2
Authority for
manhattan.us
Authority for
manhattan.us
Authority for
roma.eu
Authority for
roma.eu
Authority for
milano.eu
Authority for
milano.eu
Authority for
.eu
Authority for
.eu
Authority for
.us
Authority for
.us
Authority for
test.eu
Authority for
test.eu
dnsCOM
comcom
Authority for
com
Authority for
com
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
rootNS
R3
A
8.2.2.0/24
B
server
1
server
2
server
back-
end
eth0
4
eth0
3
eth0
2
R6
R5
R4
R1
R2
ns1
ns3
ns2
client1
client2
hostMilano
server
5
eth0
1
eth0
1
eth0
1
eth0
1
eth3
1
eth1
1
eth0
2
150.168.0.0/24
server
3
E
C
D
I
H
NF
M
eth1
1
eth0
1
eth2
2
eth1
1
eth2
2
eth0
3
eth0
2
eth1
1
eth0
1
eth1
1
111.11.13.0/24
111.11.11.0/24
111.169.0.0/24
eth2
2
eth1
1
eth2
2
eth0
2
eth0
1
eth1
1
eth0
3
eth0
2
eth0
2
111.11.12.0/24
192.80.80.0/24
192.0.2.0/24
CA
137.168.1.0/24
eth3
1
X
eth0
2
115.15.15.0/30
192.167.5.0/24
eth0
3
eth0
2
eth2
1
eth0
4
eth0
3
server
4
192.0.0.0/24
192.0.1.0/24
eth0
2
network
running rip
network
running
ospf 30
3020
20
20
20
L
V
dnsUS
eth0
3
dnsEU
eth0
3dnsCOM
160.120.0.0/24
Z
eth0
2
eth4
1
NatUs
NatEueth1
1
20
R
111.11.14.0/24
20
20
20
20
eth0
2
192.168.1.0/24
G
eth1
1
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
Start lab
Usare il comando lstart per far partire il laboratorio
Per prima cosa ricordarsi di settare le variabili d'ambiente (per
esempio usando uno script).
user@lab_progetto:~$ lstart
Attendi l'avvio di tutte le macchine.
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
Protocolli di routing
 Per la rete in questione si è scelto un tipo di
routing dinamico e non statico per diversi motivi:
1. Tabelle di routing aggiornate in maniera
dinamica e non dal amministratore come per il
caso del routing statico.
2. Tipologia adatta sopratutto per reti di grandi e
grandissime dimensioni.
3. Reattivo ai guasti (il router conoscendo un
guasto cerca percorsi alternativi).
4. No congestionamento.
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
Protocolli di routing
 Ogni router nella nostra rete implementa un
protocollo di routing tramite il software
zebra/quagga. Quagga è costituito da un
insieme di demoni che implementano i vari
protocolli di routing. Le informazioni ottenute dai
vari protocolli sono “raggruppate” da un demone
specifico (Zebra) che ha il compito di
comunicare con il Kernel del PC. Ogni macchina
che è stata designata per fungere da router
avvia il software mediante il comando nel file
startup
● /etc/init.d/zebra start
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
Protocolli di routing
 Per mandare in esecuzione uno qualsiasi dei
demoni relativi ai protocolli di routing bisogna
scrivere un file di configurazione, cioè file di
testo in cui sono riportati dei comandi che
permettono di configurare la tipologia di
protocollo secondo le proprie esigenze. Nella
nostra rete utilizzeremo solo i protocolli di ospf e
rip.
 Per dire a zebra quali demoni si devono avviare
bisogna scrivere nel file daemons i seguenti
comandi in questo formato:
● zebra=yes
● ripd=no
● ospfd=yes
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
Protocolli di routing
 Nel file zebra.conf andranno le informazioni
generali come password e hostname e percorso
per il logfile:
● ! -*- zebra -*-
● !
● ! zebra configuration file
● !
● hostname zebra
● password zebra
● enable password zebra
● !
● !
● !
● log file /var/log/zebra/zebra.log
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
Protocolli di routing
 A seconda del protocollo scelto andremo a
creare un file specifico, per esempio se vogliamo
utilizzare il protocollo ospf andremo a scrivere
un file ospfd.conf di questo tipo dove come
metrica scegliamo la distanza fra due router,
questo per ogni interfaccia che fa utilizzo di ospf.
Inoltre distribuiamo le informazioni anche ai
router rip vicini su tutte le sottoreti direttamente
connesse:
● !
● hostname ospfd R3
● password zebra
● enable password zebra
● ! (segue slide successiva -->)
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
Protocolli di routing
● interface eth1
● ip ospf cost 20
● !
● interface eth2
● ip ospf cost 30
● !
● router ospf
● network 111.11.0.0/16 area 0
● redistribute connected
● redistribute rip
● !
● log stdout
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
NAT
 Entrambe le filiali hanno un indirizzamento
interno privato in modo da estendere il numero
di host interni. I servizi pubblici sono quindi
nattati. Le filiali hanno entrambe un router che
effettua questi compiti. Per entrambi i router nei
file di startup impostiamo le regole della tabella
NAT in particolare le catene
FORWARD,PREROUTING,POSTROUTING.
 La policy FORWARD permette ad un
amministratore di controllare dove vengono
diretti i pacchetti all'interno di una LAN.
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
NAT
 Iniziamo concedendo ai sistemi situati dietro
firewall/gateway, la possibilità di accedere alla
rete interna. Il gateway direziona i pacchetti da
un nodo LAN alla sua destinazione prevista,
passando tutti i pacchetti attraverso il proprio
dispositivo eth1.
● iptables -A FORWARD -i eth1 -j ACCEPT
● iptables -A FORWARD -o eth1 -j ACCEPT
 Ora configuriamo il firewall per l'IP
masquerading, il quale maschera le richieste
provenienti dai nodi LAN con l'indirizzo IP dei
dispositivi esterni del firewall (in questo caso,
eth0).
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
NAT
 POSTROUTING permette ai pacchetti di essere
modificati quando gli stessi abbandonano il
dispositivo esterno del firewall. Il target -j
MASQUERADE viene specificato in modo da
poter mascherare l'indirizzo IP privato di un
nodo, con l'indirizzo IP esterno del
firewall/gateway.
● iptables -t nat -A POSTROUTING -o eth0 -j
MASQUERADE
 Ora essendo in possesso di più server nella
nostra rete interna, desiderate rendere il
suddetto server disponibile esternamente, allora
usiamo il target -j DNAT della catena
PREROUTING in NAT.
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
NAT
 In questo modo siamo in grado di specificare
l'indirizzo IP di destinazione insieme ad una
porta dove i pacchetti in entrata, che richiedono
un collegamento al nostro servizio interno,
possono essere inoltrati. Nel nostro caso,
desideriamo inoltrare richieste HTTP in entrata,
al nostro sistema server Server HTTP Apache
bilanciando il carico sui vari server
● iptables -t nat -A PREROUTING -p tcp --dport
domain -i eth0 -j DNAT --to 150.168.0.4
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
NAT
 Solo per il router della server farm in US
rendiamo disponibile il server3 per i servizi di
DNS
● iptables -t nat -A PREROUTING -p tcp --dport
domain -i eth0 -j DNAT --to 150.168.0.4
● iptables -t nat -A PREROUTING -p udp --dport
domain -i eth0 -j DNAT --to 150.168.0.4
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
Tunneling
 OpenVPN è una soluzione Open Source che
opera in user space, creando un tunnel point-to-
point TCP over UDP che permette la creazione di
VPN.
 La necessità primaria di aziende, cooperative,
società o qualunque altro genere di
organizzazione è lo scambio di dati ed
informazioni fra sedi remote.
 Le VPN, per comunicare, usano un sistema di
tunnelling. Questo evita anche attacchi di tipo
spoofing (mascherare il proprio indirizzo IP).
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
Tunneling
 Come primo passo dobbiamo creare il certificato
e la chiave privata del CA (Certification
Authority):
 cd /home dove ci sono due eseguibili:
➔ createFolder.sh
➔ createKey.sh
 Lanciamo per ora solo l'eseguibile
createFolder.sh che ci crea ca.crt e ca.key:
● source createFolder.sh
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
Tunneling
 Con il secondo passo generiamo la chiave
privata e la richiesta di certificato di hostMilano
e server_back_end rispettivamente andando ad
eseguire sulla macchina virtuale hostMilano e
server_back_end un eseguibile come fatto in
precedenza per la CA.
● cd /home dove c'è l'eseguibile:
➔ pushkey.sh
 La password da digitare per la generazione della
chiave e del certificato é “root”. L'eseguibile non
fa altro che mandare a CA la richiesta propria
del certificato (hostMilano.csr e
server_back_end.csr).
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
Tunneling
 Il terzo passo consiste nella generazione ( e
invio) del certificato di hostMilano e
server_back_end da parte di CA (poichè
precedentemente con il passo 2 ha ricevuto le
due richieste di certificato) ai diretti interessati.
 Per questa operazione si esegue il secondo
comando situato nelle cartella home come
spiegato il precedenza:
● cd /home
● source createKey.sh
 Di seguito ci verrà chiesto le conferme per la
signature del certificato (digitare y per
conferma). Anche qui la password richiesta da
digitare è root (viene richiesta 4 volte).
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
Tunneling
 A questo punto dovremmo avere nella cartella
keys di hostMilano i seguenti file:
➔ ca.crt --> il certificato di CA
➔ hostMilano.csr -->la richesta di certificato
➔ hostMilano.crt -->il certificato generato da CA
➔ hostMilano.key -->la chiave privata
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
Tunneling
 Nella cartella keys di server_back_end:
➔ ca.crt --> il certificato di CA
➔ server_back_end.csr -->la richesta di certificato
➔ server_back_end.crt -->il certificato generato da
CA
➔ server_back_end.key -->la chiave privata
● Eseguire inoltre il comando per generare la
chiave di Diffie-Helllman
➔ /etc/openvpn/2.0/build-dh
➔ Dh1024.pem -->la chiave Diffie-Hellman
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
Tunneling
 L'ultimo e il più importante passo è la
configurazione l'avvio del server.
 Per avviare il server dobbiamo semplicemente
eseguire l'eseguibile nella cartella /home del
server:
 Source start_openvpn.sh
 Per la giusta verifica del server diamo il
comando ifconfig tun0 e per un corretto
funzionamento dovremmo visualizzare
l'interfaccia VPN da utilizzare.
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
Tunneling
 La stessa cosa la andremo a fare sul client (nel
nostro caso hostMilano).
● source start_openvpn.sh
 Un ulteriore test effettuato consiste nel catturare
alcuni pacchetti tramite Wireshark facendo il
ping da hostMilano a server_back_end.
● ping 10.8.0.1
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
Tunneling
Row 1 Row 2 Row 3 Row 4
0
2
4
6
8
10
12
Column 1
Column 2
Column 3
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
DNS e Load Balancing
 Come illustrato nella slide 3 ci sono diverse autorità per ogni
zona. Questa scelta porta diversi vantaggi:
1. Minore tolleranza ai guasti
2. Traffico eccessivo evitato
3. Problema Database centrale troppo distante
4. Scalabilità
 I server {1, 2, 3, 4, 5} sono tutti web server che usano apache2
(hanno tutti il file /var/www/index.html)
 Inoltre I server {3, 4} sono anche server DNS (oltre al file
index.html eseguono il comando bind poichè sono autorità per la
zona webing.com e roma.eu rispettivamente)
 DnsUS e dnsEU sono autorità per le zona US ed EU.
 DnsCOM è autorità per la zona COM.
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
DNS e Load Balancing
 Ns1, ns2, ns3 sono le autorità per le zone manhattan, test,
milano rispettivamente.
 Esempio di prova:
client2client2
client2:~# ping client2.test.eu
 Il load balancing è stato fatto sia su base geografica sia in base
al carico. Quest'ultima scelta è dovuta al fatto che un solo server
web sarebbe stato sovracaricato da una eccessiva richiesta del
servizio web.
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
DNS e Load Balancing
 Il carico è stato distribuito in base alla locazione del richiedente.
 Il servizio web è offerto sotto il nome www.webing.com.
 Le richieste proveniente dall'America (per esempio da
client1.manhattan.us) saranno servite dalla server farm-us
(server1, server2, server3) su cui è stato scelta una politica di
tipo random per il bilanciamento del carico.
 Le richieste proveniente dall'Europa (per esempio da
client2.test.eu) saranno servite dalla server farm-eu(server4,
server5 )su cui è stato scelta una politica di tipo cyclic per il
bilanciamento del carico.
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
DNS e Load Balancing
 Si può eseguire un test attraverso il comando dig
www.webing.com oppure lanciare lo script del client 1 e 2
count_server_replies.sh che effettua N richieste del servizio web
contando quante volte ha risposto un determinato server in base
alla scelta del tipo di bilanciamento (cyclic or random).
 Esempio
client1:~# source count_server_replies.sh
Sending 100 requests to www.webing.com...
33 replies received from server 1
34 replies received from server 2
33 replies received from server 2
client1client1
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
Firewall
 Per configurare il nostro firewall inseriamo nel
nostro file di startup dei comandi che
modificheranno l'iptables.La configurazione
scelta permetterà solo i servizi di ssh ed http/s,
facendo attenzione a configurare correttamente
i nostri server DNS.La configurazione è
minimale, pensata per un server pubblico che
distribuisce contenuti tramite http da controllare
con ssh(il caso più comune).
 La politica scelta per la nostra iptables per
quanto riguarda la tabella FILTER è quella di
scartare tutti i pacchetti di INPUT che non sono
considerati dalle nostre rules(regole)e lo stesso
per la FORWARD.
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
Firewall
 Per la tabella di OUTPUT vogliamo permettere
qualsiasi traffico in uscita quindi scegliamo come
politica ACCEPT:
● iptables -P INPUT DROP
● iptables -P FORWARD DROP
● iptables -P OUTPUT ACCEPT
 Innanzitutto dobbiamo consentire tutto il traffico
interno al nostro computer, che passa per
l'interfaccia di loopback "lo":
● iptables -A INPUT -i lo -j ACCEPT
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
Firewall
 La seconda cosa che faremo è navigare nel web
e più in generale lasciare entrare tutto il traffico
che è stato da noi richiesto e stabilito:
● iptables -A INPUT -m state --state
RELATED,ESTABLISHED -j ACCEPT
● iptables -A INPUT -m conntrack --ctstate
ESTABLISHED,RELATED -j ACCEPT
 Ora i servizi che noi vogliamo permettere,
iniziamo con ssh:
● iptables -A INPUT -p tcp --dport ssh -j ACCEPT
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
Firewall
 Il server web usa la porta 80(http) e 443(https),
quindi consentiamo tutto il traffico che
dall'esterno chiede di entrare attraverso la
nostra porta 80 e 443:
● iptables -A INPUT -p tcp --dport 80 -j ACCEPT
● iptables -A INPUT -p tcp --dport 443 -j ACCEPT
 Dobbiamo anche consentire le risposte DNS in
ingresso da nostri server DNS:
● iptables -A INPUT -s xxx.xxx.xxx.xxx -i eth0 -p
udp -m state --state ESTABLISHED -m udp --sport
53 -j ACCEPT
● iptables -A INPUT -s xxx.xxx.xxx.xxx -i eth0 -p
tcp -m tcp --sport 53 -m state --state
ESTABLISHED -j ACCEPT
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
Firewall
 Scartiamo tutto il resto:
● iptables -A INPUT -j DROP
 Infine scegliamo come livello di registrazione di
dati di log 7, cioè il minimo livello per mantenere
informazioni e permettere debug per evitare di
mantenere troppe informazioni dei registri del
server:
● iptables -I INPUT 5 -m limit --limit 5/min -j LOG
--log-prefix "iptables denied: " --log-level 7
 Per visionare il nostro piccolo firewall:
● sudo iptables -vv -L
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
devices
network
interface
card
router
switch
hub
pc
pc with
mua
pc
laptop
named
router
firewalled
router
firewall
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
servers
server
name
server
mail
exchanger
mail transfer
agent
mx + ns
mx + ns +
mta
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
tunnels
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
windows
pc2:~# ping 195.11.14.5 ┃
pc2pc2pc2pc2
user@localhost:~$ cd netkit-lab_arp
user@localhost:~/netkit-lab_arp$ lstart ┃
host machinehost machinehost machinehost machine
user@localhost:~$ cd netkit-lab_arp
user@localhost:~/netkit-lab_arp$ lstart ┃
host machinehost machinehost machinehost machine
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
callouts
description of
a specific
element on
the page
description of
a specific
element on
the page
some notessome notes
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
other symbols
data
routing
software
sniffer
autonomous system
mail
netkit – [ footer ]© Some Organization
Ltd.
last update: some-date
C
eth1
1
AS1
AS2eth0
2
200.1.1.0/24
eth0
1
A
B
eth1
1
195.11.14.0/24
193.10.11.0/24
sample
interdomain
topology

More Related Content

What's hot

Realizzare una rete aziendale con linux e samba
Realizzare una rete aziendale con linux e sambaRealizzare una rete aziendale con linux e samba
Realizzare una rete aziendale con linux e sambaAndrea Mauro
 
Una rete aziendale con Linux
Una rete aziendale con LinuxUna rete aziendale con Linux
Una rete aziendale con LinuxFrancesco Taurino
 
Introduzione a Linux: differenze con windows e strumenti per la programmazione
Introduzione a Linux: differenze con windows e strumenti per la programmazioneIntroduzione a Linux: differenze con windows e strumenti per la programmazione
Introduzione a Linux: differenze con windows e strumenti per la programmazioneValerio Bruno
 
Network configuration - IPTables firewall
 Network configuration - IPTables firewall Network configuration - IPTables firewall
Network configuration - IPTables firewallFulvio Corno
 
Installazione di koha_su_debian_v2_0_20_12_2014
Installazione di koha_su_debian_v2_0_20_12_2014Installazione di koha_su_debian_v2_0_20_12_2014
Installazione di koha_su_debian_v2_0_20_12_2014Joaquim Hangalo
 
CodingGym - Lezione 3 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 3 - Corso Linux, Android e Internet of ThingsCodingGym - Lezione 3 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 3 - Corso Linux, Android e Internet of ThingsMirko Mancin
 
From Scratch To Network - User mode linux
From Scratch To Network - User mode linuxFrom Scratch To Network - User mode linux
From Scratch To Network - User mode linuxMajong DevJfu
 
CatraStreamingPlatform_RedHatMagazine
CatraStreamingPlatform_RedHatMagazineCatraStreamingPlatform_RedHatMagazine
CatraStreamingPlatform_RedHatMagazineGiuliano Catrambone
 
Nagios in alta affidabilità con strumenti open source
Nagios in alta affidabilità con strumenti open sourceNagios in alta affidabilità con strumenti open source
Nagios in alta affidabilità con strumenti open sourceBabel
 
Monitoraggio ambientale a basso costo - 2
Monitoraggio ambientale a basso costo - 2Monitoraggio ambientale a basso costo - 2
Monitoraggio ambientale a basso costo - 2Francesco Taurino
 
[LDNA2018] - JACK Audio Connection Kit: la tua Patchbay virtuale!
[LDNA2018] - JACK Audio Connection Kit: la tua Patchbay virtuale![LDNA2018] - JACK Audio Connection Kit: la tua Patchbay virtuale!
[LDNA2018] - JACK Audio Connection Kit: la tua Patchbay virtuale!Marcello Marino
 
Introduzione ad ubuntu core - Qt day 2017
Introduzione ad ubuntu core  - Qt day 2017Introduzione ad ubuntu core  - Qt day 2017
Introduzione ad ubuntu core - Qt day 2017Marco Trevisan
 
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi Cluster
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi ClusterCodemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi Cluster
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi ClusterMatteo Baccan
 
introduzione_a_pfSense
introduzione_a_pfSenseintroduzione_a_pfSense
introduzione_a_pfSenseMassimo Giaimo
 
Raspberry omv
Raspberry omvRaspberry omv
Raspberry omvPipperss
 

What's hot (20)

Realizzare una rete aziendale con linux e samba
Realizzare una rete aziendale con linux e sambaRealizzare una rete aziendale con linux e samba
Realizzare una rete aziendale con linux e samba
 
Una rete aziendale con Linux
Una rete aziendale con LinuxUna rete aziendale con Linux
Una rete aziendale con Linux
 
Introduzione a Linux: differenze con windows e strumenti per la programmazione
Introduzione a Linux: differenze con windows e strumenti per la programmazioneIntroduzione a Linux: differenze con windows e strumenti per la programmazione
Introduzione a Linux: differenze con windows e strumenti per la programmazione
 
Network configuration - IPTables firewall
 Network configuration - IPTables firewall Network configuration - IPTables firewall
Network configuration - IPTables firewall
 
Oltre I firewall
Oltre I firewallOltre I firewall
Oltre I firewall
 
Openmoko
OpenmokoOpenmoko
Openmoko
 
Installazione di koha_su_debian_v2_0_20_12_2014
Installazione di koha_su_debian_v2_0_20_12_2014Installazione di koha_su_debian_v2_0_20_12_2014
Installazione di koha_su_debian_v2_0_20_12_2014
 
CodingGym - Lezione 3 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 3 - Corso Linux, Android e Internet of ThingsCodingGym - Lezione 3 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 3 - Corso Linux, Android e Internet of Things
 
Packet Sniffing
Packet SniffingPacket Sniffing
Packet Sniffing
 
From Scratch To Network - User mode linux
From Scratch To Network - User mode linuxFrom Scratch To Network - User mode linux
From Scratch To Network - User mode linux
 
CatraStreamingPlatform_RedHatMagazine
CatraStreamingPlatform_RedHatMagazineCatraStreamingPlatform_RedHatMagazine
CatraStreamingPlatform_RedHatMagazine
 
Nagios in alta affidabilità con strumenti open source
Nagios in alta affidabilità con strumenti open sourceNagios in alta affidabilità con strumenti open source
Nagios in alta affidabilità con strumenti open source
 
PfSense Cluster
PfSense ClusterPfSense Cluster
PfSense Cluster
 
Monitoraggio ambientale a basso costo - 2
Monitoraggio ambientale a basso costo - 2Monitoraggio ambientale a basso costo - 2
Monitoraggio ambientale a basso costo - 2
 
[LDNA2018] - JACK Audio Connection Kit: la tua Patchbay virtuale!
[LDNA2018] - JACK Audio Connection Kit: la tua Patchbay virtuale![LDNA2018] - JACK Audio Connection Kit: la tua Patchbay virtuale!
[LDNA2018] - JACK Audio Connection Kit: la tua Patchbay virtuale!
 
Introduzione ad ubuntu core - Qt day 2017
Introduzione ad ubuntu core  - Qt day 2017Introduzione ad ubuntu core  - Qt day 2017
Introduzione ad ubuntu core - Qt day 2017
 
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi Cluster
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi ClusterCodemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi Cluster
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi Cluster
 
introduzione_a_pfSense
introduzione_a_pfSenseintroduzione_a_pfSense
introduzione_a_pfSense
 
Raspberry omv
Raspberry omvRaspberry omv
Raspberry omv
 
LTSP
LTSPLTSP
LTSP
 

Viewers also liked

Security assessment of mediawiki web-application
Security assessment of mediawiki web-applicationSecurity assessment of mediawiki web-application
Security assessment of mediawiki web-applicationFlorin D. Tanasache
 
Seguridad de informatica
Seguridad de informaticaSeguridad de informatica
Seguridad de informaticaLautaro Lopez
 
настановча нарада по школі безкеки
настановча нарада по школі безкекинастановча нарада по школі безкеки
настановча нарада по школі безкекиОлена Шийка
 
Prediksi paket-5
Prediksi paket-5Prediksi paket-5
Prediksi paket-5Shinta rama
 
La idea principal era sacar un producto para sustituir las torres de refriger...
La idea principal era sacar un producto para sustituir las torres de refriger...La idea principal era sacar un producto para sustituir las torres de refriger...
La idea principal era sacar un producto para sustituir las torres de refriger...Atecan Andalucia
 
2.anjuranmenyantunikaumduafa
2.anjuranmenyantunikaumduafa2.anjuranmenyantunikaumduafa
2.anjuranmenyantunikaumduafainspekturade
 
Aguettant launches the first Sulfite Free EPINEPHRINE plastic Pre-Filled syringe
Aguettant launches the first Sulfite Free EPINEPHRINE plastic Pre-Filled syringeAguettant launches the first Sulfite Free EPINEPHRINE plastic Pre-Filled syringe
Aguettant launches the first Sulfite Free EPINEPHRINE plastic Pre-Filled syringeDanielle Labreche
 

Viewers also liked (15)

Thesis
ThesisThesis
Thesis
 
Security assessment of mediawiki web-application
Security assessment of mediawiki web-applicationSecurity assessment of mediawiki web-application
Security assessment of mediawiki web-application
 
Fuerzas
FuerzasFuerzas
Fuerzas
 
Red natura 2013
Red natura 2013 Red natura 2013
Red natura 2013
 
Seguridad de informatica
Seguridad de informaticaSeguridad de informatica
Seguridad de informatica
 
Śniadanie Daje Moc
Śniadanie Daje MocŚniadanie Daje Moc
Śniadanie Daje Moc
 
настановча нарада по школі безкеки
настановча нарада по школі безкекинастановча нарада по школі безкеки
настановча нарада по школі безкеки
 
Prediksi paket-5
Prediksi paket-5Prediksi paket-5
Prediksi paket-5
 
La idea principal era sacar un producto para sustituir las torres de refriger...
La idea principal era sacar un producto para sustituir las torres de refriger...La idea principal era sacar un producto para sustituir las torres de refriger...
La idea principal era sacar un producto para sustituir las torres de refriger...
 
2.anjuranmenyantunikaumduafa
2.anjuranmenyantunikaumduafa2.anjuranmenyantunikaumduafa
2.anjuranmenyantunikaumduafa
 
Aguettant launches the first Sulfite Free EPINEPHRINE plastic Pre-Filled syringe
Aguettant launches the first Sulfite Free EPINEPHRINE plastic Pre-Filled syringeAguettant launches the first Sulfite Free EPINEPHRINE plastic Pre-Filled syringe
Aguettant launches the first Sulfite Free EPINEPHRINE plastic Pre-Filled syringe
 
Cacu
CacuCacu
Cacu
 
wiki
wiki wiki
wiki
 
Guía de exel
Guía de exelGuía de exel
Guía de exel
 
Game changer session by dr. a. velumani, thyrocare
Game changer session by dr.  a. velumani, thyrocareGame changer session by dr.  a. velumani, thyrocare
Game changer session by dr. a. velumani, thyrocare
 

Similar to Progetto Netkit

[Ldna 2019 marcello marino] mt's driver ravenna aes67 audio contribution over...
[Ldna 2019 marcello marino] mt's driver ravenna aes67 audio contribution over...[Ldna 2019 marcello marino] mt's driver ravenna aes67 audio contribution over...
[Ldna 2019 marcello marino] mt's driver ravenna aes67 audio contribution over...Marcello Marino
 
Azure IoTHub - Roboval 2018
Azure IoTHub - Roboval 2018Azure IoTHub - Roboval 2018
Azure IoTHub - Roboval 2018Andrea Tosato
 
Monitoraggio della rete con cacti
Monitoraggio della rete con cactiMonitoraggio della rete con cacti
Monitoraggio della rete con cactidalegiuseppe
 
Pf e netfilter, analisi dei firewall open source
Pf e netfilter, analisi dei firewall open sourcePf e netfilter, analisi dei firewall open source
Pf e netfilter, analisi dei firewall open sourceGiovanni Bechis
 
Cloudup, cloud server al minuto
Cloudup, cloud server al minutoCloudup, cloud server al minuto
Cloudup, cloud server al minutoENTER S.r.l.
 
Snort React per Webfiltering : "Soluzioni per le Leggi-Lista"
Snort React per Webfiltering : "Soluzioni per le Leggi-Lista"Snort React per Webfiltering : "Soluzioni per le Leggi-Lista"
Snort React per Webfiltering : "Soluzioni per le Leggi-Lista"Camelug Fava
 
Web RTC: Nato per comunicare
Web RTC: Nato per comunicareWeb RTC: Nato per comunicare
Web RTC: Nato per comunicareIvano Malavolta
 
Traffic Shaping Su Linux
Traffic Shaping Su LinuxTraffic Shaping Su Linux
Traffic Shaping Su LinuxMajong DevJfu
 
ClearOS - Linux Small Business Server
ClearOS - Linux Small Business ServerClearOS - Linux Small Business Server
ClearOS - Linux Small Business ServerFrancesco Taurino
 
Hacking Access Point con Firmware Open Source
Hacking Access Point con Firmware Open SourceHacking Access Point con Firmware Open Source
Hacking Access Point con Firmware Open SourceClaudio Cardinali
 
TOR - The Onion Router
TOR - The Onion Router TOR - The Onion Router
TOR - The Onion Router Marcello Viti
 
Aruba, Dell e Intel: una partnership d'eccezione
Aruba, Dell e Intel: una partnership d'eccezioneAruba, Dell e Intel: una partnership d'eccezione
Aruba, Dell e Intel: una partnership d'eccezioneAruba S.p.A.
 
Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)
Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)
Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)Gabriele Guizzardi
 
Glusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatileGlusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatileIvan Rossi
 
Glusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatileGlusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatileBioDec
 
IoT: protocolli, dispositivi, architetture
IoT: protocolli, dispositivi, architettureIoT: protocolli, dispositivi, architetture
IoT: protocolli, dispositivi, architettureStefano Valle
 

Similar to Progetto Netkit (20)

The Missing Link
The Missing LinkThe Missing Link
The Missing Link
 
[Ldna 2019 marcello marino] mt's driver ravenna aes67 audio contribution over...
[Ldna 2019 marcello marino] mt's driver ravenna aes67 audio contribution over...[Ldna 2019 marcello marino] mt's driver ravenna aes67 audio contribution over...
[Ldna 2019 marcello marino] mt's driver ravenna aes67 audio contribution over...
 
Azure IoTHub - Roboval 2018
Azure IoTHub - Roboval 2018Azure IoTHub - Roboval 2018
Azure IoTHub - Roboval 2018
 
Monitoraggio della rete con cacti
Monitoraggio della rete con cactiMonitoraggio della rete con cacti
Monitoraggio della rete con cacti
 
Pf e netfilter, analisi dei firewall open source
Pf e netfilter, analisi dei firewall open sourcePf e netfilter, analisi dei firewall open source
Pf e netfilter, analisi dei firewall open source
 
Cloudup, cloud server al minuto
Cloudup, cloud server al minutoCloudup, cloud server al minuto
Cloudup, cloud server al minuto
 
Snort React per Webfiltering : "Soluzioni per le Leggi-Lista"
Snort React per Webfiltering : "Soluzioni per le Leggi-Lista"Snort React per Webfiltering : "Soluzioni per le Leggi-Lista"
Snort React per Webfiltering : "Soluzioni per le Leggi-Lista"
 
Web RTC: Nato per comunicare
Web RTC: Nato per comunicareWeb RTC: Nato per comunicare
Web RTC: Nato per comunicare
 
Traffic Shaping Su Linux
Traffic Shaping Su LinuxTraffic Shaping Su Linux
Traffic Shaping Su Linux
 
ClearOS - Linux Small Business Server
ClearOS - Linux Small Business ServerClearOS - Linux Small Business Server
ClearOS - Linux Small Business Server
 
Hacking Access Point con Firmware Open Source
Hacking Access Point con Firmware Open SourceHacking Access Point con Firmware Open Source
Hacking Access Point con Firmware Open Source
 
Idp, passo dopo passo!
Idp, passo dopo passo!Idp, passo dopo passo!
Idp, passo dopo passo!
 
TOR - The Onion Router
TOR - The Onion Router TOR - The Onion Router
TOR - The Onion Router
 
Aruba, Dell e Intel: una partnership d'eccezione
Aruba, Dell e Intel: una partnership d'eccezioneAruba, Dell e Intel: una partnership d'eccezione
Aruba, Dell e Intel: una partnership d'eccezione
 
Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)
Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)
Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)
 
Glusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatileGlusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatile
 
Glusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatileGlusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatile
 
Slide Bit Torrent
Slide Bit TorrentSlide Bit Torrent
Slide Bit Torrent
 
IoT: protocolli, dispositivi, architetture
IoT: protocolli, dispositivi, architettureIoT: protocolli, dispositivi, architetture
IoT: protocolli, dispositivi, architetture
 
Reti Domestiche
Reti DomesticheReti Domestiche
Reti Domestiche
 

Progetto Netkit

  • 1. Progetto Reti Azienda americana con filiali in Italia presenti sia a Roma che a Milano Description http://www.uniroma1.it/Web coltellese.1534700@studenti.uniroma1.itE-mail S.Coltellese, F.Tanasache,N.MascaroAuthor(s) 1.3Version
  • 2. netkit – [ footer ]© Some Organization Ltd. last update: some-date copyright notice All the pages/slides in this presentation, including but not limited to, images, photos, animations, videos, sounds, music, and text (hereby referred to as “material”) are protected by copyright. This material, with the exception of some multimedia elements licensed by other organizations, is property of the authors and/or organizations appearing in the first slide. This material, or its parts, can be reproduced and used for didactical purposes within universities and schools, provided that this happens for non-profit purposes. Information contained in this material cannot be used within network design projects or other products of any kind. Any other use is prohibited, unless explicitly authorized by the authors on the basis of an explicit agreement. The authors assume no responsibility about this material and provide this material “as is”, with no implicit or explicit warranty about the correctness and completeness of its contents, which may be subject to changes. This copyright notice must always be redistributed together with the material, or its portions.
  • 3. Lab topologyLab topology rootNSrootNS roma.euroma.eu webing.comwebing.com manhattan.usmanhattan.us milano.eumilano.eu test.eutest.eu .us.us .eu.eu server 3 Authority for webing Authority for webing dnsUS dnsEU server 4 ns3 ns1 ns2 Authority for manhattan.us Authority for manhattan.us Authority for roma.eu Authority for roma.eu Authority for milano.eu Authority for milano.eu Authority for .eu Authority for .eu Authority for .us Authority for .us Authority for test.eu Authority for test.eu dnsCOM comcom Authority for com Authority for com
  • 4. netkit – [ footer ]© Some Organization Ltd. last update: some-date rootNS R3 A 8.2.2.0/24 B server 1 server 2 server back- end eth0 4 eth0 3 eth0 2 R6 R5 R4 R1 R2 ns1 ns3 ns2 client1 client2 hostMilano server 5 eth0 1 eth0 1 eth0 1 eth0 1 eth3 1 eth1 1 eth0 2 150.168.0.0/24 server 3 E C D I H NF M eth1 1 eth0 1 eth2 2 eth1 1 eth2 2 eth0 3 eth0 2 eth1 1 eth0 1 eth1 1 111.11.13.0/24 111.11.11.0/24 111.169.0.0/24 eth2 2 eth1 1 eth2 2 eth0 2 eth0 1 eth1 1 eth0 3 eth0 2 eth0 2 111.11.12.0/24 192.80.80.0/24 192.0.2.0/24 CA 137.168.1.0/24 eth3 1 X eth0 2 115.15.15.0/30 192.167.5.0/24 eth0 3 eth0 2 eth2 1 eth0 4 eth0 3 server 4 192.0.0.0/24 192.0.1.0/24 eth0 2 network running rip network running ospf 30 3020 20 20 20 L V dnsUS eth0 3 dnsEU eth0 3dnsCOM 160.120.0.0/24 Z eth0 2 eth4 1 NatUs NatEueth1 1 20 R 111.11.14.0/24 20 20 20 20 eth0 2 192.168.1.0/24 G eth1 1
  • 5. netkit – [ footer ]© Some Organization Ltd. last update: some-date Start lab Usare il comando lstart per far partire il laboratorio Per prima cosa ricordarsi di settare le variabili d'ambiente (per esempio usando uno script). user@lab_progetto:~$ lstart Attendi l'avvio di tutte le macchine.
  • 6. netkit – [ footer ]© Some Organization Ltd. last update: some-date Protocolli di routing  Per la rete in questione si è scelto un tipo di routing dinamico e non statico per diversi motivi: 1. Tabelle di routing aggiornate in maniera dinamica e non dal amministratore come per il caso del routing statico. 2. Tipologia adatta sopratutto per reti di grandi e grandissime dimensioni. 3. Reattivo ai guasti (il router conoscendo un guasto cerca percorsi alternativi). 4. No congestionamento.
  • 7. netkit – [ footer ]© Some Organization Ltd. last update: some-date Protocolli di routing  Ogni router nella nostra rete implementa un protocollo di routing tramite il software zebra/quagga. Quagga è costituito da un insieme di demoni che implementano i vari protocolli di routing. Le informazioni ottenute dai vari protocolli sono “raggruppate” da un demone specifico (Zebra) che ha il compito di comunicare con il Kernel del PC. Ogni macchina che è stata designata per fungere da router avvia il software mediante il comando nel file startup ● /etc/init.d/zebra start
  • 8. netkit – [ footer ]© Some Organization Ltd. last update: some-date Protocolli di routing  Per mandare in esecuzione uno qualsiasi dei demoni relativi ai protocolli di routing bisogna scrivere un file di configurazione, cioè file di testo in cui sono riportati dei comandi che permettono di configurare la tipologia di protocollo secondo le proprie esigenze. Nella nostra rete utilizzeremo solo i protocolli di ospf e rip.  Per dire a zebra quali demoni si devono avviare bisogna scrivere nel file daemons i seguenti comandi in questo formato: ● zebra=yes ● ripd=no ● ospfd=yes
  • 9. netkit – [ footer ]© Some Organization Ltd. last update: some-date Protocolli di routing  Nel file zebra.conf andranno le informazioni generali come password e hostname e percorso per il logfile: ● ! -*- zebra -*- ● ! ● ! zebra configuration file ● ! ● hostname zebra ● password zebra ● enable password zebra ● ! ● ! ● ! ● log file /var/log/zebra/zebra.log
  • 10. netkit – [ footer ]© Some Organization Ltd. last update: some-date Protocolli di routing  A seconda del protocollo scelto andremo a creare un file specifico, per esempio se vogliamo utilizzare il protocollo ospf andremo a scrivere un file ospfd.conf di questo tipo dove come metrica scegliamo la distanza fra due router, questo per ogni interfaccia che fa utilizzo di ospf. Inoltre distribuiamo le informazioni anche ai router rip vicini su tutte le sottoreti direttamente connesse: ● ! ● hostname ospfd R3 ● password zebra ● enable password zebra ● ! (segue slide successiva -->)
  • 11. netkit – [ footer ]© Some Organization Ltd. last update: some-date Protocolli di routing ● interface eth1 ● ip ospf cost 20 ● ! ● interface eth2 ● ip ospf cost 30 ● ! ● router ospf ● network 111.11.0.0/16 area 0 ● redistribute connected ● redistribute rip ● ! ● log stdout
  • 12. netkit – [ footer ]© Some Organization Ltd. last update: some-date NAT  Entrambe le filiali hanno un indirizzamento interno privato in modo da estendere il numero di host interni. I servizi pubblici sono quindi nattati. Le filiali hanno entrambe un router che effettua questi compiti. Per entrambi i router nei file di startup impostiamo le regole della tabella NAT in particolare le catene FORWARD,PREROUTING,POSTROUTING.  La policy FORWARD permette ad un amministratore di controllare dove vengono diretti i pacchetti all'interno di una LAN.
  • 13. netkit – [ footer ]© Some Organization Ltd. last update: some-date NAT  Iniziamo concedendo ai sistemi situati dietro firewall/gateway, la possibilità di accedere alla rete interna. Il gateway direziona i pacchetti da un nodo LAN alla sua destinazione prevista, passando tutti i pacchetti attraverso il proprio dispositivo eth1. ● iptables -A FORWARD -i eth1 -j ACCEPT ● iptables -A FORWARD -o eth1 -j ACCEPT  Ora configuriamo il firewall per l'IP masquerading, il quale maschera le richieste provenienti dai nodi LAN con l'indirizzo IP dei dispositivi esterni del firewall (in questo caso, eth0).
  • 14. netkit – [ footer ]© Some Organization Ltd. last update: some-date NAT  POSTROUTING permette ai pacchetti di essere modificati quando gli stessi abbandonano il dispositivo esterno del firewall. Il target -j MASQUERADE viene specificato in modo da poter mascherare l'indirizzo IP privato di un nodo, con l'indirizzo IP esterno del firewall/gateway. ● iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE  Ora essendo in possesso di più server nella nostra rete interna, desiderate rendere il suddetto server disponibile esternamente, allora usiamo il target -j DNAT della catena PREROUTING in NAT.
  • 15. netkit – [ footer ]© Some Organization Ltd. last update: some-date NAT  In questo modo siamo in grado di specificare l'indirizzo IP di destinazione insieme ad una porta dove i pacchetti in entrata, che richiedono un collegamento al nostro servizio interno, possono essere inoltrati. Nel nostro caso, desideriamo inoltrare richieste HTTP in entrata, al nostro sistema server Server HTTP Apache bilanciando il carico sui vari server ● iptables -t nat -A PREROUTING -p tcp --dport domain -i eth0 -j DNAT --to 150.168.0.4
  • 16. netkit – [ footer ]© Some Organization Ltd. last update: some-date NAT  Solo per il router della server farm in US rendiamo disponibile il server3 per i servizi di DNS ● iptables -t nat -A PREROUTING -p tcp --dport domain -i eth0 -j DNAT --to 150.168.0.4 ● iptables -t nat -A PREROUTING -p udp --dport domain -i eth0 -j DNAT --to 150.168.0.4
  • 17. netkit – [ footer ]© Some Organization Ltd. last update: some-date Tunneling  OpenVPN è una soluzione Open Source che opera in user space, creando un tunnel point-to- point TCP over UDP che permette la creazione di VPN.  La necessità primaria di aziende, cooperative, società o qualunque altro genere di organizzazione è lo scambio di dati ed informazioni fra sedi remote.  Le VPN, per comunicare, usano un sistema di tunnelling. Questo evita anche attacchi di tipo spoofing (mascherare il proprio indirizzo IP).
  • 18. netkit – [ footer ]© Some Organization Ltd. last update: some-date Tunneling  Come primo passo dobbiamo creare il certificato e la chiave privata del CA (Certification Authority):  cd /home dove ci sono due eseguibili: ➔ createFolder.sh ➔ createKey.sh  Lanciamo per ora solo l'eseguibile createFolder.sh che ci crea ca.crt e ca.key: ● source createFolder.sh
  • 19. netkit – [ footer ]© Some Organization Ltd. last update: some-date Tunneling  Con il secondo passo generiamo la chiave privata e la richiesta di certificato di hostMilano e server_back_end rispettivamente andando ad eseguire sulla macchina virtuale hostMilano e server_back_end un eseguibile come fatto in precedenza per la CA. ● cd /home dove c'è l'eseguibile: ➔ pushkey.sh  La password da digitare per la generazione della chiave e del certificato é “root”. L'eseguibile non fa altro che mandare a CA la richiesta propria del certificato (hostMilano.csr e server_back_end.csr).
  • 20. netkit – [ footer ]© Some Organization Ltd. last update: some-date Tunneling  Il terzo passo consiste nella generazione ( e invio) del certificato di hostMilano e server_back_end da parte di CA (poichè precedentemente con il passo 2 ha ricevuto le due richieste di certificato) ai diretti interessati.  Per questa operazione si esegue il secondo comando situato nelle cartella home come spiegato il precedenza: ● cd /home ● source createKey.sh  Di seguito ci verrà chiesto le conferme per la signature del certificato (digitare y per conferma). Anche qui la password richiesta da digitare è root (viene richiesta 4 volte).
  • 21. netkit – [ footer ]© Some Organization Ltd. last update: some-date Tunneling  A questo punto dovremmo avere nella cartella keys di hostMilano i seguenti file: ➔ ca.crt --> il certificato di CA ➔ hostMilano.csr -->la richesta di certificato ➔ hostMilano.crt -->il certificato generato da CA ➔ hostMilano.key -->la chiave privata
  • 22. netkit – [ footer ]© Some Organization Ltd. last update: some-date Tunneling  Nella cartella keys di server_back_end: ➔ ca.crt --> il certificato di CA ➔ server_back_end.csr -->la richesta di certificato ➔ server_back_end.crt -->il certificato generato da CA ➔ server_back_end.key -->la chiave privata ● Eseguire inoltre il comando per generare la chiave di Diffie-Helllman ➔ /etc/openvpn/2.0/build-dh ➔ Dh1024.pem -->la chiave Diffie-Hellman
  • 23. netkit – [ footer ]© Some Organization Ltd. last update: some-date Tunneling  L'ultimo e il più importante passo è la configurazione l'avvio del server.  Per avviare il server dobbiamo semplicemente eseguire l'eseguibile nella cartella /home del server:  Source start_openvpn.sh  Per la giusta verifica del server diamo il comando ifconfig tun0 e per un corretto funzionamento dovremmo visualizzare l'interfaccia VPN da utilizzare.
  • 24. netkit – [ footer ]© Some Organization Ltd. last update: some-date Tunneling  La stessa cosa la andremo a fare sul client (nel nostro caso hostMilano). ● source start_openvpn.sh  Un ulteriore test effettuato consiste nel catturare alcuni pacchetti tramite Wireshark facendo il ping da hostMilano a server_back_end. ● ping 10.8.0.1
  • 25. netkit – [ footer ]© Some Organization Ltd. last update: some-date Tunneling Row 1 Row 2 Row 3 Row 4 0 2 4 6 8 10 12 Column 1 Column 2 Column 3
  • 26. netkit – [ footer ]© Some Organization Ltd. last update: some-date DNS e Load Balancing  Come illustrato nella slide 3 ci sono diverse autorità per ogni zona. Questa scelta porta diversi vantaggi: 1. Minore tolleranza ai guasti 2. Traffico eccessivo evitato 3. Problema Database centrale troppo distante 4. Scalabilità  I server {1, 2, 3, 4, 5} sono tutti web server che usano apache2 (hanno tutti il file /var/www/index.html)  Inoltre I server {3, 4} sono anche server DNS (oltre al file index.html eseguono il comando bind poichè sono autorità per la zona webing.com e roma.eu rispettivamente)  DnsUS e dnsEU sono autorità per le zona US ed EU.  DnsCOM è autorità per la zona COM.
  • 27. netkit – [ footer ]© Some Organization Ltd. last update: some-date DNS e Load Balancing  Ns1, ns2, ns3 sono le autorità per le zone manhattan, test, milano rispettivamente.  Esempio di prova: client2client2 client2:~# ping client2.test.eu  Il load balancing è stato fatto sia su base geografica sia in base al carico. Quest'ultima scelta è dovuta al fatto che un solo server web sarebbe stato sovracaricato da una eccessiva richiesta del servizio web.
  • 28. netkit – [ footer ]© Some Organization Ltd. last update: some-date DNS e Load Balancing  Il carico è stato distribuito in base alla locazione del richiedente.  Il servizio web è offerto sotto il nome www.webing.com.  Le richieste proveniente dall'America (per esempio da client1.manhattan.us) saranno servite dalla server farm-us (server1, server2, server3) su cui è stato scelta una politica di tipo random per il bilanciamento del carico.  Le richieste proveniente dall'Europa (per esempio da client2.test.eu) saranno servite dalla server farm-eu(server4, server5 )su cui è stato scelta una politica di tipo cyclic per il bilanciamento del carico.
  • 29. netkit – [ footer ]© Some Organization Ltd. last update: some-date DNS e Load Balancing  Si può eseguire un test attraverso il comando dig www.webing.com oppure lanciare lo script del client 1 e 2 count_server_replies.sh che effettua N richieste del servizio web contando quante volte ha risposto un determinato server in base alla scelta del tipo di bilanciamento (cyclic or random).  Esempio client1:~# source count_server_replies.sh Sending 100 requests to www.webing.com... 33 replies received from server 1 34 replies received from server 2 33 replies received from server 2 client1client1
  • 30. netkit – [ footer ]© Some Organization Ltd. last update: some-date Firewall  Per configurare il nostro firewall inseriamo nel nostro file di startup dei comandi che modificheranno l'iptables.La configurazione scelta permetterà solo i servizi di ssh ed http/s, facendo attenzione a configurare correttamente i nostri server DNS.La configurazione è minimale, pensata per un server pubblico che distribuisce contenuti tramite http da controllare con ssh(il caso più comune).  La politica scelta per la nostra iptables per quanto riguarda la tabella FILTER è quella di scartare tutti i pacchetti di INPUT che non sono considerati dalle nostre rules(regole)e lo stesso per la FORWARD.
  • 31. netkit – [ footer ]© Some Organization Ltd. last update: some-date Firewall  Per la tabella di OUTPUT vogliamo permettere qualsiasi traffico in uscita quindi scegliamo come politica ACCEPT: ● iptables -P INPUT DROP ● iptables -P FORWARD DROP ● iptables -P OUTPUT ACCEPT  Innanzitutto dobbiamo consentire tutto il traffico interno al nostro computer, che passa per l'interfaccia di loopback "lo": ● iptables -A INPUT -i lo -j ACCEPT
  • 32. netkit – [ footer ]© Some Organization Ltd. last update: some-date Firewall  La seconda cosa che faremo è navigare nel web e più in generale lasciare entrare tutto il traffico che è stato da noi richiesto e stabilito: ● iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT ● iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT  Ora i servizi che noi vogliamo permettere, iniziamo con ssh: ● iptables -A INPUT -p tcp --dport ssh -j ACCEPT
  • 33. netkit – [ footer ]© Some Organization Ltd. last update: some-date Firewall  Il server web usa la porta 80(http) e 443(https), quindi consentiamo tutto il traffico che dall'esterno chiede di entrare attraverso la nostra porta 80 e 443: ● iptables -A INPUT -p tcp --dport 80 -j ACCEPT ● iptables -A INPUT -p tcp --dport 443 -j ACCEPT  Dobbiamo anche consentire le risposte DNS in ingresso da nostri server DNS: ● iptables -A INPUT -s xxx.xxx.xxx.xxx -i eth0 -p udp -m state --state ESTABLISHED -m udp --sport 53 -j ACCEPT ● iptables -A INPUT -s xxx.xxx.xxx.xxx -i eth0 -p tcp -m tcp --sport 53 -m state --state ESTABLISHED -j ACCEPT
  • 34. netkit – [ footer ]© Some Organization Ltd. last update: some-date Firewall  Scartiamo tutto il resto: ● iptables -A INPUT -j DROP  Infine scegliamo come livello di registrazione di dati di log 7, cioè il minimo livello per mantenere informazioni e permettere debug per evitare di mantenere troppe informazioni dei registri del server: ● iptables -I INPUT 5 -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7  Per visionare il nostro piccolo firewall: ● sudo iptables -vv -L
  • 35. netkit – [ footer ]© Some Organization Ltd. last update: some-date devices network interface card router switch hub pc pc with mua pc laptop named router firewalled router firewall
  • 36. netkit – [ footer ]© Some Organization Ltd. last update: some-date servers server name server mail exchanger mail transfer agent mx + ns mx + ns + mta
  • 37. netkit – [ footer ]© Some Organization Ltd. last update: some-date tunnels
  • 38. netkit – [ footer ]© Some Organization Ltd. last update: some-date windows pc2:~# ping 195.11.14.5 ┃ pc2pc2pc2pc2 user@localhost:~$ cd netkit-lab_arp user@localhost:~/netkit-lab_arp$ lstart ┃ host machinehost machinehost machinehost machine user@localhost:~$ cd netkit-lab_arp user@localhost:~/netkit-lab_arp$ lstart ┃ host machinehost machinehost machinehost machine
  • 39. netkit – [ footer ]© Some Organization Ltd. last update: some-date callouts description of a specific element on the page description of a specific element on the page some notessome notes
  • 40. netkit – [ footer ]© Some Organization Ltd. last update: some-date other symbols data routing software sniffer autonomous system mail
  • 41. netkit – [ footer ]© Some Organization Ltd. last update: some-date C eth1 1 AS1 AS2eth0 2 200.1.1.0/24 eth0 1 A B eth1 1 195.11.14.0/24 193.10.11.0/24 sample interdomain topology