Compartir a través de


Seguridad IP de FTP <ipSecurity>

Información general

El elemento <ipSecurity> define una lista de restricciones de seguridad basadas en IP en FTP 7. Estas restricciones se pueden basar en la dirección IP versión 4, un intervalo de direcciones IP versión 4 o un nombre de dominio DNS.

Compatibilidad

Versión Notas
IIS 10.0 El elemento <ipSecurity> no se modificó en IIS 10.0.
IIS 8.5 El elemento <ipSecurity> no se modificó en IIS 8.5.
IIS 8.0 El elemento <ipSecurity> no se modificó en IIS 8.0.
IIS 7.5 El elemento <ipSecurity> del elemento <system.ftpServer/security> se incluye como una característica de IIS 7.5.
IIS 7.0 El elemento <ipSecurity> del elemento <system.ftpServer/security> se introdujo en FTP 7.0, que era una descarga independiente para IIS 7.0.
IIS 6,0 N/D

Nota:

Los servicios FTP 7.0 y FTP 7.5 se lanzaron como versión extraordinaria para IIS 7.0, lo que requería descargar e instalar los módulos desde la siguiente dirección URL:

https://www.iis.net/expand/FTP

Con Windows 7 y Windows Server 2008 R2, el servicio FTP 7.5 se incluye como característica para IIS 7.5, por lo que la descarga del servicio FTP ya no es necesaria.

Configuración

Para admitir la publicación de FTP para el servidor web, debe instalar el servicio FTP. Para ello, siga estos pasos.

Windows Server 2012 o Windows Server 2012 R2

  1. En la barra de tareas, haga clic en Administrador del servidor.

  2. En Administrador del servidor, haga clic en el menú Administrar y, después, haga clic en Agregar roles y características.

  3. En el asistente para Agregar roles y características, haga clic en Siguiente. Seleccione el tipo de instalación y haga clic en Siguiente. Seleccione el servidor de destino y haga clic en Siguiente.

  4. En la página Roles de servidor, expanda Servidor web (IIS) y, a continuación, seleccione Servidor FTP.

    Nota:

    Para admitir la autenticación ASP.Membership o la autenticación del Administrador de IIS para el servicio FTP, también deberá seleccionar Extensibilidad de FTP, además de Servicio FTP.
    Screenshot that shows F T P Service and F T P Extensibility selected for Windows Server 2012..

  5. Haga clic en Siguiente y, después, en la página Seleccionar características, vuelva a hacer clic en Siguiente.

  6. En la página Confirmar selecciones de instalación, haga clic en Instalar.

  7. En la página Resultados , haga clic en Cerrar.

Windows 8 o Windows 8.1

  1. En la pantalla Inicio, mueva el puntero hasta la esquina inferior izquierda, haga clic con el botón derecho en el botón Inicio y, a continuación, haga clic en Panel de control.

  2. En Panel de control, haga clic en Programas y características y después en Activar o desactivar las características de Windows.

  3. Expanda Internet Information Services y, después, seleccione Servidor FTP.

    Nota:

    Para admitir la autenticación ASP.Membership o la autenticación del Administrador de IIS para el servicio FTP, también deberá seleccionar Extensibilidad de FTP.
    Screenshot that shows F T P Extensibility and F T P Service selected for Windows 8.

  4. Haga clic en OK.

  5. Haga clic en Cerrar.

Windows Server 2008 R2

  1. En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, luego, haga clic en Administrador del servidor.

  2. En el panel de jerarquía del Administrador del servidor, expanda Roles y, luego, haga clic en Servidor web (IIS).

  3. En el panel Servidor web (IIS), desplácese hasta la sección Servicios de rol y, luego, haga clic en Agregar servicios de rol.

  4. En la página Seleccionar servicios de rol del Asistente para agregar servicios de rol, expanda Servidor FTP.

  5. Seleccione Servicio FTP.

    Nota:

    Para admitir la autenticación ASP.Membership o la autenticación del Administrador de IIS para el servicio FTP, también deberá seleccionar Extensibilidad de FTP.
    Screenshot that shows F T P Service and F T P Extensibility selected for Windows Server 2008.

  6. Haga clic en Next.

  7. En la página Confirmar selecciones de instalación, haz clic en Instalar.

  8. En la página Resultados , haga clic en Cerrar.

