Pregunta Permitir SFTP pero no permitir SSH?


Estoy empezando una compañía de hosting muy pequeña para algunos amigos y pequeños clientes, nada importante.

Quiero dar a mis "clientes" el derecho de administrar sus archivos en el servidor. Odio el FTP porque no es seguro y, en mi opinión, está obsoleto.

Así que me gustaría permitir que mis usuarios se conecten a través de SFTP pero no permitirles que se conecten a través de SSH. (Lo sé, lo sé, SFTP está usando SSH). Pero me preguntaba, ¿es posible?

¡Así que no tendría que instalar un servicio de FTP en el servidor y todo sería increíble!


87
2018-01-28 20:40


origen




Respuestas:


A partir de la versión 4.9, OpenSSH (no disponible en centos 5.x pero la función ChrootDirectory fue portada hacia atrás) tiene un internal-sftp subsistema:

Subsystem sftp internal-sftp

Y luego bloquear otros usos:

Match group sftponly
     ChrootDirectory /home/%u
     X11Forwarding no
     AllowTcpForwarding no
     ForceCommand internal-sftp

Añade tus usuarios a la sftponly grupo. Tienes que cambiar el directorio de usuario del usuario a / por el chroot y /home/user debe ser propiedad de root. Tambien me puse /bin/false como shell del usuario.


113
2018-01-28 20:46



¡Guauu! ¡Súper asombroso! Voy a probar esto y volveré aquí para validar. ¡Muchas gracias! - TomShreds
+1 para la cosa de ChrootDirectory! - Kyle Hodgson
Después de hacer esto, mi usuario sftponly no puede acceder por ssh y puede conectarse por sftp. Sin embargo no puede ver ningún archivo en absoluto! A pesar de estos archivos tienen permiso para este usuario. :-( - Emilio Nicolás
En caso de que desee hacer esto y encontrar una entrada en su sshd_config con "/ usr / lib / openssh / sftp-server" ya existente, verifique aquí: serverfault.com/questions/660160/…  - internal-sftp es "más nuevo, mejor y más fácil" - Xosofox


Hay una concha esponja Que hace. Puede chroot también.


19
2018-01-28 21:11



Esto sería genial si necesita usuarios de SFTP y usuarios de SSH. Simplemente reemplace el shell en / etc / passwd para aquellos restringidos solo a SFTP. - Dragos


Checkout rssh que es un shell falso que permite sftp pero niega ssh

Más sobre RSSH

http://www.pizzashack.org/rssh/

RPMs

http://pkgs.repoforge.org/rssh/

Puede configurar rssh para permitir / denegar diferentes comportamientos como sft, scp, etc.


4
2018-02-02 13:15



Bonito. Esta es la forma más fácil de configurar sin tocar sshd_config en absoluto. Simplemente cambia el shell en el archivo de contraseña y listo. - Tomofumi


Puede modificar / etc / passwd y darle a ese usuario un shell falso para que no pueda usar ssh.


2
2018-01-28 20:46



¿Has probado esto? - splattne
Cuando intento configurar el shell para /bin/false ni ssh o sftp funciona - Brad Mace
/ bin / false es no permitir ningún tipo de inicio de sesión, ese no es el enfoque correcto aquí. La respuesta aceptada de Rob Wouters es cómo debe limitar los usuarios solo a SFTP, no cambiando el shell. Si quisieras cambiar la respuesta de la shell @ Stone sería una buena idea. - jwbensley
entonces, ¿QUÉ shell debe usarse asumiendo que / bin / bash no es aceptable y / bin / false o / sbin / nologin deny access? - Putnik


Uso el método de especificar el shell del usuario como / bin / false como se mencionó. Sin embargo, debe asegurarse de que / bin / shell esté en / etc / shells. Entonces funciona ssh = no ftp = ok.

También uso vsftpd y agrego esto
chroot_local_user = YES a /etc/vsftpd/vsftpd.conf para que los usuarios de ftp no puedan ver la fecha que no sea la suya.

La ventaja de estos simples cambios no es una configuración molesta de la configuración ssh para cada usuario.


1
2017-09-23 17:09





No te olvides de encontrar la línea. UsePAM yes y comentarlo:

#UsePAM yes

Sin deshabilitar esto, su servidor SSH se bloquearía al recargar / reiniciar. Ya que no necesita funciones extravagantes de PAM, esto está bien.


1
2018-01-25 22:02





Configurar ssh para habilitar sftp solo para algunos usuarios seleccionados es una buena idea y funciona correctamente, siempre que usted instale scponly o rssh.

rssh funciona bien, a menos que necesite configurar la cárcel, en este caso, intentar seguir las instrucciones proporcionadas por los manuales de CHROOT es una locura, lo que lleva a "copiar" grandes partes de los archivos ejecutables del sistema y la biblioteca justo debajo de "cada cárcel de usuarios", incluyendo rssh shell en sí. Es un método de desperdicio de espacio.

scponly necesita una comprensión profunda de la configuración que conduzca a un problema siempre presente de rechazo de inicio de sesión en caso de configuración de la cárcel.

La forma sencilla de permitir que las funciones "ftp" con jail funcione correctamente, el soporte SSL / TLS para transacciones seguras y el inicio de sesión es utilizar un VSFTPD "antiguo pero en funcionamiento", que se instala de forma rápida y limpia y ofrece toda la capacidad de configuración que sea necesaria y, por último, Pero no menos importante: ¡funciona!

Maurizio.


0
2018-04-23 12:47