In: wordpress
1 Sep 2009
Como ya habia platicado al inicio de este nuevo blog, por culpa de malas practicas de seguridad en mi sitio, el wordpress que tenia instalado sufrió varios ataques.. que como resultado de los mismos, fue la eliminación casi completa de toda la información contenida en el ![]()
Ahora bien les dejo 10 tips muy importantes a tomar en cuenta a la hora de administrar un sitio basado en nuestro bondadoso pero vulnerable wordpress. Nota aclaratoria: este post tiene la intención de dar algunos tips de seguridad esencial y basica, mas no cerrar bugs o problemas de código que wordpress (cms) tiene en su en su estructura original.
Aclarando esto: vamos a lo que nos interesa.
1 .- Cuidado con los roles dentro del wordpress:
uno de los mayores errores a veces es el manejo de varios usuarios que son “admin” en el CMS, y a veces al ser creado en forma “test” los hacemos con passwords débiles, derivado a su carácter temporal, pero como es de esperarse a veces se nos olvida borrarlos.
2 .- Renombrar el user admin, una de las cosas que wordpress no permite es cambiar el usuario “admin” (equivalente de root en linux) a otro nombre menos genérico ejem: “root”. Con este script lo podremos hacer.
Recuerden siempre antes de cualquier cambio en la DB hacer una copia de seguridad
$ mysql -u USERDB -p Password: CLAVE mysql> use DB_BLOG; mysql> update wp_users set user_login='root' where user_login='admin'; mysql> exit;
3.- No permitir que los usuarios en la web puedan navegar por nuestras carpetas del blog, lease wp-content/plugins, wp-content/themes, wp-content/uploads, wp-admin …, muchos de los problemas ataque de exploids, bugs y demas bichos, son porque permitimos que nuestros “visitantes” sepan que plugins estamos usando y que versión de ellos tenemos instalados, como saben no todo es totalmente seguro y a diario surgen parches para todo, y wordpress no es la excepción así que entre mas oculto tengamos que plugs y que versiones usamos sera mucho mejor, además que nos sirve para que no nos copien el theme
he aqui el codigo que hay que agregar al .htaccess que se encuentra el root del website, para evitar todos estos problemas:
Options All -Indexes
4 .- Permisos en las carpetas y/o archivos (si esta hosteado en sistemas linux)
muchas veces hacemos nuestra instalación de wordpress tan vanilla (flat, OOB) que nos saltamos la verificación de permisos, y en nuestro afan de tener el sitio “up and running” tan pronto nos sea posible, o en el calor de la emoción de nuestro nuevo theme nos olvidamos de este paso tan importante.
Este es un posible esquema de seguridad según el árbol de archivos/carpetas de wordpress
/ — La raiz del directorio WordPress: Todos los archivos ubicados aqui deben ser legibles y escribiles únicamente por el usuario master de la cuenta de hosting a Excepcion de .htaccess si se desea que WordPress genere reglas de rewrite por su propia cuenta
/wp-admin/ — El area de administración de WordPress: aqui todos los archivos deben de ser escribiles únicamente por la usuario master.
/wp-includes/ — aqui se guarda el grueso de código que mueve a WordPress: nuevamente todos los archivos únicamente deben de ser escribiles por el usuario master.
/wp-images/ — Archivos de imágenes usadas por WordPress: escribibles por el usuario master, aunque legible por casi todos
/wp-content/ — directorio de contenido para los usuarios y el motor de wordpress: Diseñado por los Desarrolladores para ser accesado por completo por todos por (owner/user, group y public).
/wp-content/themes/ — Directorio de las pieles o temas. Si deseas usar el editor incluido en wordpress todos los archivos deben de ser escribibles por el grupo de usuarios de lo contrario únicamente debe de poder ser modificados por el usuario master
/wp-content/plugins/ — plugins: estos archivos deben de ser escritos únicamente por la cuenta master de hosting
otros directorios dentro de /wp-content/ debe de investigarse según los requerimientos de los plugins específicos en este caso los permisos pueden variar
Vamos a arreglar nuestros permisos desde SSH
Para Directorios
find [path] -type d -exec chmod 755 {} \;
Para Archivos
find [path] -type f -exec chmod 644 {} \;
el único directorio que se tiene que omitir cuando corremos estas lineas es /wp-includes/.
5 .- Ocultemos información que a simple vista parece inofensiva: muchas veces en el código generado por wordpress hay muchas pistas que podrían delatar nuestras vulnerabilidades, como por ejemplo en el código podemos ver que versión de wordpress estamos corriendo para evitar esto..
borremos del header.php de nuestro theme la siguiente linea:
<meta name=”generator” content=”WordPress <?php bloginfo(’version’); ?>” />
6 .- Seguridad en la base de datos I: aunque sonara bastante obvio, si manejamos varios sitios en un mismo hosting tratemos de mantener en lo posible las bases de datos independientes para cada sitio, muchas veces por falta de recursos en el plan de hosting usamos 1 sola db para mas de 1 sitio, esto no es nada recomendable.
7 .- Seguridad en la base de datos II: cambiemos el esquema de nuestra base de datos con respecto a los prefix “wp_” si personalizamos esto le hara mucho mas difícil la intrusión a cualquier hacker. Ejem: miblog_wp_tabla…
8 .- Aseguremos el acceso a nuestro wp-admin: vamos a ponernos un poco mas paranoicos y vamos a permitir únicamente accesso a wp-admin desde 1 o varias ips conocidas.
Coloquemos esto en nuestro .htaccess en el / de nuestro website
Order Deny,Allow Allow from ww.xx.yy.zz #reemplazar con la/las iPs Deny from all
9 .- Eliminar archivos innecesarios: borrar lo siguientes archivos /wp-admin/install.php y /wp-admin/upgrade.php puesto que son otro foco de vulnerabilidad
y….
10 .- Aunque la ultima pero no menos importante: Siempre mantengamos un backup de nuestra DB al día, así también actualicemos todos los plugins a la ultima versión así como el WordPress.
Como un plus les dejo un par de artículos y un video que me gustaría que vieran
Plugin de deteccion y bloqueo de intrusos | WPIDS es un port de PHPIDS a WordPress.
20 Plugins y tips de seguridad | 20 WordPress Security Plug-ins And Tips To keep Hackers Away
10 Tips To Make WordPress Hack-Proof from guvnrDOTcom on Vimeo.
Les recuerdo mucha de esta información puede parecer obvia a algunos y nueva para otros, pero la razón de este post es tan solo dar algunos tips para no caer por confiados.
Este espacio esta dedicado a la difusión del software libre en todas sus expresiones, es mi espacio técnico personal, para difundir a todos los rincones el conocimiento libre. "La verdad os hará libres" (Jn 8,32); El techno :Editor, redactor, ingeniero, tecnico, desarrollador, musico y DJ wannabe, etc.. ese soy yo y este es mi espacio
2 Responses to 10 tips para blindar a wordpress
Maski
September 1st, 2009 at 8:50 am
Me gusta, muy importante resaltar lo de los accesos a directorios, lo del wp-admin no se me habia ocurrido, el unico problema que veo es que no todos utilizamos apache con .htaccess.
techno
September 1st, 2009 at 8:53 am
@maski: para los que no tienen acceso a ediar el .htaccess hay un plugin que lo hace desde adentro del blog sin necesidad de ssh http://www.askapache.com/wordpress/htaccess-password-protect.html el unico problema que le veo y por lo que no lo recomende es que si se hace algun mal cambio en el .htaccess vamos a tener que trabajar un poco mas desde el filemanager de nuestro hosting para componerlo, bueno tan solo es de borrar los .htaccess que nos genere y ya, pero es un poco mas complicado