Windows 7

  1. En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.

  2. En Panel de control, haga clic en Programas y características y después en Activar o desactivar las características de Windows.

  3. Expanda Internet Information Services y, luego, Servidor FTP.

  4. Seleccione Servicio FTP.

    Nota:

    Para admitir la autenticación ASP.Membership o la autenticación del Administrador de IIS para el servicio FTP, también deberá seleccionar Extensibilidad de FTP.
    Screenshot that shows F T P Extensibility and F T P Service selected for Windows 7.

  5. Haga clic en OK.

Windows Server 2008 o Windows Vista

  1. Descargue el paquete de instalación desde la siguiente dirección URL:

  2. Siga las instrucciones del siguiente tutorial para instalar el servicio FTP:

Procedimientos

Cómo agregar restricciones de IP para permitir un sitio FTP o acceder a este

  1. Abra el Administrador de Internet Information Services (IIS):

    • Si usa Windows Server 2012 o Windows Server 2012 R2:

      • En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
    • Si usa Windows 8 o Windows 8.1:

      • Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
      • Haga clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Server 2008 o Windows Server 2008 R2:

      • En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Vista o Windows 7:

      • En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
      • Haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
  2. En el panel Conexiones, expanda sucesivamente el nombre del servidor, la opción Sitios y, después, la dirección URL o el sitio FTP para el que quiere agregar restricciones de IP.

  3. En el panel Inicio, haga doble clic en la característica Restricciones de dominio y dirección IPv4 para FTP.
    Screenshot that shows the contoso dot com Home pane, with F T P I P v 4 Address and Domain Restrictions selected.

  4. En la característica Restricciones de dominio y dirección IPv4 de FTP, haga clic en Agregar entrada de permiso... o Agregar entrada de denegación... en el panel Acciones.
    Screenshot that shows the F T P I P v 4 Address and Domain Restrictions pane in the I I S Manager.

  5. Escriba la dirección IP que quiere permitir o denegar y, a continuación, haga clic en Aceptar.
    Screenshot that shows the Add Deny Restriction Rule dialog box.


Cómo editar la configuración de características de restricciones de IP para un sitio FTP

  1. Abra el Administrador de Internet Information Services (IIS):

    • Si usa Windows Server 2012 o Windows Server 2012 R2:

      • En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
    • Si usa Windows 8 o Windows 8.1:

      • Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
      • Haga clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Server 2008 o Windows Server 2008 R2:

      • En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Vista o Windows 7:

      • En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
      • Haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
  2. En el panel Conexiones, expanda sucesivamente el nombre del servidor, la opción Sitios y, a continuación, la dirección URL o el sitio FTP para el que quiere configurar restricciones de IP.

  3. En el panel Inicio, haga doble clic en la característica Restricciones de dominio y dirección IPv4 para FTP.
    Screenshot that shows the contoso dot com Home pane. F T P I P v 4 Address and Domain Restrictions is selected.

  4. En la característica Restricciones de dominio y dirección IPv4 de FTP, haga clic en Modificar configuración de característica... en el panel Acciones.
    Screenshot that shows the F T P I P v 4 Address and Domain Restrictions pane.

  5. Elija el comportamiento de acceso predeterminado para los clientes no especificados, especifique si quiere habilitar restricciones por nombre de dominio y, a continuación, haga clic en Aceptar.
    Screenshot that shows the Edit I P and Domain Restrictions Settings dialog box. Allow is selected.

Configuración

El elemento <ipSecurity> se configura en el nivel de sitio o de dirección URL.

Las reglas se procesan de arriba hacia abajo, en el orden en que aparecen en la lista. El atributo allowunlisted se procesa en último lugar. El procedimiento recomendado para las restricciones del protocolo de seguridad de Internet (IPsec) es enumerar primero las reglas de denegación. No se puede borrar el atributo allowunlisted si está establecido en false.

