+ All Categories
Home > Technology > WordCamp Brno 2017 - rychlý a bezpečný web

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

Date post: 28-Jan-2018
Category:
Upload: vladimir-smitka
View: 672 times
Download: 0 times
Share this document with a friend
27
https://lynt.cz Hlavní kroky pro bezpečný a rychlý web Vláďa Smitka [email protected] @smitka Lynt services s.r.o. 21. 10. 2017 1 WordCamp Brno 2017
Transcript
Page 1: WordCamp Brno 2017  - rychlý a bezpečný web

https://lynt.cz

Hlavní kroky pro bezpečný a rychlý web

Vláďa Smitka

[email protected]

@smitka

Lynt services s.r.o.

21. 10. 2017 1

WordCamp Brno 2017

Page 2: WordCamp Brno 2017  - rychlý a bezpečný web

https://lynt.cz

Máme nainstalováno

21. 10. 2017 2

Page 3: WordCamp Brno 2017  - rychlý a bezpečný web

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/

Page 4: WordCamp Brno 2017  - rychlý a bezpečný web

https://lynt.cz21. 10. 2017 4

„Když spustíš nový web bez HTTPS, umře jednorožec!!!“

Page 5: WordCamp Brno 2017  - rychlý a bezpečný web

https://lynt.cz

Co se ještě mohlo pokazit?

21. 10. 2017 5

Page 6: WordCamp Brno 2017  - rychlý a bezpečný web

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

Page 7: WordCamp Brno 2017  - rychlý a bezpečný web

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

Page 8: WordCamp Brno 2017  - rychlý a bezpečný web

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

Page 9: WordCamp Brno 2017  - rychlý a bezpečný web

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 APInapř. /wp-json/wp/v2/users – mail v md5

• https://u.lynt.cz/mu1

21. 10. 2017 9

Page 10: WordCamp Brno 2017  - rychlý a bezpečný web

https://lynt.cz

Omezení přístupu

21. 10. 2017 10

Page 11: WordCamp Brno 2017  - rychlý a bezpečný web

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

Page 12: WordCamp Brno 2017  - rychlý a bezpečný web

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

Page 13: WordCamp Brno 2017  - rychlý a bezpečný web

https://lynt.cz

Main WP

21. 10. 2017 13

Page 14: WordCamp Brno 2017  - rychlý a bezpečný web

https://lynt.cz

Main WP

21. 10. 2017 14

Page 15: WordCamp Brno 2017  - rychlý a bezpečný web

https://lynt.cz

Main WP

21. 10. 2017 15

https://mainwp.com/extension/vulnerability-checker/

CVE-2017-8295

Page 16: WordCamp Brno 2017  - rychlý a bezpečný web

https://lynt.cz21. 10. 2017 16

Page 17: WordCamp Brno 2017  - rychlý a bezpečný web

https://lynt.cz

Antispam pro komentáře

21. 10. 2017 17

Page 18: WordCamp Brno 2017  - rychlý a bezpečný web

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

Page 19: WordCamp Brno 2017  - rychlý a bezpečný web

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

Page 20: WordCamp Brno 2017  - rychlý a bezpečný web

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

Page 21: WordCamp Brno 2017  - rychlý a bezpečný web

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

Page 22: WordCamp Brno 2017  - rychlý a bezpečný web

https://lynt.cz

Změření rychlosti

• https://gtmetrix.com/

• http://www.webpagetest.org (speed index < 3000)

21. 10. 2017 22

Page 23: WordCamp Brno 2017  - rychlý a bezpečný web

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

Page 24: WordCamp Brno 2017  - rychlý a bezpečný web

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

Page 25: WordCamp Brno 2017  - rychlý a bezpečný web

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

Page 26: WordCamp Brno 2017  - rychlý a bezpečný web

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

Page 27: WordCamp Brno 2017  - rychlý a bezpečný web

https://lynt.cz

A to je vše, přátelé.

21. 10. 2017 27


Recommended