El protocolo FTP es uno de los protocolos más antiguos (tiene más de 40 años), pero todavía se usa ampliamente cuando se requiere un protocolo de transferencia de archivos simple. Es posible instalar un servidor FTP en cualquier versión del sistema operativo de Microsoft. La última modernización profunda del servicio ftp se realizó en Windows 7 / Server 2008 R2 (en realidad, el código del servicio casi se ha escrito desde cero). La seguridad del servicio ha mejorado significativamente y han aparecido varias funciones nuevas. En particular, el servidor FTP en Windows le permite configurar Aislamiento de usuarios de FTP. Permite restringir el acceso de muchos usuarios a sus propias carpetas en un solo servidor FTP.

Debido al aislamiento, los usuarios solo pueden trabajar con sus carpetas y no pueden subir en el árbol de directorios FTP (el directorio de nivel ftp superior del usuario se muestra como la raíz del servidor FTP). Por lo tanto, se puede evitar el acceso a los datos de otros usuarios en el servidor FTP. El aislamiento de usuario FTP es ampliamente utilizado por proveedores de ISP / hosting cuando es necesario proporcionar acceso individual a un único almacenamiento de archivos para diferentes usuarios.

Como en versiones anteriores de Windows, el servicio FTP en Windows Server 2016/2012 R2 (no lo confunda con sFTP y TFTP) está basado y profundamente integrado en el servicio IIS y tiene una única interfaz de gestión administrativa.

En este artículo mostraremos cómo instalar un servidor FTP basado en IIS en Windows Server 2016/2012 R2 y configurar el aislamiento de usuario FTP (este manual también se aplica a Windows 10 y 8.1).

¿Cómo instalar la función del servidor FTP en Windows Server 2016/2012 R2?

Puede instalar el servicio FTP usando la consola del Administrador del servidor marcando la opción Servicio FTP y Extensibilidad FTP en la sección Servidor web (IIS) -> Servidor FTP.

También puede instalar la función del servidor FTP con un solo comando de PowerShell:
Install-WindowsFeature Web-FTP-Server

Para instalar la consola de administración del servidor FTP, ejecute el siguiente comando:

Install-WindowsFeature -Name "Web-Mgmt-Console"

Creación de un sitio FTP, gestión de permisos de usuario de FTP

Inicie el Administrador del servidor y abra la consola de administración de IIS (Administrador de servicios de información de Internet).

Consola de administración de IIS

Cree un nuevo sitio FTP (Sitios -> Agregar sitio FTP).

Crear sitio ftp

El nombre del sitio FTP: MyTestSite

El directorio raíz del sitio FTP: C: inetpub ftproot

nombre y ruta del sitio ftp

Para proteger los datos FTP transmitidos a través de la red, es posible configurar SSL para FTP (en este caso, todos los datos y contraseñas / cuentas enviados por los usuarios de ftp durante la sesión estarán encriptados), pero en nuestra demostración esto no es necesario. Todas las demás configuraciones quedan predeterminadas.

Puede administrar su sitio FTP utilizando el módulo de PowerShell WebAdministration. Por ejemplo, para crear un nuevo sitio FTP, simplemente ejecute los comandos:

Import-Module WebAdministration
# Set the FTP site name
$FTPSiteName="CORP_FTP"
#FTP folder
$FTPRoot="D:wwwFTPRoot"
#FTP port
$FTPPort = 21
New-WebFtpSite -Name $FTPSiteName -PhysicalPath $FTPRoot -Port $FTPPort

Seleccione un nuevo sitio FTP y desactive la Autenticación anónima en el Autenticación FTP sección. Autenticación básica debe estar habilitado.

Autenticación FTP

El servicio FTP en Windows Server 2016/2012 R2 puede utilizar dos tipos de cuenta: dominio o local. Según el tipo de cuenta, existen algunas diferencias en la estructura de los directorios FTP y la configuración de aislamiento de usuarios. Para que sea más fácil de describir, usaremos cuentas locales de Windows.

Cree algunos usuarios de FTP, suponga que estos son ftp_user1, ftp_user2 y ftp_user3. También crea un grupo ftp_users que incluye a estos usuarios. Puede crear usuarios locales en el Usuarios locales y grupos sección de la Gestión informática consola.

consola de gestión informática

