Presentación realizada en la WordCamp Sevilla 2016
En ella aprendemos desde la selección de un hosting hasta el mantenimiento día a día o como actuar con nuestro contenido.
2. La inmensa mayoría de veces no sabremos que nos han hackeado
Estaremos dentro de una botnet
Meetup WordPress BarcelonaMeetup WordPress Barcelona
@josecontic
http://www.joseconti.com
Aplicar la seguridad en WordPress desde la selección de un hosting
3. Dónde actuar
Selección de hosting
Durante la instalación
En la estructura
Con plugins
Mantenimiento
Estar al día
Cuidar nuestro contenido
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
4. Selección de Hosting
La selección de un hosting es
el primer arma que tenemos
para protegernos
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
5. Selección de Hosting
Pero…
¿necesitamos contratar un hosting?
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
6. Selección de Hosting
Quizá WordPress.com ya nos sirva
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
7. Selección de Hosting
Un hosting que no esté bien
preparado y configurado
significará que nos hackearán
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
8. Selección de Hosting
fast-cgi, suPHP o mod_ruid2
Jailed Shell
Si tenéis que dar permisos a
directorios y/o archivos
Cambiad de Hosting
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
9. Selección de Hosting
Para más seguridad
Contratad VPS administrados
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
Hosteurope
PHP7 Let’s Encrypt HTTP/2
10. Selección de Hosting
Los permisos siempre deben ser
750 o 755 > directorios
644 o 640 > archivos
wp-config puede tener 600
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
11. Selección de Hosting
Lo repito
Si tenéis que dar permisos a
directorios y/o archivos
Cambiad de Hosting
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
12. Nombre de base de datos complejo
Usuario base de datos complejo
Contraseña base de datos compleja
Nunca dejar prefijo wp_
Usuario WordPress de dos o más palabras
Contraseña compleja (WordPress ahora nos ofrece una)
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
13. Ejemplo de contraseña segura
8x92$vwo7Ze6X/>kAn[b/7sZZ>ya6Ed
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
14. Usad generadores de contraseñas
Somos humanos y aplicamos patrones predecibles
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
16. La policía de todo el mundo lo utiliza
para localizar a los asesinos en serie
con un error del 1%
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
17. Usad gestores de contraseñas
Pero que sean seguros
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
18. El usuario administrador que hemos creado
será temporal. Crearemos uno nuevo en el momento
en que accedamos a WordPress por primera vez
Eliminaremos los permisos de administrador al
usuario creado durante la instalación
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
19. En la estructura
Mover wp-config.php al directorio superior
Permisos correctos de archivos y directorios
Siempre tener rellenado los Security Keys
Posibilidad de mover wp-content
Posibilidad de mover directorio plugins
Posibilidad de mover directorio themes
Posibilidad de mover directorio uploads
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
20. Mover directorio wp-content
define( 'WP_CONTENT_DIR', dirname(__FILE__) . '/directorio/wp-content' );
define( 'WP_CONTENT_URL', ‘http://ejemplo.com/directorio/wp-content' );
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
21. Mover directorio plugins
define( 'WP_PLUGIN_DIR', dirname(__FILE__) . '/wp-content/plugins' );
define( 'WP_PLUGIN_URL', ‘http://ejemplo.com/wp-content/plugins' );
define( 'PLUGINDIR', dirname(__FILE__) . '/wp-content/plugins' );
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
22. Mover directorio themes
No se puede mover, ya que está en el core
$theme_root = WP_CONTENT_DIR . '/themes';
Pero se puede añadir nuevos directorios para themes:
<?php register_theme_directory( $directory ) ?>
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
23. Mover directorio uploads
define( 'UPLOADS', 'wp-content/uploads' );
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
24. .htaccess
Solo permitir algunos archivos en wp-content
Poner un .htaccess dentro de wp-content
# Bloquear acceso a todos los archivos excepto a los siguientes
Order deny,allow
Deny from all
<Files ~ ".(xml|css|js|jpe?g|png|gif|pdf|docx|rtf|odf|zip|rar)$">
Allow from all
</Files>
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
25. .htaccess
Bloquear acceso a wp-includes
# Bloquear archivos y directorios
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
26. .htaccess
Aceptar solo a ciertas IPs acceder a wp-admin
Se requiere IP estática
# Limitar acceso a wp-admin a estas IPs
<Limit GET POST PUT>
order deny,allow
deny from all
allow from 000.000.000.000
allow from DIRECCION_IP_2
</Limit>
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
27. .htaccess
Proteger wp-config.php y todos los .htaccess
# Denegar acceso a wp-config.php
<files wp-config.php>
order allow,deny
deny from all
</files>
# Denegar acceso a todos los archivos .htaccess
<files ~ "^.*.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</files>
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
28. .htaccess
Escondiendo nuestra versión de WordPress
Proteger readme.html y license.txt ( ¿y xmlrpc.php?
#Proteger readme.html y license.txt
<FilesMatch "^(readme.html|license.txt)">
Order allow,deny
Deny from all
Satisfy All
</FilesMatch>
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
29. @josecontic
http://www.joseconti.comWordCamp Barcelona 2015
functions.php (o plugin propio)
Escondiendo nuestra versión de WordPress
function tusitio_eliminar_version() {
return '';
}
add_filter('the_generator', 'tusitio_eliminar_version');
@josecontic
http://www.joseconti.comMeetup WordPress Barcelona @josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
30. .htaccess
Protegerse del hotlinking
# Previene el hotlinking mostrando otra imagen
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?tusitio.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?otrositiotuyo.com [NC]
RewriteRule .(jpg|jpeg|png|gif)$ http://i.imgur.com/MlQAH71.jpg [NC,R,L]
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
31. wp-config.php
No mostrar errores en pantalla
error_reporting( 0 );
@ini_set( 'display_errors', 0 );
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
32. wp-config.php
No permitir editar archivos
define( 'DISALLOW_FILE_EDIT', true );
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
33. Forzar SSL para el admin
Si tenemos certificado
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
34. SSL gratuito y fiable
Let’s Encrypt
https://letsencrypt.org
Pero necesitas de un hosting que te lo ofrezca
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
35. Forzar el SSL, es imprescindible si nos conectamos
mediante conexiones públicas y no usamos un VPN
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
36. Pero ojo
Desde ya, se puede afirmar que tener toda nuestra web
bajo SSL es imprescindible.
Los navegadores “castigan” a los que no tienen
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
39. Backup
Es el primer plugin que se debe instalar
BackWPup
BackupBuddy
o incluso Duplicator
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
40. Protección
Los plugins de protección, añadirán una capa
en nuestro WordPress
Wordfence Security
iThemes Security
Login Security Solution
BulletProof Security
Anti-Malware Security and Brute-Force Firewall
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
41. Control
Los plugins de control nos ayudaran a
controlar nuestro WordPress
Wordfence Security
Antivirus
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
42. Themes
Nunca descargar themes (o plugins) que no estén en sitios de confianza
Nunca descargar themes (o plugins) de pago desde
sitios que los ofrecen de forma gratuita
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
43. Themes
Si instalas contenido dummy en tu theme,
elimínalo después
Puedes acabar en la blacklist de Google
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
44. Mantenimiento
Imprescindible mantener todo actualizado
Themes
Plugins
WordPress
(Todas las menores)
SO, PHP, MySQL, Apache, Nginx, etc.
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
45. Mantenimiento
Hosteurope
Nos mantiene actualizado todo
Si en una semana no decimos
lo contrario, todo lo no actualizado, será actualizado
automáticamente
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
46. Mantenimiento
No os olvidéis de los plugins y themes premium
que no ofrecen actualizaciones gratuitas
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
47. Estar al día
Hay que estar al día de todo
Seguiremos cuentas de Twitter
Blogs de seguridad
Blogs sobre WordPress
Blogs oficiales
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
48. Protegiendo el contenido que creamos
Como ya he comentado,
backup, backup y backup
pero…
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
49. Protegiendo el contenido que creamos
¿Tenemos un WordPress
y publicamos contenido en Facebook?
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
50. Protegiendo el contenido que creamos
En Facebook se publican referencias a nuestro contenido
NO pongamos TODO nuestro contenido en Facebook
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
51. Protegiendo el contenido que creamos
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
52. Protegiendo el contenido que creamos
@josecontic
http://www.joseconti.com
bloquearon la foto (ya rectificaron)
de la cuenta The Guardian
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
53. Protegiendo el contenido que creamos
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
54. Protegiendo el contenido que creamos
@josecontic
http://www.joseconti.com
mensaje que recibió Shaun King
Famoso columnista de New York Daily News
en pro de los derechos de las personas de color
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
55. Protegiendo el contenido que creamos
@josecontic
http://www.joseconti.com
Su cuenta fue bloqueada durante 24h
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
56. Protegiendo el contenido que creamos
@josecontic
http://www.joseconti.com
Estas son personas o empresas famosas
En un caso que no cree polémica,
pueden llegar a eliminar una cuenta.
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
57. Protegiendo el contenido que creamos
@josecontic
http://www.joseconti.com
Tu trabajo de años eliminado de internet
por la decision de un tercero
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
58. Protegiendo el contenido que creamos
@josecontic
http://www.joseconti.com
Que Facebook trabaje para ti
No trabajes tú para Facebook
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting
59. Muchas gracias a todos
José Conti
www.joseconti.com
@josecontic
@josecontic
http://www.joseconti.com
Meetup WordPress BarcelonaMeetup WordPress BarcelonaAplicar la seguridad en WordPress desde la selección de un hosting