Hace ya un tiempo hablé sobre que había tenido un intento de conexión durante horas mediante SSH al servidor y para mitigarlo hice uso de Fail2Ban pero que pasa si nos atacan al login de nuestra instalación de WordPress? Fail2ban no se entera y no banea la ip por lo tanto tiene tiempo de sobras para realizar un ataque de fuerza bruta.
El día 14/02/2014 se inicio un ataque mundial contra paginas web realizadas con WordPress. Me di cuenta porque revisando logs pude ver que siempre había una ip que cada segundo intentaba hacer login. Buscando información me encontré que se debía a un ataque a gran escala, pero por mi parte fue solucionado en 5 minutos, os explico como.
Wordfence
Wordfence es un plugin que como bien dicen en su pagina si un solo sitio web con WordPress es atacado, automaticamente bloquea al atacante y envía la información a los servidores de Wordfence para que las otras paginas web del mundo que tengan WordPress se puedan descargar esa información y bloquear (aun sin haber sido atacadas) esa dirección ip (tal y como hace Denyhosts, pero mas enfocado a WordPress, o también como hace Akismet con los comentarios spam).
También dispone de la posibilidad de activar la cache (dos niveles de cache) en nuestro sitio web. Esto es muy recomendable si no vamos a instalar otro plugin que se encargue de esta tarea.
Fail2Ban
¡Pero si has dicho que Fail2Ban no puede ver los intentos de ataque al login de WordPress! Para ello vamos a hacer uso de un plugin llamado WP Fail2Ban que precisamente registra en un log los intentos fallidos de conexión, como ya tenemos el log tan somo hemos de indicarle a fail2ban en el jail.local que banee las ips que veamos en nuestro log. Añadimos estas lineas al final y ya esta. Cuando otro robot intente conectar varias veces con nuestro login, sera baneado y apache no responderá a su solicitud web.
[wordpress]
enabled = true
filter = wordpress
logpath = /var/log/auth.log
port = http,https
DenyHosts
Mas que para WordPress es para nuestro servidor (dedicado, vps). Denyhosts viene a ser como un Akismet Antispam pero que bloquea las conexiones atacantes mediante una regla en iptables (al igual que fail2ban). Podemos indicarle mediante configuración que solo bloquee a los que han atacado nuestro site o bien decirle que se descargue cada hora una lista de direcciones ip de atacantes y así bloquear los posibles ataques aunque no los hayamos recibido. Se le puede indicar también cuanto tiempo queremos que estas ips estén baneadas, por defecto las mantendrá durante 1 semana. Para instalarlo en Debian es tan sencillo como
apt-get install denyhosts
WP-SuperCache
Muy util tanto si estamos recibiendo un ataque como si no, ya que esto crea una versión cache de nuestra web por lo que el visitante ve un html ya generado y las peticiones al servicio PHP y MySQL se ven menguados. En un ataque recibe mayor importancia puesto que estamos enviando simplemente archivos HTML sin cargar el servidor.
Hay servidores web que no permiten activar Caches (por ejemplo los profesionales de Interdominios, hay que ser tonto puesto que sus servidores irían mas relajados), por ello es necesario consultar con el proveedor de alojamiento de vuestra web para ver si es posible activar estas opciones.
Los que tengáis VPS o servidor dedicado, tan solo bajar el plugin, instalarlo y configurarlo (es sencillo).
Jetpack de WordPress.com
Primero debemos ir a WordPress.com y registrarnos. No hace falta que os creéis un blog allí, simplemente registraros. Una ya registrados, volvemos a el panel de nuestra instalación de WordPress y nos bajamos el plugin Jetpack, al activarlo nos pedirá un login y usuario (el que hemos registrado anteriormente en WordPress.com) y nos mostrará un panel donde podremos activar muchísimas funcionalidades interesantes. En este caso nos interesa
Photon: Sube todas las imágenes de nuestros post a la nube de WordPress, y cambia los tag src de imagen por la dirección de la imagen en su nube, de esta forma cuando alguien visita nuestra pagina, las imágenes las carga desde WordPress.com haciendo que la carga sea mas rápida y que nuestro servidor tenga que consumir menos ancho de banda enviando las imágenes. De nuevo es una gran utilidad tanto si estamos recibiendo un ataque o un «efecto Meneame».
Una alternativa a Photon por si no queremos instalar Jetpack seria el plugin de Cloudflare que hace exactamente lo mismo que la funcionalidad Photon.
APC Cache
Otra utilidad para nuestro VPS, dedicado que nos permite hacer una cache de el servicio PHP para las consultas que mas se repiten. Para instalarlo podemos tirar de apt-get php-apc en Debian y le podemos configurar cuanta candidad de memoria cache queremos que tenga disponible.
Por último os dejo también un enlace a la página de ayudawp donde indican mas métodos para proteger vuestro sitio web WordPress.
1 comentario
1 ping
Muchas gracias por el tutorial Guille, la verdad que es muy interesante esta protegido ante cualquier ataque, en cuanto al plugin Wordference he escuchado muy buenos comentarios, voy a darle una revisada y seguramente lo implemente en mi wp.
Saludos y gracias por la informacion :D
[…] Como proteger tu wordpress, en los siguientes enlaces –> Link1 Link2 […]