También puede crear usuarios y grupos locales desde el símbolo del sistema (o usando PowerShell). Crea un grupo local:
net localgroup ftp_users /add
net localgroup / add

Cree un nuevo usuario local:
net user ftp_user1 /add *
agregar usuario neto

Agregar usuario al grupo:
net localgroup ftp_users ftp_user1 /add
agregar localuser a localgroup

Cree los otros dos usuarios de la misma manera.

Asigne los permisos de lectura y escritura en el directorio C: inetpub ftproot para el grupo ftp_users.

permisos ftproot ntfs

Crea un directorio con el nombre LocalUser (el nombre debe ser el mismo, ¡¡¡es importante!!!) en la carpeta C: inetpub ftproot. Luego, cree tres directorios con los nombres ftp_user1, ftp_user2, ftp_user3 en la carpeta C: inetpub ftproot LocalUser.

Nota. Dependiendo del tipo de cuenta, debe crear las siguientes estructuras de directorio (en% FtpRoot% nos referimos a la raíz del sitio FTP; en nuestro caso es C: inetpub ftproot ):

Tipo de cuenta Sintaxis de la denominación de directorios de inicio
Usuarios anónimos % FtpRoot% LocalUser Public
Cuenta de Windows local % FtpRoot% LocalUser % UserName%
Cuenta de dominio de Windows % FtpRoot% % UserDomain% % UserName%
Cuentas especiales de IIS Manager o ASP.NET % FtpRoot% LocalUser % UserName%

carpetas de inicio de usuarios de ftp

Regrese a la consola de IIS y cree una nueva regla (Agregar AllowRules) en Reglas de autorización de FTP sección del sitio. Especifique que el grupo ftp_users debe tener los permisos de lectura y escritura.

Reglas de autorización de FTP

¿Cómo configurar el aislamiento de usuarios de FTP en Windows Server 2016/2012 R2?

Pasemos a la configuración del aislamiento de usuarios de FTP. El aislamiento de los usuarios de FTP se configura en el nivel del sitio FTP, no en todo el servidor. El aislamiento de usuario FTP le permite organizar su carpeta ftp-home para cada usuario.

Abierto Aislamiento de usuarios de FTP en la configuración del sitio FTP.

Esta sección contiene varias configuraciones. Los dos primeros no sugieren el aislamiento del usuario:

  1. Directorio raíz de FTP (una sesión FTP de un usuario comienza en el directorio raíz del sitio FTP);
  2. Directorio de nombres de usuario (el usuario comienza con el directorio físico / virtual con el nombre de usuario. Si falta el directorio, se inicia una sesión en el directorio raíz FTP del sitio).

Las siguientes tres opciones son diferentes modos de aislamiento del usuario:

  • Directorio de nombre de usuario (deshabilitar directorios virtuales globales) sugiere que la sesión ftp de un usuario esté aislada en un directorio físico / virtual que tenga el mismo nombre que el usuario ftp. Los usuarios solo ven su propio directorio (es su directorio ftp raíz) y no pueden ir más allá (al directorio superior del árbol FTP). Se ignoran todos los directorios virtuales globales;
  • Directorio físico de nombre de usuario (habilitar directorios virtuales globales) sugiere que la sesión ftp de un usuario está aislada en un directorio físico que tiene el mismo nombre que el nombre de la cuenta de usuario ftp. Un usuario no puede ir por encima de su directorio. Sin embargo, todos los directorios virtuales globales creados están disponibles para el usuario;
  • Directorio de inicio FTP configurado en Active Directory - un usuario de FTP está aislado dentro de su directorio de inicio especificado en la configuración de su cuenta de Active Directory (propiedades FTPRoot y FTPDir).

Importante. Si los directorios virtuales globales están activos, todos los usuarios pueden acceder a todos los directorios virtuales configurados en la raíz del sitio FTP (si tienen los permisos NTFS adecuados).

Aislamiento de usuarios de FTP en Windows Server 2012 R2

Seleccione el modo de aislamiento requerido (yo uso la segunda opción para aislar a los usuarios de ftp).

Se recomienda reiniciar el servicio FTP de Microsoft (FTPSVC) con cualquier cambio en la configuración del sitio FTP.

Configuración de las reglas del firewall de Windows para acceder al servidor FTP

