This is an old revision of the document!


Laborator 11: Servicii de acces la distanță

Completare formular de feedback

Pentru a îmbunătăți cursul de GSR, componentele sale și modul de desfășurare, ne sunt foarte utile opiniile voastre. Pentru aceasta, vă rugăm, să accesați și completați formularul de feedback de pe site-ul cs.curs.pub.ro. Trebuie să fiți autentificați și înrolați în cadrul cursului.

Formularul este anonim și este activ în perioada 4-20 ianuarie 2016. Rezultatele vor fi vizibile în cadrul echipei cursului doar după încheierea sesiunii. Găsiți formularul în partea dreaptă a paginii principale de GSR de pe cs.curs.pub.ro într-un frame intitulat "FEEDBACK".

Vă invităm să evaluați activitatea echipei de GSR și să precizați punctele tari și punctele slabe și sugestiile voastre de îmbunătățire a disciplinei. Feedback-ul vostru este foarte important pentru noi să creștem calitatea materiei în anii următori și să îmbunătățim disciplinele pe care le veți face în continuare.

Ne interesează în special:

  • Ce nu v-a plăcut și ce credeți că nu a mers bine?
  • De ce nu v-a plăcut și de ce credeți că nu a mers bine?
  • Ce ar trebuie să facem ca lucrurile să fie plăcute și să meargă bine?

Vă mulțumim!

Conectare prin SSH

Porniți o mașină virtuală VirtualBox din cadrul sistemului și realizați o conexiune SSH în ambele sensuri (de la mașină virtuală la sistemul fizic și invers) folosind autentificare cu chei publice. Folosiți pentru conectare utilizatorul student de pe fiecare stație.

Importați în VirtualBox mașina virtuala GSR Debian.ova din directorul /mnt/sda5/gsr/.

Există o problemă cu serverul SSH de pe mașina virtuală GSR Debian pe care trebuie să o rezolvați.

Pentru a copia o cheie publică SSH folosiți comanda ssh-copy-id.

Folosiți adresa IP a interfeței vboxnext0 pentru sistemul host și interfața echivalentă din mașina virtuală.

Pe mașina virtuală nu aveți creată o pereche de cheie publică/cheie privată. Folosiți comanda

ssh-keygen

pentru a crea perechea de cheie publică/cheie privată.

X Forward prin SSH

Realizați configurația în așa fel încât de pe sistemul fizic să vă conectați de pe sistemul fizic pe mașina virtuală și să porniți acolo o aplicație grafică, precum xeyes sau xterm folosind X forwarding prin SSH.

Realizați această conexiune între două stații din laborator (cel mai bine împreună cu un coleg).

Tunel SSH

De pe mașina virtuală conectați-vă pe fep prin SSH și deschideți un tunel invers către fep.cs.pub.ro în așa fel încât să vă puteți conecta de pe sistemul unui coleg către mașina virtuală.

Va trebui ca fiecare dintre cei doi participanți la comunicație să deschidă un port distinct remote (pe fep.grid.pub.ro).

Urmăriți și indicațiile de aici.

Există două servere fep de back-end pe care se face round robin: fep-62-1 și fep-62-2. O conexiune SSH poate ajunge la un server sau altul. Verificați că ați făcut conexiunea amândoi pe același server de back-end. Dacă nu a ieșit, deconectați-vă și încercați iar.

Folosiți pe fep.cs.pub.ro comanda

netstat -tlpn

ca să validați deschiderea corectă a portului pentru tunelul invers.

Configurare conexiune VNC

Pe sistemul vostru porniți un server VNC (puteți folosi Vino) și apoi conectați-vă cu un client VNC în două moduri:

  • Doar read-only
  • În forma read-write

If you plan on using Vino, locate the server executable file using

locate vino

As a client you may use Remmina. You install it using

sudo apt-get install remmina

VPN

Pentru exercițiile de mai jos vom folosi o topologie și vom configura OpenVPN și IPsec.

Topologie

 Topologie VPN

Topologia este formata din 2 routere Cisco emulate in Dynamips și 3 mașini virtuale KVM.

Scenariu

Topologia infatiseaza reteaua unei companii, compusa din:

  • un sediu central (Headquarters), ce contine:
    • router-ul de acces (HQ) - o masina Linux;
    • un host din reteaua HQ (HQ Host) - o masina Linux;
  • un sediu regional (Branch), ce contine:
    • router-ul de acces (Branch) - un router Cisco;
    • un host din reteaua Branch (Branch Host) - o masina Linux;

Sediul central si sediul regional sunt conectate prin intermediul unui service provider. Acesta detine router-ul ISP (router Cisco).

