Svn y Apache: 403 Forbidden PROPFIND (client denied by server configuration)
If you are an english speaker that arrived here by Google or similar, I’ll just resume the solution to you: Don’t use fucking mod_evasive with mod_dav_svn. Hope that helps
Si, es un nombre críptico de pelotas narices, pero es el que me gustaría haber encontrado a mi al principio de esta mañana, cuando por alguna razón mi configuración para acceder Subversion desde Apache ha empezado a dejar de funcionar correctamente.
Tras volverme loco durante toda la mañana, he descubierto el problema: una pequeña “incompatibilidad” entre mod_dav_svn y mod_evasive, un módulo que se me ocurrió probar con el fin de evitar ataques de denegación de servicio, y que no quiero saber qué otros efectos secundarios puede haber causado (¿bots de los buscadores en la lista negra?).
La cuestión ha comenzado cuando esta mañana he realizado una serie de operaciones masivas de Subversion (un refactoring de estos “gordos”) y de pronto la cosa ha empezado a fallar. A partir de ahí, la cosa ha ido degenerando y ha comenzado a fallar siempre. Tras volverme loco, “reiniciar” el repositorio, tirar las peticiones por un tunel SSH para evitar posibles proxies intermedios, y otras soluciones infructuosas, he optado por probar directamente en el servidor, de forma local. Al principio ha funcionado, así que he optado por instalar mediante backports una versión más moderna de subversion, para ver si había alguna incompatibilidad en ese sentido. Con el tiempo, ha dejado de funcionar en local también, por lo que he reinstalado las versiones originales de Subversion, sin éxito. Como es lógico yo no entendía nada.
Los errores que obtenía en el cliente eran:
svn: PROPFIND of '/': 403 Forbidden
Mientras que en el log de apache aparecía un mensaje
client denied by server configuration: /opt/websites/virtual host docroot
Que era lo que realmente me tenía fuera de juego: ¿Qué pintaba el docroot del virtualhost en el error, si todas las peticiones estaban entrando al location /, el cual estaba configurado como un DAV?
¿Qué estaba pasando? Dado que un simple svn list hace bastantes operaciones, mod_evasive estaba tomándolo como un “ataque”, bloqueando al cliente durante un tiempo. Por eso la cosa ha ido degenerando hasta que no funcionaba nada. El mensaje de error con el dichoso docroot debe ocurrir porque cuando mod_evasive pone a un cliente en su lista negra, ésta ya no llega a entrar en el DAV, y se considera el acceso fallido como un acceso al docroot. ¿Solución? No usar mod_evasive en conjunto con mod_dav_svn, o buscar una configuración del primero que funcione bien con el segundo (yo, escarmentado como estoy, lo dejo para otro día -aka nunca-
).
Parecidos razonables
-
Subversion desde Apache usando virtual hosts y locations
julio 17, 2009
11 -
Ruby On Rails + Passenger + Apache + MySQL + SQLite en Debian 5
julio 16, 2009
6 -
Yo dije
marzo 14, 2007
2 -
Servicios web (2): Desplegando un servicio JWS
junio 12, 2006
3 -
Servicios web (5): Poniendo Eclipse a punto
junio 16, 2006
0

Para mi svn+http caca. svn+ssh rocks! y con autenticación por clave publica, ya, la repera limonera.
Ya me han entrado por SSH alguna vez a la máquina (si, tengo una password dura), así que prefiero tenerlo cerradito y a buen recaudo. HTTP no lo puedo cerrar por motivos evidentes, así que…
.
De todas formas echo de menos un poco de argumentación
que ya es la segunda vez que me dices eso de “algo caca” y te vas para no volver
!
Es que es más rápido decir caca.
Pues yo prefiero reducir vulnerabilidades de http+plugins+malasconfiguraciones+descuidosconpermisos+etc que usar un ssh con clave publica. La jodida navaja suiza. Restringe el ssh a autenticación por clave pública.
Para gustos colores.
No, no… si yo no lo hago por que me guste más, de hecho me gusta más tu solución
. Pero como a los 4 días de estar online ya me entraron en la máquina, pues como que le cogí cierto miedo a dejar SSH a la vista
… y como tampoco hago un uso intensivo de SVN, preferí tirar por esa otra opción.
(¿ves? si así queda mucho mejor
Pero tomo nota y haré pruebecillas con tu configuración, gracias por el tip