Respecto al crackeo sufrido, me puse manos a la obra. Borré los scripts maliciosos que me habían puesto en la página y estuve vigilando el log de errores de acceso, para ver desde qué IP intentaban acceder a ellos. Una vez localizada la IP, la he "baneado" (supongo que no servirá de mucho, porque el que sea tendrá posibilidad fácil de cambiarse de IP) y he visto que después de los accesos fallidos ha intentado acceder a la Chuwiki.
Pues bien, wordpress (este blog) y el SMF (el foro de java) se actualizan muy fácilmente. Basta entrar como administrador y el mismo panel de control te avisa de que hay una versión nueva. Le das a un botón y se actualiza todo solo. Pero no es así con mediawiki y por eso no tenía actualizada mediawiki a la última. De hecho, la versión es la primera que instalé hace ya fácilmente tres años. Tiene toda la pinta de que se han colado por ahí, explotando alguna vulnerabilidad de la mediawiki (aunque no tengo ninguna garantía). Por ello la he actualizado a la última…. ¡¡ y me he entretenido un montón !!.
Resulta que la actualización es más o menos sencilla, basta con hacer el consabido backup por si acaso, desempaquetar la nueva mediawiki sobre la antigua, tocar un fichero para poner el usuario y password de base de datos y … ¡¡ ejecutar un script php desde línea de comandos !!. En este último punto es donde ha venido el entretenimiento.
No puedo ejecutar ese script llamándolo desde el navegador. El script detecta que no se está haciendo desde la máquina local y te dice que no tienes permisos. Tampoco tengo acceso a una línea de comandos de mi proveedor. Bueno, quizás sí tengo acceso, pero con todo el tema de certificados de seguridad, firmas digitales y demás que por un lado, no tengo ni idea de cómo se hace y que por otro lado, desde mi windows, no es tan sencillo y hay que andar instalando cosas como Putty. Así que por no echarme unas horas con eso, busqué otro método.
Y encontré uno la mar de entretenido. Resulta que desde mi panel de control web puedo programar tareas a ejecutarse en el servidor (comando cron para los que sabe de linux). Así que a eso me puse.
- Comando cron para ejecutar "php -version" cada cinco minutos y recibir el correo con la salida del comando. Esto me sirve para saber si está el ejecutable php accesible. Lo de cada cinco minutos es porque como el servidor está en estados unidos, cualquiera adivina su hora exacta. Y cinco minutos para darme tiempo a recibir el correo y parar el cron. antes de que se ejecute por segunda vez. Correo afirmativo, está accesible php.
- Ahora otro cron cada cinco minutos para ejecutar un ‘pwd’ (ver el directorio en el que se ejecuta el cron) y así saber que path tengo que poner para llegar al script de php. A los cinco minutos, ya sé el directorio de ejecución.
- Y finalmente otro cron ejecutar el comando ‘php path/update_wiki.php’. Espera y ejecución correcta. Pruebo la wiki recién instalada y funciona bien, salvo un pequeño susto que comento al final.
Bueno, lo del cron no es que sea nada del otro mundo, pero lo que me ha llamado muchísimo la atención es la forma rupestre de ir ejecutando los comandos. Es como si estuviras programando un satélite a dos minutos luz. Ejecutas el comando y entre que va y vuelve, esperas cinco minutos por el resultado (lo siento, leo mucha ciencia ficción).
Y una pequeña estupidez de la actualización. Resulta que han cambiado la página principal de la mediawiki y ahora, en vez de "Portada", se llama "Página Prncipal", así que me llevé un pequeño susto cuando veo por primera vez la wiki recién instalada y aparace la página incial vacía.
ACTUALIZACIÖN: Mandé el Jueves la solicitud a google para volver a aparecer en el buscador y hoy, sábado, parece que ya aparezco. 🙂
A Rinzewind le pasó lo mismo… por si le quieres echar un vistazo…