¿Cómo asegurar una nueva instalación de Joomla?

34

¿Cuáles son las acciones que se deben tomar después de una nueva instalación de Joomla para mantenerla segura? Tanto en servidores de alojamiento compartido como en servidores dedicados.

ilias
fuente
1
@ Administradores: ¿qué tal un wiki comunitario para esta pregunta?
MattAllegro

Respuestas:

36

Mantener un sitio web de Joomla seguro

  1. Usa contraseñas seguras.
  2. Minimice la cantidad de cuentas de administrador.
  3. Deshabilitar o eliminar cuentas de usuario no utilizadas.
  4. Minimice la cantidad de extensiones de terceros y, cuando sean necesarias, use extensiones bien compatibles de desarrolladores establecidos en los que confíe.
  5. Aplique regularmente las últimas actualizaciones a Joomla y extensiones de terceros, incluidas las revisiones de seguridad para las versiones de Joomla EOL cuando corresponda.
  6. Suscríbase a las noticias de seguridad de Joomla para estar informado de las actualizaciones de seguridad de Joomla
  7. Suscríbase a la Lista de extensiones vulnerables de Joomla (VEL) para que las nuevas vulnerabilidades puedan ser atendidas rápidamente. Desplácese hasta la parte inferior de la página para ver el enlace de suscripción ; también puede seguir el VEL en Twitter .
  8. Utilice un alojamiento web seguro de buena calidad que incluya un controlador de archivos PHP apropiado como suPHP o FastCGI y extensiones de seguridad como mod_security. Use una versión compatible de PHP .
  9. En lugar de confiar únicamente en las copias de seguridad de su empresa de alojamiento web, realice regularmente sus propias copias de seguridad del sitio web, copie los archivos de copia de seguridad fuera del sitio y ejecute regularmente restauraciones de prueba en una ubicación de prueba para verificar la calidad de sus copias de seguridad.
  10. Habilitar https.
  11. Implemente un firewall de aplicación web como el que se proporciona con la versión profesional de Akeeba Admin Tools.
  12. No use el prefijo de tabla estándar.
  13. Cambie el nombre de usuario y la ID de Super Administrador predeterminados a otra cosa. La versión profesional de Akeeba Admin Tools tiene una herramienta para cambiar la ID de Super Administrator.
  14. Restrinja el acceso al administrador de Joomla por IP. Solo permita IP confiables.
  15. Habilite la autenticación de 2 factores para las cuentas de administrador (se aplica a Joomla 3.2 y posterior).
  16. Repita los pasos anteriores para otros sitios web que comparten la misma cuenta de alojamiento o, idealmente, separe los sitios web de sus propias cuentas de alojamiento web para evitar la contaminación cruzada.
  17. Asegúrese de que las computadoras personales de los administradores del sitio web estén protegidas de manera similar. Por ejemplo, implemente un escáner de virus y malware de buena calidad. Esto ayuda a proteger las credenciales de un sitio web almacenadas en computadoras personales. Lo ideal es usar una herramienta o aplicación de cifrado para almacenar el sitio web y otras credenciales.
  18. Lea los 10 trucos de administrador más estúpidos para obtener información sobre qué no hacer.

Para obtener instrucciones más detalladas, consulte la Lista de verificación de seguridad oficial .

Neil Robertson
fuente
Esta lista probablemente se puede agregar a (no dude en editar). :)
Neil Robertson el
2
¿Tal vez podría vincular a la "Lista de extensiones vulnerables"? (Parece que no puedo editar su respuesta por alguna razón; ¿puedo editar otras?)
MrWhite
Gracias @ w3d: he agregado un enlace a la página de suscripción de VEL y también al feed de noticias de seguridad de Joomla.
Neil Robertson
14

Es muy importante almacenar las copias de seguridad en un servidor separado. Veo a muchas personas que ejecutan fielmente Akeeba Backups ... y se almacenan en el mismo servidor en el mismo directorio raíz. No es tan útil si es pirateado de manera seria, y ciertamente no es útil para recuperarse de una falla de alojamiento.

Akeeba Backup Pro le permite almacenar y administrar archivos de respaldo en almacenamiento externo como la nube de Amazon.

