This is an old revision of the document!
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:
Vă mulțumim!
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.
GSR Debian.ova
din directorul /mnt/sda5/gsr/
.
GSR Debian
pe care trebuie să o rezolvați.
ssh-copy-id
.
vboxnext0
pentru sistemul host și interfața echivalentă din mașina virtuală.
ssh-keygen
pentru a crea perechea de cheie publică/cheie privată.
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).
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
).
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.
Pe sistemul vostru porniți un server VNC (puteți folosi Vino) și apoi conectați-vă cu un client VNC în două moduri:
locate vino-server
Dacă folosiți vino
atunci activați remote access folosind comanda
sudo dconf write /org/gnome/desktop/remote-acccess/enabled true
netstat -tlpn
pentru a vă asigura că serverul e pornit și ascultă pe portul aferent (în general 5900
).
sudo apt-get install remmina
vino-preferences
(este posibil să fie nevoie să o localizați) pentru a configura serverul VNC.
Pentru exercițiile de mai jos vom folosi o topologie și vom configura OpenVPN și IPsec.
Topologia infatiseaza reteaua unei companii, compusa din:
Sediul central si sediul regional sunt conectate prin intermediul unui service provider. Acesta detine router-ul ISP (router Cisco).
Router-ul ISP are acces la Internet.
Pentru a porni topologia:
wget http://swarm.cs.pub.ro/~carpalex/saisp/saisp-lab06.tar
tar -xvf saisp-lab06.tar
chmod +x prepare.sh sudo ./prepare.sh
In final, vom configura si folosi o solutie de SSL VPN (OpenVPN):
Vom configura doar BR Host ca client VPN.
Instalați, pe cele 2 mașini (HQ Router, și BR Host) pachetul openvpn:
# apt-get update # apt-get install openvpn
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.
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?
Închideți serviciul de OpenVPN pe cele trei stații:
# /etc/init.d/openvpn stop
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:
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.
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
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
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
Î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.
Urmăriți indicațiile de aici pentru configurare.