Servidor FTP en ubuntu con SSL

Publicado el 26 julio 2013 por Edu5800

- Lo primero es instalar el demonio del servidor FTP:


sudo apt-get install vsftpd.
Bien, ya tenemos totalmente operativo nuestro servidor FTP y podemos conectarnos  por medio de cualquier cliente FTP:
Como ya he dicho vamos a modificar el archivo de configuración de nuestro servidor FTP para que se establezca la conexión por cuentas de usuario:
- Para lo cual tipeamos en una consola:
sudo nano /etc/vsftpd.conf
  • Primero definimos la carpeta compartida:
anon_root=/home/antonio/ftp
  • Para que el servidor se inicie con el sistema:
 Listen=YES
  • Para no permitir usuarios anónimos, cambiamos la linea:
anonymous_enable=YES 
  • En caso de que esta variable la hubierais puesto aanonymous_enable=NO.:
  •  Crear usuario:
sudo adduser –home /home/antonio/ftp –no-create-home –shell /bin/bash user1
  • Asignar user1 al grupo ftp:
sudo addgroup user1 ftp
  • Para permitir al usuario que acceda al servidor FTP escribir en el directorio compartido, siempre y cuando tenga permisos en la carpeta compartida:
write_enable=YES
  • Esto linea permitirá acceder al sistema usuarioslocales.
     local_enable=YES. Esto linea permitirá acceder al sistema usuarios
locales.
  • Esta linea permite o no el acceso de usuarios locales a sus respectivas carpetas privadas
chroot_local_user=YES, para permitir acceso
chroot_local_user=NO, para denegar  acceso
  • En en caso de que esta opcion este a YES
chroot_list_file=/etc/vsftpd/chroot_list
sudo nano/etc/vsftpd/chroot_list, donde haremos una lista con los usuarios locales.
  •  Establecemos los permisos por defecto de los nuevos archivos que suban los usuarios.
local_umask=022 
- Tras lo que iniciaremos el demonio para que el servidor FTP tome los cambios:
sudo service vsftpd start


SERVIDOR FTP CON SSL EN UBUNTU


  • Se crea el certificado SSL que se ubicara en la ruta /etc/vsftpd y que tendrá una duración de 365 días:
Se crea el directorio que albergara el certificado:
mkdir /etc/vsftpd-ssl
cd /etc/vsftpd-ssl
    Se crea el certificado:
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout vsftpd.pem -out vsftpd.pem
Ahora editamos el archivo de configuración de vsftp para su correcta configuración:
nano /etc/vsftpd
  • Primero definimos la carpeta compartida:
anon_root=/home/antonio/ftp
  • Para que el servidor se inicie con el sistema:
Listen=YES
  • Para no permitir usuarios anónimos, cambiamos la linea:
anonymous_enable=YES 
  • En caso de que esta variable la hubierais puesto NO:
  1. Crear usuario/s:
adduser –home /home/antonio/ftp –no-create-home –shell /bin/bash user1
  1. Asignar user1 al grupo ftp:
addgroup user1 ftp
  • Para permitir al usuario que acceda al servidor FTP escribir en el directorio compartido, siempre y cuando tenga permisos en la carpeta compartida:
write_enable=YES
  • Para permitir acceder al sistema usuarioslocales.

    local_enable=YES

  • Esta linea permite o no el acceso de usuarios locales a sus respectivas carpetas privadas
chroot_local_user=YES, para permitir acceso
chroot_local_user=NO, para denegar  acceso
  1. En en caso de que esta opcion este a YES:
chroot_list_file=/etc/vsftpd/chroot_list
  1. nano /etc/vsftpd/chroot_list, donde haremos una lista con los usuarios locales.
  • Establecemos los permisos por defecto de los nuevos archivos que suban los usuarios.
local_umask=022.
  1. Instalar/configurar SSL:
  • Instalamos el modulo SSL para vsft:
apt-get install ftp-ssl
  • Configurar certificado SSL:

     nano /etc/vsftpd
# # # Allow anonymous users to use secured SSL connections 

allow_anon_ssl=YES
 # # All non-anonymous logins are forced to use a secure SSL connection in order to # send and receive data on data connections. force_local_data_ssl=YES # All non-anonymous logins are forced to use a secure SSL connection in order to send the password. force_local_logins_ssl=YES # Permit TLS v1 protocol connections. TLS v1 connections are preferred ssl_tlsv1=YES # Permit SSL v2 protocol connections. TLS v1 connections are preferred ssl_sslv2=NO # permit SSL v3 protocol connections. TLS v1 connections are preferred ssl_sslv3=NO # This option specifies the location of the RSA certificate to use for SSL # encrypted connections. rsa_cert_file=/etc/vsftpd/vsftpd.pem
- Tras lo que iniciaremos el demonio para que el servidor FTP tome los cambios:

service vsftpd startAhora el servidor quedaría totalmente operativo:

ftp-ssl "ip del servidor"

fuente