Asegurar el sistema de archivos para un servidor SFTP seguro

12

Esto puede no parecer una pregunta de desarrollo, pero en esencia lo es. Déjame explicarte cómo. Nuestro enfoque principal de desarrollo son las páginas de contenido dinámico. Algunos de nuestros clientes nos han pedido que les permitamos espacio en nuestros servidores (que pagan) por su antiguo contenido estático. Solíamos lograr esto dando al cliente una cuenta ftp a un dominio diferente. (por ejemplo, el dominio del cliente es customer.com pero accedieron a su contenido estático a través de otherdomain.com/customerstatic).

Ahora queremos aumentar la seguridad que brinda a los clientes cuentas sftp en sus servidores Linux. Estoy usando openssh / sftp-server en su entorno de shell para que no puedan iniciar sesión o ejecutar comandos.

El problema es que, por naturaleza, muchos archivos del sistema de archivos son por defecto (drwxr-xr-x), lo que significa que cualquier usuario podrá leer el contenido del directorio y posiblemente algunos archivos. No creo que cambiar todo el sistema de archivos a -rwxr-x - x sea un movimiento inteligente, ya que no sé cuántos archivos del sistema necesitarán ese permiso de lectura.

Que alguien haya enfrentado este problema en el pasado. Si es así, ¿podrías iluminar el camino?

Gracias

anon
fuente
Buena pregunta y respuesta completa concisa: un moderador probablemente debería cambiar el título y convertirlo en una pregunta que no sea wiki.
MikeyB
no es posible eliminar la wiki de una pregunta; lo siento
Jeff Atwood

Respuestas:

22

SFTP por naturaleza no es inseguro; dejarlos en todo su sistema de archivos es. Echa un vistazo a esto para ver cómo puedes habilitar el acceso SFTP sobre una base chroot , que bloqueará los directorios a los que pueden acceder, digamos, sus directorios de inicio, o donde quieras que carguen.

En Linux, prestaría atención a esta parte (configurar / etc / ssh / sshd_config):

  Match Group sftponly
         ChrootDirectory %h
         ForceCommand internal-sftp 
         AllowTcpForwarding no

Esto significa que cualquier persona en el grupo de usuarios 'sftponly' estaría restringido a sus directorios personales.

Consulte el enlace para obtener más información y también lea la página de manual de sshd_config. Espero que ayude.

Josh K
fuente
Además, es posible que deba indicarle a OpenSSH que lo use internal-sftpcuando el cliente solicite el subsistema sftp; es posible que se haya configurado para usar el sftp-serverprograma externo . Para hacer esto, agregue o cambie la línea Subsystem sftp internal-sftpen la sección principal del archivo de configuración (no debajo de la Matchsección).
Nate
Josh, ¿alguna vez encontraste una manera de hacer que esto no requiera la propiedad raíz de los directorios principales de los usuarios?
Matt Simmons
1

Cuando se dice "Muchos sistemas de ficheros por defecto son 755 permisos", que en realidad significa el valor por defecto de umask se establece en 022. Puede cambiar este valor predeterminado (para los nuevos archivos) mediante el establecimiento de la máscara U en 027, lo que haría que los permisos predeterminados 750, o configura la umask en 007, lo que haría que los permisos predeterminados sean 770.

Brent
fuente
0

Puede considerar configurar un servidor OpenVZ y luego crear un pequeño 'contenedor' de VM ftp / sftp para cada compañía. Esto los mantiene a todos separados, y una vez que dominas OpenVZ es realmente útil para este tipo de cosas pequeñas.

Kyle Brandt
fuente