Cuando instala la función del servidor FTP, todas las reglas necesarias para que los usuarios accedan a FTP se activan automáticamente en la configuración del Firewall de Windows.

Para que FTP funcione correctamente en modo FTP pasivo, los usuarios deben conectarse al rango de puertos RPC (1025-65535). Para no abrir todos estos puertos en un firewall externo, puede limitar el rango de puertos TCP dinámicos utilizados para la transmisión de datos FTP.

  1. Abre el Soporte de firewall FTP sección en la configuración del sitio FTP y en la Rango de puertos del canal de datos campo especifique el rango de puertos que desea utilizar para las conexiones FTP. Por ejemplo - 50000-50100;Soporte de firewall ftp: establezca el rango de puertos en el servidor FTP de Windows
  2. Guarde los cambios y reinicie IIS (iisreset);
  3. Abra el Panel de control de Windows y vaya al Panel de control Sistema y seguridad Firewall de Windows Aplicaciones permitidas;
  4. Asegúrese de que la lista de aplicaciones a las que se permite el acceso a través del firewall contenga permisos para el Servidor FTP papel.servidor ftp servidor de windows 2012 r2: reglas de firewall

Luego, verifique que las siguientes reglas estén habilitadas en la configuración del Firewall de Windows con seguridad avanzada:

  • Servidor FTP (entrada de tráfico FTP): protocolo TCP, puerto 21;
  • Servidor FTP pasivo (entrada de tráfico pasivo de FTP): dirección del puerto local 1024-65535 (50000-50100 en nuestro caso);
  • Servidor FTP seguro (entrada de tráfico FTP SSL): puerto 990 (cuando se utiliza FTP con SSL);
  • Servidor FTP (salida de tráfico FTP) - puerto 20;
  • Servidor FTP seguro (salida de tráfico FTP SSL): puerto 989 (cuando se utiliza FTP con SSL).

reglas de ftp entrantes del firewall de Windows

En consecuencia, estos puertos deben abrirse en su enrutador (puerta de enlace, firewall) para que los usuarios de FTP externos puedan conectarse a su sitio.

Prueba de una conexión de servidor FTP desde Windows

Puede verificar la disponibilidad de puertos en un servidor FTP mediante el cmdlet Test-NetConnection:

Test-NetConnection -ComputerName yourftpservername -Port 21

O usando el ftp mando:

ftp yourftpservername

Intente conectarse a su sitio FTP con cualquier cliente FTP o directamente desde el Explorador de archivos (especifique ftp: // nombredeservidor / en la barra de direcciones).

Ingrese el nombre de usuario y la contraseña.

abrir sitio ftp en el explorador de windows

Y ahora tiene acceso al directorio de inicio con los archivos del usuario (que es la raíz del sitio FTP para el usuario). Como podemos ver, la sesión del usuario está aislada y el usuario solo ve sus archivos en el servidor ftp.

La carpeta de inicio del usuario ftp está aislada

Consejo. Si desea utilizar el acceso anónimo (Todos los usuarios anónimos), cualquier usuario podrá conectarse a su servidor FTP utilizando las credenciales: anónimo o huésped como nombre de usuario y dirección de correo electrónico como contraseña. Si se conecta a un sitio FTP de forma anónima, la sesión se limitará al directorio LocalUser Public (es obvio, el directorio público debe crearse con anticipación).

Puede utilizar los registros de FTP para ver información sobre el acceso de los usuarios al servidor FTP. Los archivos de registro se almacenan de forma predeterminada en el c: inetpub logs logfiles carpeta en el u_exYYMMDD.log archivos.

Para ver las conexiones de usuario activas a su servidor FTP, puede utilizar los valores de los contadores de rendimiento de IIS a través de PowerShell o el "Sesiones FTP actuales”En la consola de IIS. En esta consola, puede ver los nombres y la dirección IP del usuario de FTP y desconectar la sesión de ftp si es necesario.

servidor ftp de windows: lista de conexiones actual

Entonces, hemos visto cómo configurar un sitio FTP con el aislamiento de usuario basado en Windows Server 2016/2012 R2. En el modo de aislamiento, los usuarios se autentican en FTP utilizando sus credenciales locales o de dominio para acceder a su directorio raíz correspondiente al nombre de usuario.

Recomendado para ti