viernes, 20 de mayo de 2016

Instalacion y configuracion de un servidor FTP en Ubuntu Server 14.04

Se va a montar un servidor FTP con usuarios enjaulados y opción de usuario anónimo

Primero instalaremos el servicio FTP (actualizamos los repositorios si no lo hemos hecho):

$ sudo apt-get update
$ sudo apt-get install vsftpd

Lo siguiente sera crear dos usuarios, uno para que haga de administrador y otro de usuario normal, ademas se podrá acceder como usuario anónimo
Nombre: admin contraseña: admin

Nombre: usuario contraseña: usuario
Los usuarios se crearan mediante el comando normal de ubuntu "adduser":
$ sudo adduser admin
$ sudo adduser usuario
Nos aseguraremos de que tengan sus carpetas personales en /home (la carpeta alvar hace referencia al usuario administrador, al que he llamado así ):
Dentro crearemos una directorio de archivos, al cual podrán acceder (sustituimos #usuario# por el usuario al que queramos crearle el directorio):
$ sudo mkdir /home/#usuario#/archivos 
Y le daremos permisos a admin para que pueda editarla (el servidor ftp usara los permisos del servidor)
$ sudo chown admin:admin /home/#usuario#/archivos

Jaulas para usuarios


Una vez instalado ya se podrá acceder al servidor por FTP, pero los usuarios podrían moverse por todos los archivos, así que vamos a hacer una jaula para los usuario


(podemos ver que cualquier usuario puede entrar a /etc, lo que es bastante peligroso)

Antes de nada tenemos que permitir que los usuarios locales puedan entrar el servidor, asegurandonos de que tenemos descomentada la linea "local_enable = YES"






Primero amos a su archivo de configuración (/etc/vsftpd.conf)
y descomentamos estas 3 lineas



chroor_local_user -- Si escribimos "YES" nos permitira enjaular a los usuarios en su directorio personal
chroot_list_enable -- Si escribimos "YES" podremos usar un archivo para poder elegir que usuarios enjaular
chroot_list_file -- Escribimos la ruta del archivo mencionado en el comando anterior

Después de esto cuando entremos al servidor con un usuario enjaulado y queremos ir a un directorio padre nos pasara esto:


(vemos que estamos en /home/usuario)

(aunque intentemos salir nos dejara en el mismo directorio)

(comprobamos también que tenga los permisos correctos y puede crear carpetas)

Finalmente reiniciamos el servidor para que se apliquen los cambios

$ sudo service vsftpd restart

Si estamos usando Ubunt 16.04 podemos escribir este comando para comprobar que el archivo de configuración se ha cargado correctamente

$ sudo service vsftpd status


Usuarios anónimos

Ahora vamos a activar los usuarios anónimos asi que volvemos a /etc/vsftpd.conf,
tendremos que descomentar o añadir estas 3 lineas


(la linea anonymous_enable hace fallar al servidor, y curiosamente es innecesaria si ponemos las demas)

anon_root -- Aquí ponemos el directorio raíz del usuario anónimo
ftp_username --Aquí ponemos el nombre que tendrá el usuario anónimo, el nombre standard es "anonymous"
no_anon_passwors -- Si ponemos "YES" no pedirá contraseña al usuario anónimo

Reiniciamos el servidor para que se guarden los cambios y comprobamos que funcione

$ sudo service vsftpd restart



Y ya estará terminado


Otras características útiles

-- Si queremos que haya unos permisos predeterminados para los usuarios podemos descomentar la linea "local_umask" esto permitirá cambiar los permisos, pero si los que tiene la carpeta son mas restrictivos, serán estos  los que se apliquen Ej.:
    • Si en la carpeta local los permisos son 733 y en la mascara le ponemos 755 (022 en la mascara) se aplicara 733



-- Si queremos que aparezca un mensaje cuando te conectas al servidor, tenemos la opción "ftpd_banner", donde pondremos en mensaje que queremos que aparezca



el mensaje aparecerá cuando nos conectamos, aunque no nos hayamos logeado


-- En cuanto a los logs hay 3 directivas básicas: "xferlog_enable", "xferlog_log_file" y "dual_log_enable"

  • xferlog_enable -- Si la activamos registraremos las subidas y descargas
  • xferlog_log_file -- Aquí tendremos que poner donde se encontrara el log anterior
  • dual_log_enable -- Si la activamos se registraran dos logs con formatos diferentes





No hay comentarios:

Publicar un comentario