You are on page 1of 8

SecLab 06

v2.00
SecLab

06
Sigurnost Web servera sa SSL protokolom

Cilj vebe

Cilj ove vebe je upoznavanje sa sigurnou Web servera i implementacija SSL protokola i
samopotpisanih sertifikata sa Apache 2.2.15 serverom na Linux CentOS operativnom sistemu.

Ova veba je implementirana sa Oracle VirtualBox softerom za virtuelizaciju koji je instaliran na


svakoj radnoj stanici i jedne virtualne maine sa Linux CentOS 6.2 operativnim sistemom i
instaliranim vsftpd serverom. Pored operativnog sistema na virtuelnoj maini je potrebno
instalirati apache 2.0 server (u ovom sluaju je to rpm paket httpd-2.2.15-
15.el6.centos.i686), openssl (openssl-1.0.0-20.el6.i686) i mod_ssl (mod_ssl-2.2.15-
15.el6.centos.i686). Pored nabrojanih softvera instalirani su i paketi za tekstualni web browser
(lynx-2.8.6-27.el6.centos.i686 i centos-indexhtml-6-1.el6.centos.noarch).

Web server sa SSL protokolom i samopotpisanim (self-signed) sertifikatom

SSL predstavlja sutinski deo kreiranja i konfiguracije bezbednog sajta sa Apche serverom. SSL
sertifikti omoguvju enkripciju celokupnog saobraaja koji je poslat n i s Apche web servera.

SSL koristi kriptogrfiju jvnog klju d bi se uspostvila bezbedna veza. Sve to je ifrovno s
jvnim kljuem (SSL sertifikt) moe se deifrovti samo s privtnim kljuem koji se uva smo n
serveru.

Kd se koristi samopotpisani (self-signed) setifikat

Ne preporuuje se upotreba samopotpisanih sertifikata na sjtovima elektronske trgovine ili na bilo


kojem sjtu koji prenosi ili sadri drgocene line informcije, ko to su podaci o kreditnim
krticm, brojevim socijlnog osigurnj, itd.

SSL sertifikt je potreban za vie funkcija a ne samo za distribuciju jvnog kljua. Npr., ko je
potpisn od strne pouzdne tree strne, on proverv identitet server tko klijenti znju d ne
lju svoje podtke (ifrovne ili ne) pogrenoj osobi.

Samopotpisani sertifikat predstavlja sertifikat koj je izdat od istog entiteta iji identitet potvruje. U
veini sluajeva treba izbegavati upotrebu ovog sertifikata, naroito u sluajevima sa jvnim web
serverom koji poseuje veliki broj anonimnih posetilaca, jer se tako lko postje rtv man-in-the-
middle npd.

Meutim, smopotpisni sertifikti imju svoje mesto, oni se mogu koristiti n Apche serveru na
kome se vri rzvoj softvera. U tom sluaju nem potrebe d se novac potroi kupovinu pouzdanog
sertifikata kd se vri rzvoj ili testirnje plikcije. Samopotpisani sertifikti mogu d se koriste
n Intranet mrei. Takoe, samopotpisani sertifikti mogu d se koriste n linim sjtovim s
malim brojem posetilc.

U sluaju kada je potreban sertifikat na komercijalnom sajtu za elektronsku trgovinu preporuuje


