curso cda: seguridade e rendemento en drupal
DESCRIPTION
Curso CDA: Seguridade e rendemento en DrupalTRANSCRIPT
CURSO DE ADMINISTRACIÓN AVANZADA E DESENVOLVEMENTO DE DRUPAL
8 - 12 setembro 2014 – Santiago de Compostela
TEMA 3: RENDEMENTO E SEGURIDADE 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
● 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
● 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
CURSO DRUPAL 7 AVANZADO
caché, caché,caché
● 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
● 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
● 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
● 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
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
CURSO DRUPAL 7 AVANZADO
RENDEMENTO DRUPAL 7
ab siege
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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