Configuración y Seguridad de un Servidor FTP

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 4,27 KB

Servidor FTP

Preparación

Antes de instalar el servicio FTP, es recomendable deshabilitar los servicios que no se necesitan en el arranque del servidor, como DNS o DHCP. Para ello, accedemos a /etc/init.d/rc2.d y cambiamos el nombre de los servicios que queremos deshabilitar.

Puertos

El servicio FTP utiliza dos puertos: el puerto 20 para la transferencia de datos y el puerto 21 para el control.

Seguridad en un Servidor FTP

Existen dos maneras principales de asegurar un servidor FTP:

  1. SFTP: Similar a HTTPS para Apache, utiliza el puerto 22 y se basa en SSH.

  2. FTPS: Utiliza una capa SSL/TLS para cifrar la comunicación. El puerto de control suele ser el 21 y el de datos se negocia, o en modo implícito se usa el 990 para control y el 989 para datos.

La entidad encargada de estandarizar los puertos es la IANA.

Usuarios FTP

Se pueden configurar diferentes tipos de usuarios FTP: usuarios propios, usuarios de sistema y usuarios anónimos.

Modos de Conexión

Modo Activo

El cliente se conecta al puerto 21 del servidor. El cliente escucha en un puerto N+1 y lo notifica al servidor. El servidor se conecta al puerto N+1 del cliente desde su puerto 20 para transferir datos.

Modo Pasivo

El cliente se conecta al puerto 21 del servidor. El servidor indica al cliente un puerto donde escuchará. El cliente inicia la conexión de datos desde un puerto local al puerto indicado por el servidor.

Enjaular Usuarios (Chroot)

El enjaulamiento restringe a los usuarios FTP a su directorio de inicio, que aparece como /. Esto evita que accedan a otras partes del sistema de archivos.

Creación de Usuarios

Para crear un grupo para usuarios FTP:

addgroup --gid 1005 ftp_users

Para crear usuarios y añadirlos al grupo:

adduser --uid 1003 --ingroup ftp_users usuario1
adduser --uid 1004 --ingroup ftp_users usuario2

Los directorios de usuario se suelen ubicar en /srv/ftp.

Modos de Estado

Standalone

El servidor FTP se ejecuta como un proceso independiente del sistema.

Super Servidor

El servidor FTP se ejecuta como un proceso hijo de inetd o xinetd, que gestionan las conexiones entrantes.

Directiva chroot

La directiva chroot_local_user controla el enjaulamiento de usuarios locales. Si se establece en yes, los usuarios en /etc/vsftpd.chroot_list son excepciones al enjaulamiento. Si se establece en no, solo los usuarios en la lista estarán enjaulados.

Si un usuario no está enjaulado, no representa un riesgo si los permisos de archivo están configurados correctamente.

Configuración para Usuarios Anónimos

Para permitir que usuarios anónimos suban archivos a un directorio específico, se crean los directorios y se cambia la propiedad al usuario ftp:

mkdir /srv/ftp/descargas
mkdir /srv/ftp/compartida
chown ftp /srv/ftp/compartida

Umask

La umask controla los permisos por defecto para nuevos archivos y directorios. Funciona de forma inversa a los permisos estándar. Se puede configurar en el archivo .bashrc para que sea permanente.

Comandos FTP

  • ftp: Inicia la sesión FTP.
  • open + dirección IP: Conecta a un servidor FTP.
  • pwd: Muestra el directorio remoto actual.
  • lcd: Muestra el directorio local actual.
  • lcd /etc: Cambia al directorio /etc local.
  • put archivo: Sube un archivo al servidor.
  • get archivo: Descarga un archivo del servidor.
  • ! comando: Ejecuta un comando en la máquina local.
  • mput/mget: Sube/descarga múltiples archivos.
  • hash: Muestra el progreso de la descarga (para usuarios anónimos).

Entradas relacionadas: