curso cda: seguridade e rendemento en drupal

30
CURSO DE ADMINISTRACIÓN AVANZADA E DESENVOLVEMENTO DE DRUPAL 8 - 12 setembro 2014 – Santiago de Compostela TEMA 3: RENDEMENTO E SEGURIDADE DRUPAL

Upload: alberto-permuy-leal

Post on 21-Jun-2015

345 views

Category:

Education


4 download

DESCRIPTION

Curso CDA: Seguridade e rendemento en Drupal

TRANSCRIPT

Page 1: Curso CDA: Seguridade e rendemento en Drupal

CURSO DE ADMINISTRACIÓN AVANZADA E DESENVOLVEMENTO DE DRUPAL

8 - 12 setembro 2014 – Santiago de Compostela

TEMA 3: RENDEMENTO E SEGURIDADE DRUPAL

Page 2: Curso CDA: Seguridade e rendemento en Drupal

Esta obra fue creada por Alberto Permuy Leal, y está disponible bajo una licencia Reconocimiento-CompartirIgual 3.0 http://creativecommons.org/licenses/by-sa/3.0/deed.es_ES

Usted es libre de:

Copiar, distribuir y comunicar públicamente la obra

Hacer obras derivadas

Bajo las condiciones siguientes:

Reconocimiento - Debe reconocer los créditos de la obra de la manera especificada por el autor o licenciador (pero no de una manera que sugiera que tiene su apoyo o apoyan el uso que hace de su obra).

Compartir bajo la misma licencia - Si altera o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta.

© 2014 - CIXUG

Page 3: Curso CDA: Seguridade e rendemento en Drupal

● 0,1s de retraso en Amazon implican -1% ingresos. ● 1s de retraso en Facebook reduce un 6% visitas. ● Netflix activa gzip = + 13-25% velocidad carga ● Google Maps: +30% aumento velocidad = +30% usuarios

CURSO DRUPAL 7 AVANZADO

SABIAS QUE...

Beneficio Amazon en 2013: 274 M € || Facebook 2 semestre 2014 : 1,3B visitas/mes

http://www.statista.com/statistics/264810/number-of-monthly-active-facebook-users-worldwide/

http://www.expansion.com/2014/01/31/empresas/tmt/1391126796.html

Page 4: Curso CDA: Seguridade e rendemento en Drupal

● Humano: Saber e recoñecer que temos un problema. Habilidades.● Software: Drupal, SSOO, arquitectura de rede...● Hardware: AMDK6-II 350Mhz● Económicos: tempo = €

CURSO DRUPAL 7 AVANZADO

FACTORES QUE INFLUEN NO RENDEMENTO

Page 5: Curso CDA: Seguridade e rendemento en Drupal

CURSO DRUPAL 7 AVANZADO

caché, caché,caché

Page 6: Curso CDA: Seguridade e rendemento en Drupal

● Caché OpCode PHP● Caché de proxy inverso● Caché de bases de datos● Cachés de Drupal

CURSO DRUPAL 7 AVANZADO

Caché : a clave en Drupal

Page 7: Curso CDA: Seguridade e rendemento en Drupal

● Fundamental en Drupal● Non temos(ou non deberiamos) ter motivos para non implementar.● APC, Xcache, eAcceleator => APC● http://www.drupal.org/project/apc

CURSO DRUPAL 7 AVANZADO

Caché OpCode

Page 8: Curso CDA: Seguridade e rendemento en Drupal

● Alivia considerablemente a carga dos servidores web.● Nginx + Apache ● Varnish é o preferido pola comunidade Drupal● Boost

CURSO DRUPAL 7 AVANZADO

Caché de proxy inverso

https://github.com/perusio/drupal-with-nginx

Caché de proxy inverso

https://www.drupal.org/project/varnish

https://www.drupal.org/project/boost

Page 9: Curso CDA: Seguridade e rendemento en Drupal

● MySQL dispón das súas propias cachés. Let's go!● Consultas: query_cache_size● Operacións I/O do sistema arquivos : innodb_buffer_pool_size● https://www.drupal.org/node/85768

CURSO DRUPAL 7 AVANZADO

Caché de base de datos

Page 10: Curso CDA: Seguridade e rendemento en Drupal

CURSO DRUPAL 7 AVANZADO

memcached

● Sistema de caché baseado en memoria● Funcionamento táboa hash distribuida● Array asociativo clave => valor . Clave hasta 250 bytes e valores ata

1 MB.● Integración “awesómica” en Drupal● Podemos “cachear” bloques, views....● https://www.drupal.org/project/memcache

Page 11: Curso CDA: Seguridade e rendemento en Drupal
Page 12: Curso CDA: Seguridade e rendemento en Drupal

CURSO DRUPAL 7 AVANZADO

RENDEMENTO DRUPAL 7

ab siege

Page 13: Curso CDA: Seguridade e rendemento en Drupal

CURSO DRUPAL 7 AVANZADO

Consellos rendemento Drupal

