SlideShare a Scribd company logo
1 of 27
Download to read offline
https://lynt.cz
Hlavní kroky pro bezpečný a
rychlý web
Vláďa Smitka
vladimir.smitka@lynt.cz
@smitka
Lynt services s.r.o.
21. 10. 2017 1
WordCamp Brno 2017
https://lynt.cz
Máme nainstalováno
21. 10. 2017 2
https://lynt.cz21. 10. 2017 3
• Ideální je začít nový web rovnou na HTTPS (i na vývoji)
• Využít hlavičku HSTS na produkci
• Přesměrování patří do konfigurace, ne do pluginu
• Generátor konfigurace:
• https://mozilla.github.io/server-side-tls/ssl-config-generator/
• Svou konfiguraci si vyzkoušejte na
https://www.ssllabs.com/ssltest/
https://lynt.cz21. 10. 2017 4
„Když spustíš nový web bez HTTPS,
umře jednorožec!!!“
https://lynt.cz
Co se ještě mohlo pokazit?
21. 10. 2017 5
https://lynt.cz
Co se ještě mohlo pokazit?
• Uživatelské jméno? Admin
• Silné heslo?
• Prefix tabulek? (může někdy pomoci)
• Šifrovací klíče u one-click instalátoru?
(https://api.wordpress.org/secret-key/1.1/salt/)
21. 10. 2017 6
https://lynt.cz
Hesla
Počty kombinací: http://projects.lambry.com/elpassword/
21. 10. 2017 7
GTX 1050 MD5 PHPASS (MD5) Bcrypt
Hash/s 5 863 MH/s 1 880 kH/s 3 959 H/s
Doba louskání -
8 znaků
35 s 31 hod 610 dní
Typ hesla Počet kombinací
6 znaků (malá písmena) 308 915 776
8 znaků 208 827 064 576
8 znaků + čísla 2 821 109 907 456
8 znaků (velká/malá) + čísla 218 340 105 584 896
8 znaků (v/m) + čísla + speciál 6 634 204 312 890 625
https://lynt.cz
Jak na hesla?
• Password Manager
– KeePass, LastPass, 1password, DashLane, RoboForm
21. 10. 2017 8
• Jak heslo poslat klientovi:
‒ Šifrovaný mail (PGP, S/MIME)
‒ Jednorázové sdílení (https://secure.lynt.cz/), pro
soubory https://send.firefox.com/
‒ Šifrovaný archiv + heslo SMS
https://lynt.cz
První zlepšení
• Lepší hashování hesel - bcrypt
• Vrácení chyby 403 při chybném přihlášení
• Odfiltrování citlivých dat z Rest API
např. /wp-json/wp/v2/users – mail v md5
• https://u.lynt.cz/mu1
21. 10. 2017 9
https://lynt.cz
Omezení přístupu
21. 10. 2017 10
https://lynt.cz
Omezení přístupu
• Přístup k wp-login.php pouze z ČR/SK
(ideálně pouze z VPN)
• Fail2Ban blokující chybná přihlášení z chyb 403
• Zákaz XML-RPC (je nutný pro JetPack, některé další
pluginy a aplikace pro správu WP)
• Blokace známých útoků
• Zjišťování uživatelských jmen
• Mnoho vyřeší WordFence
• https://www.slideshare.net/vsmitka/wordfence-2016
21. 10. 2017 11
https://lynt.cz
Aktualizace
• Systém pro hromadnou správu – MainWP
• https://mainwp.com/
• 1 vyhrazený web s dashboardem
• Na ostatní instalace MainWP Child
21. 10. 2017 12
https://lynt.cz
Main WP
21. 10. 2017 13
https://lynt.cz
Main WP
21. 10. 2017 14
https://lynt.cz
Main WP
21. 10. 2017 15
https://mainwp.com/extension/vulnerability-checker/
CVE-2017-8295
https://lynt.cz21. 10. 2017 16
https://lynt.cz
Antispam pro komentáře
21. 10. 2017 17
https://lynt.cz
Antispam pro komentáře
• Akismet – je třeba aktivovat na
https://akismet.com/
• NoSpamNX
• https://u.lynt.cz/antispam
- vyžaduje registraci na http://www.projecthoneypot.org
• Nezapomeňte také smazat vzorové příspěvky ;-)
21. 10. 2017 18
https://lynt.cz
Cachování
21. 10. 2017 19
OP code cache
Transientní cache
Stránková cache
Cache prohlížeče
Objektová cache
Disková cache
Proxy cache
https://lynt.cz
Cachování
• Disková cache – Linux využívá volnou RAM pro
rychlejší přístup k souborům = je dobré mít hodně RAM
• OP code cache – PHP do RAM ukládá zpracovaný PHP
kód (PHP 5.6+, starší s rozšířením)
• Transientní cache – při použití WP ukládá výsledky
složitých operací do DB
(https://codex.wordpress.org/Transients_API)
• Objektová cache – ukládá výsledky složitých operací do
jiného úložiště – lze použít jako úložiště pro transienty
– je třeba podpora serveru a drop-in do WP
(Memcache, Redis, Xcache, APC, APCu)
21. 10. 2017 20
https://lynt.cz
Cachování
• Stránková cache – uloží výsledek pracování
skriptu do statického souboru – např. WP
SuperCache
• Proxy – reverzní na straně serveru/„dopředná“ na
straně lokální sítě – ukládá statický soubor, aby se
nemusel znova stahovat/generovat (varnish,
nginx microcache/squid)
• Cache prohlížeče – řídí se expires hlavičkami,
pokud nejsou, snaží se je odvodit (většinou podle
stáří souboru)
21. 10. 2017 21
https://lynt.cz
Změření rychlosti
• https://gtmetrix.com/
• http://www.webpagetest.org (speed index < 3000)
21. 10. 2017 22
https://lynt.cz
Jak vypadá naše typická infrastruktura
• Fyzické servery s hodně RAM nebo více VPS s
oddělenou funkcionalitou
• PHP 7.1 s OP cache
• APCu pro Object Cache (případně Redis)
• WP SuperCache – 12 hodin (kvůli nonce)
• Reverzní Nginx proxy cache (Microcache) –
několik minut
• HTTP/2 – pro lepší stahování zdrojů
• https://u.lynt.cz/nginx
21. 10. 2017 23
https://lynt.cz
.htaccess
• Připravená běžná pravidla:
https://u.lynt.cz/htaccess
• Bezpečnostní hlavičky
• Cachování statických souborů
• Gzip
• Blokace souborů, GEO blokace
• Přesměrování HTTP na HTTPS, bez www na www
21. 10. 2017 24
https://lynt.cz
Checklist
 HTTPS, správné přesměrování a HSTS - otestovat
 Generovaná hesla + password manager
 Ochrana před zkoušením hesel (omezení na vybrané adresy,
Fail2ban na serveru, bezpečnostní plugin – např.
WordFence)
 Hromadná správa + zálohy – např. MainWP
 Antispamový plugin (pokud mám komentáře)
 PHP 7+, HTTP/2
 Object cache drop-in (pokud lze – info od hostingu)
 Stránková cache - např. WP SuperCache
 Otestovat rychlost
21. 10. 2017 25
https://lynt.cz
Další tipy
• https://lynt.cz/blog/10-nejcastejsich-problemu-
modernich-webu
• https://lynt.cz/blog/optimalizace-vykonu-webovych-
aplikaci-na-co-se-zamerit
• https://lynt.cz/blog/verze-wordpress-skryvat-nebo-ne
• https://lynt.cz/blog/wordpress-v-cz-velky-pruzkum
• https://www.slideshare.net/vsmitka
• A můj Twitter ;-) https://twitter.com/smitka
21. 10. 2017 26
https://lynt.cz
A to je vše, přátelé.
21. 10. 2017 27

More Related Content

What's hot

Bezpečnost Wordpressu - 4. WP konference
Bezpečnost Wordpressu - 4. WP konferenceBezpečnost Wordpressu - 4. WP konference
Bezpečnost Wordpressu - 4. WP konferenceVladimír Smitka
 
Jak si (ne)nechat hacknout Wordpress stránky
Jak si (ne)nechat hacknout Wordpress stránkyJak si (ne)nechat hacknout Wordpress stránky
Jak si (ne)nechat hacknout Wordpress stránkyVladimír Smitka
 
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015Bezpečnost WP, tipy pro každého - wordCamp Praha 2015
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015Vladimír Smitka
 
Sysops tipy pro lepší WP
Sysops tipy pro lepší WPSysops tipy pro lepší WP
Sysops tipy pro lepší WPVladimír Smitka
 
Najčastejšie problémy WordPress webov
Najčastejšie problémy WordPress webovNajčastejšie problémy WordPress webov
Najčastejšie problémy WordPress webovVladimír Smitka
 
WordPress šablony a rychlost načítání (WordCamp Praha 2017)
WordPress šablony a  rychlost načítání (WordCamp Praha 2017)WordPress šablony a  rychlost načítání (WordCamp Praha 2017)
WordPress šablony a rychlost načítání (WordCamp Praha 2017)Martin Michálek
 
Google Tag Manager a analytika ve WordPress
Google Tag Manager a analytika ve WordPressGoogle Tag Manager a analytika ve WordPress
Google Tag Manager a analytika ve WordPressVladimír Smitka
 
Wordpress_DOD
Wordpress_DODWordpress_DOD
Wordpress_DODDoubry99
 
WordCamp Bratislava 2019 - Cache!
WordCamp Bratislava 2019 - Cache!WordCamp Bratislava 2019 - Cache!
WordCamp Bratislava 2019 - Cache!Vladimír Smitka
 
Verzování WordPress webů (#wpkonference 11/2014)
Verzování WordPress webů (#wpkonference 11/2014)Verzování WordPress webů (#wpkonference 11/2014)
Verzování WordPress webů (#wpkonference 11/2014)Borek Bernard
 
Základní pluginy pro WordPress 25-6-2016
Základní pluginy pro WordPress 25-6-2016Základní pluginy pro WordPress 25-6-2016
Základní pluginy pro WordPress 25-6-2016Radek Kucera
 
Jak zlepšit zabezpečení čtvrtiny celého webu
Jak zlepšit zabezpečení čtvrtiny celého webuJak zlepšit zabezpečení čtvrtiny celého webu
Jak zlepšit zabezpečení čtvrtiny celého webuMichal Špaček
 
Jak zrychlit WP pomocí cachovacích pluginů
Jak zrychlit WP pomocí cachovacích pluginůJak zrychlit WP pomocí cachovacích pluginů
Jak zrychlit WP pomocí cachovacích pluginůJakub Klapka
 
Principy cachování ve WordPressu
Principy cachování ve WordPressuPrincipy cachování ve WordPressu
Principy cachování ve WordPressuDavid Biňovec
 
Hesla a vícefaktorová autentizace ve WP
Hesla a vícefaktorová autentizace ve WPHesla a vícefaktorová autentizace ve WP
Hesla a vícefaktorová autentizace ve WPVladimír Smitka
 
10 tipů pro lepší zabezpečení WordPressu - 2. Wordpress konference Hluboká 2014
10 tipů pro lepší zabezpečení WordPressu - 2. Wordpress konference Hluboká 201410 tipů pro lepší zabezpečení WordPressu - 2. Wordpress konference Hluboká 2014
10 tipů pro lepší zabezpečení WordPressu - 2. Wordpress konference Hluboká 2014Radek Kucera
 

What's hot (20)

Bezpečnost Wordpressu - 4. WP konference
Bezpečnost Wordpressu - 4. WP konferenceBezpečnost Wordpressu - 4. WP konference
Bezpečnost Wordpressu - 4. WP konference
 
Instalace WordPress
Instalace WordPressInstalace WordPress
Instalace WordPress
 
Wordfence 2016
Wordfence 2016Wordfence 2016
Wordfence 2016
 
Jak si (ne)nechat hacknout Wordpress stránky
Jak si (ne)nechat hacknout Wordpress stránkyJak si (ne)nechat hacknout Wordpress stránky
Jak si (ne)nechat hacknout Wordpress stránky
 
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015Bezpečnost WP, tipy pro každého - wordCamp Praha 2015
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015
 
Sysops tipy pro lepší WP
Sysops tipy pro lepší WPSysops tipy pro lepší WP
Sysops tipy pro lepší WP
 
Najčastejšie problémy WordPress webov
Najčastejšie problémy WordPress webovNajčastejšie problémy WordPress webov
Najčastejšie problémy WordPress webov
 
WordPress šablony a rychlost načítání (WordCamp Praha 2017)
WordPress šablony a  rychlost načítání (WordCamp Praha 2017)WordPress šablony a  rychlost načítání (WordCamp Praha 2017)
WordPress šablony a rychlost načítání (WordCamp Praha 2017)
 
Google Tag Manager a analytika ve WordPress
Google Tag Manager a analytika ve WordPressGoogle Tag Manager a analytika ve WordPress
Google Tag Manager a analytika ve WordPress
 
Wordpress_DOD
Wordpress_DODWordpress_DOD
Wordpress_DOD
 
WordCamp Bratislava 2019 - Cache!
WordCamp Bratislava 2019 - Cache!WordCamp Bratislava 2019 - Cache!
WordCamp Bratislava 2019 - Cache!
 
Verzování WordPress webů (#wpkonference 11/2014)
Verzování WordPress webů (#wpkonference 11/2014)Verzování WordPress webů (#wpkonference 11/2014)
Verzování WordPress webů (#wpkonference 11/2014)
 
Základní pluginy pro WordPress 25-6-2016
Základní pluginy pro WordPress 25-6-2016Základní pluginy pro WordPress 25-6-2016
Základní pluginy pro WordPress 25-6-2016
 
Jak zlepšit zabezpečení čtvrtiny celého webu
Jak zlepšit zabezpečení čtvrtiny celého webuJak zlepšit zabezpečení čtvrtiny celého webu
Jak zlepšit zabezpečení čtvrtiny celého webu
 
Jak zrychlit WP pomocí cachovacích pluginů
Jak zrychlit WP pomocí cachovacích pluginůJak zrychlit WP pomocí cachovacích pluginů
Jak zrychlit WP pomocí cachovacích pluginů
 
Principy cachování ve WordPressu
Principy cachování ve WordPressuPrincipy cachování ve WordPressu
Principy cachování ve WordPressu
 
Hesla a vícefaktorová autentizace ve WP
Hesla a vícefaktorová autentizace ve WPHesla a vícefaktorová autentizace ve WP
Hesla a vícefaktorová autentizace ve WP
 
WP Weekend 2018
WP Weekend 2018WP Weekend 2018
WP Weekend 2018
 
Webmeetup #3
Webmeetup #3Webmeetup #3
Webmeetup #3
 
10 tipů pro lepší zabezpečení WordPressu - 2. Wordpress konference Hluboká 2014
10 tipů pro lepší zabezpečení WordPressu - 2. Wordpress konference Hluboká 201410 tipů pro lepší zabezpečení WordPressu - 2. Wordpress konference Hluboká 2014
10 tipů pro lepší zabezpečení WordPressu - 2. Wordpress konference Hluboká 2014
 

Similar to WordCamp Brno 2017 - rychlý a bezpečný web

HCL Sametime V11 instalace - tipy
HCL Sametime V11  instalace - tipyHCL Sametime V11  instalace - tipy
HCL Sametime V11 instalace - tipyAles Lichtenberg
 
Generátory statických webů
Generátory statických webůGenerátory statických webů
Generátory statických webůMichal Doležel
 
Veeam v10 jak na to
Veeam v10 jak na toVeeam v10 jak na to
Veeam v10 jak na toVladan Laxa
 
Optimalizace webových aplikací
Optimalizace webových aplikacíOptimalizace webových aplikací
Optimalizace webových aplikacíVašek Purchart
 
Nette v cloudu - Poslední Sobota
Nette v cloudu - Poslední SobotaNette v cloudu - Poslední Sobota
Nette v cloudu - Poslední SobotaPatrik Votoček
 
Jelastic & Red Hat OpenShift - app deployment
Jelastic & Red Hat OpenShift - app deploymentJelastic & Red Hat OpenShift - app deployment
Jelastic & Red Hat OpenShift - app deploymentVaclav Chalupa
 
Rich Internet Applications 2009 (Czech)
Rich Internet Applications 2009 (Czech)Rich Internet Applications 2009 (Czech)
Rich Internet Applications 2009 (Czech)Pavel Růžička
 
06 prez2(tvorba webu)
06 prez2(tvorba webu)06 prez2(tvorba webu)
06 prez2(tvorba webu)olc_user
 
Nové »bezhlavé« CMS — přechod od monolitů ke službám
Nové »bezhlavé« CMS — přechod od monolitů ke službámNové »bezhlavé« CMS — přechod od monolitů ke službám
Nové »bezhlavé« CMS — přechod od monolitů ke službámJaroslav Vrána
 
How to installing IBM Verse on premises
How to installing IBM Verse on premisesHow to installing IBM Verse on premises
How to installing IBM Verse on premisesAles Lichtenberg
 
Webinář: Co nového přináší verze 9 jedničky v zálohování Veeam Backup & Repli...
Webinář: Co nového přináší verze 9 jedničky v zálohování Veeam Backup & Repli...Webinář: Co nového přináší verze 9 jedničky v zálohování Veeam Backup & Repli...
Webinář: Co nového přináší verze 9 jedničky v zálohování Veeam Backup & Repli...Jaroslav Prodelal
 

Similar to WordCamp Brno 2017 - rychlý a bezpečný web (20)

HCL Sametime V11 instalace - tipy
HCL Sametime V11  instalace - tipyHCL Sametime V11  instalace - tipy
HCL Sametime V11 instalace - tipy
 
Generátory statických webů
Generátory statických webůGenerátory statických webů
Generátory statických webů
 
TNPW2-2013-03
TNPW2-2013-03TNPW2-2013-03
TNPW2-2013-03
 
Ops2 nginx
Ops2   nginxOps2   nginx
Ops2 nginx
 
Zabezpečení Slevomatu
Zabezpečení SlevomatuZabezpečení Slevomatu
Zabezpečení Slevomatu
 
Veeam v10 jak na to
Veeam v10 jak na toVeeam v10 jak na to
Veeam v10 jak na to
 
Optimalizace webových aplikací
Optimalizace webových aplikacíOptimalizace webových aplikací
Optimalizace webových aplikací
 
Nette v cloudu - Poslední Sobota
Nette v cloudu - Poslední SobotaNette v cloudu - Poslední Sobota
Nette v cloudu - Poslední Sobota
 
Joomla! na MS Windows
Joomla! na MS WindowsJoomla! na MS Windows
Joomla! na MS Windows
 
TNPW2-2013-07
TNPW2-2013-07TNPW2-2013-07
TNPW2-2013-07
 
Jelastic & Red Hat OpenShift - app deployment
Jelastic & Red Hat OpenShift - app deploymentJelastic & Red Hat OpenShift - app deployment
Jelastic & Red Hat OpenShift - app deployment
 
Rich Internet Applications 2009 (Czech)
Rich Internet Applications 2009 (Czech)Rich Internet Applications 2009 (Czech)
Rich Internet Applications 2009 (Czech)
 
06 prez2(tvorba webu)
06 prez2(tvorba webu)06 prez2(tvorba webu)
06 prez2(tvorba webu)
 
TNPW2-2014-03
TNPW2-2014-03TNPW2-2014-03
TNPW2-2014-03
 
Nové »bezhlavé« CMS — přechod od monolitů ke službám
Nové »bezhlavé« CMS — přechod od monolitů ke službámNové »bezhlavé« CMS — přechod od monolitů ke službám
Nové »bezhlavé« CMS — přechod od monolitů ke službám
 
How to installing IBM Verse on premises
How to installing IBM Verse on premisesHow to installing IBM Verse on premises
How to installing IBM Verse on premises
 
TNPW2-2012-03
TNPW2-2012-03TNPW2-2012-03
TNPW2-2012-03
 
TNPW2-2014-05
TNPW2-2014-05TNPW2-2014-05
TNPW2-2014-05
 
Webinář: Co nového přináší verze 9 jedničky v zálohování Veeam Backup & Repli...
Webinář: Co nového přináší verze 9 jedničky v zálohování Veeam Backup & Repli...Webinář: Co nového přináší verze 9 jedničky v zálohování Veeam Backup & Repli...
Webinář: Co nového přináší verze 9 jedničky v zálohování Veeam Backup & Repli...
 
TNPW2-2012-05
TNPW2-2012-05TNPW2-2012-05
TNPW2-2012-05
 

More from Vladimír Smitka

Co ukázal globální scan přístupných .git repozitářů?
Co ukázal globální scan přístupných .git repozitářů?Co ukázal globální scan přístupných .git repozitářů?
Co ukázal globální scan přístupných .git repozitářů?Vladimír Smitka
 
Drobné chyby, které vám mohou zlomit vaz
Drobné chyby, které vám mohou zlomit vazDrobné chyby, které vám mohou zlomit vaz
Drobné chyby, které vám mohou zlomit vazVladimír Smitka
 
WordPress Security: Defend yourself against digital invaders
WordPress Security:Defend yourself against digital invadersWordPress Security:Defend yourself against digital invaders
WordPress Security: Defend yourself against digital invadersVladimír Smitka
 
WordPress performance tuning
WordPress performance tuningWordPress performance tuning
WordPress performance tuningVladimír Smitka
 
WordPress security for everyone
WordPress security for everyoneWordPress security for everyone
WordPress security for everyoneVladimír Smitka
 
České weby a Wordpress (Q4/2014)
České weby a Wordpress (Q4/2014)České weby a Wordpress (Q4/2014)
České weby a Wordpress (Q4/2014)Vladimír Smitka
 
Wordcamp Praha 2015 - další útržky z prezentace
Wordcamp Praha 2015 - další útržky z prezentaceWordcamp Praha 2015 - další útržky z prezentace
Wordcamp Praha 2015 - další útržky z prezentaceVladimír Smitka
 
Sítě pro malé a střední podniky 2014
Sítě pro malé a střední podniky 2014Sítě pro malé a střední podniky 2014
Sítě pro malé a střední podniky 2014Vladimír Smitka
 

More from Vladimír Smitka (11)

Co ukázal globální scan přístupných .git repozitářů?
Co ukázal globální scan přístupných .git repozitářů?Co ukázal globální scan přístupných .git repozitářů?
Co ukázal globální scan přístupných .git repozitářů?
 
Drobné chyby, které vám mohou zlomit vaz
Drobné chyby, které vám mohou zlomit vazDrobné chyby, které vám mohou zlomit vaz
Drobné chyby, které vám mohou zlomit vaz
 
Http/2 vs Image Sprites
Http/2 vs Image SpritesHttp/2 vs Image Sprites
Http/2 vs Image Sprites
 
Ansible
AnsibleAnsible
Ansible
 
WordPress Security: Defend yourself against digital invaders
WordPress Security:Defend yourself against digital invadersWordPress Security:Defend yourself against digital invaders
WordPress Security: Defend yourself against digital invaders
 
WordPress performance tuning
WordPress performance tuningWordPress performance tuning
WordPress performance tuning
 
WordPress security for everyone
WordPress security for everyoneWordPress security for everyone
WordPress security for everyone
 
České weby a Wordpress (Q4/2014)
České weby a Wordpress (Q4/2014)České weby a Wordpress (Q4/2014)
České weby a Wordpress (Q4/2014)
 
Wordcamp Praha 2015 - další útržky z prezentace
Wordcamp Praha 2015 - další útržky z prezentaceWordcamp Praha 2015 - další útržky z prezentace
Wordcamp Praha 2015 - další útržky z prezentace
 
Dijskrův algoritmus
Dijskrův algoritmusDijskrův algoritmus
Dijskrův algoritmus
 
Sítě pro malé a střední podniky 2014
Sítě pro malé a střední podniky 2014Sítě pro malé a střední podniky 2014
Sítě pro malé a střední podniky 2014
 

WordCamp Brno 2017 - rychlý a bezpečný web

  • 1. https://lynt.cz Hlavní kroky pro bezpečný a rychlý web Vláďa Smitka vladimir.smitka@lynt.cz @smitka Lynt services s.r.o. 21. 10. 2017 1 WordCamp Brno 2017
  • 3. https://lynt.cz21. 10. 2017 3 • Ideální je začít nový web rovnou na HTTPS (i na vývoji) • Využít hlavičku HSTS na produkci • Přesměrování patří do konfigurace, ne do pluginu • Generátor konfigurace: • https://mozilla.github.io/server-side-tls/ssl-config-generator/ • Svou konfiguraci si vyzkoušejte na https://www.ssllabs.com/ssltest/
  • 4. https://lynt.cz21. 10. 2017 4 „Když spustíš nový web bez HTTPS, umře jednorožec!!!“
  • 5. https://lynt.cz Co se ještě mohlo pokazit? 21. 10. 2017 5
  • 6. https://lynt.cz Co se ještě mohlo pokazit? • Uživatelské jméno? Admin • Silné heslo? • Prefix tabulek? (může někdy pomoci) • Šifrovací klíče u one-click instalátoru? (https://api.wordpress.org/secret-key/1.1/salt/) 21. 10. 2017 6
  • 7. https://lynt.cz Hesla Počty kombinací: http://projects.lambry.com/elpassword/ 21. 10. 2017 7 GTX 1050 MD5 PHPASS (MD5) Bcrypt Hash/s 5 863 MH/s 1 880 kH/s 3 959 H/s Doba louskání - 8 znaků 35 s 31 hod 610 dní Typ hesla Počet kombinací 6 znaků (malá písmena) 308 915 776 8 znaků 208 827 064 576 8 znaků + čísla 2 821 109 907 456 8 znaků (velká/malá) + čísla 218 340 105 584 896 8 znaků (v/m) + čísla + speciál 6 634 204 312 890 625
  • 8. https://lynt.cz Jak na hesla? • Password Manager – KeePass, LastPass, 1password, DashLane, RoboForm 21. 10. 2017 8 • Jak heslo poslat klientovi: ‒ Šifrovaný mail (PGP, S/MIME) ‒ Jednorázové sdílení (https://secure.lynt.cz/), pro soubory https://send.firefox.com/ ‒ Šifrovaný archiv + heslo SMS
  • 9. https://lynt.cz První zlepšení • Lepší hashování hesel - bcrypt • Vrácení chyby 403 při chybném přihlášení • Odfiltrování citlivých dat z Rest API např. /wp-json/wp/v2/users – mail v md5 • https://u.lynt.cz/mu1 21. 10. 2017 9
  • 11. https://lynt.cz Omezení přístupu • Přístup k wp-login.php pouze z ČR/SK (ideálně pouze z VPN) • Fail2Ban blokující chybná přihlášení z chyb 403 • Zákaz XML-RPC (je nutný pro JetPack, některé další pluginy a aplikace pro správu WP) • Blokace známých útoků • Zjišťování uživatelských jmen • Mnoho vyřeší WordFence • https://www.slideshare.net/vsmitka/wordfence-2016 21. 10. 2017 11
  • 12. https://lynt.cz Aktualizace • Systém pro hromadnou správu – MainWP • https://mainwp.com/ • 1 vyhrazený web s dashboardem • Na ostatní instalace MainWP Child 21. 10. 2017 12
  • 15. https://lynt.cz Main WP 21. 10. 2017 15 https://mainwp.com/extension/vulnerability-checker/ CVE-2017-8295
  • 18. https://lynt.cz Antispam pro komentáře • Akismet – je třeba aktivovat na https://akismet.com/ • NoSpamNX • https://u.lynt.cz/antispam - vyžaduje registraci na http://www.projecthoneypot.org • Nezapomeňte také smazat vzorové příspěvky ;-) 21. 10. 2017 18
  • 19. https://lynt.cz Cachování 21. 10. 2017 19 OP code cache Transientní cache Stránková cache Cache prohlížeče Objektová cache Disková cache Proxy cache
  • 20. https://lynt.cz Cachování • Disková cache – Linux využívá volnou RAM pro rychlejší přístup k souborům = je dobré mít hodně RAM • OP code cache – PHP do RAM ukládá zpracovaný PHP kód (PHP 5.6+, starší s rozšířením) • Transientní cache – při použití WP ukládá výsledky složitých operací do DB (https://codex.wordpress.org/Transients_API) • Objektová cache – ukládá výsledky složitých operací do jiného úložiště – lze použít jako úložiště pro transienty – je třeba podpora serveru a drop-in do WP (Memcache, Redis, Xcache, APC, APCu) 21. 10. 2017 20
  • 21. https://lynt.cz Cachování • Stránková cache – uloží výsledek pracování skriptu do statického souboru – např. WP SuperCache • Proxy – reverzní na straně serveru/„dopředná“ na straně lokální sítě – ukládá statický soubor, aby se nemusel znova stahovat/generovat (varnish, nginx microcache/squid) • Cache prohlížeče – řídí se expires hlavičkami, pokud nejsou, snaží se je odvodit (většinou podle stáří souboru) 21. 10. 2017 21
  • 22. https://lynt.cz Změření rychlosti • https://gtmetrix.com/ • http://www.webpagetest.org (speed index < 3000) 21. 10. 2017 22
  • 23. https://lynt.cz Jak vypadá naše typická infrastruktura • Fyzické servery s hodně RAM nebo více VPS s oddělenou funkcionalitou • PHP 7.1 s OP cache • APCu pro Object Cache (případně Redis) • WP SuperCache – 12 hodin (kvůli nonce) • Reverzní Nginx proxy cache (Microcache) – několik minut • HTTP/2 – pro lepší stahování zdrojů • https://u.lynt.cz/nginx 21. 10. 2017 23
  • 24. https://lynt.cz .htaccess • Připravená běžná pravidla: https://u.lynt.cz/htaccess • Bezpečnostní hlavičky • Cachování statických souborů • Gzip • Blokace souborů, GEO blokace • Přesměrování HTTP na HTTPS, bez www na www 21. 10. 2017 24
  • 25. https://lynt.cz Checklist  HTTPS, správné přesměrování a HSTS - otestovat  Generovaná hesla + password manager  Ochrana před zkoušením hesel (omezení na vybrané adresy, Fail2ban na serveru, bezpečnostní plugin – např. WordFence)  Hromadná správa + zálohy – např. MainWP  Antispamový plugin (pokud mám komentáře)  PHP 7+, HTTP/2  Object cache drop-in (pokud lze – info od hostingu)  Stránková cache - např. WP SuperCache  Otestovat rychlost 21. 10. 2017 25
  • 26. https://lynt.cz Další tipy • https://lynt.cz/blog/10-nejcastejsich-problemu- modernich-webu • https://lynt.cz/blog/optimalizace-vykonu-webovych- aplikaci-na-co-se-zamerit • https://lynt.cz/blog/verze-wordpress-skryvat-nebo-ne • https://lynt.cz/blog/wordpress-v-cz-velky-pruzkum • https://www.slideshare.net/vsmitka • A můj Twitter ;-) https://twitter.com/smitka 21. 10. 2017 26
  • 27. https://lynt.cz A to je vše, přátelé. 21. 10. 2017 27

Editor's Notes

  1. Za každý web bez https umře jednorožec (možná chcípne)
  2. Pat mat, homer
  3. upirátit
  4. Velký pán?
  5. Bla bla babiš – aby nikdo neblábolil
  6. Pták uličník