¿Es posible hacer que parte de un sitio en IIS solo sea visible desde localhost?

StackOverflow https://stackoverflow.com/questions/270284

  •  06-07-2019
  •  | 
  •  

Pregunta

Tenemos un servidor web que ejecuta IIS. Quisiéramos ejecutar un blog compartido o algo para hacer un seguimiento de la información. Debido a problemas de seguridad, nos gustaría que esa parte solo sea visible desde localhost para que las personas tengan que usarla de forma remota.

Entonces, para repetir mi pregunta, ¿se puede ver parte de un sitio web solo desde localhost?

¿Fue útil?

Solución

En IIS6 puede mostrar las propiedades de la web y hacer clic en la pestaña de seguridad del directorio. Haga clic en el botón en el medio de la pestaña para editar las restricciones de IP y Dominio. En esta pestaña, configure todas las computadoras como denegadas, luego agregue una excepción para las IP a las que desea permitir el acceso a este sitio.

No estoy seguro de cómo configurar esto en IIS7. Lo busqué pero no pude encontrarlo, si lo encuentro editaré esta respuesta.

Editar: Configuración de IIS7

  • Josh

Otros consejos

Para alguien que lo haga en IIS 8 / Windows 2012

1) En Server Manager , vaya a Manage, Add Roles and Features , Next, Next (vaya a Server Roles ), desplácese hasta Web Server (IIS) , expanda esa fila, luego expanda Web Server y finalmente expanda Seguridad . Asegúrese de que estén instaladas las restricciones de IP y dominio .

2) En IIS Manager , acceda a la carpeta que desea proteger y haga clic con el botón izquierdo para seleccionarla. En la Vista de funciones de esa carpeta, seleccione Restricciones de IP y dominio En Acciones elija Editar configuración de funciones . Cambie 'Acceso para clientes no especificados:' a 'Denegar' y luego OK.

3) Finalmente, vaya a 'Agregar permitir entrada' en el menú Acción . Escriba la dirección IP específica de su servidor.

Ahora solo se permitirá el acceso a las solicitudes procedentes de su servidor. O cualquier servidor que comparta esa dirección IP. Entonces, en una red pequeña, la oficina podría compartir la dirección IP entre todas las PC de esas oficinas, de modo que todas esas PC pudieran acceder a esa carpeta.

Por último, pero no menos importante, recuerda que si tu red tiene una dirección IP dinámica, si esa IP cambia, expondrás la carpeta de administración de tu blog a quien esté usando esa IP ahora. Además, todos en esa nueva dirección IP perderán el acceso a su carpeta ...

Si alguien desea hacer esto en la línea de comando, parece que funciona en IIS 7+

%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site" -section:system.webServer/security/ipSecurity /+"[ipAddress='0',allowed='False']" /commit:apphost
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site" -section:system.webServer/security/ipSecurity /+"[ipAddress='127.0.0.1',allowed='True']" /commit:apphost

Referencia

Inicialmente quería hacer esto en web.config para facilitar la distribución, y parecía que lo siguiente podría funcionar:

<security>
    <ipSecurity allowUnlisted="false">    <!-- this line blocks everybody, except those listed below -->                
        <clear/> <!-- removes all upstream restrictions -->
        <add ipAddress="127.0.0.1" allowed="true"/>    <!-- allow requests from the local machine -->
    </ipSecurity>
</security>

pero como necesita desbloquear la función en la configuración central de IIS de todos modos, no hubo ninguna ventaja sobre hacer el cambio directamente usando los primeros comandos.

También puede usar enlaces en lugar de restricciones de IP. Si edita los enlaces del sitio web al que desea restringir el acceso, puede seleccionar en qué dirección IP está disponible el sitio. Si configura la dirección IP en 127.0.0.1, el sitio solo responderá con esta dirección IP y, por supuesto, esta dirección IP solo funcionará localmente en la máquina.

He probado esto usando IIS 8.5.

Dependiendo exactamente de lo que desea que suceda si un usuario no autorizado intenta visitarlo.

Puede intentar configurar la sección específica como un directorio virtual y luego negar la vista a usuarios anónimos. Sin embargo, se les pedirá que inicien sesión y, si pueden iniciar sesión, podrán verlo.

A juzgar por las opciones presentes en IIS MMC, también puede tener un directorio virtual al que solo puedan acceder ciertos rangos de IP. Podrías bloquear a todos menos 127.0.0.1. Sin embargo, no he probado esto.

Puede otorgar o denegar el acceso a un sitio o carpeta desde ciertas IP a un sitio o carpeta. En IIS, vaya a las propiedades del sitio o carpeta en cuestión.

(1) Haga clic en el " Seguridad de la fábrica " Tabulador

(2) Haga clic en Editar debajo de " Dirección IP y Restricción de nombre de dominio " marco.

(3) Haga clic en " Acceso denegado " (Esto le dice a IIS que bloquee todas las IP excepto las que enumere)

(4) Haga clic en " Agregar ... "

(5) Haga clic en " Computadora individual "

(6) Ingrese 127.0.0.1 (la IP de localhost)

Tenga en cuenta que es mejor usar una IP aquí (como he descrito) en lugar de un nombre de dominio porque los dominios se pueden falsificar fácilmente usando un archivo de hosts.

Estoy de acuerdo con las recomendaciones para usar IIS " Seguridad del directorio " para bloquear todas las direcciones IP excepto 127.0.0.1 (localhost).

Dicho esto, me pregunto cómo esta estrategia de exigir a los usuarios que accedan de forma remota podría ser más segura. ¿No sería más seguro (y mucho más simple) usar mecanismos de autenticación IIS estándar en lugar de tener que administrar los roles y permisos de Windows en la máquina del servidor?

Simplemente puede agregar este .NET a la parte superior de la página.

string MyWebServerName = currentContext.Request.ServerVariables["SERVER_NAME"];

if ( MyWebServerName == "127.0.0.1" || MyWebServerName == "localhost" )
{
  // the user is local 
}
else
{
  // the user is NOT local
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top