● Planificación da estratexia de rendemento● ssoo + www + bbdd + core + code

● Manter actualizado Drupal, sempre!● Desactivar módulos non necesarios● Drupal caché:

● Bloques● views views_caché→

● memcache + OpCode(APC p.e)● Minimizar CSS e JS (Advag)● Monitorizar + profiling para identificar erros: Yslow(p.e)

Page 14: Curso CDA: Seguridade e rendemento en Drupal

CURSO DRUPAL 7 AVANZADO

Tip: Reducir o número de peticións HTTP

● HTTP protocolo cliente/servidor● A maior número de peticións, maior tempo de espera

Solución:● Combinar CSS nun único arquivo● Combinar JS nun único arquivo

Tools

● Drupal core

● AdvAgg

Page 15: Curso CDA: Seguridade e rendemento en Drupal

CURSO DRUPAL 7 AVANZADO

Tip: Engadir Expires Header

● Expires Header fixa o tempo que debe pasar ata que un cliente debe descargar de novo os compoñentes do noso sitio web, por exemplo imaxes.

Solución

● Activar mod_expires. No arquivo .htaccess dunha instalación de Drupal, a configuración de mod_expires é xenérica. Debemos tunear a configuración

Tools

● Apache2 mod_expires

● Módulo advagg e expires

Page 16: Curso CDA: Seguridade e rendemento en Drupal

CURSO DRUPAL 7 AVANZADO

Tip: Comprimir componentes con GZIP

● Comprimir HTML, CSS y JS reduce considerablemente el peso de nuestro sitio web

● Todos los navegadores* soportan compresión GZIP

Solución

● Activar mod_deflate

Tools

● Activado por defecto nunha instalación Apache2 en Debian GNU/Linux 7.x

● mod_deflate.conf => DeflateCompressionLevel

Page 17: Curso CDA: Seguridade e rendemento en Drupal

CURSO DRUPAL 7 AVANZADO

Tip: Engadir Expires Header

● Expires Header fixa o tempo que debe pasar ata que un cliente debe descargar de novo o contido.

Solución

● Activar e configurar mod_expires en Apache2

Tools

● Módulo expires o advagg

Page 18: Curso CDA: Seguridade e rendemento en Drupal

CURSO DRUPAL 7 AVANZADO

SEGURIDADE EN DRUPAL IV - CONSELLOS e MÓDULOS

● Manter tódolos compoñentes actualizados: ssoo + drupal● Copias de seguridade controladas e verificadas● https://www.drupal.org/security/secure-configuration● Auditar sitio : https://www.drupal.org/project/seckit● Sempre que sexa posible usar HTTPS ● Controlar a entrada de texto

● https://www.drupal.org/project/wysiwyg_filter● https://www.drupal.org/project/better_formats● check_plain en .module :)

● Non mostrar erros = drush variable-set error_level 0

Page 19: Curso CDA: Seguridade e rendemento en Drupal

SEGURIDADE EN DRUPAL

● Todo o software ten ou pode ter erros. ● Drupal é unha gran comunidade que aporta día a día melloras a nivel de

seguridade.● A política de actualizacións de seguridade de Drupal é seria:

Drupal Security Team● Releases do tipo BugFix libéranse o primeiro mércores de cada mes.● Releases con correcións de vulnerabilidades son liberadas o terceiro

mércores de cada mes.

CURSO DRUPAL 7 AVANZADO

SEGURIDADE EN DRUPAL

Page 20: Curso CDA: Seguridade e rendemento en Drupal

SEGURIDADE EN DRUPAL II - SECURITY TEAM

https://www.drupal.org/security-team

● Resolver os problemas de seguridade reportados polos Security Advisory● Asistencia aos mantenedores de módulos en materias de seguridade● Documentar cómo escribir código seguro ● Documentar cómo securizar os sitios web feitos con Drupal● Axudar a manter segura a infraestrutura de Drupal.org

https://www.drupal.org/security/secure-configuration

https://www.drupal.org/writing-secure-code

CURSO DRUPAL 7 AVANZADO

Page 21: Curso CDA: Seguridade e rendemento en Drupal

CURSO DRUPAL 7 AVANZADO

SEGURIDADE EN DRUPAL III - REPORTE DE BUGS

● Metódo 1: Directamente a security.drupal.org (recomendado)● Localizar o proxecto en Drupal.org● Columna dereita "Report a security issue"● A ligazón remite o reporte ao Issue Tracker de Security Team para análise

● Método 2: email [email protected]

● Enviar como mínimo● Versión do core ou módulo afectada● Pasos para reproducir o erro● Patch para solucionalo

https://www.drupal.org/node/101494

Page 22: Curso CDA: Seguridade e rendemento en Drupal

CURSO DRUPAL 7 AVANZADO

SEGURIDADE EN DRUPAL IV - CONSELLOS e MÓDULOS

● Manter tódolos compoñentes actualizados: ssoo + drupal● Copias de seguridade controladas e verificadas● https://www.drupal.org/security/secure-configuration● Auditar sitio : https://www.drupal.org/project/seckit● Sempre que sexa posible usar HTTPS ● Controlar a entrada de texto

