jul 12 2010

Deshabilitar regla del modsecurity para un sitio o dominio

Category: apacheDavid González @ 8:24

Ya vimos el otro día la receta para deshabilitar el modsecurity para un sólo dominio o sitio.

Si no queremos ser tan rudos y no es necesario, tenemos la posibilidad de deshabilitar una regla específica para un usuario o sitio.

Esto nos podría ser muy útil para alojamientos compartidos, en los que una regla “peligrosa” afecta a un usuario y este desea quitarla. Así el resto de cliente siguen protegidos.

Del mismo modo que vimos la otra vez, tendremos que modificar el virtual host con las siguientes líneas:

<ifmodule mod_security2.c>
  SecRuleRemoveById 1975856
</ifmodule>

Simplemente estamos indicando que si esta cargado el módulo del modsecurity, elimine la regla con Id 1975856.

Si nuestra regla no tuviera Identificador, podemos añadírselo sin ningún problema de esta forma

Antes:

#PHP Doc System Local File Inclusion Vulnerability
SecRule REQUEST_URI  "/index\.php" "chain"
SecRule ARGS:show "(\.\./\.\.|/)"

Después:

#PHP Doc System Local File Inclusion Vulnerability
SecRule REQUEST_URI  "/index\.php" "chain, id:1975856"
SecRule ARGS:show "(\.\./\.\.|/)"

Entradas relacionadas

Etiquetas: , ,


abr 06 2010

Cambio de nombre en Cpanel. Cuentas de correo

Category: CpanelDavid González @ 23:38

Hacer un cambio de nombre de alojamiento en Cpanel, es relativamente sencillo y el propio panel de control, es capaz de cambiar el nombre de las cuentas de correo, su virtual host, etc… Últimamente, he visto en varias ocasiones que al hacer el cambio, cpanel sigue creyendo que existen cuentas de correo del dominio con el nombre anterior.

Para no liarnos, vamos a suponer que el alojamiento con nombre tureceta.es lo queremos renombrar a dominio2.com. Hacemos el cambio de la forma habitual y al entrar en el panel de control del nuevo alojamiento, en la sección de las cuentas de correo vemos que aparece con el nombre correcto de dominio2.com, pero existen varias con el nombre viejo (tureceta.es)

Al intentar borrarlas, suele dar uno de estos errores:

Sorry, you do not have access tureceta.es
­Error Account does not exist

Para arreglarlo, tenemos que ir al fichero /home/user/.cpanel/email_accounts.yaml en el cual están todas la cuentas, la quota, lo que ocupa, etc…

dominio2.com:
  accounts:
    contacto3:
      diskused: 559203
      mtime: 1270453445
  mtime: 1270453445
tureceta.es:
  accounts:
    contacto2:
      diskused: 749203
      mtime: 1270453745
    admin:
      diskused: 13006
      mtime: 1270453745
  mtime: 1270453745

Borramos las líneas que hacen referencia al anterior dominio (tureceta.es) y sus respectivas cuentas. Quedará el fichero de esta forma:

dominio2.com:
  accounts:
    contacto3:
      diskused: 559203
      mtime: 1270453445
  mtime: 1270453445

No obstante, habría que asegurarse, que el dominio tureceta.es no existe en la carpeta /home/user/mail/ que es donde esta la estructura de directorios del correo.

Seguramente, tendremos enlaces simbólicos rotos, que hacen referencia al dominio anterior (tureceta.es) que podemos borrar sin problemas.

Así ya no aparecerán las cuentas de correo antiguos en el panel de control de nuestro alojamiento

Entradas relacionadas

Etiquetas: , ,


abr 01 2010

Copiar un archivo en todos los directorios con find

Category: LinuxDavid González @ 8:10

Ya vimos en otro post el uso del find y algunas de sus opciones.

La receta de hoy sirve para copiar un fichero en todos los directorios o carpetas de un site. Vamos a ver como sería:

find ruta -type d -exec cp -p fichero {} \;

Cuando he tenido que usar esta comando, principalmente, es en los casos en que he creado un php.ini en el public_html con una directiva. Como el php.ini sólo lo activa a nivel de directorio, es necesario tener uno en cada una de las carpetas donde también requerimos dicha directiva activa.

Esta directiva podría ser, por ejemplo:

register_globals=On;
memory_limit = 32M;
max_execution_time = 30
post_max_size = 8M;
include_path = ".:/home/tureceta/php";
upload_max_filesize = 2M;

De esta forma, copiaremos el fichero php.ini en todas la carpetas o directorios de nuestro alojamiento.

Estando en la home (/home/tureceta/public_html), usaremos el comando:

find . -type d -exec cp -p php.ini {} \;

Entradas relacionadas

Etiquetas: , , ,


mar 23 2010

Instalar ioncube para un sólo alojamiento

Category: InstalarDavid González @ 18:08

Hay veces que alguna aplicación o programación de un usuario requiere ioncube. Al estar en un alojamiento compartido, no posible atender la demanda de todos los usuarios del servidor y no es factible instalarlo en el.

Hoy voy a dar la receta, para instalar ioncube en un alojamiento en concreto o para un único usuario, para poder disfrutar de sus características.

Lo primero de todo, iremos a la web oficial de ioncube para descargar la versión compatible con el sistema operativo del servidor. En concreto el link de descarga es este.

Dentro de la carpeta del usuario, descargaremos el paquete seleccionado, por ejemplo en tar.gz(en mi caso x86).

wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz

Lo descomprimimos:

cd /home/usuario1/
tar -xzvf ioncube_loaders_lin_x86.tar.gz

Una vez hecho, nos habrá creado una carpeta (ioncube) con el contenido del paquete.

Ahora tenemos que reasignar el propietario a la carpeta, así como otorgarle permisos.

chown ususario1.usuario1 ioncube  -R
chmod 0755 ioncube/ -R

Si queremos ya podemos eliminar el archivo comprimido.

rm -f ioncube_loaders_lin_x86.tar.gz

En el public_hml o en la carpeta donde requerimos el ioncube, necesitamos crear un php.ini para indicar al php donde tenemos el módulo instalado. Para ello utilizaremos la directiva:

zend_extension = /<path>/ioncube_loader_lin_5.2.so

En nuestro caso:

zend_extension = /home/usuario1/ioncube/ioncube_loader_lin_5.2.so

Con estos pasos ya debería funcionar. Podemos crear un phpinfo, para comprobarlo. Nos aparecerá un texto similar a este:

with the ionCube PHP Loader v3.3.12, Copyright (c) 2002-2010, by ionCube Ltd.

Entradas relacionadas

Etiquetas: ,