Deb Cinkus
fuente
44
También es importante verificar las copias de seguridad de la compresión corrupta después de la transferencia desde su directorio de alojamiento. Una copia de seguridad corrupta no es una copia de seguridad. Esto se aplica a todos los sistemas de respaldo, Akeeba, CPanel, etc.
UhlBelk
7

Como alternativa al archivo .htaccess o bloqueándolo por IP, también puede usar jSecure para asegurar su inicio de sesión de administrador.

Una cosa que no se ha mencionado es utilizar un proveedor de alojamiento de buena reputación. Desea uno que no solo se mantenga al día con la seguridad, sino que también funcione con usted si es pirateado o si hay un problema (la base de datos se corrompe, por ejemplo). La idea es limitar el daño que hace su sitio mientras le permite limpiarlo.

La idea básica, quieres a alguien que ...

  • Estaré alrededor
  • no es una operación de vuelo nocturno
  • trabajará contigo
  • y proporciona un ambiente sólido.

Si quieres una lista de preguntas para hacerle a un anfitrión para que se sienta mejor, solo házmelo saber.

Espero que esto ayude.

Campeon Donald
fuente
6

Prueba esto también

  • Mantenga su Joomla actualizado junto con sus extensiones.
  • Mantenga regularmente copias de seguridad de su sitio en las nubes .
  • No abra robots.txtpara carpetas seguras.
  • Para las últimas versiones de Joomla, hacer uso de la autenticación de dos factores será más seguro.
  • Asegúrese de que las carpetas y los archivos tengan los permisos correctos permitidos.
  • Utiliza Cloudfare para Joomla .

Espero que sea de ayuda.

Jobin Jose
fuente
5

Básicamente, en mi experiencia, con el tamaño de Joomla no hay forma de asegurarlo completamente. Entonces, en lugar de una política de seguridad perfecta que lo detenga todo, lo mejor es reducir sus expectativas para tratar de reducir el daño general.

Esto se puede hacer con una política de copia de seguridad extremadamente frecuente para que en cualquier intrusión se pueda deshacer el sitio, así como escaneos de malware. Hasta ahora, ningún hack que hemos tenido se debió a que nuestro panel de administración fuera forzado.

La mayoría de los hacks que vemos son de componentes de terceros o del núcleo de Joomla, incluso hemos visto que los hacks logran acceder también a las últimas versiones de Joomla. Esto se debe a que el pirateo generalmente puede verse como una solicitud normal, utilizando un filtrado incorrecto para insertar un archivo en el servidor. Una vez que un archivo está en el servidor, todo es juego limpio, puede estar en CUALQUIER sitio en un servidor compartido completo y aún afectar el suyo, por lo que si una persona en un servidor compartido no se mantiene actualizado, puede afectarlo.

Esto puede ser un poco extremo, pero basado en la experiencia personal, es mejor estar preparado para lo peor, luego confiar demasiado en que su política lo evitará todo.

Entonces, la mejor manera de asegurar una nueva instalación de Joomla es hacer una copia de seguridad a menudo y habilitar escaneos de malware, si el escáner de malware puede enviarle un correo electrónico tan pronto como encuentre algo, puede volver a la última copia de seguridad en un plazo muy corto.

Jordan Ramstad
fuente
"bajar sus estándares" ??? En caso de que tal vez han sido "mejorar sus estándares?
chesedo
Pensé que esto tendría un voto negativo, simplemente no quiero que nadie piense que si siguen las pautas están a salvo. Debes reducir tus estándares ya que no esperes no ser hackeado, sino que debes estar preparado para que suceda. La mayoría de las personas que conozco pueden hacer una copia de seguridad una vez a la semana o una vez al mes porque sienten que ser hackeado es raro, pero no lo es.
Jordan Ramstad
Entonces probablemente deberías haber usado "bajar tus expectativas " (de no ser pirateado) :)
chesedo
Buena nota, editado eso, gracias. No trato de decir nada malo sobre Joomla, me encanta, solo pelear con hacks nunca va a desaparecer, así que es mejor estar preparado :).
Jordan Ramstad el
Muy correcto, a veces la mejor manera de ayudar es ser heterosexual :).
chesedo
3

