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:
SFTP: Similar a HTTPS para Apache, utiliza el puerto 22 y se basa en SSH.
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).