![¿Pueden los usuarios normales dañar mi servidor?](https://rvso.com/image/760638/%C2%BFPueden%20los%20usuarios%20normales%20da%C3%B1ar%20mi%20servidor%3F.png)
tengo unPila LEMP (Ubuntu 20.04)que está perfectamente configurado y optimizado por mí. No tiene ningún panel web. Primero lo usé solo para mis propios sitios web. Más tarde comencé a agregar algunos sitios web de clientes al servidor.
Dado que solicitaron acceso SFTP para administrar archivos del sitio web, decidí asegurarme de que no puedan acceder ni editar archivos confidenciales en el servidor.
Lista de los cambios que hice para aislar los usos tanto como sea posible:
- Creó un usuario sudo (llamemosadministrador del servidor) para mí y el acceso root ha sido deshabilitado
chmod 700 /home/serveradmin
(sin-R
)- Creé cuentas de usuario normales para mis clientes (por ejemplo, cliente1, cliente2...) y luego las agregué todas aadministrador del servidorgrupo
- Establecer usuario nginx enadministrador del servidor
- Creé un grupo php-fpm diferente para cada cliente. (ex. propietario: cliente1 grupo: serveradmin, lo mismo para los oyentes)
- Los archivos confidenciales del sitio web se hicieron inaccesibles para otros (por ejemplo, el archivo wp-config.php incluye credenciales de base de datos)
chmod -R 700
para la carpeta SSL del sitio web.- Y por supuesto, creé diferentes usuarios y bases de datos de mysql para cada uno de los clientes.
Ahora, estoy 100% seguro de que nadie puede acceder a la carpeta /home/clientX de otros. No pueden editar ni eliminar ningún archivo al menos. Sin embargo, no soy un usuario experimentado de Linux ni tampoco soy un proveedor de alojamiento.la cosa es que,¿Pueden esos clientes dañar/dañar mi servidor al acceder y editar cualquier archivo del sistema fuera de la carpeta/home? (Por ejemplo, las rutas /etc, /var/run pueden ser peligrosas, supongo).
No cambié los permisos de carpeta/archivo de los archivos predeterminados del sistema.
Entonces, ¿mi servidor no es seguro? ¿Todavía necesita cambios para mejorar la seguridad o debería evitar por completo darles acceso SFTP?
Atentamente.
Respuesta1
Al menos los puntos 3 y 4 no son válidos/inseguros.
- Creé cuentas de usuario normales para mis clientes (por ejemplo, cliente1, cliente2...) y luego las agregué todas al grupo serveradmin.
¿Qué tiene que ver una cuenta de usuario normal con el administrador del servidor? Absolutamente nada, ni siquiera los nombres sabios. ¿Cuál es el punto de que cada usuario del sitio pertenezca al serveradmin
grupo?
- Establecer usuario de nginx en serveradmin
Asimismo. NGINX debería ejecutarse bajo supropiousuario, normalmente nginx
(distros CentOS/RHEL) o www-data
(sistemas basados en Debian). No tiene nada que ver con la administración del servidor.
No puedo entrar en detalles sobre cómo la configuración actual es insegura ya que necesita muchos más detalles como propiedad del socket para PHP, ubicaciones de archivos, etc.
Una configuración verdaderamente segura supone la mayor separación posible de usuarios, y esto se refiere a los servicios. Así que comience asignando (o usando el proporcionado por el paquete) un usuario separado para NGINX y siga adelante.permisos seguros para PHP-FPM. Es el usuario de NGINX el que debe estar en el grupo de usuarios de cada sitio, y no al revés:
usermod -a -G client1 nginx
usermod -a -G client2 nginx
...
Ahora nginx
el usuario pertenece a client1
grupos client2
. La razón es que el nginx
usuario realmente debe poder leer todos y cada uno de los archivos del sitio web.
Los grupos PHP-FPM, por otro lado, están bien para vincularse client1:client1
tanto en tiempo de ejecución como en opciones de escucha de socket.