Servidor FTP básico de Ubuntu

33

Me gustaría configurar un servidor FTP básico en mi instalación de Ubuntu Server. He estado jugando con VSFTPD, pero tengo problemas para que el servidor me permita crear directorios y copiar archivos. He configurado el sistema para permitir usuarios locales, pero parece que eso no significa que tenga acceso para crear directorios. Esta puede ser una instancia en la que necesito estar mejor basado en la configuración del servidor Ubuntu para configurar este servidor FTP adecuadamente. El objetivo final es poder mover archivos de mi carpeta de desarrollo local a mi carpeta www para su implementación. Los directorios también deben poder moverse. Cualquier ayuda sería muy apreciada.

JPrescottSanders
fuente
Usted mencionó mover archivos y carpetas desde el desarrollo local a la carpeta www: ¿está haciendo todo esto en la misma máquina o en máquinas diferentes?
Marco Ceppi
¿También está completo vendido con VSFTPD? ¿O le interesarían otros tipos de software FTP como pureftp?
Marco Ceppi
El desarrollador local es una máquina completamente separada. Estoy familiarizado con mover archivos a servidores web a través de FTP, quizás haya una mejor manera.
JPrescottSanders
No estoy vendido en VSFTPD, fue el primero que encontré mientras buscaba en Google, si tiene una solución más simple, soy todo oídos.
JPrescottSanders

Respuestas:

42

Voy a recomendar PureFTPD porque, en mi opinión, ha sido el más simple y fácil de usar. Primero deberá instalarlo: sudo apt-get install pure-ftpduna vez que esté instalado, se iniciará solo. De manera predeterminada, utiliza las autenticaciones PAM, lo que significa que utiliza las cuentas que ya existen en el sistema para su autenticación. Todo lo que tendrá que hacer es crear una cuenta de usuario con el directorio de inicio como su ruta www y establecer la contraseña para esa cuenta. Entonces debería poder conectarse con esa combinación de usuario / pase para cargar / descargar archivos.

Algo como esto:

sudo adduser ftpman --home /var/www/ --ingroup www-data

Lo que creará al ftpmanusuario y lo colocará en el grupo www-data que usa Apache y lo guiará a través del resto del script de configuración. Una vez que esté definido, asegúrese de chmodacceder a la carpeta WWW si recibe errores sobre la combinación de usuario / grupo que creó.

Por último, si desea bloquear el acceso SSH para la ejecución de esa cuenta, sudo chsh -s /bin/false ftpmanlo que cambiará el shell de los usuarios a falso. (Reemplace ftpman con su usuario ftp)

Marco Ceppi
fuente
55
PureFTP es el más fácil de configurar en lo que a mí respecta.
Nathan Osman el
1
Tienes la costumbre de dar una explicación completa siempre como un maestro. ¡¡¡Increíble!!!
user3215
1
Intenté esto pero no puedo conectarme con el usuario recién creado. Los usuarios existentes funcionan bien
wim
1
Todo esto funciona bien, excepto que cuando ejecuto chshesto parece evitar que los usuarios inicien sesión a través del FTP también. Volver a configurar le /bin/bashpermite volver a funcionar.
DanH
1
Gracias, y puedo confirmar que pasé un día completo con vsftpd y 5 minutos con pureftpd en tiempo de configuración. Para una configuración simple y segura, use pureftpd. Estoy confundido por qué mainstream promociona vsftpd!
RyBolt
10

En mi opinión, SFTP es una mejor manera de hacerlo. Oye, tiene la palabra "seguro" en el nombre, debe ser mejor :)

SFTP utiliza ssh para realizar transferencias de archivos (a diferencia de FTPS, que es FTP + TLS, básicamente). Lo que eso significa es que si puede enviar ssh a la máquina de destino, casi siempre puede usar SFTP, ya que utiliza los mismos mecanismos de autenticación, por lo que no tiene que instalar y configurar diferentes demonios de servidor (es decir, no pureftpd o vsftpd). Siempre y cuando sus permisos estén configurados correctamente /var/www, lo que probablemente sea una cuestión de sudo chmod g+w /var/www; sudo usermod -g $USER -G www-data $USER, debería poder usar SFTP de inmediato.

Hoy en día, la mayoría del software de cliente realizará SFTP de manera bastante feliz, y también puede usarlo scpdesde un shell en el servidor de desarrollo para copiar cosas ( scp -Rcopiará carpetas enteras y es muy útil). Incluso puede dar un paso más y automatizar los inicios de sesión con claves públicas, lo que significa que no tendrá que escribir más contraseñas :)

Ben Williams
fuente
3
sugerencia sugerencia ... si tiene clientes Windows, pueden utilizar WinSCP winscp.net/eng/index.php para acceder a un servidor sftp.
LassePoulsen
Según su comentario, el OP debería usar vsftpd, porque vs significa muy seguro . :-)
qbi
PureFTPD utiliza la misma autenticación que SFTP: en mi opinión, en realidad es más seguro porque si la información de su cuenta se filtra, nadie como SSH accede a su máquina. En el peor de los casos, tienen acceso a archivos.
Marco Ceppi
Si su aplicación solo admite FTP, y la está haciendo un túnel a través de SSH, ¿cuál es la diferencia? :)
Endolith
5

Recomiendo encarecidamente usar vsftpd. Es uno de los demonios FTP más seguros en Linux. Muchos otros tenían debilidades en el pasado y parece que el FTP es difícil de implementar de manera segura.

