¿Cómo puedo crear usuarios con acceso FTP remoto en el servidor Linux?

11

Estoy ejecutando un servidor Ubuntu 10.04 LTS y quiero crear usuarios que solo puedan acceder al servidor desde FTP.

Lo que hice hasta ahora es:

  • Instalar en pc vsftpd
  • Cree un nuevo usuario con el shell de inicio de sesión predeterminado establecido en /bin/false

Los usuarios normales en el servidor pueden acceder a su carpeta de inicio a través de ftp, pero los usuarios a quienes se elimina el acceso de shell remoto al configurarlo /bin/falsetampoco pueden iniciar sesión por ftp.

¿No entiendo cómo afecta el acceso de shell al vsftpdservidor? ¿Cómo podría habilitar el acceso ftp sin volver a habilitar el shell?

Actualización:
Encontré esta referencia que dice que debería usar /sbin/nologin(parece estar /usr/sbin/nologinen Ubuntu) y que no debería afectar el acceso ftp pero no funciona en mi caso.

jmbouffard
fuente
Puede intentar establecer / bin / true
balki
Nunca he usado vsftpd, pero encontré una solución que hace lo que necesita. No sé si es la mejor solución (creo que debería funcionar, pero tal vez hay algo mejor).
pbm
Acabo de probar / bin / true y no funciona.
jmbouffard
Gracias @pbm pero no es exactamente lo que estoy buscando porque prefiero usar usuarios reales.
jmbouffard

Respuestas:

12

No sé si es una buena práctica responder mi propia pregunta, pero encontré una solución simple que permite el inicio de sesión ftp.

Necesitaba agregar la línea

/ usr / sbin / nologin

al archivo / etc / shells. Justo después de esta modificación, el servidor ftp comenzó a aceptar el inicio de sesión de los usuarios para los que se configuró el shell / usr / sbin / nologin. Por lo tanto, no pueden iniciar sesión a través de ssh, pero funciona con ftp exactamente como yo quería.

Gracias por sus útiles comentarios.

jmbouffard
fuente
Hace unos días leí en alguna parte que esto abre una vulnerabilidad de seguridad. Cualquier experto por ahí que pueda aclarar esto para mí.
Navneil
0

Establecer el usuario de consola de nuevo a /bin/false(o algún otro shell no válido), entonces establecen /bin/falseen /etc/shells.

Veo un gran problema de seguridad con la configuración /usr/sbin/nologinen /etc/shells. Le está dando acceso FTP (y quizás otro) a todos los demonios e inicios de sesión que tienen /usr/sbin/nologincomo shell.

Jerry Callahan
fuente
1
¿Cómo exactamente? nologin existe para permitir, bueno, nologin, con un mensaje personalizado opcional /etc/nologin.txtpara que el usuario ftp pueda saber que es solo ftp o algo así.
Dani_l
vsftpd es el que protege del acceso no autorizado al tener sus propias listas de acceso.
Dani_l