Atributos

Atributo Descripción
allowUnlisted Atributo Boolean opcional.

Especifica si se van a permitir direcciones IP no incluidas en la lista. Al establecer el atributo allowUnlisted en true se permite que una dirección IP no incluida en la lista acceda al servidor. Al establecer el atributo allowUnlisted en false se bloquea el servidor, lo que impide el acceso a todas las direcciones IP, a menos que aparezcan en la lista. Si establece este atributo en false y no enumera la dirección de bucle invertido local (127.0.0.1) como dirección IP permitida, no podrá acceder al servidor mediante un explorador desde una consola local.

El valor predeterminado es true.
enableReverseDns Atributo Boolean opcional.

Especifica si se deben habilitar o deshabilitar búsquedas inversas del sistema de nombres de dominio (DNS) para el servidor FTP. Las búsquedas inversas implican buscar el nombre de dominio cuando se conoce la dirección IP.

Precaución: Las búsquedas inversas de DNS usarán recursos y tiempo significativos.

El valor predeterminado es false.

Elementos secundarios

Elemento Descripción
add Elemento opcional.

Agrega una restricción IP a la colección de restricciones de direcciones IP.
remove Elemento opcional.

Quita una referencia a una restricción de la colección <ipSecurity>.
clear Elemento opcional.

Quita todas las referencias a restricciones de la colección <ipSecurity>.

Ejemplo de configuración

En el ejemplo siguiente, se muestran varias opciones de configuración relacionadas con la seguridad en el elemento <system.ftpServer> para un sitio FTP. Más concretamente, la configuración de <location> de este ejemplo muestra cómo:

  • Especificar una regla de autorización FTP de acceso de lectura y escritura para el grupo de administradores.
  • Especificar las opciones de filtrado de solicitudes FTP que deniegan los archivos *.exe, *.bat y *.cmd.
  • Especificar los límites de solicitudes FTP para una longitud máxima de contenido de 1000000 bytes y una longitud de dirección URL máxima de 1024 bytes.
  • Bloquear el acceso FTP al directorio virtual _vti_bin, que se usa con las Extensiones de servidor de FrontPage.
  • Especificar opciones de filtrado de IP de FTP que permitan el acceso desde 127.0.0.1 y lo denieguen desde el intervalo de direcciones IP 169.254.0.0/255.255.0.0.
<location path="ftp.example.com">
  <system.ftpServer>
    <security>
      <authorization>
        <add accessType="Allow" roles="administrators" permissions="Read, Write" />
      </authorization>
      <requestFiltering>
        <fileExtensions allowUnlisted="true">
          <add fileExtension=".exe" allowed="false" />
          <add fileExtension=".bat" allowed="false" />
          <add fileExtension=".cmd" allowed="false" />
        </fileExtensions>
        <requestLimits maxAllowedContentLength="1000000" maxUrl="1024" />
        <hiddenSegments>
          <add segment="_vti_bin" />
        </hiddenSegments>
      </requestFiltering>
      <ipSecurity enableReverseDns="false" allowUnlisted="true">
        <add ipAddress="127.0.0.1" allowed="true" />
        <add ipAddress="169.254.0.0" subnetMask="255.255.0.0" allowed="false" />
      </ipSecurity>
    </security>
  </system.ftpServer>
</location>

Código de ejemplo

En los ejemplos siguientes se configura la seguridad IP de FTP para permitir direcciones IP no incluidas en una lista y, después, se especifican restricciones de IP que permiten el acceso desde 127.0.0.1 y deniegan el acceso desde el intervalo de direcciones IP 169.254.0.0/255.255.0.0.

AppCmd.exe

appcmd.exe set config "Default Web Site" -section:system.ftpServer/security/ipSecurity /allowUnlisted:"True" /commit:apphost

appcmd.exe set config "Default Web Site" -section:system.ftpServer/security/ipSecurity /+"[ipAddress='127.0.0.1',allowed='True']" /commit:apphost