Tomando prestada esta lista de un documento técnico "Pen-testing a Joomla site" encontrado en el blog. Creo que esta lista es una guía exhaustiva para los conceptos básicos de seguridad de Joomla.

  1. Siempre mantén a Joomla al día. Instale la última actualización tan pronto como se lance la actualización.
  2. Cualesquiera que sean las extensiones que se estén utilizando, deben ser parcheadas correctamente con las últimas versiones de actualización. Cualquier extensión anterior puede dar al atacante una forma de comprometer el sitio.
  3. No utilice extensiones que no hayan sido utilizadas o que no hayan sido probadas correctamente.
  4. Todas las entradas del usuario deben validarse correctamente. Estas entradas pueden ser entradas en formularios, URI, carga de imágenes, etc. Suponga que si un botón BROWSE permite al usuario cargar la imagen, solo debe permitirle cargar una imagen y no un shell PHP que luego puede funcionar como una puerta trasera en el servidor.
  5. Use contraseñas seguras para todos los inicios de sesión. Al menos 8 caracteres, un carácter especial, un número y una letra entre mayúsculas y minúsculas. Protegerá su instalación de una fuerza bruta.

  6. Mantenga siempre un registro de los "Últimos visitantes" en los archivos de registro del servidor web para detectar posibles ataques. Nunca considere sus archivos de registro solo como una pieza de información. Es muy útil para rastrear y monitorear a los usuarios.

  7. Esfuércese por implementar más seguridad en todo el servidor en el que se aloja su sitio basado en Joomla; siendo alojado en un servidor compartido o uno dedicado.

  8. Haga una lista de todas las extensiones que usa y siga monitoreándolas.

  9. Manténgase actualizado con las últimas vulnerabilidades y divulgaciones en varios avisos de seguridad. Exploit-db, osvdb, CVE, etc. son algunos de los buenos recursos.

  10. Cambie el permiso en su archivo .htaccess como está por defecto usando permisos de escritura (ya que Joomla tiene que actualizarlo). La mejor práctica es usar 444 (r-xr-xr-x).

  11. Deben otorgarse los permisos de archivo adecuados en los directorios públicos para que ningún archivo malicioso no pueda cargarse o ejecutarse. La mejor práctica en este contexto es 766 (rwxrw-rw-), es decir, solo el propietario puede leer, escribir y ejecutar. Otros solo pueden leer y escribir.

  12. Nadie debe tener permiso para escribir en archivos PHP en el servidor. Todos deben estar configurados con 444 (r — r — r--), todos pueden leer solo.

  13. Delegar los roles. Hace que su cuenta de administrador sea segura. En caso de que alguien piratee su máquina, debe tener acceso solo al usuario respectivo y no a la cuenta de administrador.

  14. Los usuarios de la base de datos solo deben tener permiso para dar comandos como INSERT, UPDATE y DELETE. No deben permitirse BAJAR tablas.

  15. Cambie los nombres de las carpetas de fondo, por ejemplo, puede cambiar / administrador a / admin12345. 16. Por último, pero no menos importante, manténgase actualizado con las últimas vulnerabilidades.

FFrewin
fuente
Sugerencia adicional anuncio 12: nadie excepto el servidor web debe tener permiso para leer los archivos PHP en el servidor también. Establezca el usuario en el usuario del servidor web (www-data o http) y configúrelo en 400 o 600 para archivos editables a través del backend (css, ...).
Tom Kuschel
3

Su primera línea de defensa es su servicio de alojamiento.

  • Alquile un servidor dedicado de un servicio de alojamiento confiable
  • Asegúrese de activar 2FA en su servidor y usar una contraseña 'MUY FUERTE'
  • Instale un firewall confiable en su servidor: uso ConfigServer
  • Instalar / configurar un programa antivirus, uso ClamAV
  • Asegúrese de que el nombre de usuario de cada sitio web NO use los primeros 8 caracteres del nombre de dominio y use una contraseña 'MUY FUERTE'
  • Asegúrese de que cada sitio web tenga instalado un certificado SSL
  • Asegúrese de que cada sitio web esté "en la cárcel", lo que significa que no tienen acceso a la raíz a menos que necesite acceso a la raíz del servidor. En ese caso, asegúrese de tener Secure Shell (SSH) instalado y configurado. Uso el sitio web del dominio de mi servidor pero tengo todos los demás sitios web 'In Jail'.
  • ¡Asegúrese de que todas las actualizaciones del servidor se instalen de inmediato!