Host-urile “HQ Host” si “Branch Host” sunt “in spatele” unor NAT-uri.

Adresarea, rutarea si NAT-ul sunt deja configurate pe router-ele ISP si Branch.

Router-ul ISP are acces la Internet.

Pornirea topologiei

Toate comenzile sau scripturile din acest laborator trebuie rulate ca superuser (root).

Pentru a porni topologia:

  • Deschideti un terminal in care va logati ca root;
  • Descarcati arhiva de laborator de la adresa http://swarm.cs.pub.ro/~carpalex/saisp/saisp-lab06.tar
    wget http://swarm.cs.pub.ro/~carpalex/saisp/saisp-lab06.tar
  • Dezarhivati arhiva:
    tar -xvf saisp-lab06.tar
  • Executati script-ul “prepare.sh”:
    chmod +x prepare.sh
    ./prepare.sh
  • Cand sunteti intrebati daca sa importati configuratiile, raspundeti Y.
  • Apoi, din consola Dynagen, tastati console /all pentru a deschide consolele pentru routerele ISP si Branch.
  • Masinile virtuale vor fi pornite automat.

Configurare VPN folosind OpenVPN

In final, vom configura si folosi o solutie de SSL VPN (OpenVPN):

  • HQ Router va fi server OpenVPN;
  • Statiile din retelele private (HQ Host si BR Host) pot fi clienți OpenVPN.

Vom configura doar BR Host ca client VPN.

Instalare OpenVPN

Instalați, pe cele 2 mașini (HQ Router, și BR Host) pachetul openvpn:

# apt-get update
# apt-get install openvpn

Generare chei

Cheile vor fi generate pe server (HQ Router).

Pentru generarea cheilor, ne vom folosi de scripturile easy-rsa 2.0 aflate în directorul /usr/share/doc/openvpn/examples/easy-rsa/2.0. Copiați scripturile în directorul /etc/openvpn pentru a vă fi mai ușor.

saisp-vm-1# cp /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/

În continuare vom lucra în directorul /etc/openvpn:

saisp-vm-1# cd /etc/openvpn

Editati fișierul vars pentru a configura variabilele de mediu.

export KEY_SIZE=1024

export KEY_COUNTRY="RO"
export KEY_PROVINCE="B"
export KEY_CITY="Bucharest"
export KEY_ORG="CS"
export KEY_EMAIL="saisp@cs.pub.ro"

Setați variabilele de mediu configurate folosind source vars:

saisp-vm-1# source vars
saisp-vm-1# ./clean-all

Generăm certificatul pentru CA folosind build-ca. Răspundeți la întrebări cu răspunsurile default.

./build-ca

Cheia pentru Diffie Hellman se generează cu buid-dh:

./build-dh

Pentru server generăm cheia folosind build-key-server, iar pentru fiecare client, generăm o cheie folosind build-key. Răspundeți la întrebări cu răspunsurile default. Atentie! Cand sunteti intrebati daca doriti sa semnati certificatele, raspundeti cu Y.

./build-key-server server
./build-key client1

Examinați conținutul directorului keys pentru a vedea fișierele create.

Configurare server și client

Pe server (HQ Router - saisp-vm-1), creați fișierul /etc/openvpn/server.conf cu următorul conținut:

port 1194
proto tcp
dev tap
client-to-client
server 172.16.123.0 255.255.255.0
push "redirect-gateway"
push "dhcp-option DNS 141.85.37.1"
ca keys/ca.crt
cert keys/server.crt
key keys/server.key
dh keys/dh1024.pem
client-to-client
cipher AES-128-CBC
max-clients 10
user nobody
group nogroup
persist-key
persist-tun
chroot /etc/openvpn
log server.log
comp-lzo

Pe BR Host (saisp-vm-3) creați fisierul /etc/openvpn/client1.conf cu următorul conținut:

client
tls-client
dev tap
proto tcp
remote 28.28.28.2 1194
persist-key
persist-tun
ca keys/ca.crt
cert keys/client1.crt
key keys/client1.key
cipher AES-128-CBC
comp-lzo
log client1.log

Va trebui să copiați pe client fișierele cu certificatele si cu cheile. Vom folosi scp. * Pe BR Host (saisp-vm-3):

saisp-vm-3# scp -r root@28.28.28.2:/etc/openvpn/keys/ /etc/openvpn/

Porniți OpenVPN pe toate stațiile configurate folosind

# /etc/init.d/openvpn start

Observați interfața tap0 creată pe server si pe client.

Încercați să generati trafic intre client si server:

saisp-vm-3# ping 172.16.123.1

Rulați ip route show și observați ruta implicită. Pe unde va circula tot traficul? Care linie din configurația VPN-ului forțează acest lucru?

