serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment...
Transcript of serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment...
![Page 1: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/1.jpg)
Dr.
Sab
in B
ura
ga
pro
fs.in
fo.uaic.ro
/~busa
co/
arhitecturaserverului Web
supliment
avansat
Dr. Sabin Corneliu Buraga – profs.info.uaic.ro/~busaco/
Tehnologii Web
![Page 2: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/2.jpg)
Dr.
Sab
in B
ura
ga
pro
fs.in
fo.uaic.ro
/~busa
co/
„Lucrurile nu sunt greu de făcut. Greu este să te pui în starea de-a le face.”
Constantin Brâncuși
![Page 3: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/3.jpg)
Dr.
Sab
in B
ura
ga
pro
fs.in
fo.uaic.ro
/~busa
co/
Care e arhitectura serverului Web?
![Page 4: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/4.jpg)
Dr.
Sab
in B
ura
ga
pro
fs.in
fo.uaic.ro
/~busa
co/
HTTP: server Web
Deservește cereri multiple provenite de la clienți
pe baza protocolului HTTP
![Page 5: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/5.jpg)
Dr.
Sab
in B
ura
ga
pro
fs.in
fo.uaic.ro
/~busa
co/
HTTP: server Web
Deservește cereri multiple provenite de la clienți
pe baza protocolului HTTP
fiecare cerere e considerată independentă de alta,
chiar dacă provine de la același client Web
nu e păstrată starea conexiunii – stateless
![Page 6: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/6.jpg)
Dr.
Sab
in B
ura
ga
pro
fs.in
fo.uaic.ro
/~busa
co/
HTTP: server Web
Tradițional, implementarea serverului Web
este una pre-forked sau pre-threaded
se creează un număr de procese copil orifire de execuție (threads) la inițializare,
fiecare proces/fir interacționând cu un anumit client
![Page 7: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/7.jpg)
Dr.
Sab
in B
ura
ga
pro
fs.in
fo.uaic.ro
/~busa
co/
HTTP: server Web📺
☎
💻
⚙️
resurse(date/servicii)🖴 ⎘⎙☁
⧁
⧁
⦷ ⧁
⦷ ⧁⦷
mulțimea firelor de execuție
(thread pool)
server Web multi-threaded
⌛
operații I/O blocante
cerere
cerere
cereri
cereri
cererile multiple de la diverși clienți nu pot fi deservite simultan (numărul firelor de execuție asociate unui proces este limitat)
⧁ în execuție⦷ în așteptare
server Web clasic
![Page 8: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/8.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
HTTP: server Web
Comportamentul serverului poate fi stabilitvia diverși parametri (directive) de configurare
![Page 9: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/9.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
HTTP: server Web
Studiu de caz: configurarea serverului Apache (din aprilie 1996, cel mai popular server Web)
httpd.apache.org
configurația globală prin fișierul httpd.confimplicit, se creează 6 instanțe httpd
la nivel de utilizator (per director/URI), se poate configuravia .htaccess – vezi și github.com/phanan/htaccess
![Page 10: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/10.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
HTTP: server Web
Studiu de caz: configurarea serverului Apache
posibilitatea de a constitui gazde virtuale – virtual hosting:același server poate găzdui (rula) mai multe situri Web,
având diferite nume de domeniu simbolice
![Page 11: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/11.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
datespre
client
serverul Apache: bucla de servire
a cererilor
HTTP request
post-read-request
IRI translation
headerparsing
accesscontrol
authen-tication
authori-zation
media typechecker
response
log
cleanup
![Page 12: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/12.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Uzual, arhitectura serverului Web e modularizată
nucleu (core) +
module implementând funcționalități specifice
![Page 13: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/13.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Uzual, arhitectura serverului Web e modularizată
nucleu (core) +
module implementând funcționalități specifice
oferă o interfață de programare (API) a modulelorîn limbajul C
httpd.apache.org/docs/current/developer/
![Page 14: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/14.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Uzual, arhitectura serverului Web e modularizată
nucleu (core) +
module implementând funcționalități specifice
lista modulelor Apache oficiale: httpd.apache.org/docs/current/mod/
![Page 15: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/15.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Module Apache utilizate frecvent
jurnalizarea cererilor primite de serverul Web
mod_log_config
httpd.apache.org/docs/current/logs.html
![Page 16: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/16.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Module Apache utilizate frecvent
controlul cache-ului – memorarea temporară a datelor pe diverse medii de stocare (e.g., disc)
mod_cache
httpd.apache.org/docs/current/mod/mod_cache.html
![Page 17: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/17.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Module Apache utilizate frecvent
suport pentru crearea unui proxy/gateway Web, inclusiv echilibrarea încărcării (load balancing), crearea de tuneluri
mod_proxy
httpd.apache.org/docs/current/mod/mod_proxy.html
![Page 18: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/18.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Module Apache utilizate frecvent
suport pentru transferuri „securizate” via HTTPS pe baza TLS (Transport Layer Security) și SSL (Secure Sockets
Layer) implementate de biblioteca OpenSSLmod_ssl
httpd.apache.org/docs/current/mod/mod_ssl.html
![Page 19: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/19.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Module Apache utilizate frecvent
rescrierea adreselor Web – URL rewritting – pe baza expresiilor regulate (e.g., simplificarea sintaxei URL-urilor)
mod_rewrite
httpd.apache.org/docs/current/mod/mod_rewrite.html
![Page 20: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/20.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Module Apache utilizate frecvent
acces restricționat la resurse – suport pentru diverse metode de autentificare și autorizare
mod_auth_basic
mod_auth_digest
mod_authn_core mod_authn_file mod_authn_dbd
mod_authz_core mod_authz_user mod_authz_host
![Page 21: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/21.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Module Apache utilizate frecvent
suport pentru gestiunea datelor vizând sesiunile Webmod_session
mod_session_cookie
mod_session_crypto
mod_session_dbd
![Page 22: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/22.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Module Apache utilizate frecvent
livrarea compresată a datelor (reprezentărilor de resurse) mod_deflate
mod_brotli
![Page 23: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/23.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Module Apache utilizate frecvent
suport pentru deservirea cererilor pe baza protocolului HTTP2
mod_http2
httpd.apache.org/docs/current/mod/mod_proxy_http2.html
![Page 24: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/24.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Module Apache utilizate frecvent
includerea direct în server a suportului pentru execuția de programe:
mod_cgi – suport CGI: httpd.apache.org/docs/current/howto/cgi.html
mod_php – integrare cu PHPmod_wsgi – integrare cu Python: modwsgi.readthedocs.io/en/develop/
altele: mod_perl mod_ruby mod_lua mod_mono
![Page 25: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/25.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Module Apache utilizate frecvent
managementul conexiunilor la sisteme de baze de date relaționale (via SQL)
recurgându-se la APR – Apache Portable Runtime mod_dbd
httpd.apache.org/docs/current/mod/mod_dbd.html
apr.apache.org
![Page 26: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/26.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Module Apache utilizate frecvent
deservirea cererilor via fire de execuție multiple(hybrid multi-process multi-threaded)
mod_worker
httpd.apache.org/docs/current/mod/worker.html
![Page 27: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/27.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Studiu de caz: securizarea serverului Apacheaspecte esențiale
![Page 28: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/28.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Studiu de caz: securizarea serverului Apacheaspecte esențiale
activități de tip DevOps: aspecte privind dezvoltarea aplicațiilor Web (Dev – Development)
+ operațiuni de administrare (Ops – Operations)
de studiat:Apache Security Hardening Guide
www.apachecon.eu
![Page 29: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/29.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Studiu de caz: securizarea serverului Apache
actualizarea permanentă a serverului Web și a modulelor sale
![Page 30: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/30.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Studiu de caz: securizarea serverului Apache
instalarea de module ce previn atacuri de securitate
mod_security – firewall
www.modsecurity.org
![Page 31: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/31.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Studiu de caz: securizarea serverului Apache
instalarea de module ce previn atacuri de securitate
mod_security – firewall
www.modsecurity.org
de studiat și regulile stipulate de OWASP ModSecurity Core Rule Set (CRS)
coreruleset.org
github.com/SpiderLabs/owasp-modsecurity-crs
![Page 32: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/32.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Studiu de caz: securizarea serverului Apache
instalarea de module ce previn atacuri de securitate
mod_evasive – previne refuzuri de servicii: (D)DoS – (Distributed) Denial of Services
www.linode.com/docs/web-servers/apache-tips-and-tricks/modevasive-on-apache/
![Page 33: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/33.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Studiu de caz: securizarea serverului Apache
eliminarea modulelor care nu sunt esențiale
mod_autoindex
mod_dav
mod_info
mod_status
…
![Page 34: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/34.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Studiu de caz: securizarea serverului Apache
rularea serverului ca utilizator cu drepturi minime,cu limitarea accesului la resursele sistemului
de experimentat modulul mod_ratelimit
httpd.apache.org/docs/current/mod/mod_ratelimit.html
![Page 35: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/35.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Studiu de caz: securizarea serverului Apache
rularea serverului ca utilizator cu drepturi minime,cu limitarea accesului la resursele sistemului
ajustarea – în fișierul httpd.conf –a directivelor de configurare:
KeepAlive KeepAliveTimeout LimitRequestBody LimitRequestFields
LimitRequestFieldSize LimitRequestLine LimitXMLRequestBody
MaxClients MaxKeepAliveRequests MaxRequestWorkers
RequestReadTimeout TimeOut
![Page 36: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/36.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Studiu de caz: securizarea serverului Apache
restrângerea permisiunilor implicitepentru diverse directoare:
/
/var/www/html (directorul root al sitului)directoarele (public_)html/ ale utilizatorilor
vezi directiva Require
httpd.apache.org/docs/2.4/howto/access.html
![Page 37: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/37.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Studiu de caz: securizarea serverului Apache
„imunizarea” fișierelor de configurare importante
inhibarea modificării acestora via permisiuni
sau folosind politici de acces
de tip RBAC (Role-Based Access Control)
![Page 38: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/38.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Studiu de caz: securizarea serverului Apache
rularea Apache într-un chroot jail
izolarea serverului Web de sistemul gazdă pe care ruleazăsandboxing
![Page 39: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/39.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Studiu de caz: securizarea serverului Apache
eliminarea creării „semnăturii” serveruluipentru resursele oferite:
ServerSignature Off
ServerTokens Prod
![Page 40: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/40.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Studiu de caz: securizarea serverului Apache
eliminarea creării „semnăturii” serveruluipentru resursele oferite:
ServerSignature Off
ServerTokens Prod
un posibil atacator poate inspecta mesajul de răspuns HTTP pentru a obține versiunea curentă a serverului WebServer: Apache/2.4.35 (IUS) OpenSSL/1.0.2k-fips mod_fcgid/2.3.9 PHP/7.2.14
versusServer: Apache
![Page 41: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/41.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Studiu de caz: securizarea serverului Apache
recurgerea la modulul mod_ssl
pentru oferirea de conexiuni HTTPS
![Page 42: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/42.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Studiu de caz: securizarea serverului Apache
verificarea/ajustarea permisiunilor fișierelor publice
httpd.apache.org/docs/2.4/misc/security_tips.html#serverroot
![Page 43: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/43.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Studiu de caz: securizarea serverului Apache
limitarea/inhibarea upload-urilor de fișiere
la nivel de server Web vezi directiva de configurare FilesMatch
httpd.apache.org/docs/2.4/mod/core.html#filesmatch
și/sau pentru un server de aplicații Web – e.g., PHP
www.php.net/manual/en/ini.core.php#ini.file-uploads
![Page 44: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/44.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Studiu de caz: securizarea serverului Apache
limitarea/interzicerea folosirii .htaccessde către utilizatorii obișnuiți
amănunte la httpd.apache.org/docs/current/howto/htaccess.html
![Page 45: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/45.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Studiu de caz: securizarea serverului Apache
interzicerea accesului la tabela users la MariaDB/MySQLmariadb.com/kb/en/mysqluser-table/
dev.mysql.com/doc/refman/en/grant-tables.html
idem, pentru alte servere de baze de date
![Page 46: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/46.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Studiu de caz: securizarea serverului Apache
configurarea serverelor de aplicații să nu trimităbrowser-ului mesajele de eroare
e.g., la PHP: display_errors off
de parcurs și www.php.net/manual/en/function.error-reporting.php
![Page 47: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/47.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Studiu de caz: securizarea serverului Apache
actualizarea sitului doar prin metode securizate:SSH (Secure SHell network protocol)
www.snailbook.com/protocols.html
pe baza SSH, se pot folosi:SCP (Secure Copy Protocol)
SFTP (Secure File Transfer Protocol)
![Page 48: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/48.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
Studiu de caz: securizarea serverului Apache
pentru alte reguli de bună practică, a se consultahttpd.apache.org/docs/2.4/misc/security_tips.html
![Page 49: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/49.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
HTTP: server Web – resurse
Apache Tutorials: httpd.apache.org/docs/current/howto/
Apache @ Digital Ocean:www.digitalocean.com/community/tags/apache
Apache / ModSecurity Tutorials:www.netnea.com/cms/apache-tutorials/
![Page 50: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/50.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
HTTP: server Web
Alternativ, pot fi folosite strategii asincrone (non-blocante) adoptând un unic fir de execuție
(single threaded)
![Page 51: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/51.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
HTTP: server Web
Alternativ, pot fi folosite strategii asincrone (non-blocante) adoptând un unic fir de execuție
(single threaded)
exemplu de referință: NGINX
www.nginx.com/blog/inside-nginx-how-we-designed-for-performance-scale/
![Page 52: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/52.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
HTTP: server Web
arhitectura generală inițială a serverului NGINXwww.aosabook.org/en/nginx.html
![Page 53: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/53.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
HTTP: server Web
Alternativ, pot fi folosite strategii asincrone (non-blocante) adoptând un unic fir de execuție
(single threaded)
programatorul își poate crea propriul server Web conceput în limbajul JavaScript (ECMAScript):
Node.jsvezi viitorul supliment
![Page 54: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/54.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
HTTP: server Web📺
☎
💻
⚙️
resurse(date/servicii)🖴 ⎘⎙☁
server Node.js
operații I/O neblocante
cerere
cerere
cereri
cereri
cererile multiple de la diverși clienți pot fi deservite simultan
⧁ în execuție⟺ delegare
⧁
event loop
POSIXasync
threads
⧁
⧁
⧁
⧁
⟺
Node.js
![Page 55: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/55.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/
HTTP: server Web – alte soluții
Apache TomcatCaddy
Eclipse Jettylighttpd
Microsoft IIS (Internet Information Services)MongooseNaviServer
thttpdYaws (Yet Another Web Server)
![Page 56: serverului Web arhitectura · 2020-02-20 · ga /~ co / arhitectura serverului Web supliment avansat Dr. Sabin Corneliu Buraga –profs.info.uaic.ro/~busaco/ TehnologiiWeb](https://reader033.fdocuments.net/reader033/viewer/2022041822/5e5ec9d8599c373c1b0faac3/html5/thumbnails/56.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co/rezumat
⥁arhitectura generică a unui server Web
exemplificare: Apache HTTP Server