appcmd.exe set config "Default Web Site" -section:system.ftpServer/security/ipSecurity /+"[ipAddress='169.254.0.0',subnetMask='255.255.0.0']" /commit:apphost

Nota:

Debe asegurarse de establecer el parámetro de confirmación en apphost cuando use AppCmd.exe para configurar estas opciones. Esto confirma los valores de configuración en la sección de ubicación adecuada del archivo ApplicationHost.config.

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
   private static void Main()
   {
      using (ServerManager serverManager = new ServerManager())
      {
         Configuration config = serverManager.GetApplicationHostConfiguration();
         ConfigurationSection ipSecuritySection = config.GetSection("system.ftpServer/security/ipSecurity", "Default Web Site");
         ConfigurationElementCollection ipSecurityCollection = ipSecuritySection.GetCollection();

         ipSecuritySection["allowUnlisted"] = true;

         ConfigurationElement addElement = ipSecurityCollection.CreateElement("add");
         addElement["ipAddress"] = @"127.0.0.1";
         addElement["allowed"] = true;
         ipSecurityCollection.Add(addElement);

         ConfigurationElement addElement1 = ipSecurityCollection.CreateElement("add");
         addElement1["ipAddress"] = @"169.254.0.0";
         addElement1["subnetMask"] = @"255.255.0.0";
         ipSecurityCollection.Add(addElement1);

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration


Module Sample
   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetApplicationHostConfiguration
      Dim ipSecuritySection As ConfigurationSection = config.GetSection("system.ftpServer/security/ipSecurity", "Default Web Site")
      Dim ipSecurityCollection As ConfigurationElementCollection = ipSecuritySection.GetCollection

      ipSecuritySection("allowUnlisted") = True

      Dim addElement As ConfigurationElement = ipSecurityCollection.CreateElement("add")
      addElement("ipAddress") = "127.0.0.1"
      addElement("allowed") = True
      ipSecurityCollection.Add(addElement)

      Dim addElement1 As ConfigurationElement = ipSecurityCollection.CreateElement("add")
      addElement1("ipAddress") = "169.254.0.0"
      addElement1("subnetMask") = "255.255.0.0"
      ipSecurityCollection.Add(addElement1)

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var ipSecuritySection = adminManager.GetAdminSection("system.ftpServer/security/ipSecurity", "MACHINE/WEBROOT/APPHOST/Default Web Site");
var ipSecurityCollection = ipSecuritySection.Collection;

ipSecuritySection.Properties.Item("allowUnlisted").Value = true;

var addElement = ipSecurityCollection.CreateNewElement("add");
addElement.Properties.Item("ipAddress").Value = "127.0.0.1";
addElement.Properties.Item("allowed").Value = true;
ipSecurityCollection.AddElement(addElement);

var addElement1 = ipSecurityCollection.CreateNewElement("add");
addElement1.Properties.Item("ipAddress").Value = "169.254.0.0";
addElement1.Properties.Item("subnetMask").Value = "255.255.0.0";
ipSecurityCollection.AddElement(addElement1);

adminManager.CommitChanges();

VBScript

Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set ipSecuritySection = adminManager.GetAdminSection("system.ftpServer/security/ipSecurity", "MACHINE/WEBROOT/APPHOST/Default Web Site")
Set ipSecurityCollection = ipSecuritySection.Collection

ipSecuritySection.Properties.Item("allowUnlisted").Value = True

Set addElement = ipSecurityCollection.CreateNewElement("add")
addElement.Properties.Item("ipAddress").Value = "127.0.0.1"
addElement.Properties.Item("allowed").Value = True
ipSecurityCollection.AddElement(addElement)

Set addElement1 = ipSecurityCollection.CreateNewElement("add")
addElement1.Properties.Item("ipAddress").Value = "169.254.0.0"
addElement1.Properties.Item("subnetMask").Value = "255.255.0.0"
ipSecurityCollection.AddElement(addElement1)

adminManager.CommitChanges()