GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo bloquear el acceso a un archivo para que no sea atendido por Tomcat?

Solución 1:

El acceso a archivos de Tomcat está controlado por la sección de restricciones de seguridad de WEB-INF/web.xml.

Puedes bloquear conf de esta manera:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>HTTP-Protected-Resource-1</web-resource-name>
        <description>Description here</description>
        <url-pattern>/conf/*</url-pattern>
        <http-method>GET</http-method>
        <http-method>POST</http-method>
    </web-resource-collection>
    <auth-constraint>
        <role-name>NOSOUPFORYOU</role-name>
    </auth-constraint>
</security-constraint>

<login-config>
    <auth-method>DEFAULT</auth-method>
    <realm-name>NOACCESSFORANYONE</realm-name>
</login-config>
<security-role>
    <role-name>NOSOUPFORYOU</role-name>
</security-role>

Si está utilizando apache para entregar contenido estático, esto no funcionará ya que apache entregará los archivos conf antes de que tomcat obtenga la URL. En esos casos, deberá resolver esto a través de los archivos de configuración http de apache.

Solución 2:

Hola a todos los administradores de sistemas y trabajadores de TI en esta publicación. Gracias por sus respuestas. Muchas de las respuestas a mis preguntas fueron aceptables, pero esta era la más adecuada para nuestro entorno de producción.

Está bien. Para bloquear un directorio o un archivo dentro de un host virtual en server.xml solo tiene que agregar el siguiente código a server.xml en el directorio tomcat/conf.

Antes:

  <Host name="www.customer.com" appBase="/usr/share/app4_0b/tomcat/webapps/" autoDeploy="false">
    <Context path="" docBase="./customer" />

    <Valapp className="org.apache.catalina.valapps.FastCommonAccessLogValapp"
           directory="weblogs/customer"
           prefix="www_customer_com_"
           suffix=".txt"
           pattern="combined"
           resolappHosts="false" />
  </Host>

Después:

  <Host name="www.customer.com" appBase="/usr/share/app4_0b/tomcat/webapps/" autoDeploy="false">
    <Context path="" docBase="./customer" />

    <Context path="/app/xv/~customer/etc" docBase="" >
      <Valapp className="org.apache.catalina.valapps.RemoteAddrValapp" deny="*" />
    </Context>
    <Context path="/etc" docBase="" >
      <Valapp className="org.apache.catalina.valapps.RemoteAddrValapp" deny="*" />
    </Context>

    <Valapp className="org.apache.catalina.valapps.FastCommonAccessLogValapp"
           directory="weblogs/customer"
           prefix="www_customer_com_"
           suffix=".txt"
           pattern="combined"
           resolappHosts="false" />
  </Host>

Entonces, la respuesta a la pregunta es agregar las siguientes líneas:

    <Context path="/app/xv/~customer/etc" docBase="" >
      <Valapp className="org.apache.catalina.valapps.RemoteAddrValapp" deny="*" />
    </Context>
    <Context path="/etc" docBase="" >
      <Valapp className="org.apache.catalina.valapps.RemoteAddrValapp" deny="*" />
    </Context>

Solución 3:

¿Por qué no almacenarlo fuera de la estructura de su directorio web? Nunca ponemos nada en /var/www/html/ que no queramos que un usuario descubra.

Solución 4:

Palabra de consejo. Después de arreglar los permisos. Cambie todas las contraseñas y ASEGÚRESE de que no haya un caché de Google.

Solución 5:

Normalmente, la información de configuración (como la información de conexión de la base de datos, ...) se almacena en archivos en la carpeta WEB-INF del archivo WAR implementado en Tomcat. Los archivos bajo WEB-INF no son accesibles para los clientes.


Linux
  1. Bloqueo de acceso a través de un archivo .htaccess

  2. ¿Cómo acceder a archivos Flash desde sitios web de transmisión?

  3. Cómo bloquear a un usuario no root para que no cree una entrada crontab en Linux

  4. Medir el tráfico desde el registro de acceso de apache

  5. ¿En qué se diferencia cp -f de cp --remove-destination?

Cómo bloquear el acceso a wp-admin y wp-login en Nginx/Apache

Cómo quitar (^M) caracteres de un archivo en Linux

¿Cómo acceder a los archivos de Windows desde Ubuntu?

Cómo instalar Apache Tomcat 9 en CentOS 7

Cómo instalar Apache Tomcat en Jelastic Cloud

Cómo instalar Apache Tomcat en Ubuntu 18.04