● https://www.drupal.org/project/wysiwyg_filter● https://www.drupal.org/project/better_formats● check_plain en .module :)

● Non mostrar erros = drush variable-set error_level 0

Page 23: Curso CDA: Seguridade e rendemento en Drupal

CURSO DRUPAL 7 AVANZADO

SEGURIDADE EN DRUPAL V - CONSELLOS e MÓDULOS

● Secure by role(secrole)● Permite servir páxinas por HTTPS configurados por roles

● Secure pages(securepages)● Redirecciona a HTTPS

● Secure login(securelogin)● Redirecciona a HTTPS o datos enviados polo formulario de inicio de sesión

● Encrypted Files(encrypted_files)● Cifra os arquivos aportados polos usuarios vía “wrapper”

https://www.drupal.org/node/597728

Seguridade nas comunicacións

Page 24: Curso CDA: Seguridade e rendemento en Drupal

CURSO DRUPAL 7 AVANZADO

SEGURIDADE EN DRUPAL VI - CONSELLOS e MÓDULOS

● No anonymous sesion(non_anon)● Deshabilita as sesións para usuarios anónimos

● Sesion limit(sesion_limit)● Permite limitar o número de sesións simultáneas por usuario

● Auto log out(autologout)● Pecha as sesións dos usuarios/as despois dun tempo de inactividade

https://www.drupal.org/node/597706

Seguridade nas sesións

Page 25: Curso CDA: Seguridade e rendemento en Drupal

CURSO DRUPAL 7 AVANZADO

SEGURIDADE EN DRUPAL VII - CONSELLOS e MÓDULOS

● Login security (login_security)● Implementa opcións de seguridade nas operacións cotidianas de login nun

sitio web Drupal.● Password policy (password_policy)

● Permite especificar a política de complexidade dos contrasinais● Restrict password change (restrict_password_change)

● Engade novo permisos change other users passwords”

https://www.drupal.org/node/597706

Xestión de contrasinais

Page 26: Curso CDA: Seguridade e rendemento en Drupal

CURSO DRUPAL 7 AVANZADO

SEGURIDADE EN DRUPAL VIII - CONSELLOS e MÓDULOS

● Certificate login(certificatelogin)● Permite a usuarios iniciar sesión usando un certificado dixital

● OAuth(oauth)● Permite usar o API de autenticación de OAuth, fundamental se desexas

integrar Drupal con sitios como Google, Flickr, Twitter ou Yahoo!● Duo Two Factor Authenticatión( duo )

● Permite usar DUO con Drupal => www.duosecurity.com

https://www.drupal.org/node/597706

Seguridade nas sesións

Page 27: Curso CDA: Seguridade e rendemento en Drupal

CURSO DRUPAL 7 AVANZADO

SEGURIDADE EN DRUPAL IX - CONSELLOS e MÓDULOS

● Captcha( captcha )● Protexe os formularios con proba para demostrar que eres humano”(Turing)

● Recaptcha( recaptcha )● Implementación de Google Recaptcha https://www.google.com/recaptcha/intro/index.html

● Mollom( mollom )● Protexe os formularios permitindo identificar se o contido e ou non spam

baseandose non so no contido.

https://www.drupal.org/node/597706

SPAM

Page 28: Curso CDA: Seguridade e rendemento en Drupal

CURSO DRUPAL 7 AVANZADO

SEGURIDADE EN DRUPAL X - CONSELLOS e MÓDULOS

● IP Anonymize( ip_anon )● Permite ocultar Ips de usuarios na bitácora de Drupal

● Invisimail( invisimail )● Oculta emails a bots vía Javascript => mailto

● Encrypted text( encrypted_text )● Crear un campo cuxos datos almacénanse cifrados na base de datos

https://www.drupal.org/node/597706

Privacidade

Page 29: Curso CDA: Seguridade e rendemento en Drupal

CURSO DRUPAL 7 AVANZADO

SEGURIDADE EN DRUPAL XI - CONSELLOS e MÓDULOS

● MD5 Check( md5check )● Xenerar sumas MD5 de módulos e comproba alteracións. Os reportes envíanse

como security error á bitácora do sistema● Hacked ( hacked )

● Escanea a instalación de Drupal na busca de cambios en módulos e temas.● Security( security )

● Security Information Report do sitio.● Coder( coder )

● Módulo para desenvolvedores que axuda a atopar e depurar erros.

https://www.drupal.org/node/597706

Detectión e prevención

Page 30: Curso CDA: Seguridade e rendemento en Drupal

CURSO DRUPAL 7 AVANZADO

SEGURIDADE EN DRUPAL XII - CONSELLOS e MÓDULOS

● Legal( legal )● Mostra termos e condicións do rexistro no sitio

● Terms of use( terms_of_use )● Similar ao módulo Legal pero a información almacénase nun módulo

https://www.drupal.org/node/597706

Aspectos legais