Domingo, 12 Mayo 2013 12:02

Protege tu Joomla contra los hackers

Valora este artículo
(0 votos)

Después de realizar un website con Joomla si el cliente no necesita añadir nuevas funcionalidades o no puede actualizar los módulos, componentes o plugins porque se ha quedado desactualizada, suele suceder que empiezan a encontrarse numerosas vulnerabilidades que son aprovechadas para acceder al código para manipularlo, enviar emails, mostrar otros productos, infectar a los visitantes o atacar a otras webs.

Ante este panorama, sí el cliente no esta dispuesto a realizar cambios y a realizar una pequeña inversión en subsanarlos nos vemos avocados recibir todo tipo de ataques.

Para solucionar este problema existe varias soluciones, una de ellas que es fácilmente aplicable, simplemente es proteger el espacio web contra escritura, ya qué muchos ataques se basan en modificar los ficheros index.php , template.php, footer.php, etc... y con añadir solamente la escritura en las zonas, donde sea necesario para el correcto funcionamiento del Joomla, solucionamos muchos quebraderos de cabeza.

Hemos realizado un pequeño script en bash que tiene en cuenta las versiones de Joomla1.0 hasta la 3.1 y los habituales componentes que escriben en partes especiales como el docman, akeeba, virtuemart 1.5.x, sef404, extplorer, breezingforms.
Con esto el cliente podrá continuar trabajado con su web añadiendo nuevos artículos, recibiendo información de los formularios, etc.. pero no podrá ni instalar nada nuevo ni modificar archivos css ni php. En caso necesario se tendría que habilitar la escritura en esos archivos pero limitandolo para que a los atacantes les cueste más y que desistan e intente atacar a otra web menos protegida.

icon Descarga script (2.05 kB)

Ver código
  1. #!/bin/sh
  2.  
  3. dir="/var/www/$1/htdocs"
  4.  
  5. if [ ! "$1" ]
  6. then
  7. echo "falta el nombre del dominio"
  8. exit 1
  9. fi
  10.  
  11. if [ ! -d $dir ]
  12. then
  13. echo "no existe el dominio"
  14. exit 1
  15. fi
  16.  
  17. cd $dir
  18.  
  19. chmod ogu-w $dir
  20. chmod ogu-w -R administrator components includes language libraries modules plugins templates
  21. chmod ogu-w *.php
  22.  
  23. # Permisos para joomla =1.0
  24. if [ -d editor ]
  25. then
  26. chmod ogu-w -R editor
  27. fi
  28. if [ -d mambots ]
  29. then
  30. chmod ogu-w -R mambots
  31. fi
  32.  
  33. # Permisos para joomla =1.5
  34. if [ -d xmlrpc ]
  35. then
  36. chmod ogu-w -R xmlrpc
  37. fi
  38.  
  39. # Permisos para joomla >=1.6
  40. if [ -d cli ]
  41. then
  42. chmod ogu-w -R cli
  43. fi
  44.  
  45. # Permisos para joomla >=3.0
  46. if [ -d bin ]
  47. then
  48. chmod ogu-w -R bin layouts
  49. fi
  50.  
  51. chmod ogu+w -R administrator/cache
  52.  
  53. if [ -d administrator/backups ]
  54. then
  55. chmod ogu+w -R administrator/backups
  56. fi
  57.  
  58. # Ajusta permisos para virtuemart 1.5.x
  59. if [ -d components/com_virtuemart/shop_image ]
  60. then
  61. chmod ogu+w -R components/com_virtuemart/shop_image
  62. fi
  63. if [ -e administrator/components/com_virtuemart/virtuemart.cfg.php ]
  64. then
  65. chmod ogu+w -R administrator/components/com_virtuemart/virtuemart.cfg.php
  66. fi
  67.  
  68.  
  69. # Ajusta permisos para rsform
  70. if [ -d components/com_rsform/uploads ]
  71. then
  72. chmod ogu+w -R components/com_rsform/uploads
  73. fi
  74.  
  75.  
  76. # Ajusta permisos para docman
  77. if [ -e administrator/components/com_docman/docman.config.php ]
  78. then
  79. chmod ogu+w -R administrator/components/com_docman/docman.config.php
  80. fi
  81.  
  82.  
  83. # Ajusta permisos para sef404
  84. if [ -d administrator/components/com_sh404sef/config ]
  85. then
  86. chmod ogu+w -R administrator/components/com_sh404sef/config
  87. fi
  88. if [ -d components/com_sh404sef/cache ]
  89. then
  90. chmod ogu+w -R components/com_sh404sef/cache
  91. fi
  92.  
  93.  
  94. # Ajusta permisos para akeeba
  95. if [ -d administrator/components/com_akeeba/backup ]
  96. then
  97. chmod ogu+w -R administrator/components/com_akeeba/backup
  98. fi
  99.  
  100.  
  101. # Ajusta permisos para extplorer
  102. if [ -d administrator/components/com_extplorer/config ]
  103. then
  104. chmod ogu+w -R administrator/components/com_extplorer/config
  105. fi
  106.  
  107.  
  108. # Ajusta permisos para breezingforms
  109. if [ -d administrator/components/com_breezingforms/ajax_cache ]
  110. then
  111. chmod ogu+w -R administrator/components/com_breezingforms/ajax_cache
  112. fi
  113. if [ -d administrator/components/com_breezingforms/payment_cache ]
  114. then
  115. chmod ogu+w -R administrator/components/com_breezingforms/payment_cache
  116. fi

  • Como mejora suplementaria, sí el cliente no necesita añadir ninguna imagen nueva también se puede proteger todo el directorio /images
  • Como existen infinidad de módulos, componentes y configuraciones en caso de encontrar algún componente que no funcione, enviadnos para incluirlo.
Leer 6548 veces Modificado por última vez en Sábado, 27 Julio 2013 13:40

Escribir un comentario


Código de seguridad
Refescar