¿Cuáles son las formas de mantener seguro un servidor LAMP compartido, asumiendo que el acceso SSH está disponible para todos los usuarios?
Editar: Estoy pensando principalmente en proteger el servidor de los propios usuarios y entre ellos mismos.
¿Cuáles son las formas de mantener seguro un servidor LAMP compartido, asumiendo que el acceso SSH está disponible para todos los usuarios?
Editar: Estoy pensando principalmente en proteger el servidor de los propios usuarios y entre ellos mismos.
Probablemente sea imposible, pero puede hacer que sea más difícil que un atacante tenga éxito.
Fortalece tus defensas:
La seguridad refuerza el sistema (tal vez haciendo referencia a una de las siguientes listas de verificación)
enlace (busque la Lista de verificación de seguridad de UNIX)
enlace
Añadir:
Una comparación decente de las herramientas anteriores se describe aquí: enlace
Manténgase actualizado sobre los parches de seguridad.
Obtenga visibilidad:
Implemente un HIDS (por ejemplo, OSSEC ) para ayudarlo a detectar cuándo los usuarios se están comportando mal.
Todo lo anterior requerirá un esfuerzo continuo. Eso es seguridad.
Lo primero que debo hacer en mi opinión es cambiar el puerto ssh a algo que no sea estándar e instalar algo como fail2ban.
También podría ser útil ajustar el firewall para bloquear el acceso desde el exterior a los puertos no utilizados (tal vez solo permita 80, 423, 25 y ssh ... depende)
Además de las otras respuestas:
Los permisos de los programas (cgi, php, etc.) ejecutados por el servidor web son un problema:
Si se ejecutan con los permisos del servidor web, un usuario malintencionado puede acceder a los archivos proporcionados por otros usuarios. Estoy pensando en los archivos de configuración con credenciales de base de datos aquí.
Si esos programas se ejecutan con el permiso de los usuarios individuales, pueden modificar los archivos del programa ellos mismos. Esto podría hacer que sea más fácil explotar los problemas de seguridad en las aplicaciones, por ejemplo, una secuencia de comandos .php podría no validar correctamente los nombres de los archivos cuando los guarda. Y los usuarios necesitan permisos de escritura en el directorio web, por lo que el programa php también tiene permisos de escritura allí.
SourceForge ha liberado un módulo de apache y un sistema de archivos de fusibles que permite permisos más específicos:
Los bits de permisos están en un trío estándar de conjuntos "rwx" (lectura / escritura / ejecución), pero las categorías "usuario" (propietario), "grupo" y "otras" normales se reemplazan por el trío de "proyecto miembro "," acceso de apache iniciado por el proyecto "y" todos ".
Básicamente, no hay nada que puedas hacer para hacer que las cosas estén realmente seguras, ya que cosas como wordpress siempre terminan con problemas de seguridad masivos, así como PHP en sí, etc.
La única manera (creo) de estar bastante seguro es ejecutar cada sitio en una máquina virtual separada. Esto (casi) aísla totalmente un sitio de otro, pero, por supuesto, tiene la sobrecarga de tener que administrar todas las máquinas virtuales, tiene más uso de memoria, más ciclos de CPU, etc.
Ah, y cada VM necesita todos los parches de software continuamente.
Sin duda, vale la pena considerarlo, ya que es mucho más seguro que tratar de mantenerse al tanto de todos esos sitios.
Lea otras preguntas en las etiquetas webserver web-hosting shared-hosting