Clean up

Închideți serviciul de OpenVPN pe cele trei stații:

# /etc/init.d/openvpn stop

Configurare VPN folosind IPsec

In cele ce urmeaza, vom configura un tunel IPsec intre HQ Router si BR Router. Deoarece IPsec este un framework de securitate standard, putem sa realizam interoperarea intre echipamente diferite:

  • pe HQ Router (Linux) vom folosi OpenSWAN;
  • pe BR Router (Cisco) vom folosi o imagine de Cisco IOS ce suporta IPsec.

Instalare

Instalați pe HQ Router (saisp-vm-1), folosind apt-get, pachetul openswan:

saisp-vm-1# apt-get install openswan

La intrebarea “Use an X.509 certificate for this host?”, răspundeți No.

Configurare Cisco

Mai intai, vom crea un ACL ce defineste traficul ce trebuie protejat:

Branch(config)#ip access-list extended IPSEC_ACL
Branch(config-ext-nacl)#permit ip 42.42.42.0 0.0.0.255 28.28.28.0 0.0.0.255

Apoi, cream o politica ISAKMP ce defineste parametrii pentru faza 1 (de negociere) a IPsec:

Branch(config)#crypto isakmp policy 10 
Branch(config-isakmp)#authentication pre-share 
Branch(config-isakmp)#encryption 3des 
Branch(config-isakmp)#hash md5 
Branch(config-isakmp)#group 2

Apoi, cream cheia partajata si o asociem “interlocutorului”:

Branch(config)#crypto isakmp key 0 saisp address 28.28.28.2 no-xauth

Cream un transform set ce defineste parametrii pentru faza 2 (de comunicatie efectiva) a IPsec:

Branch(config)#crypto ipsec transform-set IPSEC_TS esp-3des esp-md5-hmac 
Branch(cfg-crypto-trans)#mode tunnel

Cream un crypto map, ce reuneste la un loc toate configuratiile anterioare:

Branch(config)#crypto map IPSEC_MAP 10 ipsec-isakmp 
Branch(config-crypto-map)# match address IPSEC_ACL                
Branch(config-crypto-map)# set peer 28.28.28.2
Branch(config-crypto-map)# set transform-set IPSEC_TS              

In final, aplicat crypto-map-ul pe interfata:

Branch(config)#int f0/0
Branch(config-if)#crypto map IPSEC_MAP

Configuratie OpenSWAN

In fișierul /etc/ipsec.conf, editati liniile:

nat_traversal=no
protostack=netkey

Apoi, in acelasi fisier, definiti parametrii pentru tunelul IPsec:

conn ipsec-tun
    authby=secret
    left=28.28.28.2
    leftnexthop=28.28.28.1
    leftsubnet=28.28.28.0/24
    right=42.42.42.2
    rightnexthop=42.42.42.1
    rightsubnet=42.42.42.0/24
    ike=3des-md5;modp1024
    keyexchange=ike
    pfs=no
    auto=start

Observati ca parametrii corespund configurarilor facute in IOS.

Apoi, in fisierul /etc/ipsec.secrets definiti cheia partajata, adaugand urmatoarea linie:

28.28.28.2 42.42.42.2: PSK "saisp"

Porniți conexiunea resetând serviciul:

saisp-vm-1# /etc/init.d/ipsec restart

Testati conectivitatea, executand un ping de pe BR Router catre HQ Router:

Branch# ping 28.28.28.2

Observati cum arata pachetele in Wireshark (capturati pe tap11).

Pe BR Router, afisati informatii despre functionarea IPsec:

Branch# show crypto isakmp sa
Branch# show crypto ipsec sa
Branch# show crypto session

Procedati la fel pe HQ Router:

saisp-vm-1# ip xfrm state show

Clean up

<note warning> Pentru acest laborator, acest pas este foarte important. Daca nu stergeti tunelele create, urmatoarele task-uri nu vor functiona! <note>

Pe HQ Router închideți serviciul OpenSWAN:

saisp-vm-1# /etc/init.d/ipsec stop

Pe BR Router scoateti crypto-map-ul de pe interfata:

Branch(config)#int f0/0
Branch(config-if)#no crypto map

BONUS: Rețea OpenVPN

În echipe de câte trei persoane, creați o infrastructură VPN în care să comunicați între două mașini virtuale VirtualBox care se găsesc pe două dintre cele trei stații și care rulează un client OpenVPN prin intermediul celeil de-a treia stații care rulează un server OpenVPN.

gsr/laboratoare/laborator-11.1452783223.txt.gz · Last modified: 2016/01/14 16:53 by razvan.deaconescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0