se upotreba sigurnijih komercijalnih (http://www.sslshopper.com/cheapest-ssl-certificates.html)
ili besplatnih SSL sertifikata (http://www.sslshopper.com/article-free-ssl-certificates-from-a-free-
certificate-authority.html).
SecLab 06
v2.00
Priprema virtuelnih maina za vebu

Za kompletiranje ove vebe potrebno je pokrenuti Oracle VirtualBox . Nakon startovanja


programa otvorie se prozor sledeeg izgleda. Instalirane virtualne maine nalaze se u levom delu
prozora. Ako se u tom delu ne nalazi ni jedna virtuelna maina, znai da one trenutno nisu kreirane.

Import postojee virtuelne maine vri se aktiviranjem opcije menija File > Import Appliance ... ili
kombinacijom tastera Ctrl+I.

Nakon aktiviranja te opcije otvara se sledei prozor. Odabir fajla sa mainom koja e se importovati
vri se klikom na taster Open appliance ...
SecLab 06
v2.00

Posle aktiviranja te opcije potrebno je odabrati fajl na disku koji sadri virtuelnu mainu
pripremljenu za import (to je fajl koji je kreiran u Oracle VirtualBox-u na osnovu postojee
virtualne maine i opcijom Export appliance ...). Za ovu vebu potrebno je odabrati fajl pod nazivom
CentosLab.ova.

Kada se pojavi sledei prozor potrebno je pokrenuti opciju Import.


Sada e se importovana virtuelna maina pojaviti u levom prozoru. Ako je potrebno startovati
virtuelnu mainu to se vri klikom na ikonicu virtuelne maine u levom prozoru i aktiviranjem
opcije Start.

Ako je potrebno kreirati vie virtualnih maina do se vri klikom desnog tastera na ikonicu
virtuelne maine i odabirom opcije Clone... Napomena: Kloniranje virtuelne maine nije potrebno za
ovu vebu.
SecLab 06
v2.00

Posle aktiviranja opcije potrebno je odabrati naziv klonirane maine i aktivirati opciju Next.

Za kreiranje klona virtualne maine potrebno je odabrati Full clone i opciju Clone.

Konfigurisanje rutera

Korak 1.1.
SecLab 06
v2.00
Potrebno je kreirati direktorijum pod nazivom ssl na zadatoj lokaciji za smetaj kljua i sertifikata.

mkdir /etc/httpd/ssl

Budui da virtuelna maina nije deo fizike mree te da njeno domensko ime nije konfigurisano u
DNS serveru potrebno je izmeni hosts datoteku tako to e se dodati zadnja linija:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.1 www.securelab.com

Izmena hosts datoteke se vri naredbom:

vi /etc/hosts

Napomena: rad sa vi editorom poznat je iz prethodne vebe. Sa I se ulazi u Insert mod, sa Esc se
ulazi u komandni mod, sa :wq se izlazi sa snimanjem izmena, a sa :!q bez snimanja izmena.

Korak 1.2.

Zatim je potrebno kreirati samopotpisani sertifikat. Tom prilikom se moe odrediti i vreme
njegovog trajanja (u ovom sluaju 365 dana) tj. vreme njegovog isteka.

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout


/etc/httpd/ssl/apache.key -out /etc/httpd/ssl/apache.crt

Ovom komandom se kreira samopotpisani sertifikat i serverski klju koji ga titi. Istom komandom
se obe datoteke smetaju u kreirani direktorijum.

Ova naredba e traiti od korisnika da unese podatke. Najvaniji od tih podataka je "Common
Name" gde se oekuje unos zvaninog domenskog imena ili IP adrese sajta ukoliko ne postoji
domensko ime. Unete informacije e se uvrstiti u zahtev za izdavanjem sertifikata. Za neke podatke
u uglastim zagradama e postojati ponuene vrednosti.

-----
Country Name (2 letter code) [AU]:RS
State or Province Name (full name) [Some-State]:Serbia
Locality Name (eg, city) []:Zrenjanin
Organization Name (eg, company) [Internet Widgits Pty Ltd]:TFMP
Organizational Unit Name (eg, section) []:IT department
Common Name (e.g. server FQDN or YOUR name) []:www.securelab.com
Email Address []:admin@seclab.com

Korak 1.3.

Sada je u konfiguraciji Apache servera potrebno podesiti upotrebu sertifikata. Sledei korak je
konfiguracija virtuelnog hosta koji e koristi ovaj setifikat. To se vri izmenom SSL konfiguracionog
fajla sa vi editorom.

vi /etc/httpd/conf.d/ssl.conf

Napomena: rad sa vi editorom poznat je iz prethodne vebe. Sa I se ulazi u Insert mod, sa Esc se
ulazi u komandni mod, sa :wq se izlazi sa snimanjem izmena, a sa :!q bez snimanja izmena.

U dokumentu je potrebno pronai deo koji poinje sa <VirtualHost _default_:443> i napraviti


neke izmene.
SecLab 06
v2.00
Potrebno je dekontirati DocumentRoot i ServerName linije i zameniti example.com DNS imenom
servera (u ovom sluaju securelab.com) ili serverovom IP adresom (to treba da bude isti podatak
kao i common name u sertifikatu):

<VirtualHost www.securelab.com:443>

Potrebno je podesiti direktorijum u kome se nalazi poetna stranica prezentacije index.html


DocumentRoot /var/www/html

I ime servera
ServerName www.securelab.com:443

Potrebno je pronai sledee tri linije i proveriti da li su podeene na sledei nain:

SSLEngine on
SSLCertificateFile /etc/httpd/ssl/apache.crt
SSLCertificateKeyFile /etc/httpd/ssl/apache.key

Ako su izmene uneene konfiguracija virtuelnog hosta je zavrena.

Korak 1.4.

Potrebno je izvriti startovanje ili restart Apache servera da bi se izmene ponovo uitale.

[root@RT~]# service httpd start


Starting httpd: [ OK ]

Ili sa komandom:

/etc/init.d/httpd restart

Provera da li je web server startovan vri se naredbom

netstat an

Ako je trea linija u prikazu prisutna (linija sa servisom na portu 443) sve je u redu:
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:22 LISTEN
tcp 1 0 *:22 :::* LISTEN
tcp 0 0 *:443 :::* LISTEN

Korak 1.5.

Pristup web serveru preko https protokola moe se izvriti uz pomo tekstualnog web pretraivaa
lynx na sledei nain:

lynx https://www.securelab.com

Mogue je da e biti potrebno pritisnuti taster y

Ako se dobije poruka

PROBA JE USPELA KONEKTOVALI STE SE NA WEB SERVER SA SSL PODRSKOM

Veba je uspeno zavrena. Iz lynx-a se izlazi uz pomo tastera Shift+Q.


SecLab 06
v2.00
Dodatak upotreba OpenSSL komandi

Opte OpenSSL komande

Ove komande se koriste za kreiranje CSR-a, sertifikata, privatnih kljueva i dr.

Generisanje novog privatnog kljua i CSR-a (Certificate Signing Request)


openssl req -out CSR.csr -new -newkey rsa:2048 -nodes -keyout privateKey.key

Generisanje samopotpisanog sertifikata


openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -
out certificate.crt

Generisanje certificate signing request-a (CSR) za privatni klju


openssl req -out CSR.csr -key privateKey.key new

Generisanje CSR-a baziranog na postojeem sertifikatu


openssl x509 -x509toreq -in certificate.crt -out CSR.csr -signkey
privateKey.key

Uklanjanje passphrase iz privatnog kljua


openssl rsa -in privateKey.pem -out newPrivateKey.pem

Provera upotrebom OpenSSL-a

Ove naredbe se koriste za proveru informacija u sertifikatu, CSR-u ili privatnom kljuu.

Provera Certificate Signing Request (CSR)


openssl req -text -noout -verify -in CSR.csr

Provera privatnog kljua


openssl rsa -in privateKey.key check

Provera sertifikata
openssl x509 -in certificate.crt -text noout

Provera PKCS#12 dokumenta (.pfx or .p12)


openssl pkcs12 -info -in keyStore.p12

Debagovanje upotrebom OpenSSL

Provera MD5 hash-a za javni klju da bi se uporedio sa CSR ili privatnim kljuem
openssl x509 -noout -modulus -in certificate.crt | openssl md5openssl rsa -
noout -modulus -in privateKey.key | openssl md5openssl req -noout -modulus -
in CSR.csr | openssl md5

Provera SSL konekcije


openssl s_client -connect www.paypal.com:443

Konvertovanje upotrebom OpenSSL

Konverzija DER fajla(.crt .cer .der) u PEM


openssl x509 -inform der -in certificate.cer -out certificate.pem

Konverzija PEM fajla u DER


openssl x509 -outform der -in certificate.pem -out certificate.der

Konverzija PKCS#12 fajla (.pfx .p12) koji sadri privatni klju i sertifikat u PEM
SecLab 06
v2.00
openssl pkcs12 -in keyStore.pfx -out keyStore.pem nodes

Konverzija PEM sertifikata i privatnog kljua u PKCS#12 (.pfx .p12)


openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in
certificate.crt -certfile CACert.crt

You might also like