Si usas Subversion con svn checkout y svn update para mantener tu servidor de producción actualizado (y no svn export) estarás creando unos directorios ocultos de subversion con nombre .svn que contienen información que puede suponer un riesgo para la seguridad, ya que seguramente estarán en el directorio público httpdocs y serán visibles a todo el mundo. Puedes evitar que los navegantes accedan a ellos de dos maneras:

a) Si tienes acceso como root

Puedes crear un archivo vhost:
# vim /var/www/vhosts/dominio.com/conf/vhost.conf
Con este código:

<DirectoryMatch .*\.svn/.* >
Deny From All
</DirectoryMatch >

Tras hacer esto recuerda que has de decirle a Plesk que tiene que regenerar los archivos de configuración de apache
# /usr/local/psa/admin/sbin/websrvmng -u --vhost-name=dominio.com

b) Si no puedes acceder como root

Entonces tienes que crear un archivo .htaccess en el directorio httpdocs (si es que no existía ya)
# vim /var/www/vhosts/dominio.com/httpdocs/.htaccess
y añadirle este código:

RewriteEngine on
RewriteRule .*\.svn/.* - [F]

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Blogplay

6 Responses to “Proteger los directorios de subversion en el servidor Plesk”

  1. Hola, tengo un problema de permisos de ficheros, al lanzar desde wordpress una actualizacion, el problema es que apache crea el fichero con un usuario que NO tiene permisos, sabes como puedo corregir que un fichero se cree con permisos 777 o 766 o algo asi? gracias

  2. Es extraño, porque mi WordPress guarda los archivos con el usuario del dominio de Plesk. De hecho, una de las cosas que me gustan de Plesk, es que para cada dominio, apache se ejecuta con el usuario de ese dominio.

    Has mirado que el directorio “uploads” tenga permisos 777?

    Desde php puedes usar de todas maneras las funciones chmod y chown para ponerle 777 a los archivos o para cambiarles el propietario.

  3. Si que tiene permisos 777, mira lo que me ocurre:
    http://foros.ovh.es/showthread.php?t=6302
    El fichero lo crea como usuario Apache y los ficheros que he subido por ftp los crea con el usuario de dominio que tu comentas, si al crear el tmp lo hiciera con ese usuario de dominio, todo seria perfecto, pero el problema es que no lo hace, no se que probar? me puede ayudar? gracias

  4. Mira de ejecutar PHP como un CGI y no como un módulo de apache.

    Esto lo puedes cambiar con Plesk entrando en: Dominio > Sitio web > Ajustes de Alojamiento web > soporte PHP.

    Prueba las opciones que da esa casilla. Para probar necesitarás reiniciar apache: inicio > administración de servicios > Servidor web (Apache) > Reiniciar

  5. Ya lo solucione, no tiene demasiada logica, al menos lo he comprobado 2 veces, si el sistema es 64Bits falla, si es 32Bits funciona… he restaurado 4 veces las imagenes del servidor, CentOS 32 y CentOS 64. Entiendo que todo tiene una razón, pero esta no se cual es.

  6. Me alegro Joan. Aquí estamos para la próxima.

    Por cierto, si alguien no lo consigue arreglar, las pistas son FastCGI o mod_suphp … a ver si lo investigo más y escribo un post sobre esto :-)