2008-11-06 9 views
14

Tenemos un servidor web que ejecuta IIS. Nos gustaría ejecutar quizás 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 se pueda ver desde el servidor local para que la gente tenga que usar el control remoto.¿Es posible hacer que parte de un sitio en IIS solo se pueda ver desde localhost?

Por lo tanto, para repetir mi pregunta, ¿puede una parte de un sitio web hacerse visible solo desde localhost?

+0

¿Alguna de las respuestas lo ayudó? Si es así puedes marcar cual. Me gustaría saber cómo resolvió esto realmente ;-) – JoshBerke

+0

Me alegraría, aún tengo que mostrarle la respuesta a mi amigo que lo va a implementar realmente. Entonces pueden pasar algunos días, pero una vez que lo sepa, aceptaré una respuesta. –

Respuesta

5

En IIS6 puede abrir 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 quiere permitir el acceso a este sitio.

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

Editar: Configuring IIS7

  • Josh
+0

¿Es posible hacer esto en web.config? Se ve desde la línea de comandos [aquí] (https://technet.microsoft.com/en-us/library/cc772061%28v=ws.10%29.aspx) que algo en la sección system.webServer/security/la autorización podría funcionar. – Chris

0

Dependiendo de exactamente lo que quiere 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 los usuarios anónimos. Sin embargo, se les pedirá que inicien sesión, y si pueden iniciar sesión, entonces podrían verlo.

-1

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 
} 
+1

Esta no es una solución escalable, ya que requiere acceso a la fuente, debe aplicarse a todas las páginas y no permite ninguna flexibilidad después de la implementación. –

0

A juzgar por las opciones presentes en la MMC de IIS, también puede tener un directorio virtual sólo sea accesible por ciertos rangos de IP. Podrías bloquear a todos excepto a 127.0.0.1. No he intentado esto, sin embargo.

0

Puede conceder o denegar el acceso a un sitio o una carpeta de determinadas IP a un sitio o una carpeta. En IIS, vaya a propiedades para el sitio o la carpeta en cuestión.

(1) Haga clic en la pestaña "Seguridad diectory"

(2) Haga clic en Editar en la "dirección IP y la restricción de nombres de dominio" marco.

(3) Haga clic en "Acceso denegado" (Esto le indica a IIS para bloquear todos los IP excepto aquellos que la lista)

(4) Haga clic en "Añadir ..."

(5) Haga clic en "solo equipo "

(6) Introduzca 127.0.0.1 (la IP del servidor local)

Tenga en cuenta que lo mejor es utilizar una IP aquí (como he descrito) en lugar de un nombre de dominio porque los dominios se pueden manipular con facilidad usando un archivo de hosts.

0

Estoy de acuerdo con las recomendaciones de utilizar IIS "Seguridad de directorios" para bloquear todas las direcciones IP, excepto 127.0.0.1 (localhost).

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

16

Para algunos que lo hace en IIS 8/Windows 2012

1) En Server Manager, ir a Manage, Add Roles and Features, Siguiente, Siguiente (llegar a Server Roles), desplácese hacia abajo para Web Server (IIS), ampliar esa fila, a continuación, expanda Web Server, y finalmente ampliar Security. Asegúrese de que IP y Restricciones de dominio estén instaladas.

2) En IIS Manager, desplácese hasta la carpeta que desea proteger y haga clic izquierdo, selecciónela. En el Features View de esa carpeta, seleccione Restricciones de IP y dominio En Actions, elija Edit Feature Settings. Cambie 'Access for unspecified clients:' a 'Deny' y luego OK.

3) Finalmente vaya a 'Add Allow Entry' en el menú Action s. Escriba la dirección IP específica de su servidor.

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

Por último, pero no por eso menos importante, recuerde que si su red tiene una dirección IP dinámica, entonces si esa IP cambia, expondrá su carpeta de administrador de blog a quien esté usando esa IP ahora. Además, todo el mundo en esa nueva dirección IP va a perder el acceso a la carpeta que ...

+1

¿'127.0.0.1' funciona como un filtro de dirección IP? – Bobson

+1

No, sin algunos trucos que no conozco, debe usar su 'WAN IP'. 'Server Fault' podría ser capaz de ayudarte más. –

+0

Acabo de probar el método sugerido y tuve que usar 127.0.0.1 pero no conozco la ciencia de la red detrás de él. El sitio web que llama al otro se encuentra en un sitio web diferente en el mismo IIS (Windows Server 2012 R2) y lo llama usando http: // localhost/... Este es un servicio wcf al que se está llamando. – Yepeekai

3

Si alguien desea hacer esto en la línea de comandos, esto parece funcionar 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 

Reference

inicialmente quería hacer esto en web.config para facilitar la distribución, y parecía que la 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 sea necesario para desbloquear el functi En la configuración central de IIS, de todos modos, no había ninguna ventaja sobre hacer el cambio directamente usando los primeros comandos.

0

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

He probado esto usando IIS 8.5.

Cuestiones relacionadas