Dr. Sabin Dr.Sabin serverului a rhitectura supliment Corneliu Tehnologii Web Buraga – profs.info.uaic.ro/~ Web avansat busaco /

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Greu „ Lucrurile este Constantin Brâncuși Constantin să te nu pui sunt în starea greu de de - făcut a le face.” .

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Care e arhitectura serverului Web?

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Deserve ș te pe cereri HTTP baza multiple protocolului : serverWeb provenite HTTP de la clien ț i Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Deserve fiecare  chiar nu e nu p ș cerere te dac pe cereri ă HTTP strat ă baza e provine considerat ă multiple starea protocolului : serverWeb de la conexiunii ă provenite acela independent ș HTTP i client Web client – stateless de la ă de alta clien , ț i Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ fiecare Tradi este se fire de proces ț ional creeaz una HTTP execu /fir , ă implementarea pre un interac - ț num forked ie : serverWeb ( threads ă ț r de r de ion sau â procese nd ) la ) pre cu un cu un serverului ini - threaded ț ializare copil anumit ori , Web client

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ ⚙️  ☎  cererile ladiverși de multiple clienți potfi nu deservite simultan (numărul firelor de execuție asociate unui proceseste limitat) cerere cerere cereri cereri server Web ⦷ ⦷ ⧁ ⧁ HTTP ⧁ ⦷ ( multi thread server server Web clasic mulțimea firelor de execuție ⧁ - threaded : serverWeb pool ) operații I/O blocante ⌛ (date/servicii) ⦷ ⧁  în în așteptare în execuție resurse ⎘ ⎙ ☁

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ via diver Comportamentul ș i parametri HTTP : serverWeb serverului (directive) de poate configurare fi stabilit

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Studiu ( lansat configura de implicit în caz HTTP 1995 ț : ia configurarea , se global httpd.apache.org ; cel creeaz : serverWeb mai ă prin ă popular server popular 6 instan fi serverului ș ierul ț e httpd.conf httpd Web) Apache

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ la nivel Studiu via ( de lansat configura . htaccess utilizator de implicit în 1995; caz HTTP ț : – ia configurarea , vezi și (per director/URI), se director/URI), (per se global httpd.apache.org cel creeaz : serverWeb mai github.com/ ă prin ă popular server Web) server popular 6 instan fi serverului ș ierul phanan ț e httpd.conf httpd poate / htaccess Apache configura

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ posibilitatea același server poate poate găzdui același server Studiu având diferite nume de de a caz HTTP constitui : configurarea : serverWeb gazde de ( rula domeniu virtuale ) serverului mai multe situri simbolice – virtualhosting Apache Web , : Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ client date spre response media log checker cleanup type authori zation serverul bucla - a request cererilor HTTP HTTP de Apache: Apache: servire authen tication post - request - read control access - translation parsing header IRI

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Uzual module , arhitectura implement serverului nucleu â nd + func ( core ț ionalit Web e ) ăț modularizat i specifice ă

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Uzual ofer module , ă arhitectura o httpd.apache.org/docs/current/developer/ interfa implement ță de serverului nucleu î n programare â limbajul nd + func ( core ț C ionalit Web e ) (API) a (API) ăț modularizat i specifice modulelor ă

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Uzual module , arhitectura httpd.apache.org/docs/current/mod/ lista modulelor lista modulelor implement serverului nucleu â nd + func Apache ( core ț ionalit Web e ) oficiale ăț modularizat i specifice : ă

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ jurnalizarea M httpd.apache.org/docs/current/logs.html odule cererilor Apache utilizatefrecvent mod_log_config primite de serverul Web

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ controlul controlul httpd.apache.org/ cache M diverse mediide ( stocare odule - ului ului Apache utilizatefrecvent – docs memorarea temporară adatelorpe temporară memorarea mod_cache / current /mod/mod_cache.html e.g. , disc) ,

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ echilibrarea încărcării ( echilibrarea suport pentru crearea unui crearea unui pentru suport httpd.apache.org/docs/current/mod/mod_proxy.html M odule Apache utilizatefrecvent load mod_proxy balancing proxy / gateway gateway ), crearea detuneluri ), Web, Web, inclusiv

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ suport pentru transferuri „securizate” via HTTPS pe baza baza via HTTPSpe „securizate” transferuri pentru suport TLS ( httpd.apache.org/docs/current/mod/mod_ssl.html Layer Transport Transport M odule ) implementate ) implementate de biblioteca Layer Apache utilizatefrecvent Security mod_ssl ) și SSL ) ( Secure Sockets OpenSSL

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ expresiilor regulate ( regulate expresiilor rescrierea adreselor Web adreselor Web rescrierea httpd.apache.org/docs/current/mod/mod_rewrite.html M odule Apache utilizatefrecvent e.g. mod_rewrite , simplificarea simplificarea sintaxei URL , – URL rewritting – pe baza baza pe - urilor)

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ acces restricționat la resurse acces restricționat mod_authz_core mod_authn_core M metode de autentificare metode și de autentificare autorizare odule Apache utilizatefrecvent mod_auth mod_authz_user mod_auth_basic mod_authn_file _ digest – suport pentru diverse pentru suport mod_authn_dbd mod_authz_host

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ suport pentru gestiunea datelor vizând sesiunile Web datelor vizândsesiunile gestiunea pentru suport M odule mod_session_cookie Apache utilizatefrecvent mod_session_crypto mod_session_dbd mod_session

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ livrarea compresată a datelor (reprezentărilor de resurse) (reprezentărilor adatelor compresată livrarea M odule Apache utilizatefrecvent mod_ mod_ deflate brotli

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ httpd.apache.org/docs/current/mod/mod_proxy_http M suport pentru deservirea cererilor pentru suport odule pe baza protocolului HTTP baza pe protocolului Apache utilizatefrecvent mod_http 2 2 2 .html

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ mod_wsgi mod_ cgi altele: – includerea direct în server a suportului în server direct suportului includerea a – M integrare cu integrare suport CGI: suport odule mod_perl pentru execuția de programe: execuția pentru mod_ Apache utilizatefrecvent php mod_ruby httpd.apache.org/ Python – integrare cu PHP cu integrare : modwsgi.readthedocs.io/en/ mod_lua docs / current mod_mono / howto /cgi.html develop

/ Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ recurgându httpd.apache.org/docs/ sisteme sisteme de SQL) dedate (via baze relaționale M odule managementul conexiunilor la conexiunilor managementul - se Apache utilizatefrecvent la APR apr.apache.org mod_dbd – current Apache Portable Runtime Runtime Portable Apache /mod/mod_dbd.html

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ deservirea cererilor via fire de execuție via firedeexecuție multiple deservirea cererilor httpd.apache.org/ M ( hybrid multi hybrid odule Apache utilizatefrecvent docs mod_ - process multi process / current worker /mod/worker.html - threaded )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Studiu de caz : securizarea aspecte aspecte esențiale serverului Apache

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ activități activități de tip Studiu + operațiuni deadministrare( + operațiuni de aplicațiilor Web ( Web aplicațiilor Apache Security Hardening Guide Security Hardening Apache caz DevOps : securizarea www.apachecon.eu aspecte aspecte esențiale de studiat: : aspecte privind dezvoltarea privinddezvoltarea aspecte : Dev – serverului Development Ops – Operations Apache ) )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Studiu actualizarea permanentă a serverului Web Web aserveruluiactualizarea permanentă de caz : și a sale modulelor securizarea serverului Apache

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ instalarea de module ce previn atacuri desecuritate de ce instalarea atacuri previn module Studiu de caz mod_security : www.modsecurity.org securizarea – firewall serverului Apache

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ instalarea de module ce previn atacuri desecuritate de ce instalarea atacuri previn module Studiu OWASP github.com/ de de studiat și regulile stipulate de stipulate de studiat și regulile caz ModSecurity mod_security : www.modsecurity.org SpiderLabs securizarea coreruleset.org / owasp Core Rule SetCore Rule – firewall serverului - modsecurity (CRS) - crs Apache

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ www.linode.com/docs/web instalarea de module ce previn atacuri desecuritate de ce instalarea atacuri previn module Studiu mod_evasive (D) de DoS caz – ( : - servers/apache Distributed securizarea – previne refuzuri deservicii: refuzuri previne - ) tips Denial - serverului and - tricks/modevasive of Services of Apache - on - apache/

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Studiu eliminarea de caz modulelor : securizarea mod_autoindex mod_status mod_info mod_dav … care nu nu care serverului sunt esen Apache ț iale

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ rularea Studiu httpd.apache.org/docs/current/mod/mod_ratelimit.html cu limitarea de experimentat de experimentat modulul serverului de caz : accesului securizarea ca utilizator la resursele serverului cu mod_ratelimit drepturi sistemului Apache minime ,

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ KeepAlive rularea Studiu LimitRequestFieldSize cu MaxClients limitarea KeepAliveTimeout serverului de ajustarea ajustarea a directivelor de configurare: de configurare: a directivelor caz MaxKeepAliveRequests RequestReadTimeout : accesului securizarea ca – LimitRequestLine în fișierul utilizator LimitRequestBody la resursele serverului httpd.conf cu TimeOut MaxRequestWorkers LimitXMLRequestBody drepturi LimitRequestFields sistemului – Apache minime ,

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Studiu directoarele httpd.apache.org/docs/ / var restr de /www/html caz â pentru ngerea : vezi directiva securizarea ( public_ ( diverse directorul permisiunilor ) / html/ 2.4 directoare / howto Require serverului ale root utilizatorilor /access.html implicite al sitului : Apache )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Studiu „ imunizarea de tip de inhibarea modificării inhibarea acestora RBAC caz ” folosind politici de acces acces de politici folosind fi : ș securizarea ierelor ( via Role permisiuni - Based sau de configurare serverului Access Control Access importante Apache )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ izolarea serverului Web carerulează Web de sistemulgazdăpe serveruluiizolarea Studiu de rularea caz : securizarea Apache Apache  sandboxing î ntr - un serverului chroot jail chroot Apache

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Studiu eliminarea de caz pentru : cre securizarea ServerSignature ServerTokens ă rii resursele „ semn ă Prod serverului turii oferit Off ” e: serverului Apache

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ HTTP pentru a obține versiunea curentă a serverului Web a serverului a obține versiunea curentă pentru HTTP Server un posibil atacator poate inspecta de inspecta mesajul răspuns poate atacator un posibil Studiu : Apache/2.4.35 (IUS) OpenSSL/1.0.2k Apache/2.4.35 eliminarea de caz pentru : cre securizarea ServerSignature ServerTokens ă Server rii resursele versus „ semn : Apache: ă Prod - serverului turii oferit fips Off mod_fcgid ” e: serverului /2.3.9 PHP/7.2.14 /2.3.9 Apache

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Studiu pentru de recurgerea la recurgerea caz oferirea : securizarea de modulul conexiuni conexiuni serverului mod_ssl HTTPS Apache

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ verificarea Studiu httpd.apache.org/docs/ de / ajustarea caz : securizarea 2.4 permisiunilor / misc / security_tips.html#serverroot serverului fi ș ierelor Apache publice

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Studiu pentru un server de aplicații serverWeb deaplicații un pentru limitarea httpd.apache.org/ www.php.net/manual/en/ini.core.php#ini.file vezi directiva de configurare vezi directiva deconfigurare de caz / inhibarea la nivel de server Web la niveldeserverWeb : securizarea docs și/sau / 2.4 upload /mod/ core.html#filesmatch serverului - urilor FilesMatch – de fi e.g. - uploads , PHP , ș Apache iere

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Studiu httpd.apache.org/docs/current/ limitarea de de caz către / : interzicerea securizarea amănunte amănunte la utilizatorii folosirii howto serverului obi ș nui /htaccess.html . htaccess ț i Apache

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ interzicerea Studiu dev.mysql.com/doc/ idem, pentru alte servere de baze dealte serveredebaze date idem, pentru de mariadb.com/ accesului caz : securizarea la kb tabela refman /en/ mysqluser /en/grant users serverului la - - MariaDB table/ tables.html Apache / MySQL

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Studiu configurarea www.php.net/manual/en/function.error de browser caz e.g. serverelor : , securizarea la PHP: - ului de parcurs și de parcurs mesajele display_errors de aplica serverului de ț eroare ii s - off reporting.php ă nu Apache trimit ă

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Studiu actualizarea SFTP SSH de www.snailbook.com/protocols.html caz ( SCP pe baza folosi: sepot baza pe SSH, Secure ( sitului Secure File Transfer Protocol File Transfer Secure : securizarea ( Secure SHell doar C network opy prin P serverului metode rotocol protocol ) securizate ) ) Apache :

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Studiu pentru pentru httpd.apache.org/ de alte caz reguli de bună practică, aseconsulta practică, de bună reguli : securizarea docs /2.4/ misc serverului /security_tips.html Apache

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ www.digitalocean.com/community/tags/apache HTTP www.netnea.com/cms/apache httpd.apache.org/ Apache / Apache : serverWeb Apache @ Digital Ocean @ Digital Apache Apache Apache ModSecurity docs Tutorials / current Tutorials – : resurse - tutorials/ / howto : : /

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ (non Alternativ, pot Alternativ,fi folosite strategiiasincrone - blocante) adoptând un unic fir de execuție HTTP ( single : serverWeb threaded )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ (non www..com/blog/inside Alternativ, pot Alternativ,fi folosite strategiiasincrone - blocante) adoptând un unic fir de execuție HTTP exemplu de referință: exemplu ( single - nginx : serverWeb NGINX - how threaded - we - designed ) - for - performance - scale/

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ arhitectura generală inițială a serverului NGINX inițială a serverului generală arhitectura www.aosabook.org/en/nginx.html HTTP : serverWeb

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ (non Alternativ, pot Alternativ,fi folosite strategiiasincrone programatorul își poate crea propriul server Web creapropriul își poate programatorul conceput în limbajul conceput - blocante) adoptând un unic fir de execuție HTTP ( single : serverWeb Node.js JavaScript threaded ( ) ECMAScript vezi viitorul supliment ):

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ ⚙️  ☎  cererile la cererile clienți diverși multiple de pot fi simultan deservite cerere cerere cereri cereri event server Node.js ⧁ HTTP loop ⟺ ⧁ ⧁ threads POSIX async : serverWeb Node.js ⧁ ⧁ operații I/O neblocante (date/servicii) ⟺ ⧁  în în execuție delegare resurse ⎘ ⎙ ☁

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Microsoft IIS ( IIS Microsoft HTTP : server Web : server ( Yet Apache Apache Internet Information Services Internet Information Eclipse NaviServer Mongoose Another Tomcat Web Server – alte soluții ) )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ arhitectura exemplificare: generic rezumat ⥁ Apache HTTP Server ă a ă unui server Web

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/