Proteger archivo con contraseña en IIS

Colapsar
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • juanjo_16v
    Senior Member
    • Jan
    • 1188

    Proteger archivo con contraseña en IIS

    Hola gente:

    Viendo los logs del IIS he visto (no me había dado cuenta) que están atacando a saco el fichero wp-login.php de worpress de un servidor.

    Con el apache he visto que modificando el .htaccess se le puede poner una contraseña a un fichero, se puede hacer algo similar con el IIS? y/o restringir el acceso al documento desde un rango de IP?

    Saludos
  • jmtella
    Administrator
    • Nov
    • 20003

    #2
    Originalmente publicado por juanjo_16v Ver Mensaje
    Hola gente:

    Viendo los logs del IIS he visto (no me había dado cuenta) que están atacando a saco el fichero wp-login.php de worpress de un servidor.

    Con el apache he visto que modificando el .htaccess se le puede poner una contraseña a un fichero, se puede hacer algo similar con el IIS? y/o restringir el acceso al documento desde un rango de IP?

    Saludos
    ¿te puede valer esto?

    Cómo denegar o permitir el acceso de una dirección IP a un directorio a través de HTTP con IIS.

    Comentario

    • juanjo_16v
      Senior Member
      • Jan
      • 1188

      #3
      Gracias pero no, eso bloquea o permite el sitio completo, yo necesito solo un fichero que es el que están atacando

      He visto esto, pero la expresión regular para la IP no funciona bien:

      <rule name="FlagAdminIPs" patternSyntax="ECMAScript">
      <match url=".*" />
      <conditions logicalGrouping="MatchAny" trackAllCaptures="false">
      <add input="{REMOTE_ADDR}" pattern="^192\.168\.1\.(1(2[8-9]|[3-9][0-9])|2([0-4][0-9]|5[0-4]))$" />
      </conditions>
      <serverVariables>
      <set name="HTTP_X_AdminIPAllowed" value="yes" />
      </serverVariables>
      <action type="None" />
      </rule>
      <rule name="Restrict wp-login.php access" enabled="true" stopProcessing="true">
      <match url=".*" />
      <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
      <add input="{REQUEST_FILENAME}" pattern="wp-login.php" />
      <add input="{HTTP_X_AdminIPAllowed}" pattern="yes" negate="true" />
      </conditions>
      <action type="CustomResponse" statusCode="403" statusReason="Forbidden" statusDescription="Forbidden" />
      </rule>

      Eso en teoria solo permite el acceso desde IP's 192.168.1.X pero que va, he probado con otras, y tampoco, he probado el patrón desde el mismo IIS y no valida nada, siempre da error.

      He probado poniendo al final del patron $ y +, pero nada
      Archivos Adjuntos
      Editado por última vez por juanjo_16v; 27/05/2020, 12:41:50.

      Comentario

      • jmtella
        Administrator
        • Nov
        • 20003

        #4
        Originalmente publicado por juanjo_16v Ver Mensaje
        Gracias pero no, eso bloquea o permite el sitio completo, yo necesito solo un fichero que es el que están atacando

        He visto esto, pero la expresión regular para la IP no funciona bien:

        <rule name="FlagAdminIPs" patternSyntax="ECMAScript">
        <match url=".*" />
        <conditions logicalGrouping="MatchAny" trackAllCaptures="false">
        <add input="{REMOTE_ADDR}" pattern="^192\.168\.1\.(1(2[8-9]|[3-9][0-9])|2([0-4][0-9]|5[0-4]))$" />
        </conditions>
        <serverVariables>
        <set name="HTTP_X_AdminIPAllowed" value="yes" />
        </serverVariables>
        <action type="None" />
        </rule>
        <rule name="Restrict wp-login.php access" enabled="true" stopProcessing="true">
        <match url=".*" />
        <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
        <add input="{REQUEST_FILENAME}" pattern="wp-login.php" />
        <add input="{HTTP_X_AdminIPAllowed}" pattern="yes" negate="true" />
        </conditions>
        <action type="CustomResponse" statusCode="403" statusReason="Forbidden" statusDescription="Forbidden" />
        </rule>

        Eso en teoria solo permite el acceso desde IP's 192.168.1.X pero que va, he probado con otras, y tampoco, he probado el patrón desde el mismo IIS y no valida nada, siempre da error.
        ¿Has dado de alta la variable?:
        HTTP_X_AdminIPAllowed

        Comentario

        • juanjo_16v
          Senior Member
          • Jan
          • 1188

          #5
          Creo que el problema de la expresion regular lo he solucionado, funciona desde todos los sitios menos desde mi IP, pero desde mi IP da un error 500.

          Creo que la variable si esta dada de alta correctamente
          Archivos Adjuntos
          Editado por última vez por juanjo_16v; 27/05/2020, 13:02:41.

          Comentario

          • jmtella
            Administrator
            • Nov
            • 20003

            #6
            A ver,que no me aclaro, esa regla que estas poniendo en donde la pones? ¿tienes el ARR Rewrite module instalado?

            Comentario

            • juanjo_16v
              Senior Member
              • Jan
              • 1188

              #7
              Inicialmente la puse en un fichero web.config en el directorio raiz del directorio del sitio en el IIS, vamos en C:\inetpub\vhosts\wp.prueba.com

              Pero ese fichero se carga si entro en la administracion de IIS en el mismo sitio wp.prueba.com en reescritura de direccion URL.

              La regla funciona bien desde fuera de mi IP, la web se carga y si entro en la pagina wp-login.php salta a la pagina 403 que no tiene permiso.

              Pero desde mi IP me da un error 500

              Me he fijado en esto:
              https://webmasters.stackexchange.com...ent-ip-address

              Y el problema es este, cuando accedo desde la IP permitida

              Error HTTP 500.50 - URL Rewrite Module Error.
              The server variable "HTTP_X_AdminIPAllowed" is not allowed to be set. Add the server variable name to the allowed server variable list.

              Editado por última vez por juanjo_16v; 27/05/2020, 16:29:27.

              Comentario

              • juanjo_16v
                Senior Member
                • Jan
                • 1188

                #8
                JM ya esta, faltaba como decías añadir la variable, ya funciona.

                Y poder acceder a la pagina con una contraseña del IIS? sin la limitacion de la IP?

                Gracias
                Editado por última vez por juanjo_16v; 27/05/2020, 16:44:05.

                Comentario

                • jmtella
                  Administrator
                  • Nov
                  • 20003

                  #9
                  Originalmente publicado por juanjo_16v Ver Mensaje
                  JM ya esta, faltaba como decías añadir la variable, ya funciona.

                  Y poder acceder a la pagina con una contraseña del IIS? sin la limitacion de la IP?

                  Gracias
                  Con contraseña no creo... y con permisos no me gusta. La proteccion por IP está bien...

                  Comentario

                  • juanjo_16v
                    Senior Member
                    • Jan
                    • 1188

                    #10
                    Ya, pero con la IP solo puedo acceder yo a la parte de gestión, que ahora yo solo soy el que publica y gestiona en las webs, pero si los clientes quieren publicar ellos...

                    Y otro problema es que solo puedo poner un rango de IP's pero no varios rangos de IP distintos.

                    Comentario

                    • jmtella
                      Administrator
                      • Nov
                      • 20003

                      #11
                      Originalmente publicado por juanjo_16v Ver Mensaje
                      Ya, pero con la IP solo puedo acceder yo a la parte de gestión, que ahora yo solo soy el que publica y gestiona en las webs, pero si los clientes quieren publicar ellos...

                      Y otro problema es que solo puedo poner un rango de IP's pero no varios rangos de IP distintos.
                      Puedes poner varias reglas y cada regla con su condicion, por lo que puedes abrrir el rengo de IP's mediante condiciones diferentes... por ejemplo, un web.config mio (una parte de él) (es para otra cosa,. pero te sirve para ver lo de las reglas) es:

                      Código:
                      <rule name="ReverseProxyInboundRuleXen" stopProcessing="true">
                           <match url="(noticias.*|forum.*)" />
                           <conditions>
                                <add input="{CACHE_URL}" pattern="^(https?)://" />
                           </conditions>
                           <serverVariables>
                                 <set name="HTTP_X_ORIGINAL_ACCEPT_ENCODING" value="{HTTP_ACCEPT_ENCODING}" />
                                 <set name="HTTP_ACCEPT_ENCODING" value="" />
                           </serverVariables>
                           <action type="Rewrite" url="http://172.16.7.40/{R:1}" />
                      </rule>
                      <rule name="ReverseProxyInboundRuleXen2" stopProcessing="true">
                           <match url="(cafe.*)" />
                           <conditions>
                                 <add input="{CACHE_URL}" pattern="^(https?)://" />
                           </conditions>
                           <serverVariables>
                                  <set name="HTTP_X_ORIGINAL_ACCEPT_ENCODING" value="{HTTP_ACCEPT_ENCODING}" />
                                  <set name="HTTP_ACCEPT_ENCODING" value="" />
                           </serverVariables>
                           <action type="Rewrite" url="http://172.16.7.39/{R:1}" />
                      </rule>

                      Comentario

                      • juanjo_16v
                        Senior Member
                        • Jan
                        • 1188

                        #12
                        Muchas gracias!!!! Haré pruebas

                        Comentario

                        Trabajando...
                        X