vsftpd comienza justo después de instalarlo. Ubuntu permite a los usuarios locales iniciar sesión. Por lo tanto, inicie su cliente FTP e inicie sesión como usuario normal con la contraseña de su sistema (Mi ejemplo usa lftp):

> lftp 127.0.0.1 ftp
lftp 127.0.0.1:~> user qbi
Password: #typing my password which I also use to log in via GDM
lftp [email protected]:~> ls
drwxr-xr-x 10 1000 1000   4096 2008-07-28 16:32 Desktop
... many more

Ahora estoy usando algún tipo de administrador de archivos (Nautilus, Shell, etc.) para crear un nuevo directorio fooy volver a mi cliente FTP:

ftp [email protected]:~> ls -l
...
drwxr-xr-x 2 1000 1000   4096 2010-08-09 13:32 foo

El directorio está allí y puedo cdingresar y usarlo. Esto también es lo mismo si tiene usuarios especiales. Allí también puede crear directorios y son accesibles de inmediato. Aquí es importante buscar los derechos de acceso.

qbi
fuente
3

Humildemente recomiendo un servidor FTP que escribí desde cero: JetFTP . Es extremadamente simple de instalar y usar.


Instalación:

  • Agregue mi PPA a sus fuentes de software y actualice:

    sudo apt-add-repository ppa:george-edison55/george-edison
    
  • Ejecute el siguiente comando:

    sudo apt-get install jetftp
    
  • ¡Eso es!

Usar JetFTP es simple: simplemente conéctese al puerto 8021usando un nombre de usuario y contraseña en la computadora en la que se ejecuta JetFTP.

Nathan Osman
fuente
2

No use ftp , es un protocolo intrínsecamente inseguro porque envía el nombre de usuario y la contraseña al servidor. Implementar sftp es igual de fácil y obtienes una gran ventaja en la seguridad de tu conexión.

Stuart
fuente
claro problema es la mejor respuesta :-)
Sajad Bahmani
0

Hay tres formas diferentes de configurar un servidor ftp:

(1) FTP anónimo:

Las personas solo pueden acceder al servidor con la cuenta anónima y sin contraseña. Por supuesto, el administrador del servidor establecerá un límite para las cargas para evitar que los usuarios coloquen archivos ilegales como música / películas / juegos pirateados.

(2) FTP con acceso anónimo y usuarios con una cuenta con contraseña:

Este método permite que los usuarios de cuentas anónimas y con contraseña ingresen al servidor. Solo tendrán acceso a un directorio específico, a excepción del usuario root que puede ver / modificar / eliminar todos los archivos y / o carpetas.

(3) FTP con soporte mysql para autenticación de usuarios virtuales:

Este método permite el acceso al servidor solo para algunos grupos de usuarios que no tienen una cuenta virtual de autenticación de usuarios en el sistema. Utiliza un servidor mysql externo que almacena información del usuario.

Primera opción: FTP anónimo

Antes de comenzar la creación de un servidor ftp anónimo, debe agregar un usuario llamado ftp a su sistema, con un directorio de inicio también. Este paso es realmente fácil, solo sigue estos comandos:

useradd -d /home/ftp/ftp -s /bin/false ftp

mkdir -p /home/ftp/upload

Hacer esto solo permite que esta cuenta escriba en esta carpeta. Puede usar más variables para especificar qué hará el servidor ftp. Aquí hay unos ejemplos:

-e Allow access to the server only by anonymous users
-B Start the server with background demon
-i Anonymous users can't upload files
-M Let anonymous users create folders
-s ftp user files cannot be downloaded

Segunda opción: '' 'Usuarios de cuentas anónimas y con contraseña' ''

Para que sea posible tener usuarios de cuentas anónimas y con contraseña en el mismo servidor, siga esta pequeña guía:

-B ,-i ,M, -r, -s same of before
-u <uid> Enable users with a specified user id (uid) to access the server 
-V <Ip address> Only specified IPs will be able to access the server in non-anonymous mode 

Tercera opción: '' 'Usuarios virtuales con Mysql' ''

Para crear un servidor con soporte mysql, siga estos pasos:

Descargue e instale el Administrador de usuarios para PureFTPd que puede encontrar aquí http://machiel.generaal.net/index.php?subject=user_manager_pureftpd

Descomprímalo y cargue todo su contenido en el directorio www de su servidor web y luego escriba en su navegador este enlace de enlace http: //localhost/ftp/install.php Siga todos los pasos que el instalador le pida Copie y guarde rge pureftpd-mysql .conf en el directorio del administrador de usuarios pureftpd

Hecho. Acceso al panel de administración usando este enlace http: // localhost / ftp

Más opciones para agregar antes de iniciar el proceso del servidor

-c <num> Max client that can connect to the server
-C <num> Max connections for a IP
-T <bandwitdh> Max bandwitdh disponible for each connection
-n <MBytes> Max MB that a user can have into its home folder
-m <Cpu Loading> Stops the anonymous uploads if the cpu loading exceed from this value 

Y vea esto para algunas aplicaciones de servidor ftp:
https://help.ubuntu.com/6.06/ubuntu/serverguide/C/ftp-server.html

Sajad Bahmani
fuente
44
Cuando copie y pegue una respuesta desde otro lugar, siempre debe acreditar la fuente .
Dori
0

La instalación predeterminada de VSFTPD no permite ningún cambio de creación / modificación por defecto. Necesita editar /etc/vsftpd.confy descomentar la siguiente línea ...

write_enable=YES

Y en segundo lugar, debe configurar los permisos apropiados del sistema de archivos en los archivos y carpetas respectivos.

Simon East
fuente