Tu próxima línea de defensa es tu cPanel

  • Use una contraseña "MUY FUERTE"
  • Configurar la seguridad de la contraseña del usuario para los usuarios
  • Configure un trabajo cron para hacer una copia de seguridad completa de cPanel y guárdelo en una fuente externa
  • Asegúrese de que cPanel se haya configurado para usar SSL para el acceso
  • Ejecute 'Site Security Check' para ver qué otros ajustes pueden ser necesarios.
  • ¡Asegúrese de que todas las actualizaciones de cPanel se instalen de inmediato!

Su próxima línea de defensa es su panel de administrador.

  • Edite los requisitos de formato de contraseña para garantizar contraseñas seguras (caracteres en mayúscula / minúscula, números y al menos 1 signo de puntuación con una longitud mínima de 18 caracteres.
  • Habilitar 2FA para usuarios: utilizar para cuentas de superusuario y administrador
  • Limite el número de cuentas de Superusuario (es mejor tener solo una)
  • Limite el número de cuentas de administrador (cuantos menos, mejor)
  • Limite las áreas a las que los administradores pueden acceder
  • Limite las áreas a las que pueden acceder los Editores, Editores y Autores
  • Instalar y configurar AdminTools
  • Configure una contraseña de URL de administrador a través de AdminTools
  • Asegúrese de que los archivos críticos (HTACCESS, ROBOTS.TXT, WEBCONFIG, INDEX.PHP (raíz y plantilla) estén configurados en 444. Todavía puede editar los archivos mediante el administrador de archivos del panel de control de cPanel pr Plesk
  • Instalar y configurar AkeebaBackup
  • Configure AkeebaBackup para guardar copias de seguridad externas, fuera del sitio
  • Solo instale complementos a través de las páginas de Extensión de Joomla, nunca instale un complemento de un tercero que no esté en la lista en la página de Extensión de Joomla.
  • Deshabilite y / o desinstale complementos que no se usan y no son necesarios para la funcionalidad de Joomla
  • ¡Instala Joomla y actualizaciones de complementos de inmediato!

Estoy seguro de que hay otros pasos, pero estos son los principales que uso en mi servidor que aloja más de 70 sitios web de todo el país. Recientemente tuve un ataque masivo similar a un ataque DDoS y no se accedió a ningún sitio web. Me sentí como a 10 pies de altura y a prueba de balas, pero sé que no puedo ser complaciente ya que mañana es otro día. Jajaja

Luke Douglas
fuente
-4
  1. No soy fanático de la autenticación de dos factores

  2. Instale Akeeba Admin Tools, habilite htaccess avanzado, verifique las opciones y el firewall del software

https://www.akeebabackup.com/download/admin-tools.html

  1. Habilitar contraseña de URL de backend
Anibal
fuente
1
¿Te importaría compartir por qué no eres fanático de la autenticación de dos factores?
chesedo
2
Ya veo, eso tiene sentido. Pero, ¿por qué incluir no usarlo entre los puntos para ayudar con la seguridad? Si lo quieres en tu publicación, ¿por qué no tenerlo como nota al margen junto con el motivo?
chesedo
1
Tienes razón. Estoy aprendiendo cómo responder preguntas aquí ;-) Por cierto, esta respuesta recibió -2 :-(
Anibal
44
Dejémoslo como una primera respuesta ingenua sobre el sistema de este autor. Tiene cierto encanto a su manera.
Anibal
1
Jeje! Realmente, el objetivo del sistema SE es 'obtener las mejores respuestas' o mejorar las buenas respuestas: sugeriría que su respuesta, con su explicación, se pueda eliminar y agregar como comentario, ya que junto con la explicación, mejora la comprensión de El impacto de la autenticación de 2 factores al abordar la seguridad.
NivF007